UNPKG

@meeco/cryppo

Version:

In-browser encryption and decryption. Clone of Ruby Cryppo

46 lines (45 loc) 1.49 kB
import { EncodingVersions } from '../encoding-versions'; import { EncryptionKey } from '../encryption-key'; import { SerializationFormat } from '../serialization-versions'; export declare enum KeyDerivationStrategy { Pbkdf2Hmac = "Pbkdf2Hmac" } export interface IDerivedKey { salt: string; iterations: number; length: number; strategy: string; hash?: string; } /** Serialization style used in Ruby cryppo */ export interface ICryppoSerializationArtifacts { iv: any; i: number; l: number; hash: any; } export interface IRandomKeyOptions { strategy?: string; iterationVariance?: number; length?: number; minIterations?: number; useSalt?: string; hash?: string; } /** * Store configuration used for password based key derivation and * serialize/de-serialize it. */ export declare class DerivedKeyOptions implements IDerivedKey { static usesDerivedKey(serialized: string): boolean; static randomFromOptions({ iterationVariance, length, minIterations, strategy, useSalt, }: IRandomKeyOptions): DerivedKeyOptions; static fromSerialized(serialized: string): DerivedKeyOptions; salt: string; iterations: number; length: number; strategy: string; hash: string; constructor(options: IDerivedKey); serialize(serializationVersion?: SerializationFormat): string; deriveKey(key: string, encodingVersion?: EncodingVersions): Promise<EncryptionKey>; }