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

消息认证上下文类定义 更多...

#include <message_authn_code_ctx.h>

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

Public 类型

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

Public 成员函数

virtual ara::core::Result< void > Start (ReadOnlyMemRegion iv=ReadOnlyMemRegion()) noexcept=0
 设置IV(初始向量) 更多...
 
virtual ara::core::Result< void > Start (const SecretSeed &iv) noexcept=0
 设置IV(初始向量) 更多...
 
virtual ara::core::Result< void > Update (const RestrictedUseObject &in) noexcept=0
 对数据进行处理 更多...
 
virtual ara::core::Result< void > Update (ReadOnlyMemRegion in) noexcept=0
 对数据进行处理 更多...
 
virtual ara::core::Result< void > Update (std::uint8_t in) noexcept=0
 对数据进行处理 更多...
 
virtual ara::core::Result< Signature::UptrcFinish (bool makeSignatureObject=false) noexcept=0
 结束消息认证码计算,可选择生成签名对象 更多...
 
virtual ara::core::Result< ara::core::Vector< ara::core::Byte > > GetDigest (std::size_t offset=0U) const noexcept=0
 获取计算得出的MAC数据 更多...
 
virtual ara::core::Result< void > SetKey (const SymmetricKey &key, CryptoTransform transform=CryptoTransform::kMacGenerate) noexcept=0
 在上下文中设置密钥 更多...
 
virtual ara::core::Result< bool > Check (const Signature &expected) const noexcept=0
 检查计算的MAC数据与输入的签名对象MAC数据是否一致; 更多...
 
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_22100
符合标准
yes
非标原因
N/A
种类
class
符号
ara::crypto::cryp::MessageAuthnCodeCtx
范围
namespace ara::crypto::cryp
基类
CryptoContext
分类
ara
头文件
注解
N/A
模板参数
N/A

在文件 第 行定义.

成员类型定义说明

◆ Uptr

消息认证上下文唯一智能指针类型

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

在文件 第 行定义.

成员函数说明

◆ Check()

virtual ara::core::Result<bool> ara::crypto::cryp::MessageAuthnCodeCtx::Check ( const Signature expected) const
pure virtualnoexcept

检查计算的MAC数据与输入的签名对象MAC数据是否一致;

模板参数
N/A
参数
[in]expected包含了MAC数据的签名对象;
[out]N/A
[in,out]N/A
返回
true 表示计算的MAC数据与输入的签名对象MAC数据一致;
注解
[Error]: CryptoErrc::kProcessingNotFinished 如果MAC计算并没有通过调用Finish()方法来结束计算;
[Error]: CryptoErrc::kIncompatibleObject 如果指定的转换处理方式,在提供的密钥对象使用限制中是禁止的;
错误码偏差项
N/A
异常
N/A
Swsid
SWS_CRYPT_22119
符合标准
yes
非标原因
N/A
种类
function
可见
public
线程安全
reentrant
Fireandforget
no
错误
N/A
头文件
异常安全
noexcept
分类
ara

◆ Finish()

virtual ara::core::Result<Signature::Uptrc> ara::crypto::cryp::MessageAuthnCodeCtx::Finish ( bool  makeSignatureObject = false)
pure virtualnoexcept

结束消息认证码计算,可选择生成签名对象

模板参数
N/A
参数
[in]makeSignatureObject是否生成签名对象标记;true表示生成签名对象;
[out]N/A
[in,out]N/A
返回
如果参数makeSignatureObject为true,则返回签名对象;如果参数makeSignatureObject为false,则返回nullptr;
注解
[Error]: CryptoErrc::kProcessingNotStarted 如果当前数据处理没有通过调用Start()方法进行初始化
[Error]: CryptoErrc::kUsageViolation 如果在成功调用Start()方法之后,Update()方法没有成功调用,就调用Finish()方法; 当(makeSignatureObject ==true)时, 生成签名对象采用的密钥使用限制中没有kAllowSignature允许标记;
错误码偏差项
N/A
异常
N/A
Swsid
SWS_CRYPT_22115
符合标准
yes
非标原因
N/A
种类
function
可见
public
线程安全
reentrant
Fireandforget
no
错误
N/A
头文件
异常安全
noexcept
分类
ara

◆ GetDigest()

virtual ara::core::Result<ara::core::Vector<ara::core::Byte> > ara::crypto::cryp::MessageAuthnCodeCtx::GetDigest ( std::size_t  offset = 0U) const
pure virtualnoexcept

获取计算得出的MAC数据

模板参数
N/A
参数
[in]offset偏移量(获取MAC数据,从第offset字节开始,将MAC数据填充到输出缓存中)
[out]N/A
[in,out]N/A
返回
指定偏移的MAC数据
注解
[Error]: CryptoErrc::kProcessingNotFinished 如果当前数据处理没有通过调用Finish()方法进行初始化
错误码偏差项
N/A
异常
N/A
Swsid
SWS_CRYPT_22116
符合标准
yes
非标原因
N/A
种类
function
可见
public
线程安全
reentrant
Fireandforget
no
错误
N/A
头文件
异常安全
noexcept
分类
ara

