Skip to main content
Version: v3+

ECDSA

createCrypto

Create an ECDSA digital signature instance. The default curve is ecp_dp.SECP256K1.

| Value | Description | API_LEVEL | | ------------------ | --------------------------------- | --------- | --- | | alg.ECDSA | ECDSA digital signature | 3.0 | | ecp_dp.SECP192K1 | SECP192K1 elliptic curve | 3.0 | | ecp_dp.SECP224K1 | SECP224K1 elliptic curve | 3.0 | | ecp_dp.SECP256K1 | SECP256K1 elliptic curve; default | 3.0 | . |

Type

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

Parameters

ECDSAData

TypeDescription
number[]|ArrayBuffer|Uint8ArrayData to process

ECDSAOptions

PropertyTypeRequiredDefaultValueDescription
ecp_dp_modetypeof ecp_dp.SECP192K1|typeof ecp_dp.SECP224K1|typeof ecp_dp.SECP256K1N-Elliptic curve parameter; defaults to ecp_dp.SECP256K1
key_encryptboolean|numberN-Whether the key is encrypted again by the hardware key
private_keyECDSADataN-Existing private key
pub_keyECDSADataN-Existing public key

ECDSACrypto

ECDSA instance for key-pair creation, signing, and signature verification.

Methods

createChiper

Create an ECDSA public/private key pair; returns undefined on failure

createChiper(): ECDSAKeyResult | undefined
ECDSAKeyResult
PropertyTypeDescription
private_key_lengthnumberPrivate key length
private_keyArrayBufferPrivate key data
pub_key_lengthnumberPublic key length
pub_keyArrayBufferPublic key data

encrypt

Generate a digital signature for data

encrypt(
data: createCrypto.ECDSAData,
option: Options,
): ECDSACipherResult | undefined
Options
PropertyTypeRequiredDefaultValueDescription
digest_typetypeof alg.MD5|typeof alg.HMACMD5Y-Digest algorithm; supports alg.MD5 and alg.HMACMD5
ECDSACipherResult
PropertyTypeDescription
dataArrayBufferDigital signature data
lengthnumberData length

decrypt

Verify source data with signature data

decrypt(
data: createCrypto.ECDSAData,
option: Options,
): ECDSACipherResult | undefined
Options
PropertyTypeRequiredDefaultValueDescription
sig_datacreateCrypto.ECDSADataY-Digital signature to verify
ECDSACipherResult
PropertyTypeDescription
dataArrayBufferSignature verification result data
lengthnumberData length

Example

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 })
}