@lit-protocol/wasm
Version:
This package provides high-performance cryptographic operations for the Lit Protocol by implementing core utilities in Rust and compiling them to WebAssembly. It enables efficient cross-platform execution of critical cryptographic functions while maintain
120 lines (119 loc) • 4.35 kB
TypeScript
import { BlsVariant, EcdsaVariant } from './pkg/wasm-internal';
export type { BlsVariant, EcdsaVariant } from './pkg/wasm-internal';
/**
* Combines bls signature shares to decrypt
*
* Supports:
* - 12381G2
* - 12381G1
* @param {BlsVariant} variant
* @param {(Uint8Array)[]} signature_shares
* @returns {Uint8Array}
*/
export declare function blsCombine(variant: BlsVariant, signature_shares: Uint8Array[]): Promise<Uint8Array>;
/**
* Uses a combined BLS signature to decrypt with the
* given ciphertext from {@link blsEncrypt}
*
* Supports:
* - 12381G2
* - 12381G1
* @param {BlsVariant} variant
* @param {Uint8Array} ciphertext
* @param {Uint8Array} decryption_key
* @returns {Uint8Array}
*/
export declare function blsDecrypt(variant: BlsVariant, ciphertext: Uint8Array, decryption_key: Uint8Array): Promise<Uint8Array>;
/**
* Used for BLS encryption
*
* Supports:
* - 12381G2
* - 12381G1
* @param {BlsVariant} variant
* @param {Uint8Array} encryption_key
* @param {Uint8Array} message
* @param {Uint8Array} identity
* @returns {Uint8Array}
*/
export declare function blsEncrypt(variant: BlsVariant, encryption_key: Uint8Array, message: Uint8Array, identity: Uint8Array): Promise<Uint8Array>;
/**
* Verifies a BLS signature
*
* Supports:
* - 12381G2
* - 12381G1
* @param {BlsVariant} variant
* @param {Uint8Array} public_key
* @param {Uint8Array} message
* @param {Uint8Array} signature
*/
export declare function blsVerify(variant: BlsVariant, public_key: Uint8Array, message: Uint8Array, signature: Uint8Array): Promise<void>;
/**
* Combine ECDSA signatures shares
*
* Supports:
* - K256
* - P256
* @param {EcdsaVariant} variant
* @param {Uint8Array} presignature
* @param {(Uint8Array)[]} signature_shares
* @returns {[Uint8Array, Uint8Array, number]}
*/
export declare function ecdsaCombine(variant: EcdsaVariant, presignature: Uint8Array, signature_shares: Uint8Array[]): Promise<[Uint8Array, Uint8Array, number]>;
/**
* HD key derivation
*
* Supports:
* - k256
* - p256
* @param {EcdsaVariant} variant ecdsa scheme
* @param {Uint8Array} id keyid which will be used for the key derivation
* @param {(Uint8Array)[]} public_keys ecdsa root keys
* @returns {Uint8Array}
*/
export declare function ecdsaDeriveKey(variant: EcdsaVariant, id: Uint8Array, public_keys: Uint8Array[]): Promise<Uint8Array>;
/**
* Verifier for ECDSA signatures
*
* Supports:
* - k256
* - p256
** Note ** Not currently supported through the lit network. Please use other ECSDSA signature verification
* @param {EcdsaVariant} variant
* @param {Uint8Array} message_hash
* @param {Uint8Array} public_key
* @param {[Uint8Array, Uint8Array, number]} signature
*/
export declare function ecdsaVerify(variant: EcdsaVariant, message_hash: Uint8Array, public_key: Uint8Array, signature: [Uint8Array, Uint8Array, number]): Promise<void>;
/**
* Combiner and verifier for ECDSA signatures
*
* Supports:
* - k256
* - p256
* ** Note ** Not currently supported through the lit network. Please use other ECSDSA signature verification
* @param {EcdsaVariant} variant
* @param {Uint8Array} pre_signature
* @param {Uint8Array[]} signature_shares
* @param {Uint8Array} message_hash
* @param {Uint8Array} public_key
* @param {[Uint8Array, Uint8Array, number]} signature
*/
export declare function ecdsaCombnieAndVerify(variant: EcdsaVariant, pre_signature: Uint8Array, signature_shares: Uint8Array[], message_hash: Uint8Array, public_key: Uint8Array): Promise<[Uint8Array, Uint8Array, number]>;
/**
* Gets the vcek url for the given attestation report. You can fetch this certificate yourself, and pass it in to verify_attestation_report
* @param {Uint8Array} attestation_report
* @returns {string}
*/
export declare function sevSnpGetVcekUrl(attestation_report: Uint8Array): Promise<string>;
/**
* Checks attestation from a node with AMD certs
* @param {Uint8Array} attestation_report
* @param {Record<string, Uint8Array>} attestation_data
* @param {(Uint8Array)[]} signatures
* @param {Uint8Array} challenge
* @param {Uint8Array} vcek_certificate
* @returns {Promise<void>}
*/
export declare function sevSnpVerify(attestation_report: Uint8Array, attestation_data: Record<string, Uint8Array>, signatures: Uint8Array[], challenge: Uint8Array, vcek_certificate: Uint8Array): Promise<void>;