非对称密钥解封机制 (KEM) 公钥上下文接口
更多...
#include <key_encapsulator_public_ctx.h>
非对称密钥解封机制 (KEM) 公钥上下文接口
- Swsid
- SWS_CRYPT_21800
- 符合标准
- yes
- 非标原因
- N/A
- 种类
- class
- 符号
- ara::crypto::cryp::KeyEncapsulatorPublicCtx
- 范围
- namespace ara::crypto::cryp
- 基类
- CryptoContext
- 分类
- ara
- 头文件
-
- 注解
- N/A
- 模板参数
-
在文件 第 行定义.
◆ Uptr
◆ AddKeyingData()
| virtual ara::core::Result<void> ara::crypto::cryp::KeyEncapsulatorPublicCtx::AddKeyingData |
( |
const RestrictedUseObject & |
keyingData | ) |
|
|
pure virtualnoexcept |
◆ Encapsulate()
| virtual ara::core::Result<ara::core::Vector<ara::core::Byte> > ara::crypto::cryp::KeyEncapsulatorPublicCtx::Encapsulate |
( |
KeyDerivationFunctionCtx & |
kdf, |
|
|
CryptoAlgId |
kekAlgId |
|
) |
| const |
|
pure virtualnoexcept |
封装 keying-data,在封装过程中,对称加密的初始化向量 IV = {0}
- 模板参数
-
- 参数
-
| [in] | kdf | 密钥派生函数的上下文,应用于目标 KEK 生产 |
| [in] | kekAlgId | 目标 KEK 的算法 ID (支持的对称算法kNID_aes_128_xxx, kNID_aes_256_xxx,kNID_sm4_xxx) |
| [out] | N/A | |
| [in,out] | N/A | |
- 返回
- ara::core::Result<ara::core::Vector<ara::core::Byte>> 封装后的数据
- 注解
- [Error]: CryptoErrc::kUninitializedContext 上下文未完成初始化
-
[Error]: CryptoErrc::kInvalidArgument kekAlgId为不支持的对称密钥算法,或keyAlgId与kdf的targetAlgId不一致
- 错误码偏差项
- N/A
- 异常
-
- Swsid
- SWS_CRYPT_21813
- 符合标准
- yes
- 非标原因
- N/A
- 种类
- function
- 可见
- public
- 线程安全
- reentrant
- Fireandforget
- no
- 错误
- N/A
- 头文件
-
- 异常安全
- noexcept
- 分类
- ara
◆ GetEncapsulatedSize()
| virtual std::size_t ara::crypto::cryp::KeyEncapsulatorPublicCtx::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_21818
- 符合标准
- yes
- 非标原因
- N/A
- 种类
- function
- 可见
- public
- 线程安全
- reentrant
- Fireandforget
- no
- 错误
- N/A
- 头文件
-
- 异常安全
- noexcept
- 分类
- ara
◆ GetKekEntropy()
| virtual std::size_t ara::crypto::cryp::KeyEncapsulatorPublicCtx::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_21817
- 符合标准
- yes
- 非标原因
- N/A
- 种类
- function
- 可见
- public
- 线程安全
- reentrant
- Fireandforget
- no
- 错误
- N/A
- 头文件
-
- 异常安全
- noexcept
- 分类
- ara
◆ Reset()
| virtual ara::core::Result<void> ara::crypto::cryp::KeyEncapsulatorPublicCtx::Reset |
( |
| ) |
|
|
pure virtualnoexcept |
重置上下文
- 模板参数
-
- 参数
-
| [in] | N/A | |
| [out] | N/A | |
| [in,out] | N/A | |
- 返回
- ara::core::Result<void>
- 注解
- N/A
- 错误码偏差项
- N/A
- 异常
-
- Swsid
- SWS_CRYPT_21816
- 符合标准
- yes
- 非标原因
- N/A
- 种类
- function
- 可见
- public
- 线程安全
- reentrant
- Fireandforget
- no
- 错误
- N/A
- 头文件
-
- 异常安全
- noexcept
- 分类
- ara
◆ SetKey()
| virtual ara::core::Result<void> ara::crypto::cryp::KeyEncapsulatorPublicCtx::SetKey |
( |
const PublicKey & |
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_21815
- 符合标准
- yes
- 非标原因
- N/A
- 种类
- function
- 可见
- public
- 线程安全
- reentrant
- Fireandforget
- no
- 错误
- N/A
- 头文件
-
- 异常安全
- noexcept
- 分类
- ara