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

密钥派生功能接口 更多...

#include <key_derivation_function_ctx.h>

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

Public 类型

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

Public 成员函数

virtual ara::core::Result< void > AddSalt (ReadOnlyMemRegion salt) noexcept=0
 增加盐值(非机密) 更多...
 
virtual ara::core::Result< void > AddSecretSalt (const SecretSeed &salt) noexcept=0
 添加秘密种子为盐值 更多...
 
virtual std::uint32_t ConfigIterations (std::uint32_t iterations=0U) noexcept=0
 派生的迭代次数(实现可以限制迭代次数的最小值和/或最大值) 更多...
 
virtual ara::core::Result< SymmetricKey::UptrcDeriveKey (bool isSession=true, bool isExportable=false) const noexcept=0
 从提供的密钥材料和提供的上下文配置派生对称密钥 更多...
 
virtual ara::core::Result< SecretSeed::UptrcDeriveSeed (bool isSession=true, bool isExportable=false) const noexcept=0
 从提供的“主”密钥材料和提供的上下文配置派生“从”密钥材料(秘密种子) 更多...
 
virtual AlgId GetTargetAlgId () const noexcept=0
 获取目标密钥(派生后的对象)的对称算法 ID。 更多...
 
virtual AllowedUsageFlags GetTargetAllowedUsage () const noexcept=0
 获取目标密钥(派生后的对象)允许密钥用法 更多...
 
virtual ara::core::Result< void > Init (ReadOnlyMemRegion targetKeyId, AlgId targetAlgId=kAlgIdAny, AllowedUsageFlags allowedUsage=kAllowKdfMaterialAnyUsage, ReadOnlyMemRegion ctxLabel=ReadOnlyMemRegion()) noexcept=0
 通过最后设置目标密钥的相关属性 来初始化此上下文。 更多...
 
virtual ara::core::Result< void > Reset () noexcept=0
 派生上下文重置 更多...
 
virtual ara::core::Result< void > SetSourceKeyMaterial (const RestrictedUseObject &sourceKM) 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_21500
符合标准
yes
非标原因
N/A
种类
class
符号
ara::crypto::cryp::KeyDerivationFunctionCtx
范围
namespace ara::crypto::cryp
基类
CryptoContext
分类
ara
头文件
注解
N/A
模板参数
N/A

在文件 第 行定义.

成员类型定义说明

◆ Uptr

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

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

在文件 第 行定义.

成员函数说明

◆ AddSalt()

virtual ara::core::Result<void> ara::crypto::cryp::KeyDerivationFunctionCtx::AddSalt ( ReadOnlyMemRegion  salt)
pure virtualnoexcept

增加盐值(非机密)

模板参数
N/A
参数
[in]salt一个盐值(对于派生的密钥,每个实例都是唯一)
[out]N/A
[in,out]N/A
返回
N/A
注解
[Error]: CryptoErrc::kInvalidInputSize 传入的盐值为空,或长度大于受限长度1024(SWS_CRYPT_00622)
[Error]: CryptoErrc::kUnsupported 一个派生对象不支持增加对于一个的盐值或盐值对象
错误码偏差项
N/A
异常
N/A
Swsid
SWS_CRYPT_21512
符合标准
yes
非标原因
N/A
种类
function
可见
public
线程安全
reentrant
Fireandforget
no
错误
N/A
头文件
异常安全
noexcept
分类
ara

◆ AddSecretSalt()

virtual ara::core::Result<void> ara::crypto::cryp::KeyDerivationFunctionCtx::AddSecretSalt ( const SecretSeed salt)
pure virtualnoexcept

添加秘密种子为盐值

模板参数
N/A
参数
[in]salt秘密种子类型的盐值(对于派生的密钥,每个实例都是唯一)
[out]N/A
[in,out]N/A
返回
N/A
注解
[Error]: CryptoErrc::kInvalidInputSize 传入的秘密种子对象为空
[Error]: CryptoErrc::kUnsupported 一个派生对象不支持增加对于一个的盐值或盐值对象
错误码偏差项
N/A
异常
N/A
Swsid
SWS_CRYPT_21513
符合标准
yes
非标原因
N/A
种类
function
可见
public
线程安全
reentrant
Fireandforget
no
错误
N/A
头文件
异常安全
noexcept
分类
ara

