开始使用
设置
- 将以下库依赖项添加到package.json文件的
dependencies部分。
用法
在使用Vega Crypto功能的源文件中,从Turbo模块导入所需的数据类型。Crypto类的实例。
ECDSA签名和验证
以下示例代码包括ECDSA密钥对生成、消息签名和验证。步骤1:创建ECDSA密钥构建器
步骤2:生成密钥对
您可以生成ECDSA密钥对或构造私钥。 要生成ECDSA密钥对,请调用buildGenerated()。
buildPrivateFromDer()。
步骤3:创建签名上下文构建器
步骤4:对消息进行签名并获取签名
步骤5:使用签名验证消息
RSA签名和验证
以下示例代码包括RSA密钥对生成、消息签名和验证。步骤1:创建RSA密钥构建器
步骤2:生成密钥对
您可以生成RSA密钥对或构造私钥。 要生成RSA密钥对,请调用buildGenerated()。
buildPrivateFromDer()。
步骤3:创建签名上下文构建器并对消息进行签名
通过调用buildSigningContext() 创建签名上下文构建器,然后使用RSA-PKCS1 v1.5架构对消息进行签名以获取签名。
步骤4:验证消息
通过调用使用RSA-PKCS1 v1.5标准的rsaPkcs1Verifier.verify() 来使用签名进行消息验证。
步骤5:对消息签名并获得签名
要使用RSA-PSS标准对消息进行签名,请调用rsaPssSigner.sign(),它会返回已签名消息的签名。
rsaPssVerifier.verify() 并传递消息的签名。
HMAC签名和验证
以下示例说明如何生成密钥、导出密钥、对数据签名并进行验证。使用AES CTR分组密码对消息进行加密
以下示例说明如何生成AES-CTR密钥、导出密钥、创建AES-256 CTR密码上下文构建器,以及如何使用它对明文进行签名。使用AES GCM分组密码对消息进行加密
以下示例说明如何生成AES-256 GCM密钥、导出密钥、创建AES-256 GCM密码上下文构建器,以及如何使用它对明文进行签名。使用RSA-OAEP加密消息
以下示例说明如何生成RSA-OAEP密钥、导出密钥、创建上下文构建器,以及如何使用它对明文进行签名。创建消息摘要
以下代码示例调用getDigestAlgorithmByName() 来获取摘要,创建摘要上下文,对示例字符串进行编码,并获取该字符串的摘要。
使用PBKDF2(基于密码的密钥派生函数2)派生密钥
网页加密API shim层
KeplerCrypto库提供了一个shim层,用于实现网页加密API(仅提供英文版)。有关API方法和参数,请参阅现有的网页加密API MDN文档。网页加密用法示例
以下示例介绍如何导入和使用网页加密API shim层。导入API
初始化WebCrypto对象
可选:在globalThis上公开crypto实例
调用网页加密API
下一个代码示例生成ECDHCryptoKeyPair。
支持的网页加密算法
该库仍在开发中,网页加密实现仅提供整个W3C网页加密规范的一个子集。未来版本将支持更多操作。 注意: 网页加密shim层实现中不支持deriveKey。有关密钥派生功能,请使用标准Vega Crypto API,如上文“使用HKDF派生密钥”和“使用PBKDF2派生密钥”的示例所示。
网页加密支持的密钥格式
使用网页加密API导入和导出密钥时,支持以下格式:
格式描述:
- raw:未格式化的二进制数据,用于对称密钥(AES或HMAC)或椭圆曲线公钥。
- pkcs8:RSA或椭圆曲线私钥的PKCS #8格式。
- spki:RSA或椭圆曲线公钥的SubjectPublicKeyInfo格式。
- jwk:JSON网页密钥格式(所有密钥类型均支持)
网页加密API支持矩阵
算法操作:- ✓ = 支持
- ✗ = 不支持
Vega Crypto概述
Vega Crypto API提供的功能可让您使用行业标准算法执行典型的加密操作,例如读取、生成和管理加密密钥。开始使用
Vega Crypto API已包含在Kepler SDK中。安装和设置Vega Crypto
要将API添加到您的项目,请在应用的根目录中打开package.json文件并添加以下依赖项。在您的应用中使用Vega Crypto API
在使用Vega Crypto功能的源文件中,从Turbo模块导入所需的数据类型。Crypto实例。
Crypto类的实例。
Vega Crypto常见用例
下面的示例代码仅用于解释说明,为了便于理解,已做了简化处理。当发生错误时,Vega Crypto API中的大多数方法都会抛出一个异常。 将您的调用封装在try-catch块中,以恰当地处理发生的任何错误。例如:步骤1:创建ECDSA密钥构建器
步骤2:生成密钥对
您可以生成ECDSA密钥对或构造私钥。 要生成ECDSA密钥对,请调用buildGenerated()。
buildPrivateFromDer()。
步骤3:创建签名上下文构建器
步骤4:对消息进行签名并获取签名
步骤5:使用签名验证消息
步骤1:创建RSA密钥构建器
步骤2:生成密钥对
您可以生成RSA密钥对或构造私钥。 要生成RSA密钥对,请调用buildGenerated()。
buildPrivateFromDer()。
步骤3:创建签名上下文构建器并对消息进行签名
通过调用buildSigningContext() 创建签名上下文构建器,然后使用RSA-PKCS1 v1.5架构对消息进行签名以获取签名。
步骤4:验证消息
通过调用使用RSA-PKCS1 v1.5标准的rsaPkcs1Verifier.verify() 来使用签名进行消息验证。
步骤5:对消息签名并获得签名
要使用RSA-PSS标准对消息进行签名,请调用rsaPssSigner.sign(),它会返回已签名消息的签名。
rsaPssVerifier.verify() 并传递消息的签名。
getDigestAlgorithmByName() 来获取摘要,创建摘要上下文,对示例字符串进行编码,并获取该字符串的摘要。
网页加密API shim层
Vega Crypto库提供了一个shim层,用于实现网页加密API(仅提供英文版)。有关API方法和参数,请参阅现有的网页加密API MDN文档。网页加密用法示例
以下示例介绍如何导入和使用网页加密API shim层:导入API
初始化WebCrypto对象
可选:在globalThis上公开crypto实例
调用网页加密API
下一个代码示例生成ECDHCryptoKeyPair:
支持的网页加密算法
该库仍在开发中,网页加密实现仅提供整个W3C网页加密规范的一个子集。未来版本将支持更多操作。网页加密支持的密钥格式
使用网页加密API导入和导出密钥时,支持以下格式:
格式描述:
- raw:未格式化的二进制数据,用于对称密钥或椭圆曲线公钥。
- pkcs8:RSA或椭圆曲线私钥的PKCS #8格式。
- spki:RSA或椭圆曲线公钥的SubjectPublicKeyInfo格式。
- jwk:对称密钥或RSA和椭圆曲线公钥/私钥的JSON网页密钥格式。
网页加密API支持矩阵
算法操作:- ✓ = 支持
- ✗ = 不支持
- —= 不适用
API参考
类
- AsymmetricAlgorithm—表示非对称加密算法。
- AsymmetricCipherContextBuilder—为构建非对称加密操作的上下文提供支持。
- AsymmetricKeyBuilder—用于创建和导入非对称密钥的构建器类。
- CbcContextBuilder—为构建密码块链接 (CBC) 密码上下文提供支持。
- Crypto—提供全面的加密操作接口。
- CryptoKey—Web Crypto API的
CryptoKey接口表示加密密钥 - CtrContextBuilder—为构建计数器 (CTR) 模式密码上下文提供支持。
- DecryptionContext—表示解密上下文。
- DigestAlgorithm—表示用于加密哈希的摘要算法。
- DigestContext—表示计算加密摘要(哈希)的上下文。
- DigestContextBuilder—为构建摘要(哈希)上下文提供支持。
- EccCurve—表示椭圆曲线密码学 (ECC) 加密曲线。
- EcdhContextBuilder—为构建ECDH密钥交换上下文提供支持。
- EcdhKeyExchangeContext—表示执行ECDH密钥交换操作的上下文。
- EncryptionContext—表示加密上下文。
- GcmContextBuilder—为构建伽罗瓦/计数器模式 (GCM) 密码上下文提供支持。
- HkdfContextBuilder—为构建HKDF密钥派生上下文提供支持。
- HmacContext—表示基于哈希的消息身份验证码 (HMAC) 上下文。
- HmacContextBuilder—为构建基于哈希的消息身份验证码 (HMAC) 提供支持。
- InternalNativeOperationError—当KeplerCrypto Turbo模块的内部原生操作失败时抛出错误。
- KeplerCryptoTurboModuleError—KeplerCrypto Turbo模块抛出的异常的基础自定义错误类。
- KeyDerivationContext—表示执行密钥派生操作的上下文。
- Pbkdf2ContextBuilder—为构建PBKDF2密钥派生上下文提供支持。
- PrivateKey—表示用于非对称加密的私钥。
- PublicKey—表示用于非对称加密的公钥。
- RsaKeyBuilder—用于RSA密钥的构建器类。
- RsaOaepContextBuilder—使用最优非对称加密填充 (OAEP) 构建RSA加密上下文。
- RsaOaepKeyBuilder—用于使用最优非对称加密填充 (OAEP) 创建RSA密钥的构建器类。
- RsassaPkcs1ContextBuilder—为构建RSASSA-PKCS1-v1_5签名上下文提供支持。
- RsassaPssContextBuilder—为构建RSASSA-PSS签名上下文提供支持。
- SignatureContextBuilder—为构建签名上下文提供支持。
- SigningContext—表示签名上下文。
- SymmetricAlgorithm—表示对称加密算法。
- SymmetricKey—表示用于加密操作的对称密钥。
- SymmetricKeyBuilder—用于创建和导入对称密钥的构建器类。
- VerificationContext—表示验证上下文。
- WebCrypto—提供全面的加密操作接口。
- WrappingContext—表示封装上下文。
- WrappingScheme—表示安全封装(加密)加密密钥的不同方法。
接口
- CryptoKeyPair—Web Crypto API的
CryptoKeyPair字典,表示密钥对
枚举
- KeyPurpose—表示加密密钥的各种用途或操作

