加密Provider是所有受支持的加密算法主接口,也是它们之间内部通信的“可信环境” 更多...
#include <crypto_provider.h>

Public 类型 | |
| using | Uptr = std::unique_ptr< CryptoProvider > |
| 加密服务Provider唯一智能指针类型 更多... | |
| using | AlgId = CryptoPrimitiveId::AlgId |
| 该别名用于算法 ID 类型定义 更多... | |
Public 成员函数 | |
| virtual | ~CryptoProvider () noexcept=default |
| 析构函数 更多... | |
| CryptoProvider & | operator= (const CryptoProvider &other)=default |
| 将另一个CryptoProvider实例拷贝赋值给此实例 更多... | |
| CryptoProvider & | operator= (CryptoProvider &&other)=default |
| 将另一个CryptoProvider实例移动赋值给此实例 更多... | |
| virtual AlgId | ConvertToAlgId (ara::core::StringView primitiveName) const noexcept=0 |
| 将密码算法的通用名称转换为相应的供应商指定的算法ID 更多... | |
| virtual ara::core::Result< ara::core::String > | ConvertToAlgName (AlgId algId) const noexcept=0 |
| 将供应商指定的算法ID转换为加密算法的对应通用名称 更多... | |
| virtual ara::core::Result< SymmetricKey::Uptrc > | GenerateSymmetricKey (AlgId algId, AllowedUsageFlags allowedUsage, bool isSession=true, bool isExportable=false) noexcept=0 |
| 分配一个新的对称密钥对象,并用一个随机生成的新值填充它 更多... | |
| virtual ara::core::Result< PrivateKey::Uptrc > | GeneratePrivateKey (AlgId algId, AllowedUsageFlags allowedUsage, bool isSession=false, bool isExportable=false) noexcept=0 |
| 生成私钥对象 更多... | |
| virtual ara::core::Result< SecretSeed::Uptrc > | GenerateSeed (AlgId algId, SecretSeed::Usage allowedUsage, bool isSession=true, bool isExportable=false) noexcept=0 |
| 生成请求算法的随机秘密种子对象 更多... | |
| virtual ara::core::Result< VolatileTrustedContainer::Uptr > | AllocVolatileContainer (std::size_t capacity=0U) noexcept=0 |
| 根据直接指定的容量分配易失(虚拟)可信容器 更多... | |
| virtual ara::core::Result< VolatileTrustedContainer::Uptr > | AllocVolatileContainer (std::pair< AlgId, CryptoObjectType > theObjectDef) noexcept=0 |
| 根据指定的密钥类型和算法ID分配一个易失性可信容器 更多... | |
| virtual ara::core::Result< ara::core::Vector< ara::core::Byte > > | ExportSecuredObject (const CryptoObject &object, SymmetricKeyWrapperCtx &transportContext) noexcept=0 |
| 密文导出加密对象 更多... | |
| virtual ara::core::Result< ara::core::Vector< ara::core::Byte > > | ExportSecuredObject (const IOInterface &container, SymmetricKeyWrapperCtx &transportContext) noexcept=0 |
| 密文导出加密对象 更多... | |
| virtual ara::core::Result< void > | ImportSecuredObject (IOInterface &container, ReadOnlyMemRegion serialized, SymmetricKeyWrapperCtx &transportContext, bool isExportable=false, CryptoObjectType expectedObject=CryptoObjectType::kUndefined) noexcept=0 |
| 密文导入数据到永久性存储区或者易失性存储区 更多... | |
| virtual ara::core::Result< ara::core::Vector< ara::core::Byte > > | ExportPublicObject (const IOInterface &container, Serializable::FormatId formatId=Serializable::kFormatDefault) noexcept=0 |
| 从IOInterface明文导出对象 更多... | |
| virtual ara::core::Result< void > | ImportPublicObject (IOInterface &container, ReadOnlyMemRegion serialized, CryptoObjectType expectedObject=CryptoObjectType::kUndefined) noexcept=0 |
| 将明文序列化的对象导入到IOInterface指向的存储位置 更多... | |
| virtual ara::core::Result< CryptoObject::Uptrc > | LoadObject (const IOInterface &container) noexcept=0 |
| 从提供的IOInterface加载密钥对象 更多... | |
| virtual ara::core::Result< SymmetricKey::Uptrc > | LoadSymmetricKey (const IOInterface &container) noexcept=0 |
| 从提供的IOInterface加载对称密钥 更多... | |
| virtual ara::core::Result< PublicKey::Uptrc > | LoadPublicKey (const IOInterface &container) noexcept=0 |
| 从提供的IOInterface公钥对象. 更多... | |
| virtual ara::core::Result< PrivateKey::Uptrc > | LoadPrivateKey (const IOInterface &container) noexcept=0 |
| 从提供的IOInterface私钥对象. 更多... | |
| virtual ara::core::Result< SecretSeed::Uptrc > | LoadSecretSeed (const IOInterface &container) noexcept=0 |
| 从提供的IOInterface加载秘密种子 更多... | |
| virtual ara::core::Result< RandomGeneratorCtx::Uptr > | CreateRandomGeneratorCtx (AlgId algId=kAlgIdDefault, bool initialize=true) noexcept=0 |
| 创建一个随机数生成器(RNG)上下文 更多... | |
| virtual ara::core::Result< SymmetricBlockCipherCtx::Uptr > | CreateSymmetricBlockCipherCtx (AlgId algId) noexcept=0 |
| 创建一个对称块加密上下文 更多... | |
| virtual ara::core::Result< SymmetricKeyWrapperCtx::Uptr > | CreateSymmetricKeyWrapperCtx (AlgId algId) noexcept=0 |
| 创建对称密钥包装上下文 更多... | |
| virtual ara::core::Result< StreamCipherCtx::Uptr > | CreateStreamCipherCtx (AlgId algId) noexcept=0 |
| 创建一个对称流加密上下文 更多... | |
| virtual ara::core::Result< MessageAuthnCodeCtx::Uptr > | CreateMessageAuthCodeCtx (AlgId algId) noexcept=0 |
| 创建消息认证码上下文 更多... | |
| virtual ara::core::Result< HashFunctionCtx::Uptr > | CreateHashFunctionCtx (AlgId algId) noexcept=0 |
| 创建一个散列计算上下文 更多... | |
| virtual ara::core::Result< KeyDerivationFunctionCtx::Uptr > | CreateKeyDerivationFunctionCtx (AlgId algId) noexcept=0 |
| 创建密钥派生上下文 更多... | |
| virtual ara::core::Result< EncryptorPublicCtx::Uptr > | CreateEncryptorPublicCtx (AlgId algId) noexcept=0 |
| 创建公钥加密上下文 更多... | |
| virtual ara::core::Result< DecryptorPrivateCtx::Uptr > | CreateDecryptorPrivateCtx (AlgId algId) noexcept=0 |
| 创建私钥解密上下文 更多... | |
| virtual ara::core::Result< KeyEncapsulatorPublicCtx::Uptr > | CreateKeyEncapsulatorPublicCtx (AlgId algId) noexcept=0 |
| 创建密钥封装机制 (KEM) 的密钥封装器公钥上下文。 更多... | |
| virtual ara::core::Result< KeyDecapsulatorPrivateCtx::Uptr > | CreateKeyDecapsulatorPrivateCtx (AlgId algId) noexcept=0 |
| 创建密钥封装机制 (KEM) 的密钥解封装器私钥上下文 更多... | |
| virtual ara::core::Result< SignerPrivateCtx::Uptr > | CreateSignerPrivateCtx (AlgId algId) noexcept=0 |
| 创建私钥签名上下文 更多... | |
| virtual ara::core::Result< VerifierPublicCtx::Uptr > | CreateVerifierPublicCtx (AlgId algId) noexcept=0 |
| 创建公钥验签上下文 更多... | |
| virtual ara::core::Result< KeyAgreementPrivateCtx::Uptr > | CreateKeyAgreementPrivateCtx (AlgId algId) noexcept=0 |
| 创建密钥协商上下文 更多... | |
| virtual ara::core::Result< Signature::Uptrc > | CreateSignature (AlgId signAlgId, ReadOnlyMemRegion value, const RestrictedUseObject &key, AlgId hashAlgId=kAlgIdNone) noexcept=0 |
| 创建签名对象 更多... | |
加密Provider是所有受支持的加密算法主接口,也是它们之间内部通信的“可信环境”
| N/A |
在文件 第 行定义.
该别名用于算法 ID 类型定义
在文件 第 行定义.
| using ara::crypto::cryp::CryptoProvider::Uptr = std::unique_ptr<CryptoProvider> |
加密服务Provider唯一智能指针类型
在文件 第 行定义.
|
virtualdefaultnoexcept |
析构函数
| N/A |
| [in] | N/A | |
| [out] | N/A | |
| [in,out] | N/A |
| N/A |
|
pure virtualnoexcept |
根据指定的密钥类型和算法ID分配一个易失性可信容器
| N/A |
| [in] | theObjectDef | 加密对象二元组 |
| [out] | N/A | |
| [in,out] | N/A |
| N/A |
|
pure virtualnoexcept |
根据直接指定的容量分配易失(虚拟)可信容器
| N/A |
| [in] | capacity | 创建易失可信容器的大小(字节)缺省0,默认创建可分配4096字节的存储数据,不支持创建大于4096字节的容器 |
| [out] | N/A | |
| [in,out] | N/A |
| N/A |
|
pure virtualnoexcept |
将密码算法的通用名称转换为相应的供应商指定的算法ID
| N/A |
| [in] | primitiveName | 密码算法的通用名称 |
| [out] | N/A | |
| [in,out] | N/A |
| N/A |
|
pure virtualnoexcept |
将供应商指定的算法ID转换为加密算法的对应通用名称
| N/A |
| [in] | algId | 供应商指定的算法ID |
| [out] | N/A | |
| [in,out] | N/A |
| N/A |
|
pure virtualnoexcept |
创建私钥解密上下文
| N/A |
| [in] | algId | 解密算法标识符 (目前支持的算法id:kNID_rsa_2048_pkcs1, kNID_rsa_4096_pkcs1, kNID_sm2_secp256) |
| [out] | N/A | |
| [in,out] | N/A |
| N/A |
|
pure virtualnoexcept |
创建公钥加密上下文
| N/A |
| [in] | algId | 加密算法标识符 (目前支持的算法id:kNID_rsa_2048_pkcs1, kNID_rsa_4096_pkcs1, kNID_sm2_secp256) |
| [out] | N/A | |
| [in,out] | N/A |
| N/A |
|
pure virtualnoexcept |
创建一个散列计算上下文
| N/A |
| [in] | algId | 目标加密算法的标识符 (目前支持的算法id: kNID_sha1 kNID_sha256 kNID_sm3 kNID_md5) |
| [out] | N/A | |
| [in,out] | N/A |
| N/A |
|
pure virtualnoexcept |
创建密钥协商上下文
| N/A |
| [in] | algId | 密钥协商算法标识符 (目前支持的算法id:kNID_ecdhe) |
| [out] | N/A | |
| [in,out] | N/A |
| N/A |
|
pure virtualnoexcept |
创建密钥封装机制 (KEM) 的密钥解封装器私钥上下文
| N/A |
| [in] | algId | 目标 KEM 加密算法的标识符(目前支持的算法id:kNID_rsa_2048_pkcs1 kNID_rsa_4096_pkcs1) |
| [out] | N/A | |
| [in,out] | N/A |
| N/A |
|
pure virtualnoexcept |
创建密钥派生上下文
| N/A |
| [in] | algId | 目标加密算法的标识符 (目前只支持kNID_hkdf) |
| [out] | N/A | |
| [in,out] | N/A |
| N/A |
|
pure virtualnoexcept |
创建密钥封装机制 (KEM) 的密钥封装器公钥上下文。
| N/A |
| [in] | algId | 目标 KEM 加密算法的标识符(目前支持的算法id:kNID_rsa_2048_pkcs1 kNID_rsa_4096_pkcs1) |
| [out] | N/A | |
| [in,out] | N/A |
| N/A |
|
pure virtualnoexcept |
创建消息认证码上下文
| N/A |
| [in] | algId | 目标加密算法标识符(目前支持的算法id: kNID_hmac_sha1 kNID_hmac_sha256 kNID_hmac_md5 kNID_hmac_sm3 kNID_cmac_aes_128_cbc kNID_cmac_aes_256_cbc kNID_cmac_sm4_cbc) |
| [out] | N/A | |
| [in,out] | N/A |
| N/A |
|
pure virtualnoexcept |
创建一个随机数生成器(RNG)上下文
| N/A |
| [in] | algId | 目标RNG算法的标识符,如果没有算法指定,使用默认RNG; |
| [in] | initialize | 表示返回的上下文是否被stack初始化 |
| [out] | N/A | |
| [in,out] | N/A |
| N/A |
|
pure virtualnoexcept |
创建签名对象
| N/A |
| [in] | signAlgId | 签名算法标识符 |
| [in] | value | 签名数据或MAC数据 |
| [in] | key | 对称密钥对象或者非对称密钥对象 |
| [in] | hashAlgId | 与签名算法组合的哈希算法ID |
| [out] | N/A | |
| [in,out] | N/A |
| N/A |
|
pure virtualnoexcept |
创建私钥签名上下文
| N/A |
| [in] | algId | 签名算法标识符 (目前支持的算法Id:kNID_rsa_2048_pkcs1,kNID_rsa_2048_pkcs1_sha1,kNID_rsa_2048_pkcs1_sha256, kNID_rsa_4096_pkcs1, kNID_rsa_4096_pkcs1_sha1,kNID_rsa_4096_pkcs1_sha256,kNID_ecc_secp256k1,kNID_ecdsa_secp256k1_sha1,kNID_ecdsa_secp256k1_sha256, kNID_sm2_secp256,kNID_sm2_secp256_sm3,kNID_sm2_secp256_sha1,kNID_sm2_secp256_sha256) |
| [out] | N/A | |
| [in,out] | N/A |
| N/A |
|
pure virtualnoexcept |
创建一个对称流加密上下文
| N/A |
| [in] | algId | 目标加密算法标识符 (目前支持的算法id: kNID_aes_128_ecb, kNID_aes_128_cbc, kNID_aes_128_cfb128, kNID_aes_128_ctr, kNID_aes_256_ecb, kNID_aes_256_cbc, kNID_aes_256_cfb128, kNID_aes_256_ctr, kNID_sm4_ecb, kNID_sm4_cbc, kNID_sm4_cfb128, kNID_sm4_ctr) |
| [out] | N/A | |
| [in,out] | N/A |
| N/A |
|
pure virtualnoexcept |
创建一个对称块加密上下文
| N/A |
| [in] | algId | 目标加密算法的标识符 (目前支持的算法id: kNID_aes_128_ecb, kNID_aes_256_ecb, kNID_sm4_ecb) |
| [out] | N/A | |
| [in,out] | N/A |
| N/A |
|
pure virtualnoexcept |
创建对称密钥包装上下文
| N/A |
| [in] | algId | 目标加密算法标识符 (目前支持的算法id: kNID_aes_128_wrap, kNID_aes_128_wrap_pad, kNID_aes_256_wrap, kNID_aes_256_wrap_pad) |
| [out] | N/A | |
| [in,out] | N/A |
| N/A |
|
pure virtualnoexcept |
创建公钥验签上下文
| N/A |
| [in] | algId | 验签算法标识符 (目前支持的算法Id:kNID_rsa_2048_pkcs1,kNID_rsa_2048_pkcs1_sha1,kNID_rsa_2048_pkcs1_sha256, kNID_rsa_4096_pkcs1, kNID_rsa_4096_pkcs1_sha1,kNID_rsa_4096_pkcs1_sha256,kNID_ecc_secp256k1,kNID_ecdsa_secp256k1_sha1,kNID_ecdsa_secp256k1_sha256, kNID_sm2_secp256,kNID_sm2_secp256_sm3,kNID_sm2_secp256_sha1,kNID_sm2_secp256_sha256) |
| [out] | N/A | |
| [in,out] | N/A |
| N/A |
|
pure virtualnoexcept |
从IOInterface明文导出对象
| N/A |
| [in] | container | 包含要导出的对象的IOInterface |
| [in] | formatId | 输出格式标识符 |
| [out] | N/A | |
| [in,out] | N/A |
| N/A |
|
pure virtualnoexcept |
密文导出加密对象
| N/A |
| [in] | object | 待导出的加密对象 |
| [in] | transportContext | 对称密钥包装上下文 |
| [out] | N/A | |
| [in,out] | N/A |
| N/A |
|
pure virtualnoexcept |
密文导出加密对象
| N/A |
| [in] | container | 待导出对象引用的IOInterface |
| [in] | transportContext | 对称密钥包装上下文 |
| [out] | N/A | |
| [in,out] | N/A |
| N/A |
|
pure virtualnoexcept |
生成私钥对象
| N/A |
| [in] | algId | 算法标识符 (支持的算法有:kNID_sm2_secp256系列, kNID_rsa_2048系列,kNID_rsa_4096系列, kNID_ecc_secp256k1系列) |
| [in] | allowedUsage | 允许标识(支持kAllowDataEncryption | kAllowDataDecryption | kAllowSignature | kAllowKeyExporting | kAllowKeyImporting | kAllowVerification) |
| [in] | isSession | 对称密钥的“会话”(或“临时”)属性(默认值为false) |
| [in] | isExportable | 密钥的可导出性属性(默认false) |
| [out] | N/A | |
| [in,out] | N/A |
| N/A |
|
pure virtualnoexcept |
生成请求算法的随机秘密种子对象
| N/A |
| [in] | algId | 算法标识符 |
| [in] | allowedUsage | 该标志定义了生成的秘密种子在使用中的允许转换类型(请参见RestrictedUseObject内的常量) |
| [in] | isSession | 目标秘密种子的“会话”(或“临时”)属性(只支持true,默认值为true) |
| [in] | isExportable | 目标种子的可导出性属性(如果为true) |
| [out] | N/A | |
| [in,out] | N/A |
| N/A |
|
pure virtualnoexcept |
分配一个新的对称密钥对象,并用一个随机生成的新值填充它
| N/A |
| [in] | algId | 算法标识符 |
| [in] | allowedUsage | 该标志定义了生成的密钥在使用中的允许转换类型(请参见RestrictedUseObject内的常量) |
| [in] | isSession | 对称密钥的“会话”(或“临时”)属性(只支持true,默认值为true) |
| [in] | isExportable | 密钥的可导出性属性(如果为true) |
| [out] | N/A | |
| [in,out] | N/A |
| N/A |
|
pure virtualnoexcept |
将明文序列化的对象导入到IOInterface指向的存储位置
| N/A |
| [in] | serialized | 包含安全序列化对象的内存区域,应将其导入IOInterface |
| [in] | expectedObject | 预期的对象类型(默认值CryptoObjectType::kUndefined表示不检查) |
| [out] | container | 用于存储导入的对象的IOInterface |
| [in,out] | N/A |
| N/A |
|
pure virtualnoexcept |
密文导入数据到永久性存储区或者易失性存储区
| N/A |
| [in] | serialized | 待导入数据 |
| [in] | transportContext | 对称密钥包装上下文 |
| [in] | isExportable | 目标对象的可导出属性 |
| [in] | expectedObject | 对象类型 |
| [in] | container | 存储导入数据关联的IOInterface |
| [out] | N/A | |
| [in,out] | N/A |
| N/A |
|
pure virtualnoexcept |
从提供的IOInterface加载密钥对象
| N/A |
| [in] | container | 要加载的加密对象的IOInterface |
| [out] | N/A | |
| [in,out] | N/A |
| N/A |
|
pure virtualnoexcept |
从提供的IOInterface私钥对象.
| N/A |
| [in] | container | 包含要加载的加密对象的IOInterface |
| [out] | N/A | |
| [in,out] | N/A |
| N/A |
|
pure virtualnoexcept |
从提供的IOInterface公钥对象.
| N/A |
| [in] | container | 包含要加载的加密对象的IOInterface |
| [out] | N/A | |
| [in,out] | N/A |
| N/A |
|
pure virtualnoexcept |
从提供的IOInterface加载秘密种子
| N/A |
| [in] | container | 包含要加载的加密对象的IOInterface |
| [out] | N/A | |
| [in,out] | N/A |
| N/A |
|
pure virtualnoexcept |
从提供的IOInterface加载对称密钥
| N/A |
| [in] | container | 包含要加载的加密对象的IOInterface |
| [out] | N/A | |
| [in,out] | N/A |
| N/A |
|
default |
将另一个CryptoProvider实例拷贝赋值给此实例
| N/A |
| [in] | other | 其他实例 |
| [out] | N/A | |
| [in,out] | N/A |
| N/A |
|
default |
将另一个CryptoProvider实例移动赋值给此实例
| N/A |
| [in] | other | 其他实例 |
| [out] | N/A | |
| [in,out] | N/A |
| N/A |