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.
55 lines (54 loc) • 1.71 kB
TypeScript
/**
* @license
* Copyright 2020 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
import * as KeyManager from '../internal/key_manager';
import { PbKeyData, PbMessage } from '../internal/proto';
import { Constructor } from '../internal/util';
import { Aead } from './internal/aead';
/**
* @final
*/
declare class AesGcmKeyFactory implements KeyManager.KeyFactory {
newKey(keyFormat: PbMessage | Uint8Array): any;
newKeyData(serializedKeyFormat: Uint8Array): any;
private static validateKeyFormat;
/**
* The input keyFormat is either deserialized (in case that the input is
* Uint8Array) or checked to be an AesGcmKeyFormat-proto (otherwise).
*
*/
private static getKeyFormatProto;
private static deserializeKeyFormat;
}
/**
* @final
*/
export declare class AesGcmKeyManager implements KeyManager.KeyManager<Aead> {
private static readonly SUPPORTED_PRIMITIVE;
static KEY_TYPE: string;
private readonly keyFactory;
/** Visible for testing. */
constructor();
getPrimitive(primitiveType: Constructor<Aead>, key: PbKeyData | PbMessage): Promise<Aead>;
doesSupport(keyType: string): boolean;
getKeyType(): string;
getPrimitiveType(): typeof Aead;
getVersion(): number;
getKeyFactory(): AesGcmKeyFactory;
private static validateKey;
/**
* The input key is either deserialized (in case that the input is
* KeyData-proto) or checked to be an AesGcmKey-proto (otherwise).
*
*/
private static getKeyProto;
/**
* It validates the key type and returns a deserialized AesGcmKey-proto.
*
*/
private static getKeyProtoFromKeyData;
static register(): void;
}
export {};