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.

81 lines 6.69 kB
/** * @license * Copyright 2020 Google LLC * SPDX-License-Identifier: Apache-2.0 */ import { AesCtrHmacAeadKeyTemplates } from './aes_ctr_hmac_aead_key_templates'; import { AesGcmKeyTemplates } from './aes_gcm_key_templates'; /** * Pre-generated KeyTemplates for Aead keys. * * One can use these templates to generate new Keyset with * KeysetHandle.generateNew method. To generate a new keyset that contains a * single AesCtrHmacAeadKey, one can do: * * AeadConfig.Register(); * KeysetHandle handle = * KeysetHandle.generateNew(AeadKeyTemplates.aes128CtrHmacSha256()); * * @final */ export class AeadKeyTemplates { /** * Returns a KeyTemplate that generates new instances of AesCtrHmacAeadKey * with the following parameters: * AES key size: 16 bytes * AES IV size: 16 bytes * HMAC key size: 32 bytes * HMAC tag size: 16 bytes * HMAC hash function: SHA256 * OutputPrefixType: TINK * */ static aes128CtrHmacSha256() { return AesCtrHmacAeadKeyTemplates.aes128CtrHmacSha256(); } /** * Returns a KeyTemplate that generates new instances of AesCtrHmacAeadKey * with the following parameters: * AES key size: 32 bytes * AES IV size: 16 bytes * HMAC key size: 32 bytes * HMAC tag size: 32 bytes * HMAC hash function: SHA256 * OutputPrefixType: TINK * */ static aes256CtrHmacSha256() { return AesCtrHmacAeadKeyTemplates.aes256CtrHmacSha256(); } /** * Returns a KeyTemplate that generates new instances of AesGcmKey * with the following parameters: * key size: 16 bytes * OutputPrefixType: TINK * */ static aes128Gcm() { return AesGcmKeyTemplates.aes128Gcm(); } /** * Returns a KeyTemplate that generates new instances of AesGcmKey * with the following parameters: * key size: 32 bytes * OutputPrefixType: TINK * */ static aes256Gcm() { return AesGcmKeyTemplates.aes256Gcm(); } /** * Returns a KeyTemplate that generates new instances of AesGcmKey * with the following parameters: * key size: 32 bytes * OutputPrefixType: RAW * */ static aes256GcmNoPrefix() { return AesGcmKeyTemplates.aes256GcmNoPrefix(); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWVhZF9rZXlfdGVtcGxhdGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vYWVhZC9hZWFkX2tleV90ZW1wbGF0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUlILE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzdFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRTNEOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0I7Ozs7Ozs7Ozs7T0FVRztJQUNILE1BQU0sQ0FBQyxtQkFBbUI7UUFDeEIsT0FBTywwQkFBMEIsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzFELENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0gsTUFBTSxDQUFDLG1CQUFtQjtRQUN4QixPQUFPLDBCQUEwQixDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDMUQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxTQUFTO1FBQ2QsT0FBTyxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLFNBQVM7UUFDZCxPQUFPLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsaUJBQWlCO1FBQ3RCLE9BQU8sa0JBQWtCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAyMCBHb29nbGUgTExDXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuICovXG5cbmltcG9ydCB7UGJLZXlUZW1wbGF0ZX0gZnJvbSAnLi4vaW50ZXJuYWwvcHJvdG8nO1xuXG5pbXBvcnQge0Flc0N0ckhtYWNBZWFkS2V5VGVtcGxhdGVzfSBmcm9tICcuL2Flc19jdHJfaG1hY19hZWFkX2tleV90ZW1wbGF0ZXMnO1xuaW1wb3J0IHtBZXNHY21LZXlUZW1wbGF0ZXN9IGZyb20gJy4vYWVzX2djbV9rZXlfdGVtcGxhdGVzJztcblxuLyoqXG4gKiBQcmUtZ2VuZXJhdGVkIEtleVRlbXBsYXRlcyBmb3IgQWVhZCBrZXlzLlxuICpcbiAqIE9uZSBjYW4gdXNlIHRoZXNlIHRlbXBsYXRlcyB0byBnZW5lcmF0ZSBuZXcgS2V5c2V0IHdpdGhcbiAqIEtleXNldEhhbmRsZS5nZW5lcmF0ZU5ldyBtZXRob2QuIFRvIGdlbmVyYXRlIGEgbmV3IGtleXNldCB0aGF0IGNvbnRhaW5zIGFcbiAqIHNpbmdsZSBBZXNDdHJIbWFjQWVhZEtleSwgb25lIGNhbiBkbzpcbiAqXG4gKiBBZWFkQ29uZmlnLlJlZ2lzdGVyKCk7XG4gKiBLZXlzZXRIYW5kbGUgaGFuZGxlID1cbiAqICAgICBLZXlzZXRIYW5kbGUuZ2VuZXJhdGVOZXcoQWVhZEtleVRlbXBsYXRlcy5hZXMxMjhDdHJIbWFjU2hhMjU2KCkpO1xuICpcbiAqIEBmaW5hbFxuICovXG5leHBvcnQgY2xhc3MgQWVhZEtleVRlbXBsYXRlcyB7XG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgS2V5VGVtcGxhdGUgdGhhdCBnZW5lcmF0ZXMgbmV3IGluc3RhbmNlcyBvZiBBZXNDdHJIbWFjQWVhZEtleVxuICAgKiB3aXRoIHRoZSBmb2xsb3dpbmcgcGFyYW1ldGVyczpcbiAgICogICAgQUVTIGtleSBzaXplOiAxNiBieXRlc1xuICAgKiAgICBBRVMgSVYgc2l6ZTogMTYgYnl0ZXNcbiAgICogICAgSE1BQyBrZXkgc2l6ZTogMzIgYnl0ZXNcbiAgICogICAgSE1BQyB0YWcgc2l6ZTogMTYgYnl0ZXNcbiAgICogICAgSE1BQyBoYXNoIGZ1bmN0aW9uOiBTSEEyNTZcbiAgICogICAgT3V0cHV0UHJlZml4VHlwZTogVElOS1xuICAgKlxuICAgKi9cbiAgc3RhdGljIGFlczEyOEN0ckhtYWNTaGEyNTYoKTogUGJLZXlUZW1wbGF0ZSB7XG4gICAgcmV0dXJuIEFlc0N0ckhtYWNBZWFkS2V5VGVtcGxhdGVzLmFlczEyOEN0ckhtYWNTaGEyNTYoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgS2V5VGVtcGxhdGUgdGhhdCBnZW5lcmF0ZXMgbmV3IGluc3RhbmNlcyBvZiBBZXNDdHJIbWFjQWVhZEtleVxuICAgKiB3aXRoIHRoZSBmb2xsb3dpbmcgcGFyYW1ldGVyczpcbiAgICogICAgQUVTIGtleSBzaXplOiAzMiBieXRlc1xuICAgKiAgICBBRVMgSVYgc2l6ZTogMTYgYnl0ZXNcbiAgICogICAgSE1BQyBrZXkgc2l6ZTogMzIgYnl0ZXNcbiAgICogICAgSE1BQyB0YWcgc2l6ZTogMzIgYnl0ZXNcbiAgICogICAgSE1BQyBoYXNoIGZ1bmN0aW9uOiBTSEEyNTZcbiAgICogICAgT3V0cHV0UHJlZml4VHlwZTogVElOS1xuICAgKlxuICAgKi9cbiAgc3RhdGljIGFlczI1NkN0ckhtYWNTaGEyNTYoKTogUGJLZXlUZW1wbGF0ZSB7XG4gICAgcmV0dXJuIEFlc0N0ckhtYWNBZWFkS2V5VGVtcGxhdGVzLmFlczI1NkN0ckhtYWNTaGEyNTYoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgS2V5VGVtcGxhdGUgdGhhdCBnZW5lcmF0ZXMgbmV3IGluc3RhbmNlcyBvZiBBZXNHY21LZXlcbiAgICogd2l0aCB0aGUgZm9sbG93aW5nIHBhcmFtZXRlcnM6XG4gICAqICAgIGtleSBzaXplOiAxNiBieXRlc1xuICAgKiAgICBPdXRwdXRQcmVmaXhUeXBlOiBUSU5LXG4gICAqXG4gICAqL1xuICBzdGF0aWMgYWVzMTI4R2NtKCk6IFBiS2V5VGVtcGxhdGUge1xuICAgIHJldHVybiBBZXNHY21LZXlUZW1wbGF0ZXMuYWVzMTI4R2NtKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIEtleVRlbXBsYXRlIHRoYXQgZ2VuZXJhdGVzIG5ldyBpbnN0YW5jZXMgb2YgQWVzR2NtS2V5XG4gICAqIHdpdGggdGhlIGZvbGxvd2luZyBwYXJhbWV0ZXJzOlxuICAgKiAgICBrZXkgc2l6ZTogMzIgYnl0ZXNcbiAgICogICAgT3V0cHV0UHJlZml4VHlwZTogVElOS1xuICAgKlxuICAgKi9cbiAgc3RhdGljIGFlczI1NkdjbSgpOiBQYktleVRlbXBsYXRlIHtcbiAgICByZXR1cm4gQWVzR2NtS2V5VGVtcGxhdGVzLmFlczI1NkdjbSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBLZXlUZW1wbGF0ZSB0aGF0IGdlbmVyYXRlcyBuZXcgaW5zdGFuY2VzIG9mIEFlc0djbUtleVxuICAgKiB3aXRoIHRoZSBmb2xsb3dpbmcgcGFyYW1ldGVyczpcbiAgICogICAgIGtleSBzaXplOiAzMiBieXRlc1xuICAgKiAgICAgT3V0cHV0UHJlZml4VHlwZTogUkFXXG4gICAqXG4gICAqL1xuICBzdGF0aWMgYWVzMjU2R2NtTm9QcmVmaXgoKTogUGJLZXlUZW1wbGF0ZSB7XG4gICAgcmV0dXJuIEFlc0djbUtleVRlbXBsYXRlcy5hZXMyNTZHY21Ob1ByZWZpeCgpO1xuICB9XG59XG4iXX0=