@meeco/cryppo
Version:
In-browser encryption and decryption. Clone of Ruby Cryppo
46 lines (45 loc) • 1.49 kB
TypeScript
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>;
}