blob: f034996acf0696db998173dc1f4a834209384756 [file] [log] [blame]
/**
* @license
* Copyright 2020 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
import {AeadConfig} from '../aead/aead_config';
import * as Registry from '../internal/registry';
import {EciesAeadHkdfPrivateKeyManager} from './ecies_aead_hkdf_private_key_manager';
import {EciesAeadHkdfPublicKeyManager} from './ecies_aead_hkdf_public_key_manager';
import {HybridDecryptWrapper} from './hybrid_decrypt_wrapper';
import {HybridEncryptWrapper} from './hybrid_encrypt_wrapper';
// Static methods and constants for registering with the Registry all instances
// of key types for hybrid encryption and decryption supported in a particular
// release of Tink.
// To register all key types from the current Tink release one can do:
// HybridConfig.register();
// For more information on creation and usage of hybrid encryption instances
// see HybridEncryptFactory (for encryption) and HybridDecryptFactory (for
// decryption).
/**
* Registers key managers for all HybridEncrypt and HybridDecrypt key types
* from the current Tink release.
*/
export function register() {
AeadConfig.register();
Registry.registerKeyManager(new EciesAeadHkdfPrivateKeyManager());
Registry.registerKeyManager(new EciesAeadHkdfPublicKeyManager());
Registry.registerPrimitiveWrapper(new HybridEncryptWrapper());
Registry.registerPrimitiveWrapper(new HybridDecryptWrapper());
}
export const ENCRYPT_PRIMITIVE_NAME: string = 'HybridEncrypt';
export const ECIES_AEAD_HKDF_PUBLIC_KEY_TYPE: string =
EciesAeadHkdfPublicKeyManager.KEY_TYPE;
export const DECRYPT_PRIMITIVE_NAME: string = 'HybridDecrypt';
export const ECIES_AEAD_HKDF_PRIVATE_KEY_TYPE: string =
EciesAeadHkdfPrivateKeyManager.KEY_TYPE;