UNPKG

@libp2p/interface

Version:
270 lines • 8.07 kB
import type { AbortOptions } from './index.ts'; import type { CID } from 'multiformats/cid'; import type { MultihashDigest } from 'multiformats/hashes/interface'; import type { Uint8ArrayList } from 'uint8arraylist'; export type KeyType = 'RSA' | 'Ed25519' | 'secp256k1' | 'ECDSA'; export interface RSAPublicKey { /** * The type of this key */ readonly type: 'RSA'; /** * PKIX in ASN1 DER format */ readonly raw: Uint8Array; /** * The public key as a JSON web key */ readonly jwk: JsonWebKey; /** * Returns `true` if the passed object matches this key */ equals(key?: any): boolean; /** * Returns this public key as a Multihash digest. * * It contains a sha256 hash of the protobuf version of the public key. */ toMultihash(): MultihashDigest<0x12>; /** * Return this public key as a CID encoded with the `libp2p-key` codec * * The digest contains a sha256 hash of the protobuf version of the public * key. */ toCID(): CID<unknown, 0x72, 0x12, 1>; /** * Verify the passed data was signed by the private key corresponding to this * public key */ verify(data: Uint8Array | Uint8ArrayList, sig: Uint8Array, options?: AbortOptions): boolean | Promise<boolean>; /** * Returns this key as a multihash with base58btc encoding */ toString(): string; } export interface Ed25519PublicKey { /** * The type of this key */ readonly type: 'Ed25519'; /** * The raw public key bytes */ readonly raw: Uint8Array; /** * Returns `true` if the passed object matches this key */ equals(key?: any): boolean; /** * Returns this public key as an identity hash containing the protobuf wrapped * public key */ toMultihash(): MultihashDigest<0x0>; /** * Return this public key as a CID encoded with the `libp2p-key` codec * * The digest contains an identity hash containing the protobuf wrapped * version of the public key. */ toCID(): CID<unknown, 0x72, 0x0, 1>; /** * Verify the passed data was signed by the private key corresponding to this * public key */ verify(data: Uint8Array | Uint8ArrayList, sig: Uint8Array, options?: AbortOptions): boolean | Promise<boolean>; /** * Returns this key as a multihash with base58btc encoding */ toString(): string; } export interface Secp256k1PublicKey { /** * The type of this key */ readonly type: 'secp256k1'; /** * The raw public key bytes */ readonly raw: Uint8Array; /** * Returns `true` if the passed object matches this key */ equals(key?: any): boolean; /** * Returns this public key as an identity hash containing the protobuf wrapped * public key */ toMultihash(): MultihashDigest<0x0>; /** * Return this public key as a CID encoded with the `libp2p-key` codec * * The digest contains an identity hash containing the protobuf wrapped * version of the public key. */ toCID(): CID<unknown, 0x72, 0x0, 1>; /** * Verify the passed data was signed by the private key corresponding to this * public key */ verify(data: Uint8Array | Uint8ArrayList, sig: Uint8Array, options?: AbortOptions): boolean | Promise<boolean>; /** * Returns this key as a multihash with base58btc encoding */ toString(): string; } export interface ECDSAPublicKey { /** * The type of this key */ readonly type: 'ECDSA'; /** * The public key as a DER-encoded PKIMessage */ readonly raw: Uint8Array; /** * The public key as a JSON web key */ readonly jwk: JsonWebKey; /** * Returns `true` if the passed object matches this key */ equals(key?: any): boolean; /** * Returns this public key as an identity hash containing the protobuf wrapped * public key */ toMultihash(): MultihashDigest<0x0>; /** * Return this public key as a CID encoded with the `libp2p-key` codec * * The digest contains an identity hash containing the protobuf wrapped * version of the public key. */ toCID(): CID<unknown, 0x72, 0x0, 1>; /** * Verify the passed data was signed by the private key corresponding to this * public key */ verify(data: Uint8Array | Uint8ArrayList, sig: Uint8Array, options?: AbortOptions): boolean | Promise<boolean>; /** * Returns this key as a multihash with base58btc encoding */ toString(): string; } export type PublicKey = RSAPublicKey | Ed25519PublicKey | Secp256k1PublicKey | ECDSAPublicKey; /** * Returns true if the passed argument has type overlap with the `PublicKey` * interface. Can be used to disambiguate object types. */ export declare function isPublicKey(key?: any): key is PublicKey; /** * Generic private key interface */ export interface RSAPrivateKey { /** * The type of this key */ readonly type: 'RSA'; /** * The public key that corresponds to this private key */ readonly publicKey: RSAPublicKey; /** * PKIX in ASN1 DER format */ readonly raw: Uint8Array; /** * The private key as a JSON web key */ readonly jwk: JsonWebKey; /** * Returns `true` if the passed object matches this key */ equals(key?: any): boolean; /** * Sign the passed data with this private key and return the signature for * later verification */ sign(data: Uint8Array | Uint8ArrayList, options?: AbortOptions): Uint8Array | Promise<Uint8Array>; } export interface Ed25519PrivateKey { /** * The type of this key */ readonly type: 'Ed25519'; /** * The public key that corresponds to this private key */ readonly publicKey: Ed25519PublicKey; /** * The raw private key bytes */ readonly raw: Uint8Array; /** * Returns `true` if the passed object matches this key */ equals(key?: any): boolean; /** * Sign the passed data with this private key and return the signature for * later verification */ sign(data: Uint8Array | Uint8ArrayList, options?: AbortOptions): Uint8Array | Promise<Uint8Array>; } export interface Secp256k1PrivateKey { /** * The type of this key */ readonly type: 'secp256k1'; /** * The public key that corresponds to this private key */ readonly publicKey: Secp256k1PublicKey; /** * The raw private key bytes */ readonly raw: Uint8Array; /** * Returns `true` if the passed object matches this key */ equals(key?: any): boolean; /** * Sign the passed data with this private key and return the signature for * later verification */ sign(data: Uint8Array | Uint8ArrayList, options?: AbortOptions): Uint8Array | Promise<Uint8Array>; } export interface ECDSAPrivateKey { /** * The type of this key */ readonly type: 'ECDSA'; /** * The public key that corresponds to this private key */ readonly publicKey: ECDSAPublicKey; /** * The private key as a DER-encoded PKIMessage */ readonly raw: Uint8Array; /** * The private key as a JSON web key */ readonly jwk: JsonWebKey; /** * Returns `true` if the passed object matches this key */ equals(key?: any): boolean; /** * Sign the passed data with this private key and return the signature for * later verification */ sign(data: Uint8Array | Uint8ArrayList, options?: AbortOptions): Uint8Array | Promise<Uint8Array>; } export type PrivateKey = RSAPrivateKey | Ed25519PrivateKey | Secp256k1PrivateKey | ECDSAPrivateKey; /** * Returns true if the passed argument has type overlap with the `PrivateKey` * interface. Can be used to disambiguate object types. */ export declare function isPrivateKey(key?: any): key is PrivateKey; //# sourceMappingURL=keys.d.ts.map