非对称密钥封装机制 (KEM) 私钥上下文接口
更多...
#include <key_decapsulator_private_ctx.h>
非对称密钥封装机制 (KEM) 私钥上下文接口
- Swsid
- SWS_CRYPT_21400
- 符合标准
- yes
- 非标原因
- N/A
- 种类
- class
- 符号
- ara::crypto::cryp::KeyDerivationFunctionCtx
- 范围
- namespace ara::crypto::cryp
- 基类
- CryptoContext
- 分类
- ara
- 头文件
-
- 注解
- N/A
- 模板参数
-
在文件 第 行定义.
◆ Uptr
◆ DecapsulateKey()
解封装密钥数据以用于后续处理(例如安全通信),在解封过程中,对称加密的初始化向量 IV = {0}
- 模板参数
-
- 参数
-
| [in] | input | 输入缓冲区(其大小应等于 GetEncapsulatedSize() 字节 |
| [in] | keyingDataAlgId | 目标对称密钥的算法 ID (kNID_aes_128_xxx, kNID_aes_256_xxx,kNID_sm4_xxx) |
| [in] | kdf | 密钥派生函数的上下文,应用于 KEK 生产 |
| [in] | kekAlgId | KEK 的算法 ID |
| [in] | allowedUsage | 目标对称密钥的允许使用范围(缺省值为 kAllowKdfMaterialAnyUsage) |
| [out] | N/A | |
| [in,out] | N/A | |
- 返回
- ara::core::Result<SymmetricKey::Uptrc> 从解封装的密钥数据中实例化的对称密钥对象的唯一智能指针
- 注解
- [Error]: CryptoErrc::kUninitializedContext 上下文未完成初始化
-
[Error]: CryptoErrc::kInvalidArgument kekAlgId 、keyingDataAlgId不支持, 或keyAlgId与kdf的targetAlgId不一致
-
[Error]: CryptoErrc::kInvalidInputSize input 参数的长度错误
- 错误码偏差项
- N/A
- 异常
-
- Swsid
- SWS_CRYPT_21412
- 符合标准
- yes
- 非标原因
- N/A
- 种类
- function
- 可见
- public
- 线程安全
- reentrant
- Fireandforget
- no
- 错误
- N/A
- 头文件
-
- 异常安全
- noexcept
- 分类
- ara
◆ DecapsulateSeed()
解封秘密种子材料
- 模板参数
-
- 参数
-
| [in] | input | 带有封装种子的缓冲区(其大小应等于 GetEncapsulatedSize() 字节 |
| [in] | allowedUsage | 目标种子的允许使用范围(缺省值为 kAllowKdfMaterialAnyUsage) |
| [out] | N/A | |
| [in,out] | N/A | |
- 返回
- ara::core::Result< SecretSeed::Uptrc > 指向 SecretSeed 对象的唯一智能指针,它使密钥材料从输入缓冲区中解封装
- 注解
- [Error]: CryptoErrc::kUninitializedContext 上下文未完成初始化
-
[Error]: CryptoErrc::kInvalidInputSize input 参数的长度错误
- 错误码偏差项
- N/A
- 异常
-
- Swsid
- SWS_CRYPT_21411
- 符合标准
- yes
- 非标原因
- N/A
- 种类
- function
- 可见
- public
- 线程安全
- reentrant
- Fireandforget
- no
- 错误
- N/A
- 头文件
-
- 异常安全
- noexcept
- 分类
- ara
◆ GetEncapsulatedSize()
| virtual std::size_t ara::crypto::cryp::KeyDecapsulatorPrivateCtx::GetEncapsulatedSize |
( |
| ) |
const |
|
pure virtualnoexcept |
获取封装数据块的固定大小
- 模板参数
-
- 参数
-
| [in] | N/A | |
| [out] | N/A | |
| [in,out] | N/A | |
- 返回
- std::size_t 预判的封装数据的大小 (非实际封装大小,实际封装为解封参数入参的size)
- 注解
- N/A
- 错误码偏差项
- N/A
- 异常
-
- Swsid
- SWS_CRYPT_21416
- 符合标准
- yes
- 非标原因
- N/A
- 种类
- function
- 可见
- public
- 线程安全
- reentrant
- Fireandforget
- no
- 错误
- N/A
- 头文件
-
- 异常安全
- noexcept
- 分类
- ara
◆ GetKekEntropy()
| virtual std::size_t ara::crypto::cryp::KeyDecapsulatorPrivateCtx::GetKekEntropy |
( |
| ) |
const |
|
pure virtualnoexcept |
获取密钥加密密钥 (KEK) 材料的熵(位长)
- 模板参数
-
- 参数
-
| [in] | N/A | |
| [out] | N/A | |
| [in,out] | N/A | |
- 返回
- std::size_t KEK 材料的熵(以位为单位,对于 RSA 系统,返回值对应于模N 的长度)
- 注解
- N/A
- 错误码偏差项
- N/A
- 异常
-
- Swsid
- SWS_CRYPT_21415
- 符合标准
- yes
- 非标原因
- N/A
- 种类
- function
- 可见
- public
- 线程安全
- reentrant
- Fireandforget
- no
- 错误
- N/A
- 头文件
-
- 异常安全
- noexcept
- 分类
- ara
◆ Reset()
| virtual ara::core::Result<void> ara::crypto::cryp::KeyDecapsulatorPrivateCtx::Reset |
( |
| ) |
|
|
pure virtualnoexcept |
重置上下文
- 模板参数
-
- 参数
-
| [in] | N/A | |
| [out] | N/A | |
| [in,out] | N/A | |
- 返回
- ara::core::Result<void>
- 注解
- N/A
- 错误码偏差项
- N/A
- 异常
-
- Swsid
- SWS_CRYPT_21414
- 符合标准
- yes
- 非标原因
- N/A
- 种类
- function
- 可见
- public
- 线程安全
- reentrant
- Fireandforget
- no
- 错误
- N/A
- 头文件
-
- 异常安全
- noexcept
- 分类
- ara
◆ SetKey()
| virtual ara::core::Result<void> ara::crypto::cryp::KeyDecapsulatorPrivateCtx::SetKey |
( |
const PrivateKey & |
key | ) |
|
|
pure virtualnoexcept |
设置私钥解封装器上下文的密钥
- 模板参数
-
- 参数
-
| [in] | key | 解密的私钥对象 |
| [out] | N/A | |
| [in,out] | N/A | |
- 返回
- ara::core::Result<void>
- 注解
- [Error]: CryptoErrc::kIncompatibleObject Crypto Provider 不兼容
-
[Error]: CryptoErrc::kUsageViolation 私钥对象不允许解密
- 错误码偏差项
- N/A
- 异常
-
- Swsid
- SWS_CRYPT_21413
- 符合标准
- yes
- 非标原因
- N/A
- 种类
- function
- 可见
- public
- 线程安全
- reentrant
- Fireandforget
- no
- 错误
- N/A
- 头文件
-
- 异常安全
- noexcept
- 分类
- ara