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
TypeScript
/**
*
* 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>;
}