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

流加密上下文类定义 更多...

#include <stream_cipher_ctx.h>

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

Public 类型

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

Public 成员函数

virtual BlockService::Uptr GetBlockService () const noexcept=0
 获取块服务实例 更多...
 
virtual bool IsBytewiseMode () const noexcept=0
 检查操作模式是否是按字节处理 更多...
 
virtual ara::core::Result< ara::core::Vector< ara::core::Byte > > ProcessBlocks (ReadOnlyMemRegion in) noexcept=0
 处理与块大小边界对齐的消息的初始部分 更多...
 
virtual ara::core::Result< void > ProcessBlocks (ReadWriteMemRegion inOut) noexcept=0
 处理与块大小边界对齐的消息的初始部分 更多...
 
virtual ara::core::Result< ara::core::Vector< ara::core::Byte > > ProcessBytes (ReadOnlyMemRegion in) noexcept=0
 处理消息的非最后部分(未与块大小边界对齐) 更多...
 
virtual ara::core::Result< ara::core::Vector< ara::core::Byte > > FinishBytes (ReadOnlyMemRegion in) noexcept=0
 处理消息的最后部分(可能未与块大小边界对齐) 更多...
 
std::size_t EstimateMaxInputSize (std::size_t outputCapacity) const noexcept
 估计可为填充输出缓冲区而不会发生溢出的最大输入字节数 更多...
 
std::size_t EstimateRequiredCapacity (std::size_t inputSize, bool isFinal=false) const noexcept
 估计输出缓冲区的最小所需容量,这足以保存输入数据处理的结果 更多...
 
virtual ara::core::Result< void > SetKey (const SymmetricKey &key, CryptoTransform transform=CryptoTransform::kEncrypt) noexcept=0
 在加密算法上下文中设置(部署)密钥 更多...
 
virtual ara::core::Result< CryptoTransformGetTransformation () const noexcept=0
 获取转换的配置“方向”:加密或解密 更多...
 
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 > 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_23600
符合标准
yes
非标原因
N/A
种类
class
符号
ara::crypto::cryp::StreamCipherCtx
范围
namespace ara::crypto::cryp
基类
CryptoContext
分类
ara
头文件
注解
N/A
模板参数
N/A

在文件 第 行定义.

成员类型定义说明

◆ Uptr

流加密上下文唯一智能指针类型

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

在文件 第 行定义.

成员函数说明

◆ EstimateMaxInputSize()

std::size_t ara::crypto::cryp::StreamCipherCtx::EstimateMaxInputSize ( std::size_t  outputCapacity) const
inlinenoexcept

估计可为填充输出缓冲区而不会发生溢出的最大输入字节数

模板参数
N/A
参数
[in]outputCapacity输出缓冲区的容量
[out]N/A
[in,out]N/A
返回
最大输入字节数
注解
N/A
错误码偏差项
N/A
异常
N/A
Swsid
SWS_CRYPT_23621
符合标准
yes
非标原因
N/A
种类
function
可见
public
线程安全
reentrant
Fireandforget
no
错误
N/A
头文件
异常安全
noexcept
分类
ara

在文件 第 行定义.

引用了 GetBlockService(), GetTransformation() , 以及 IsBytewiseMode().

函数调用图:

◆ EstimateRequiredCapacity()

std::size_t ara::crypto::cryp::StreamCipherCtx::EstimateRequiredCapacity ( std::size_t  inputSize,
bool  isFinal = false 
) const
inlinenoexcept

估计输出缓冲区的最小所需容量,这足以保存输入数据处理的结果

模板参数
N/A
参数
[in]inputSize输入数据大小
[in]isFinal指示最后一个数据块的处理的标志(如果true)
[out]N/A
[in,out]N/A
返回
输出缓冲区所需的容量(以字节为单位)
注解
N/A
错误码偏差项
N/A
异常
N/A
Swsid
SWS_CRYPT_23622
符合标准
yes
非标原因
N/A
种类
function
可见
public
线程安全
reentrant
Fireandforget
no
错误
N/A
头文件
异常安全
noexcept
分类
ara

在文件 第 行定义.

◆ FinishBytes()

virtual ara::core::Result<ara::core::Vector<ara::core::Byte> > ara::crypto::cryp::StreamCipherCtx::FinishBytes ( ReadOnlyMemRegion  in)
pure virtualnoexcept

处理消息的最后部分(可能未与块大小边界对齐)

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

◆ GetBlockService()

virtual BlockService::Uptr ara::crypto::cryp::StreamCipherCtx::GetBlockService ( ) const
pure virtualnoexcept

获取块服务实例

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

被这些函数引用 .

这是这个函数的调用关系图:

◆ GetTransformation()

virtual ara::core::Result<CryptoTransform> ara::crypto::cryp::StreamCipherCtx::GetTransformation ( ) const
pure virtualnoexcept

获取转换的配置“方向”:加密或解密

模板参数
N/A
参数
[in]N/A
[out]N/A
[in,out]N/A
返回
加密或解密
注解
[Error]: CryptoErrc::kUninitializedContext 没有进行初始化
错误码偏差项
N/A
异常
N/A
Swsid
SWS_CRYPT_23624
符合标准
yes
非标原因
N/A
种类
function
可见
public
线程安全
reentrant
Fireandforget
no
错误
N/A
头文件
异常安全
noexcept
分类
ara

被这些函数引用 .

这是这个函数的调用关系图:

◆ IsBytewiseMode()

virtual bool ara::crypto::cryp::StreamCipherCtx::IsBytewiseMode ( ) const
pure virtualnoexcept

检查操作模式是否是按字节处理

