UNPKG

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
/** * @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 {};