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.

43 lines 7.13 kB
/** * @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=