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

对称密钥包装上下文类定义 更多...

#include <symmetric_key_wrapper_ctx.h>

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

Public 类型

using Uptr = std::unique_ptr< SymmetricKeyWrapperCtx >
 对称密钥包装上下文唯一智能指针类型 更多...
 
- Public 类型 继承自 ara::crypto::cryp::CryptoContext
using AlgId = CryptoAlgId
 供应商指定的加密算法 ID 的类型定义 更多...
 

Public 成员函数

virtual std::size_t GetTargetKeyGranularity () const noexcept=0
 获取目标密钥的预期粒度 更多...
 
virtual std::size_t GetMaxTargetKeyLength () const noexcept=0
 获取目标密钥最大长度 更多...
 
virtual std::size_t CalculateWrappedKeySize (std::size_t keyLength) const noexcept=0
 根据原始输入密钥计算封装后的数据大小 更多...
 
virtual ara::core::Result< ara::core::Vector< ara::core::Byte > > WrapKeyMaterial (const RestrictedUseObject &key) const noexcept=0
 对提供的密钥材料执行密钥包装操作;(注意:IV(初始向量)根据标准设置为:iv[] = {0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6}) 更多...
 
virtual ara::core::Result< SecretSeed::UptrcUnwrapSeed (ReadOnlyMemRegion wrappedSeed, AlgId targetAlgId, SecretSeed::Usage allowedUsage) const noexcept=0
 对提供的包装数据执行解包处理,生成SecretSeed对象;(注意:IV(初始向量)根据标准设置为:iv[] = {0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6}) 更多...
 
virtual ara::core::Result< RestrictedUseObject::UptrcUnwrapKey (ReadOnlyMemRegion wrappedKey, AlgId algId, AllowedUsageFlags allowedUsage) const noexcept=0
 对提供的包装数据执行解包处理,生成Key对象;(注意:IV(初始向量)根据标准设置为:iv[] = {0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6}) 更多...
 
virtual ara::core::Result< void > SetKey (const SymmetricKey &key, CryptoTransform transform) noexcept=0
 设置密钥在对称密钥包装上下文; 更多...
 
virtual ara::core::Result< void > Reset () 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的引用 更多...
 

详细描述

对称密钥包装上下文类定义

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

在文件 第 行定义.

成员类型定义说明

◆ Uptr

对称密钥包装上下文唯一智能指针类型

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

在文件 第 行定义.

成员函数说明

◆ CalculateWrappedKeySize()

virtual std::size_t ara::crypto::cryp::SymmetricKeyWrapperCtx::CalculateWrappedKeySize ( std::size_t  keyLength) const
pure virtualnoexcept

根据原始输入密钥计算封装后的数据大小

模板参数
N/A
参数
[in]keyLength原始密钥长度(单位:比特)
[out]N/A
[in,out]N/A
返回
封装后的数据大小(单位:字节)
注解
N/A
错误码偏差项
N/A
异常
N/A
Swsid
SWS_CRYPT_24013
符合标准
yes
非标原因
N/A
种类
function
可见
public
线程安全
reentrant
Fireandforget
no
错误
N/A
头文件
异常安全
noexcept
分类
ara

◆ GetMaxTargetKeyLength()

virtual std::size_t ara::crypto::cryp::SymmetricKeyWrapperCtx::GetMaxTargetKeyLength ( ) const
pure virtualnoexcept

获取目标密钥最大长度

模板参数
N/A
参数
[in]N/A
[out]N/A
[in,out]N/A
返回
目标密钥最大长度(单位:比特)
注解
N/A
错误码偏差项
N/A
异常
N/A
Swsid
SWS_CRYPT_24012
符合标准
yes
非标原因
N/A
种类
function
可见
public
线程安全
reentrant
Fireandforget
no
错误
N/A
头文件
异常安全
noexcept
分类
ara

◆ GetTargetKeyGranularity()

virtual std::size_t ara::crypto::cryp::SymmetricKeyWrapperCtx::GetTargetKeyGranularity ( ) const
pure virtualnoexcept

获取目标密钥的预期粒度

模板参数
N/A
参数
[in]N/A
[out]N/A
[in,out]N/A
返回
块大小(单位:字节)
注解
N/A
错误码偏差项
N/A
异常
N/A
Swsid
SWS_CRYPT_24011
符合标准
yes
非标原因
N/A
种类
function
可见
public
线程安全
reentrant
Fireandforget
no
错误
N/A
头文件
异常安全
noexcept
分类
ara

◆ Reset()

virtual ara::core::Result<void> ara::crypto::cryp::SymmetricKeyWrapperCtx::Reset ( )
pure virtualnoexcept

清除上下文;

模板参数
N/A
参数
[in]N/A
[out]N/A
[in,out]N/A
返回
N/A
注解
N/A
错误码偏差项
N/A
异常
N/A
Swsid
SWS_CRYPT_24019
符合标准
yes
非标原因
N/A
种类
function
可见
public
线程安全
reentrant
Fireandforget
no
错误
N/A
头文件
异常安全
noexcept
分类
ara