◆ Reset()

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

◆ SetKey()

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

在上下文中设置密钥

模板参数
N/A
参数
[in]key源密钥对象
[in]transform转换标识符:
[out]N/A
[in,out]N/A
返回
指定偏移的MAC数据
注解
[Error]: CryptoErrc::kIncompatibleObject 如果源密钥对象与上下文属于不同的CryptoProvider;当指定MAC算法与指定的密钥对象长度不匹配;
[Error]: CryptoErrc::kUsageViolation 如果指定的转换处理方式,在提供的密钥对象使用限制中是禁止的;
错误码偏差项
N/A
异常
N/A
Swsid
SWS_CRYPT_22118
符合标准
yes
非标原因
N/A
种类
function
可见
public
线程安全
reentrant
Fireandforget
no
错误
N/A
头文件
异常安全
noexcept
分类
ara

◆ Start() [1/2]

virtual ara::core::Result<void> ara::crypto::cryp::MessageAuthnCodeCtx::Start ( const SecretSeed iv)
pure virtualnoexcept

设置IV(初始向量)

模板参数
N/A
参数
[in]iv秘密种子对象(初始向量)
[out]N/A
[in,out]N/A
返回
N/A
注解
[Error]: CryptoErrc::kUninitializedContext 上下文没有设置密钥进行初始化;
[Error]: CryptoErrc::kInvalidInputSize 如果提供的IV长度不支持;
[Error]: CryptoErrc::kUnsupported 当前算法不支持IV向量,但是提供的IV向量不为空;
[Error]: CryptoErrc::kUsageViolation 如果提供的SecretSeed种子对象的使用限制禁止当前处理方式;
错误码偏差项
N/A
异常
N/A
Swsid
SWS_CRYPT_22111
符合标准
yes
非标原因
N/A
种类
function
可见
public
线程安全
reentrant
Fireandforget
no
错误
N/A
头文件
异常安全
noexcept
分类
ara

◆ Start() [2/2]

virtual ara::core::Result<void> ara::crypto::cryp::MessageAuthnCodeCtx::Start ( ReadOnlyMemRegion  iv = ReadOnlyMemRegion())
pure virtualnoexcept

设置IV(初始向量)

模板参数
N/A
参数
[in]iv初始向量数据
[out]N/A
[in,out]N/A
返回
N/A
注解
[Error]: CryptoErrc::kUninitializedContext 上下文没有设置密钥进行初始化;
[Error]: CryptoErrc::kInvalidInputSize 如果提供的IV长度不支持;
[Error]: CryptoErrc::kUnsupported 当前算法不支持IV向量,但是提供的IV向量不为空;
错误码偏差项
N/A
异常
N/A
Swsid
SWS_CRYPT_22110
符合标准
yes
非标原因
N/A
种类
function
可见
public
线程安全
reentrant
Fireandforget
no
错误
N/A
头文件
异常安全
noexcept
分类
ara

◆ Update() [1/3]

virtual ara::core::Result<void> ara::crypto::cryp::MessageAuthnCodeCtx::Update ( const RestrictedUseObject in)
pure virtualnoexcept

对数据进行处理

模板参数
N/A
参数
[in]in待处理的数据对象
[out]N/A
[in,out]N/A
返回
N/A
注解
[Error]: CryptoErrc::kProcessingNotStarted 如果当前数据处理没有通过调用Start()方法进行初始化
错误码偏差项
N/A
异常
N/A
Swsid
SWS_CRYPT_22112
符合标准
yes
非标原因
N/A
种类
function
可见
public
线程安全
reentrant
Fireandforget
no
错误
N/A
头文件
异常安全
noexcept
分类
ara

◆ Update() [2/3]

virtual ara::core::Result<void> ara::crypto::cryp::MessageAuthnCodeCtx::Update ( ReadOnlyMemRegion  in)
pure virtualnoexcept

对数据进行处理

模板参数
N/A
参数
[in]in待处理的数据
[out]N/A
[in,out]N/A
返回
N/A
注解
[Error]: CryptoErrc::kProcessingNotStarted 如果当前数据处理没有通过调用Start()方法进行初始化
错误码偏差项
N/A
异常
N/A
Swsid
SWS_CRYPT_22113
符合标准
yes
非标原因
N/A
种类
function
可见
public
线程安全
reentrant
Fireandforget
no
错误
N/A
头文件
异常安全
noexcept
分类
ara

◆ Update() [3/3]

virtual ara::core::Result<void> ara::crypto::cryp::MessageAuthnCodeCtx::Update ( std::uint8_t  in)
pure virtualnoexcept

对数据进行处理

模板参数
N/A
参数
[in]in待处理的数据
[out]N/A
[in,out]N/A
返回
N/A
注解
[Error]: CryptoErrc::kProcessingNotStarted 如果当前数据处理没有通过调用Start()方法进行初始化
错误码偏差项
N/A
异常
N/A
Swsid
SWS_CRYPT_22114
符合标准
yes
非标原因
N/A
种类
function
可见
public
线程安全
reentrant
Fireandforget
no
错误
N/A
头文件
异常安全
noexcept
分类
ara