tink-crypto
Version:
A multi-language, cross-platform library that provides cryptographic APIs that are secure, easy to use correctly, and hard(er) to misuse.
31 lines (30 loc) • 1.37 kB
TypeScript
/**
* @license
* Copyright 2020 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
import * as EllipticCurves from './elliptic_curves';
/**
* HKDF-based ECIES-KEM (key encapsulation mechanism) for ECIES recipient.
*/
export declare class EciesHkdfKemRecipient {
private readonly privateKey_;
constructor(privateKey: CryptoKey);
/**
* @param kemToken the public ephemeral point.
* @param keySizeInBytes The length of the generated pseudorandom
* string in bytes. The maximal size is 255 * DigestSize, where DigestSize
* is the size of the underlying HMAC.
* @param pointFormat The format of the
* public ephemeral point.
* @param hkdfHash the name of the hash function. Accepted names are
* SHA-1, SHA-256 and SHA-512.
* @param hkdfInfo Context and application specific
* information (can be a zero-length array).
* @param opt_hkdfSalt Salt value (a non-secret random
* value). If not provided, it is set to a string of hash length zeros.
* @return The KEM key and token.
*/
decapsulate(kemToken: Uint8Array, keySizeInBytes: number, pointFormat: EllipticCurves.PointFormatType, hkdfHash: string, hkdfInfo: Uint8Array, opt_hkdfSalt?: Uint8Array): Promise<Uint8Array>;
}
export declare function fromJsonWebKey(jwk: JsonWebKey): Promise<EciesHkdfKemRecipient>;