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.
85 lines (84 loc) • 2.35 kB
TypeScript
/**
* @license
* Copyright 2020 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
import * as KeyManager from '../internal/key_manager';
import { PbAesCtrKeyFormat, PbAesCtrParams, PbHmacKeyFormat, PbHmacParams, PbKeyData, PbMessage } from '../internal/proto';
import { Constructor } from '../internal/util';
import { Aead } from './internal/aead';
/**
* @final
*/
declare class AesCtrHmacAeadKeyFactory implements KeyManager.KeyFactory {
private static readonly VERSION;
private static readonly MIN_KEY_SIZE;
private static readonly MIN_IV_SIZE;
private static readonly MAX_IV_SIZE;
private static readonly MIN_TAG_SIZE;
private static readonly MAX_TAG_SIZE;
/**
*/
newKey(keyFormat: PbMessage | Uint8Array): any;
/**
*/
newKeyData(serializedKeyFormat: Uint8Array): any;
/**
* Checks the parameters and size of a given keyFormat.
*
*/
validateAesCtrKeyFormat(keyFormat: undefined | null | PbAesCtrKeyFormat): {
aesCtrParams: PbAesCtrParams;
aesCtrKeySize: number;
ivSize: number;
};
/**
* Checks the parameters and size of a given keyFormat.
*
*/
validateHmacKeyFormat(keyFormat: undefined | null | PbHmacKeyFormat): {
hmacParams: PbHmacParams;
hmacKeySize: number;
hashType: string;
tagSize: number;
};
}
/**
* @final
*/
export declare class AesCtrHmacAeadKeyManager implements KeyManager.KeyManager<Aead> {
private static readonly SUPPORTED_PRIMITIVE;
static KEY_TYPE: string;
private static readonly VERSION;
private readonly keyFactory;
/**
*/
getPrimitive(primitiveType: Constructor<Aead>, key: PbKeyData | PbMessage): Promise<import("tink_javascript/subtle/encrypt_then_authenticate").EncryptThenAuthenticate>;
/**
*/
doesSupport(keyType: string): boolean;
/**
*/
getKeyType(): string;
/**
*/
getPrimitiveType(): typeof Aead;
/**
*/
getVersion(): number;
/**
*/
getKeyFactory(): AesCtrHmacAeadKeyFactory;
/**
* Checks the parameters and size of a given AES-CTR key.
*
*/
private validateAesCtrKey;
/**
* Checks the parameters and size of a given HMAC key.
*
*/
private validateHmacKey;
static register(): void;
}
export {};