◆ SetKey()

virtual ara::core::Result<void> ara::crypto::cryp::SymmetricKeyWrapperCtx::SetKey ( const SymmetricKey key,
CryptoTransform  transform 
)
pure virtualnoexcept

设置密钥在对称密钥包装上下文;

模板参数
N/A
参数
[in]key源密钥对象
[in]transform转换标识:包装或者解包
[out]N/A
[in,out]N/A
返回
Key对象指针,该对象包括了解包后的密钥材料
注解
[Error]: CryptoErrc::kIncompatibleObject 如果提供的密钥对象属于其他的CryptoProvider,与上下文的CryptoProvider不同;
[Error]: CryptoErrc::kUsageViolation 如果转换方向在提供的密钥对象的使用限制中禁止;
错误码偏差项
N/A
异常
N/A
Swsid
SWS_CRYPT_24018
符合标准
yes
非标原因
N/A
种类
function
可见
public
线程安全
reentrant
Fireandforget
no
错误
N/A
头文件
异常安全
noexcept
分类
ara

◆ UnwrapKey()

virtual ara::core::Result<RestrictedUseObject::Uptrc> ara::crypto::cryp::SymmetricKeyWrapperCtx::UnwrapKey ( ReadOnlyMemRegion  wrappedKey,
AlgId  algId,
AllowedUsageFlags  allowedUsage 
) const
pure virtualnoexcept

对提供的包装数据执行解包处理,生成Key对象;(注意:IV(初始向量)根据标准设置为:iv[] = {0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6})

模板参数
N/A
参数
[in]wrappedSeed包装数据
[in]algId目标对称算法标识符
[in]allowedUsage目标SecretSeed的使用限制
[out]N/A
[in,out]N/A
返回
Key对象指针,该对象包括了解包后的密钥材料
注解
[Error]: CryptoErrc::kUninitializedContext 上下文没有设置密钥进行初始化;
[Error]: CryptoErrc::kInvalidInputSize 如果提供的包装长度不支持;
错误码偏差项
N/A
异常
N/A
Swsid
SWS_CRYPT_24016
符合标准
yes
非标原因
N/A
种类
function
可见
public
线程安全
reentrant
Fireandforget
no
错误
N/A
头文件
异常安全
noexcept
分类
ara

◆ UnwrapSeed()

virtual ara::core::Result<SecretSeed::Uptrc> ara::crypto::cryp::SymmetricKeyWrapperCtx::UnwrapSeed ( ReadOnlyMemRegion  wrappedSeed,
AlgId  targetAlgId,
SecretSeed::Usage  allowedUsage 
) const
pure virtualnoexcept

对提供的包装数据执行解包处理,生成SecretSeed对象;(注意:IV(初始向量)根据标准设置为:iv[] = {0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6})

模板参数
N/A
参数
[in]wrappedSeed包装数据
[in]targetAlgId目标对称算法标识符
[in]allowedUsage目标SecretSeed的使用限制
[out]N/A
[in,out]N/A
返回
SecretSeed对象指针,该对象包括了解包后的密钥材料
注解
[Error]: CryptoErrc::kUninitializedContext 上下文没有设置密钥进行初始化;
[Error]: CryptoErrc::kInvalidInputSize 如果提供的包装长度不支持;
错误码偏差项
N/A
异常
N/A
Swsid
SWS_CRYPT_24015
符合标准
yes
非标原因
N/A
种类
function
可见
public
线程安全
reentrant
Fireandforget
no
错误
N/A
头文件
异常安全
noexcept
分类
ara

◆ WrapKeyMaterial()

virtual ara::core::Result<ara::core::Vector<ara::core::Byte> > ara::crypto::cryp::SymmetricKeyWrapperCtx::WrapKeyMaterial ( const RestrictedUseObject key) const
pure virtualnoexcept

对提供的密钥材料执行密钥包装操作;(注意:IV(初始向量)根据标准设置为:iv[] = {0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6})

模板参数
N/A
参数
[in]key待包装的密钥对象
[out]N/A
[in,out]N/A
返回
包装后的数据缓存
注解
[Error]: CryptoErrc::kUninitializedContext 上下文没有设置密钥进行初始化;
[Error]: CryptoErrc::kInvalidInputSize 如果提供的密钥长度不支持;
[Error]: CryptoErrc::kUsageViolation 如果提供的密钥对象使用限制没有设置kAllowKeyExporting;
错误码偏差项
N/A
异常
N/A
Swsid
SWS_CRYPT_24014
符合标准
yes
非标原因
N/A
种类
function
可见
public
线程安全
reentrant
Fireandforget
no
错误
N/A
头文件
异常安全
noexcept
分类
ara