UNPKG

@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
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>;