◆ ConfigIterations()

virtual std::uint32_t ara::crypto::cryp::KeyDerivationFunctionCtx::ConfigIterations ( std::uint32_t  iterations = 0U)
pure virtualnoexcept

派生的迭代次数(实现可以限制迭代次数的最小值和/或最大值)

模板参数
N/A
参数
[in]iterations基本函数所需的迭代次数(0 表示实现默认次数)
[out]N/A
[in,out]N/A
返回
std::uint32_t 实际支持的迭代次数(在此方法调用之后)
注解
N/A
错误码偏差项
N/A
异常
N/A
Swsid
SWS_CRYPT_21514
符合标准
yes
非标原因
N/A
种类
function
可见
public
线程安全
reentrant
Fireandforget
no
错误
N/A
头文件
异常安全
noexcept
分类
ara

◆ DeriveKey()

virtual ara::core::Result<SymmetricKey::Uptrc> ara::crypto::cryp::KeyDerivationFunctionCtx::DeriveKey ( bool  isSession = true,
bool  isExportable = false 
) const
pure virtualnoexcept

从提供的密钥材料和提供的上下文配置派生对称密钥

模板参数
N/A
参数
[in]isSession目标密钥的“会话”(或“临时”)属性(如果为true)
[in]isExportable目标密钥的可导出性属性(如果为true)
[out]N/A
[in,out]N/A
返回
ara::core::Result<SymmetricKey::Uptrc> 指向已创建派生对称密钥实例的唯一智能指针
注解
[Error]: CryptoErrc::kUninitializedContext 派生上下文未完成初始化
[Error]: CryptoErrc::kInsufficientResource 资源不足
错误码偏差项
N/A
异常
N/A
Swsid
SWS_CRYPT_21515
符合标准
yes
非标原因
N/A
种类
function
可见
public
线程安全
reentrant
Fireandforget
no
错误
N/A
头文件
异常安全
noexcept
分类
ara

◆ DeriveSeed()

virtual ara::core::Result<SecretSeed::Uptrc> ara::crypto::cryp::KeyDerivationFunctionCtx::DeriveSeed ( bool  isSession = true,
bool  isExportable = false 
) const
pure virtualnoexcept

从提供的“主”密钥材料和提供的上下文配置派生“从”密钥材料(秘密种子)

模板参数
N/A
参数
[in]isSession目标密钥的“会话”(或“临时”)属性(如果为true)
[in]isExportable目标密钥的可导出性属性(如果为true)
[out]N/A
[in,out]N/A
返回
ara::core::Result<SecretSeed::Uptrc> 指向已创建派生秘密种子实例的唯一智能指针
注解
[Error]: CryptoErrc::kUninitializedContext 派生上下文未完成初始化
[Error]: CryptoErrc::kInsufficientResource 资源不足
错误码偏差项
N/A
异常
N/A
Swsid
SWS_CRYPT_21516
符合标准
yes
非标原因
N/A
种类
function
可见
public
线程安全
reentrant
Fireandforget
no
错误
N/A
头文件
异常安全
noexcept
分类
ara

◆ GetTargetAlgId()

virtual AlgId ara::crypto::cryp::KeyDerivationFunctionCtx::GetTargetAlgId ( ) const
pure virtualnoexcept

获取目标密钥(派生后的对象)的对称算法 ID。

模板参数
N/A
参数
[in]N/A
[out]N/A
[in,out]N/A
返回
AlgId
注解
如果尚未通过调用 Init() 方法配置上下文,则应该是kAlgIdUndefined。
错误码偏差项
N/A
异常
N/A
Swsid
SWS_CRYPT_21520
符合标准
yes
非标原因
N/A
种类
function
可见
public
线程安全
reentrant
Fireandforget
no
错误
N/A
头文件
异常安全
noexcept
分类
ara

