Skip to main content
版本:v3+

ECDSA

createCrypto

创建 ECDSA 数字签名实例,默认使用 ecp_dp.SECP256K1

参数值说明API_LEVEL
alg.ECDSAECDSA 数字签名3.0
ecp_dp.SECP192K1SECP192K1 椭圆曲线3.0
ecp_dp.SECP224K1SECP224K1 椭圆曲线3.0
ecp_dp.SECP256K1SECP256K1 椭圆曲线,默认值3.0

类型

function createCrypto(algorithmId: typeof alg.ECDSA, option?: ECDSAOptions): ECDSACrypto | undefined

参数

ECDSAData

类型说明
number[]|ArrayBuffer|Uint8Array待处理的数据

ECDSAOptions

属性类型必填默认值说明
ecp_dp_modetypeof ecp_dp.SECP192K1|typeof ecp_dp.SECP224K1|typeof ecp_dp.SECP256K1-椭圆曲线参数,默认 ecp_dp.SECP256K1
key_encryptboolean|number-密钥是否经过硬件密钥二次加密
private_keyECDSAData-已有私钥
pub_keyECDSAData-已有公钥

ECDSACrypto

ECDSA 实例,用于创建密钥对、生成签名和验证签名。

方法

createChiper

创建 ECDSA 公钥和私钥;失败时返回 undefined

createChiper(): ECDSAKeyResult | undefined
ECDSAKeyResult
属性类型说明
private_key_lengthnumber私钥长度
private_keyArrayBuffer私钥数据
pub_key_lengthnumber公钥长度
pub_keyArrayBuffer公钥数据

encrypt

为数据生成数字签名

encrypt(
data: createCrypto.ECDSAData,
option: Options,
): ECDSACipherResult | undefined
Options
属性类型必填默认值说明
digest_typetypeof alg.MD5|typeof alg.HMACMD5-摘要算法,支持 alg.MD5alg.HMACMD5
ECDSACipherResult
属性类型说明
dataArrayBuffer数字签名数据
lengthnumber数据长度

decrypt

使用签名数据验证原始数据

decrypt(
data: createCrypto.ECDSAData,
option: Options,
): ECDSACipherResult | undefined
Options
属性类型必填默认值说明
sig_datacreateCrypto.ECDSAData-待验证的数字签名
ECDSACipherResult
属性类型说明
dataArrayBuffer签名验证结果数据
lengthnumber数据长度

代码示例

import { alg, createCrypto, ecp_dp } from '@zos/crypto'

const source = new Uint8Array([1, 2, 3])
const ecdsa = createCrypto(alg.ECDSA, { ecp_dp_mode: ecp_dp.SECP256K1 })
if (!ecdsa) throw new Error('Failed to create ECDSA instance')

const keys = ecdsa.createChiper()
const signature = ecdsa.encrypt(source, { digest_type: alg.MD5 })
if (signature) {
const verified = ecdsa.decrypt(source, { sig_data: signature.data })
}