UNPKG

2key-ratchet

Version:

2key-ratchet is an implementation of a Double Ratchet protocol and X3DH in TypeScript utilizing WebCrypto.

62 lines (61 loc) 1.82 kB
/** * * 2key-ratchet * Copyright (c) 2016 Peculiar Ventures, Inc * Based on https://whispersystems.org/docs/specifications/doubleratchet/ and * https://whispersystems.org/docs/specifications/x3dh/ by Open Whisper Systems * */ import { ECDHPrivateKey, ECKeyType } from "../type"; import { IECKeyPair } from "./key_pair"; import { ECPublicKey } from "./public_key"; export declare class Curve { static NAMED_CURVE: string; static DIGEST_ALGORITHM: string; /** * Generates new EC key pair * * @static * @param {ECKeyType} type type of EC key. ECDSA | ECDH * @returns * * @memberOf Curve */ static generateKeyPair(type: ECKeyType, extractable: boolean): Promise<IECKeyPair>; /** * Derives 32 bytes from EC keys * * @static * @param {ECDHPrivateKey} privateKey EC private key * @param {ECPublicKey} publicKey EC public key * @returns * * @memberOf Curve */ static deriveBytes(privateKey: ECDHPrivateKey, publicKey: ECPublicKey): PromiseLike<ArrayBuffer>; /** * Verifies signature * * @static * @param {ECPublicKey} signingKey * @param {ArrayBuffer} message * @param {ArrayBuffer} signature * @returns * * @memberOf Curve */ static verify(signingKey: ECPublicKey, message: ArrayBuffer, signature: ArrayBuffer): PromiseLike<boolean>; /** * Calculates signature * * @static * @param {ECDHPrivateKey} signingKey * @param {ArrayBuffer} message * @returns * * @memberOf Curve */ static sign(signingKey: ECDHPrivateKey, message: ArrayBuffer): Promise<ArrayBuffer>; static ecKeyPairToJson(key: IECKeyPair): Promise<CryptoKeyPair>; static ecKeyPairFromJson(keys: CryptoKeyPair): Promise<IECKeyPair>; }