◆ GetTargetAllowedUsage()

virtual AllowedUsageFlags ara::crypto::cryp::KeyDerivationFunctionCtx::GetTargetAllowedUsage ( ) const
pure virtualnoexcept

获取目标密钥(派生后的对象)允许密钥用法

模板参数
N/A
参数
[in]N/A
[out]N/A
[in,out]N/A
返回
AlgId
注解
返回值取决于源密钥材料允许使用标志和 Init() 方法最后一次调用的参数 allowedUsage。
如果尚未通过调用 Init() 方法配置上下文,则应返回源密钥材料的允许使用标志。
如果尚未通过调用 Init() 方法配置上下文并且也未设置源密钥材料,则应返回 kAllow KdfMaterialAnyUsage。
错误码偏差项
N/A
异常
N/A
Swsid
SWS_CRYPT_21521
符合标准
yes
非标原因
N/A
种类
function
可见
public
线程安全
reentrant
Fireandforget
no
错误
N/A
头文件
异常安全
noexcept
分类
ara

◆ Init()

virtual ara::core::Result<void> ara::crypto::cryp::KeyDerivationFunctionCtx::Init ( ReadOnlyMemRegion  targetKeyId,
AlgId  targetAlgId = kAlgIdAny,
AllowedUsageFlags  allowedUsage = kAllowKdfMaterialAnyUsage,
ReadOnlyMemRegion  ctxLabel = ReadOnlyMemRegion() 
)
pure virtualnoexcept

通过最后设置目标密钥的相关属性 来初始化此上下文。

模板参数
N/A
参数
[in]targetKeyId目标keyId (暂未处理)
[in]targetAlgId目标对称加密算法标识符 (支持对称密钥算法kNID_aes_128_xxx, kNID_aes_256_xxx,kNID_sm4_xxx)
[in]allowedUsage定义允许转换类型列表的位标志,其中可以使用目标密钥
[in]ctxLabel一个可选的特定于应用程序的“上下文标签”
[out]N/A
[in,out]N/A
返回
AlgId
注解
[Error]:CryptoErrc::kInvalidUsageOrder Init之前应先设置源密钥材料
[Error]:CryptoErrc::kUsageViolation 派生密钥的使用限制不能小于源密钥材料的使用限制
[Error]:CryptoErrc::kInvalidArgument ctxLabel长度超过受限长度1024 或 指定targetAlgId 非对称密钥算法
错误码偏差项
N/A
异常
N/A
Swsid
SWS_CRYPT_21523
符合标准
yes
非标原因
N/A
种类
function
可见
public
线程安全
reentrant
Fireandforget
no
错误
N/A
头文件
异常安全
noexcept
分类
ara

◆ Reset()

virtual ara::core::Result<void> ara::crypto::cryp::KeyDerivationFunctionCtx::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_21524
符合标准
yes
非标原因
N/A
种类
function
可见
public
线程安全
reentrant
Fireandforget
no
错误
N/A
头文件
异常安全
noexcept
分类
ara

◆ SetSourceKeyMaterial()

virtual ara::core::Result<void> ara::crypto::cryp::KeyDerivationFunctionCtx::SetSourceKeyMaterial ( const RestrictedUseObject sourceKM)
pure virtualnoexcept

将密钥材料设置到密钥派生算法上下文

模板参数
N/A
参数
[in]sourceKM源密钥材料
[out]N/A
[in,out]N/A
返回
N/A
注解
[Error]:CryptoErrc::kIncompatibleObject 源密钥材料与上下文的provider不兼容,或密钥源材料非秘密种子和对称密钥
[Error]:CryptoErrc::kUsageViolation 源密钥材料使用限制不允许派生
[Error]:CryptoErrc::kBruteForceRisk 源密钥材料为空
错误码偏差项
N/A
异常
N/A
Swsid
SWS_CRYPT_21525
符合标准
yes
非标原因
N/A
种类
function
可见
public
线程安全
reentrant
Fireandforget
no
错误
N/A
头文件
异常安全
noexcept
分类
ara