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
JavaScript
/**
* @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=