@signumjs/crypto
Version:
Cryptographic functions for building Signum Network apps.
66 lines (65 loc) • 2.31 kB
TypeScript
/**
* 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;