UNPKG

pooja-docucomb-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.

44 lines (34 loc) 1.71 kB
/** * @license * Copyright 2020 Google LLC * SPDX-License-Identifier: Apache-2.0 */ import {PbEcdsaKeyFormat, PbEcdsaSignatureEncoding, PbEllipticCurveType, PbHashType, PbOutputPrefixType} from '../internal/proto'; import {bytesAsU8} from '../internal/proto_shims'; import {EcdsaPrivateKeyManager} from './ecdsa_private_key_manager'; import {SignatureKeyTemplates} from './signature_key_templates'; describe('signature key templates test', function() { it('ecdsa p256', function() { // Expects function to create a key with following parameters. const expectedCurve = PbEllipticCurveType.NIST_P256; const expectedHashFunction = PbHashType.SHA256; const expectedEncoding = PbEcdsaSignatureEncoding.DER; const expectedOutputPrefix = PbOutputPrefixType.TINK; // Expected type URL is the one supported by EcdsaPrivateKeyManager. const manager = new EcdsaPrivateKeyManager(); const expectedTypeUrl = manager.getKeyType(); const keyTemplate = SignatureKeyTemplates.ecdsaP256(); expect(keyTemplate.getTypeUrl()).toBe(expectedTypeUrl); expect(keyTemplate.getOutputPrefixType()).toBe(expectedOutputPrefix); // Test values in key format. const keyFormat = PbEcdsaKeyFormat.deserializeBinary(keyTemplate.getValue()); const params = keyFormat.getParams(); expect(params!.getEncoding()).toBe(expectedEncoding); // Test key params. expect(params!.getCurve()).toBe(expectedCurve); expect(params!.getHashType()).toBe(expectedHashFunction); // Test that the template works with EcdsaPrivateKeyManager. manager.getKeyFactory().newKey(bytesAsU8(keyTemplate.getValue())); }); });