UNPKG

@dfinity/identity-secp256k1

Version:

JavaScript and TypeScript library to manage Secp256k1KeyIdentities for use with the Internet Computer

87 lines 4.23 kB
import { type DerEncodedPublicKey, type KeyPair, type Signature, type PublicKey, SignIdentity } from '@dfinity/agent'; declare type PublicKeyHex = string; declare type SecretKeyHex = string; export declare type JsonableSecp256k1Identity = [PublicKeyHex, SecretKeyHex]; export declare class Secp256k1PublicKey implements PublicKey { #private; static fromRaw(rawKey: Uint8Array): Secp256k1PublicKey; static fromDer(derKey: DerEncodedPublicKey): Secp256k1PublicKey; /** * Construct Secp256k1PublicKey from an existing PublicKey * @param {unknown} maybeKey - existing PublicKey, ArrayBuffer, DerEncodedPublicKey, or hex string * @returns {Secp256k1PublicKey} Instance of Secp256k1PublicKey */ static from(maybeKey: unknown): Secp256k1PublicKey; private static derEncode; private static derDecode; get rawKey(): Uint8Array; get derKey(): DerEncodedPublicKey; private constructor(); toDer(): DerEncodedPublicKey; toRaw(): Uint8Array; } export declare class Secp256k1KeyIdentity extends SignIdentity { protected _privateKey: Uint8Array; /** * Generates an identity. If a seed is provided, the keys are generated from the * seed according to BIP 0032. Otherwise, the key pair is randomly generated. * This method throws an error in case the seed is not 32 bytes long or invalid * for use as a private key. * @param {Uint8Array} seed the optional seed * @returns {Secp256k1KeyIdentity} Secp256k1KeyIdentity */ static generate(seed?: Uint8Array): Secp256k1KeyIdentity; static fromParsedJson(obj: JsonableSecp256k1Identity): Secp256k1KeyIdentity; static fromJSON(json: string): Secp256k1KeyIdentity; /** * generates an identity from a public and private key. Please ensure that you are generating these keys securely and protect the user's private key * @param {Uint8Array} publicKey - Uint8Array * @param {Uint8Array} privateKey - Uint8Array * @returns {Secp256k1KeyIdentity} Secp256k1KeyIdentity */ static fromKeyPair(publicKey: Uint8Array, privateKey: Uint8Array): Secp256k1KeyIdentity; /** * generates an identity from an existing secret key, and is the correct method to generate an identity from a seed phrase. Please ensure you protect the user's private key. * @param {Uint8Array} secretKey - Uint8Array * @returns {Secp256k1KeyIdentity} - Secp256k1KeyIdentity */ static fromSecretKey(secretKey: Uint8Array): Secp256k1KeyIdentity; /** * Generates an identity from a seed phrase. Use carefully - seed phrases should only be used in secure contexts, and you should avoid having users copying and pasting seed phrases as much as possible. * @param {string | string[]} seedPhrase - either an array of words or a string of words separated by spaces. * @param password - optional password to be used by bip39 * @returns Secp256k1KeyIdentity */ static fromSeedPhrase(seedPhrase: string | string[], password?: string | undefined): Secp256k1KeyIdentity; /** * Utility method to create a Secp256k1KeyIdentity from a PEM-encoded key. * @param pemKey - PEM-encoded key as a string * @returns - Secp256k1KeyIdentity */ static fromPem(pemKey: string): Secp256k1KeyIdentity; _publicKey: Secp256k1PublicKey; protected constructor(publicKey: Secp256k1PublicKey, _privateKey: Uint8Array); /** * Serialize this key to JSON-serializable object. * @returns {JsonableSecp256k1Identity} JsonableSecp256k1Identity */ toJSON(): JsonableSecp256k1Identity; /** * Return a copy of the key pair. * @returns {KeyPair} KeyPair */ getKeyPair(): KeyPair; /** * Return the public key. * @returns {Required<PublicKey>} Required<PublicKey> */ getPublicKey(): Required<PublicKey>; /** * Signs a blob of data, with this identity's private key. * @param {Uint8Array} data - bytes to hash and sign with this identity's secretKey, producing a signature * @returns {Promise<Signature>} signature */ sign(data: Uint8Array): Promise<Signature>; } export default Secp256k1KeyIdentity; //# sourceMappingURL=secp256k1.d.ts.map