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

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

#include <key_decapsulator_private_ctx.h>

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

Public 类型

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

Public 成员函数

virtual ara::core::Result< SecretSeed::UptrcDecapsulateSeed (ReadOnlyMemRegion input, ara::core::Optional< AllowedUsageFlags > allowedUsage) const noexcept=0
 解封秘密种子材料 更多...
 
virtual ara::core::Result< SymmetricKey::UptrcDecapsulateKey (ReadOnlyMemRegion input, CryptoAlgId keyingDataAlgId, KeyDerivationFunctionCtx &kdf, CryptoAlgId kekAlgId, ara::core::Optional< AllowedUsageFlags > allowedUsage) const noexcept=0
 解封装密钥数据以用于后续处理(例如安全通信),在解封过程中,对称加密的初始化向量 IV = {0} 更多...
 
virtual ara::core::Result< void > SetKey (const PrivateKey &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_21400
符合标准
yes
非标原因
N/A
种类
class
符号
ara::crypto::cryp::KeyDerivationFunctionCtx
范围
namespace ara::crypto::cryp
基类
CryptoContext
分类
ara
头文件
注解
N/A
模板参数
N/A

在文件 第 行定义.

成员类型定义说明

◆ Uptr

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

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

在文件 第 行定义.

成员函数说明

◆ DecapsulateKey()

virtual ara::core::Result<SymmetricKey::Uptrc> ara::crypto::cryp::KeyDecapsulatorPrivateCtx::DecapsulateKey ( ReadOnlyMemRegion  input,
CryptoAlgId  keyingDataAlgId,
KeyDerivationFunctionCtx kdf,
CryptoAlgId  kekAlgId,
ara::core::Optional< AllowedUsageFlags allowedUsage 
) const
pure virtualnoexcept

解封装密钥数据以用于后续处理(例如安全通信),在解封过程中,对称加密的初始化向量 IV = {0}

模板参数
N/A
参数
[in]input输入缓冲区(其大小应等于 GetEncapsulatedSize() 字节
[in]keyingDataAlgId目标对称密钥的算法 ID (kNID_aes_128_xxx, kNID_aes_256_xxx,kNID_sm4_xxx)
[in]kdf密钥派生函数的上下文,应用于 KEK 生产
[in]kekAlgIdKEK 的算法 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
异常
N/A
Swsid
SWS_CRYPT_21412
符合标准
yes
非标原因
N/A
种类
function
可见
public
线程安全
reentrant
Fireandforget
no
错误
N/A
头文件
异常安全
noexcept
分类
ara

◆ DecapsulateSeed()

virtual ara::core::Result<SecretSeed::Uptrc> ara::crypto::cryp::KeyDecapsulatorPrivateCtx::DecapsulateSeed ( ReadOnlyMemRegion  input,
ara::core::Optional< AllowedUsageFlags allowedUsage 
) const
pure virtualnoexcept

解封秘密种子材料

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

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

模板参数
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_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) 材料的熵(位长)

模板参数
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_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

重置上下文

模板参数
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_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

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

模板参数
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_21413
符合标准
yes
非标原因
N/A
种类
function
可见
public
线程安全
reentrant
Fireandforget
no
错误
N/A
头文件
异常安全
noexcept
分类
ara