UNPKG

@signumjs/crypto

Version:

Cryptographic functions for building Signum Network apps.

66 lines (65 loc) 2.31 kB
/** * Original work Copyright (c) 2024 Signum Network */ import { SignKeys } from './typings/signKeys'; /** * Generate the Signum Sign Keys from an initial Passphrase. * @param passPhrase The passphrase * @return EC-KCDSA sign key pair + agreement key * * @category signing */ export declare function generateSignKeys(passPhrase: string): SignKeys; /** * Computes the Account ID from Public Key * @param publicKey The public Key generated with {@link generateSignKeys} * @return A numeric string - The Account ID */ export declare function getAccountIdFromPublicKey(publicKey: string): string; /** * Generate a signature for a transaction * * Method: * ``` * s = sign(sha256(sha256(transactionHex)_keygen(sha256(sha256(transactionHex)_privateKey)).publicKey), * sha256(sha256(transactionHex)_privateKey), * privateKey) * p = sha256(sha256(transactionHex)_keygen(sha256(transactionHex_privateKey)).publicKey) * ``` * @see {@link verifySignature} * @param messageHex The data in hexadecimal representation * @param privateKeyHex The private key for signing in hexadecimal representation * @return The signature in hexadecimal format * * @category signing */ export declare function generateSignature(messageHex: string, privateKeyHex: string): string; /** * Verify a signature for given message * * * Method: * ``` * * h1 = sha256(sha256(transactionHex)_keygen(sha256(transactionHex_privateKey)).publicKey) * == * sha256(sha256(transactionHex)_verify(v, h1, publickey)) = h2 * ``` * @see {@link generateSignature} * @param signature The signature to be verified * @param messageHex The message data in hexadecimal representation * @param publicKeyHex The public key * @return _true_, if signature is valid, otherwise _false_ * * @category signing */ export declare function verifySignature(signature: string, messageHex: string, publicKeyHex: string): boolean; /** * Generates a signed message digest, which can be sent to Signum Node API then * * @see {@link generateSignature} * @param unsignedTransactionHex The unsigned message * @param signature The signature * @return The signed message digest * * @category signing */ export declare const generateSignedTransactionBytes: (unsignedTransactionHex: string, signature: string) => string;