模板参数
N/A
参数
[in]N/A
[out]N/A
[in,out]N/A
返回
如果该模式可以逐字节处理消息(不填充到块边界),则为true;如果仅逐块处理(仅可以处理完整块,则填充为必须的),则为false
注解
N/A
错误码偏差项
N/A
异常
N/A
Swsid
SWS_CRYPT_23611
符合标准
yes
非标原因
N/A
种类
function
可见
public
线程安全
reentrant
Fireandforget
no
错误
N/A
头文件
异常安全
noexcept
分类
ara

被这些函数引用 .

这是这个函数的调用关系图:

◆ ProcessBlocks() [1/2]

virtual ara::core::Result<ara::core::Vector<ara::core::Byte> > ara::crypto::cryp::StreamCipherCtx::ProcessBlocks ( ReadOnlyMemRegion  in)
pure virtualnoexcept

处理与块大小边界对齐的消息的初始部分

模板参数
N/A
参数
[in]in待处理的数据
[out]N/A
[in,out]N/A
返回
处理后数据
注解
[Error]: CryptoErrc::kInvalidInputSize 如果输入缓冲区的大小不能被块大小整除
[Error]: CryptoErrc::kProcessingNotStarted 数据处理流程还没有通过调用方法 Start()开始
[Error]: CryptoErrc::kLogicFault 处理逻辑错误
错误码偏差项
N/A
异常
N/A
Swsid
SWS_CRYPT_23614
符合标准
yes
非标原因
N/A
种类
function
可见
public
线程安全
reentrant
Fireandforget
no
错误
N/A
头文件
异常安全
noexcept
分类
ara

◆ ProcessBlocks() [2/2]

virtual ara::core::Result<void> ara::crypto::cryp::StreamCipherCtx::ProcessBlocks ( ReadWriteMemRegion  inOut)
pure virtualnoexcept

处理与块大小边界对齐的消息的初始部分

模板参数
N/A
参数
[in]inOut输入/输出数据区
[out]N/A
[in,out]N/A
返回
N/A
注解
[Error]: CryptoErrc::kInvalidInputSize 如果输入缓冲区的大小不能被块大小整除
[Error]: CryptoErrc::kProcessingNotStarted 数据处理流程还没有通过调用方法 Start()开始
[Error]: CryptoErrc::kLogicFault 处理逻辑错误
[Error]: CryptoErrc::kInsufficientResource 输出空间不足
错误码偏差项
N/A
异常
N/A
Swsid
SWS_CRYPT_23615
符合标准
yes
非标原因
N/A
种类
function
可见
public
线程安全
reentrant
Fireandforget
no
错误
N/A
头文件
异常安全
noexcept
分类
ara

◆ ProcessBytes()

virtual ara::core::Result<ara::core::Vector<ara::core::Byte> > ara::crypto::cryp::StreamCipherCtx::ProcessBytes ( ReadOnlyMemRegion  in)
pure virtualnoexcept

处理消息的非最后部分(未与块大小边界对齐)

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

◆ Reset()

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

清除上下文中参数

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

◆ SetKey()

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

在加密算法上下文中设置(部署)密钥

模板参数
N/A
参数
[in]key密钥对象
[in]transform“方向”指示符:加密或解密
[out]N/A
[in,out]N/A
返回
N/A
注解
[Error]: CryptoErrc::kIncompatibleObject 提供的密钥对象属于其他CryptoProvider实例
[Error]: CryptoErrc::kLogicFault 处理逻辑错误
[Error]: CryptoErrc::kInvalidArgument 设置的方向指示符不支持
[Error]: CryptoErrc::kUsageViolation 如果与此上下文关联的转换类型(考虑到转换指定的方向)被所提供的密钥对象的“允许使用”限制所禁止
错误码偏差项
N/A
异常
N/A
Swsid
SWS_CRYPT_23623
符合标准
yes
非标原因
N/A
种类
function
可见
public
线程安全
reentrant
Fireandforget
no
错误
N/A
头文件
异常安全
noexcept
分类
ara

◆ Start() [1/2]

virtual ara::core::Result<void> ara::crypto::cryp::StreamCipherCtx::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 输入数据大小不够
[Error]: CryptoErrc::kLogicFault 处理逻辑错误
[Error]: CryptoErrc::kUnsupported 如果基本算法(或其当前实现)不支持IV变量
[Error]: CryptoErrc::kUsageViolation 如果该转换类型被提供的Secret Seed对象的“允许使用”限制所禁止
错误码偏差项
N/A
异常
N/A
Swsid
SWS_CRYPT_23626
符合标准
yes
非标原因
N/A
种类
function
可见
public
线程安全
reentrant
Fireandforget
no
错误
N/A
头文件
异常安全
noexcept
分类
ara

◆ Start() [2/2]

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

初始化上下文设置IV

模板参数
N/A
参数
[in]iv可选的初始化向量(IV)
[out]N/A
[in,out]N/A
返回
N/A
注解
[Error]: CryptoErrc::kUninitializedContext 没有进行初始化
[Error]: CryptoErrc::kInvalidInputSize 输入数据大小不够
[Error]: CryptoErrc::kUnsupported 如果基本算法(或其当前实现)不支持 IV ,但提供的 IV 值不为空
[Error]: CryptoErrc::kLogicFault 处理逻辑错误
错误码偏差项
N/A
异常
N/A
Swsid
SWS_CRYPT_23625
符合标准
yes
非标原因
N/A
种类
function
可见
public
线程安全
reentrant
Fireandforget
no
错误
N/A
头文件
异常安全
noexcept
分类
ara