Logo
中文版
详情联系: neusar-support@reachauto.com
ara::crypto::cryp::KeyEncapsulatorPublicCtx类 参考abstract

非对称密钥解封机制 (KEM) 公钥上下文接口 更多...

#include <key_encapsulator_public_ctx.h>

类 ara::crypto::cryp::KeyEncapsulatorPublicCtx 继承关系图:
Inheritance graph
ara::crypto::cryp::KeyEncapsulatorPublicCtx 的协作图:
Collaboration graph

Public 类型

using Uptr = std::unique_ptr< KeyEncapsulatorPublicCtx >
 接口实例唯一智能指针类型 更多...
 
- Public 类型 继承自 ara::crypto::cryp::CryptoContext
using AlgId = CryptoAlgId
 供应商指定的加密算法 ID 的类型定义 更多...
 

Public 成员函数

virtual ara::core::Result< void > AddKeyingData (const RestrictedUseObject &keyingData) noexcept=0
 添加要封装的内容(参考RCF5990) 更多...
 
virtual ara::core::Result< ara::core::Vector< ara::core::Byte > > Encapsulate (KeyDerivationFunctionCtx &kdf, CryptoAlgId kekAlgId) const noexcept=0
 封装 keying-data,在封装过程中,对称加密的初始化向量 IV = {0} 更多...
 
virtual ara::core::Result< void > SetKey (const PublicKey &key) noexcept=0
 设置公钥解封装器上下文的密钥 更多...
 
virtual ara::core::Result< void > Reset () noexcept=0
 重置上下文 更多...
 
virtual std::size_t GetKekEntropy () const noexcept=0
 获取密钥加密密钥 (KEK) 材料的熵(位长) 更多...
 
virtual std::size_t GetEncapsulatedSize () const noexcept=0
 获取封装数据块的固定大小 更多...
 
- Public 成员函数 继承自 ara::crypto::cryp::CryptoContext
virtual ~CryptoContext () noexcept=default
 析构函数 更多...
 
CryptoContextoperator= (const CryptoContext &other)=default
 将另一个CryptoContext拷贝赋值给此实例 更多...
 
CryptoContextoperator= (CryptoContext &&other)=default
 将另一个CryptoContext移动赋值给此实例 更多...
 
virtual CryptoPrimitiveId::Uptr GetCryptoPrimitiveId () const noexcept=0
 读取对象实例的密钥算法 更多...
 
virtual bool IsInitialized () const noexcept=0
 检查加密上下文是否已经初始化 更多...
 
virtual CryptoProviderMyProvider () const noexcept=0
 获取此上下文的Crypto Provider的引用 更多...
 

详细描述

非对称密钥解封机制 (KEM) 公钥上下文接口

Swsid
SWS_CRYPT_21800
符合标准
yes
非标原因
N/A
种类
class
符号
ara::crypto::cryp::KeyEncapsulatorPublicCtx
范围
namespace ara::crypto::cryp
基类
CryptoContext
分类
ara
头文件
注解
N/A
模板参数
N/A

在文件 第 行定义.

成员类型定义说明

◆ Uptr

接口实例唯一智能指针类型

Swsid
SWS_CRYPT_21801
符合标准
yes
非标原因
N/A
种类
type alias
符号
ara::crypto::cryp::KeyEncapsulatorPublicCtx::Uptr
范围
class ara::crypto::cryp::KeyEncapsulatorPublicCtx
派生来源
std::unique_ptr<KeyEncapsulatorPublicCtx>
分类
ara
头文件
注解
N/A

在文件 第 行定义.

成员函数说明

◆ AddKeyingData()

virtual ara::core::Result<void> ara::crypto::cryp::KeyEncapsulatorPublicCtx::AddKeyingData ( const RestrictedUseObject keyingData)
pure virtualnoexcept

添加要封装的内容(参考RCF5990)

模板参数
N/A
参数
[in]keyingData密钥对象(受保护)
[out]N/A
[in,out]N/A
返回
ara::core::Result<void>
注解
[Error]: CryptoErrc::kIncompatibleObject Crypto Provider 不兼容
[Error]: CryptoErrc::kUsageViolation 密钥不支持用于传输
目前仅支持 SymmetricKeySecretSeed 对象。
错误码偏差项
N/A
异常
N/A
Swsid
SWS_CRYPT_21810
符合标准
yes
非标原因
N/A
种类
function
可见
public
线程安全
reentrant
Fireandforget
no
错误
N/A
头文件
异常安全
noexcept
分类
ara

◆ 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}

模板参数
N/A
参数
[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
异常
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

获取封装数据块的固定大小

模板参数
N/A
参数
[in]N/A
[out]N/A
[in,out]N/A
返回
std::size_t 返回预判的封装数据的大小(非实际封装,实际封装为封装接口的返回值size)
注解
N/A
错误码偏差项
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) 材料的熵(位长)

模板参数
N/A
参数
[in]N/A
[out]N/A
[in,out]N/A
返回
std::size_t KEK 材料的熵(以位为单位,对于 RSA 系统,返回值对应于模N 的长度)
注解
N/A
错误码偏差项
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

重置上下文

模板参数
N/A
参数
[in]N/A
[out]N/A
[in,out]N/A
返回
ara::core::Result<void>
注解
N/A
错误码偏差项
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

设置公钥解封装器上下文的密钥

模板参数
N/A
参数
[in]key加密的公对象
[out]N/A
[in,out]N/A
返回
ara::core::Result<void>
注解
[Error]: CryptoErrc::kIncompatibleObject Crypto Provider 不兼容
[Error]: CryptoErrc::kUsageViolation 公钥对象不允许用于解密
错误码偏差项
N/A
异常
N/A
Swsid
SWS_CRYPT_21815
符合标准
yes
非标原因
N/A
种类
function
可见
public
线程安全
reentrant
Fireandforget
no
错误
N/A
头文件
异常安全
noexcept
分类
ara