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.
43 lines • 7.13 kB
JavaScript
/**
* @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';
import { HpkePrivateKeyManager } from './internal/hpke/hpke_private_key_manager';
import { HpkePublicKeyManager } from './internal/hpke/hpke_public_key_manager';
// 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.registerKeyManager(new HpkePrivateKeyManager());
registry.registerKeyManager(new HpkePublicKeyManager());
registry.registerPrimitiveWrapper(new HybridEncryptWrapper());
registry.registerPrimitiveWrapper(new HybridDecryptWrapper());
}
// Suppressing enforced comments since the names are self-explanatory.
// tslint:disable:enforce-comments-on-exported-symbols
export const ENCRYPT_PRIMITIVE_NAME = 'HybridEncrypt';
export const ECIES_AEAD_HKDF_PUBLIC_KEY_TYPE = EciesAeadHkdfPublicKeyManager.KEY_TYPE;
export const HPKE_PUBLIC_KEY_TYPE = HpkePublicKeyManager.KEY_TYPE;
export const DECRYPT_PRIMITIVE_NAME = 'HybridDecrypt';
export const ECIES_AEAD_HKDF_PRIVATE_KEY_TYPE = EciesAeadHkdfPrivateKeyManager.KEY_TYPE;
export const HPKE_PRIVATE_KEY_TYPE = HpkePrivateKeyManager.KEY_TYPE;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHlicmlkX2NvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2h5YnJpZC9oeWJyaWRfY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxLQUFLLFFBQVEsTUFBTSxzQkFBc0IsQ0FBQztBQUVqRCxPQUFPLEVBQUMsOEJBQThCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUNyRixPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUNuRixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUMvRSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUU3RSwrRUFBK0U7QUFDL0UsOEVBQThFO0FBQzlFLG1CQUFtQjtBQUNuQixzRUFBc0U7QUFDdEUsMkJBQTJCO0FBQzNCLDRFQUE0RTtBQUM1RSwwRUFBMEU7QUFDMUUsZUFBZTtBQUVmOzs7R0FHRztBQUNILE1BQU0sVUFBVSxRQUFRO0lBQ3RCLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN0QixRQUFRLENBQUMsa0JBQWtCLENBQUMsSUFBSSw4QkFBOEIsRUFBRSxDQUFDLENBQUM7SUFDbEUsUUFBUSxDQUFDLGtCQUFrQixDQUFDLElBQUksNkJBQTZCLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLHFCQUFxQixFQUFFLENBQUMsQ0FBQztJQUN6RCxRQUFRLENBQUMsa0JBQWtCLENBQUMsSUFBSSxvQkFBb0IsRUFBRSxDQUFDLENBQUM7SUFDeEQsUUFBUSxDQUFDLHdCQUF3QixDQUFDLElBQUksb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO0lBQzlELFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLG9CQUFvQixFQUFFLENBQUMsQ0FBQztBQUNoRSxDQUFDO0FBRUQsc0VBQXNFO0FBQ3RFLHNEQUFzRDtBQUN0RCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxlQUFlLENBQUM7QUFDdEQsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQ3hDLDZCQUE2QixDQUFDLFFBQVEsQ0FBQztBQUMzQyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBVyxvQkFBb0IsQ0FBQyxRQUFRLENBQUM7QUFDMUUsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsZUFBZSxDQUFDO0FBQ3RELE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUN6Qyw4QkFBOEIsQ0FBQyxRQUFRLENBQUM7QUFDNUMsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQVcscUJBQXFCLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMjAgR29vZ2xlIExMQ1xuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbiAqL1xuXG5pbXBvcnQge0FlYWRDb25maWd9IGZyb20gJy4uL2FlYWQvYWVhZF9jb25maWcnO1xuaW1wb3J0ICogYXMgcmVnaXN0cnkgZnJvbSAnLi4vaW50ZXJuYWwvcmVnaXN0cnknO1xuXG5pbXBvcnQge0VjaWVzQWVhZEhrZGZQcml2YXRlS2V5TWFuYWdlcn0gZnJvbSAnLi9lY2llc19hZWFkX2hrZGZfcHJpdmF0ZV9rZXlfbWFuYWdlcic7XG5pbXBvcnQge0VjaWVzQWVhZEhrZGZQdWJsaWNLZXlNYW5hZ2VyfSBmcm9tICcuL2VjaWVzX2FlYWRfaGtkZl9wdWJsaWNfa2V5X21hbmFnZXInO1xuaW1wb3J0IHtIeWJyaWREZWNyeXB0V3JhcHBlcn0gZnJvbSAnLi9oeWJyaWRfZGVjcnlwdF93cmFwcGVyJztcbmltcG9ydCB7SHlicmlkRW5jcnlwdFdyYXBwZXJ9IGZyb20gJy4vaHlicmlkX2VuY3J5cHRfd3JhcHBlcic7XG5pbXBvcnQge0hwa2VQcml2YXRlS2V5TWFuYWdlcn0gZnJvbSAnLi9pbnRlcm5hbC9ocGtlL2hwa2VfcHJpdmF0ZV9rZXlfbWFuYWdlcic7XG5pbXBvcnQge0hwa2VQdWJsaWNLZXlNYW5hZ2VyfSBmcm9tICcuL2ludGVybmFsL2hwa2UvaHBrZV9wdWJsaWNfa2V5X21hbmFnZXInO1xuXG4vLyBTdGF0aWMgbWV0aG9kcyBhbmQgY29uc3RhbnRzIGZvciByZWdpc3RlcmluZyB3aXRoIHRoZSBSZWdpc3RyeSBhbGwgaW5zdGFuY2VzXG4vLyBvZiBrZXkgdHlwZXMgZm9yIGh5YnJpZCBlbmNyeXB0aW9uIGFuZCBkZWNyeXB0aW9uIHN1cHBvcnRlZCBpbiBhIHBhcnRpY3VsYXJcbi8vIHJlbGVhc2Ugb2YgVGluay5cbi8vIFRvIHJlZ2lzdGVyIGFsbCBrZXkgdHlwZXMgZnJvbSB0aGUgY3VycmVudCBUaW5rIHJlbGVhc2Ugb25lIGNhbiBkbzpcbi8vIEh5YnJpZENvbmZpZy5yZWdpc3RlcigpO1xuLy8gRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gY3JlYXRpb24gYW5kIHVzYWdlIG9mIGh5YnJpZCBlbmNyeXB0aW9uIGluc3RhbmNlc1xuLy8gc2VlIEh5YnJpZEVuY3J5cHRGYWN0b3J5IChmb3IgZW5jcnlwdGlvbikgYW5kIEh5YnJpZERlY3J5cHRGYWN0b3J5IChmb3Jcbi8vIGRlY3J5cHRpb24pLlxuXG4vKipcbiAqIFJlZ2lzdGVycyBrZXkgbWFuYWdlcnMgZm9yIGFsbCBIeWJyaWRFbmNyeXB0IGFuZCBIeWJyaWREZWNyeXB0IGtleSB0eXBlc1xuICogZnJvbSB0aGUgY3VycmVudCBUaW5rIHJlbGVhc2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlcigpIHtcbiAgQWVhZENvbmZpZy5yZWdpc3RlcigpO1xuICByZWdpc3RyeS5yZWdpc3RlcktleU1hbmFnZXIobmV3IEVjaWVzQWVhZEhrZGZQcml2YXRlS2V5TWFuYWdlcigpKTtcbiAgcmVnaXN0cnkucmVnaXN0ZXJLZXlNYW5hZ2VyKG5ldyBFY2llc0FlYWRIa2RmUHVibGljS2V5TWFuYWdlcigpKTtcbiAgcmVnaXN0cnkucmVnaXN0ZXJLZXlNYW5hZ2VyKG5ldyBIcGtlUHJpdmF0ZUtleU1hbmFnZXIoKSk7XG4gIHJlZ2lzdHJ5LnJlZ2lzdGVyS2V5TWFuYWdlcihuZXcgSHBrZVB1YmxpY0tleU1hbmFnZXIoKSk7XG4gIHJlZ2lzdHJ5LnJlZ2lzdGVyUHJpbWl0aXZlV3JhcHBlcihuZXcgSHlicmlkRW5jcnlwdFdyYXBwZXIoKSk7XG4gIHJlZ2lzdHJ5LnJlZ2lzdGVyUHJpbWl0aXZlV3JhcHBlcihuZXcgSHlicmlkRGVjcnlwdFdyYXBwZXIoKSk7XG59XG5cbi8vIFN1cHByZXNzaW5nIGVuZm9yY2VkIGNvbW1lbnRzIHNpbmNlIHRoZSBuYW1lcyBhcmUgc2VsZi1leHBsYW5hdG9yeS5cbi8vIHRzbGludDpkaXNhYmxlOmVuZm9yY2UtY29tbWVudHMtb24tZXhwb3J0ZWQtc3ltYm9sc1xuZXhwb3J0IGNvbnN0IEVOQ1JZUFRfUFJJTUlUSVZFX05BTUUgPSAnSHlicmlkRW5jcnlwdCc7XG5leHBvcnQgY29uc3QgRUNJRVNfQUVBRF9IS0RGX1BVQkxJQ19LRVlfVFlQRTogc3RyaW5nID1cbiAgICBFY2llc0FlYWRIa2RmUHVibGljS2V5TWFuYWdlci5LRVlfVFlQRTtcbmV4cG9ydCBjb25zdCBIUEtFX1BVQkxJQ19LRVlfVFlQRTogc3RyaW5nID0gSHBrZVB1YmxpY0tleU1hbmFnZXIuS0VZX1RZUEU7XG5leHBvcnQgY29uc3QgREVDUllQVF9QUklNSVRJVkVfTkFNRSA9ICdIeWJyaWREZWNyeXB0JztcbmV4cG9ydCBjb25zdCBFQ0lFU19BRUFEX0hLREZfUFJJVkFURV9LRVlfVFlQRTogc3RyaW5nID1cbiAgICBFY2llc0FlYWRIa2RmUHJpdmF0ZUtleU1hbmFnZXIuS0VZX1RZUEU7XG5leHBvcnQgY29uc3QgSFBLRV9QUklWQVRFX0tFWV9UWVBFOiBzdHJpbmcgPSBIcGtlUHJpdmF0ZUtleU1hbmFnZXIuS0VZX1RZUEU7XG4iXX0=