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.

64 lines 6.79 kB
/** * @license * Copyright 2020 Google LLC * SPDX-License-Identifier: Apache-2.0 */ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; import { SecurityException } from '../exception/security_exception'; import * as Bytes from '../subtle/bytes'; import * as Validators from '../subtle/validators'; import { PublicKeySign } from './internal/public_key_sign'; /** * @final */ class WrappedPublicKeySign extends PublicKeySign { // The constructor should be @private, but it is not supported by Closure // (see https://github.com/google/closure-compiler/issues/2761). constructor(primitiveSet) { super(); this.primitiveSet = primitiveSet; } static newPublicKeySign(primitiveSet) { if (!primitiveSet) { throw new SecurityException('Primitive set has to be non-null.'); } if (!primitiveSet.getPrimary()) { throw new SecurityException('Primary has to be non-null.'); } return new WrappedPublicKeySign(primitiveSet); } sign(data) { return __awaiter(this, void 0, void 0, function* () { Validators.requireUint8Array(data); const primary = this.primitiveSet.getPrimary(); if (!primary) { throw new SecurityException('Primary not set.'); } const primitive = primary.getPrimitive(); const signature = yield primitive.sign(data); const keyId = primary.getIdentifier(); return Bytes.concat(keyId, signature); }); } } export class PublicKeySignWrapper { /** */ wrap(primitiveSet) { return WrappedPublicKeySign.newPublicKeySign(primitiveSet); } /** */ getPrimitiveType() { return PublicKeySign; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2tleV9zaWduX3dyYXBwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zaWduYXR1cmUvcHVibGljX2tleV9zaWduX3dyYXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRzs7Ozs7Ozs7OztBQUVILE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBR2xFLE9BQU8sS0FBSyxLQUFLLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxLQUFLLFVBQVUsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFFekQ7O0dBRUc7QUFDSCxNQUFNLG9CQUFxQixTQUFRLGFBQWE7SUFDOUMseUVBQXlFO0lBQ3pFLGdFQUFnRTtJQUNoRSxZQUE2QixZQUMyQjtRQUN0RCxLQUFLLEVBQUUsQ0FBQztRQUZtQixpQkFBWSxHQUFaLFlBQVksQ0FDZTtJQUV4RCxDQUFDO0lBRUQsTUFBTSxDQUFDLGdCQUFnQixDQUNuQixZQUFzRDtRQUN4RCxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ2pCLE1BQU0sSUFBSSxpQkFBaUIsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1NBQ2xFO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUM5QixNQUFNLElBQUksaUJBQWlCLENBQUMsNkJBQTZCLENBQUMsQ0FBQztTQUM1RDtRQUNELE9BQU8sSUFBSSxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUssSUFBSSxDQUFDLElBQWdCOztZQUN6QixVQUFVLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbkMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUMvQyxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNaLE1BQU0sSUFBSSxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO2FBQ2pEO1lBQ0QsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3pDLE1BQU0sU0FBUyxHQUFHLE1BQU0sU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM3QyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdEMsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN4QyxDQUFDO0tBQUE7Q0FDRjtBQUVELE1BQU0sT0FBTyxvQkFBb0I7SUFDL0I7T0FDRztJQUNILElBQUksQ0FBQyxZQUFzRDtRQUN6RCxPQUFPLG9CQUFvQixDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDtPQUNHO0lBQ0gsZ0JBQWdCO1FBQ2QsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMjAgR29vZ2xlIExMQ1xuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbiAqL1xuXG5pbXBvcnQge1NlY3VyaXR5RXhjZXB0aW9ufSBmcm9tICcuLi9leGNlcHRpb24vc2VjdXJpdHlfZXhjZXB0aW9uJztcbmltcG9ydCAqIGFzIFByaW1pdGl2ZVNldCBmcm9tICcuLi9pbnRlcm5hbC9wcmltaXRpdmVfc2V0JztcbmltcG9ydCB7UHJpbWl0aXZlV3JhcHBlcn0gZnJvbSAnLi4vaW50ZXJuYWwvcHJpbWl0aXZlX3dyYXBwZXInO1xuaW1wb3J0ICogYXMgQnl0ZXMgZnJvbSAnLi4vc3VidGxlL2J5dGVzJztcbmltcG9ydCAqIGFzIFZhbGlkYXRvcnMgZnJvbSAnLi4vc3VidGxlL3ZhbGlkYXRvcnMnO1xuXG5pbXBvcnQge1B1YmxpY0tleVNpZ259IGZyb20gJy4vaW50ZXJuYWwvcHVibGljX2tleV9zaWduJztcblxuLyoqXG4gKiBAZmluYWxcbiAqL1xuY2xhc3MgV3JhcHBlZFB1YmxpY0tleVNpZ24gZXh0ZW5kcyBQdWJsaWNLZXlTaWduIHtcbiAgLy8gVGhlIGNvbnN0cnVjdG9yIHNob3VsZCBiZSBAcHJpdmF0ZSwgYnV0IGl0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgQ2xvc3VyZVxuICAvLyAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvY2xvc3VyZS1jb21waWxlci9pc3N1ZXMvMjc2MSkuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcHJpbWl0aXZlU2V0OlxuICAgICAgICAgICAgICAgICAgUHJpbWl0aXZlU2V0LlByaW1pdGl2ZVNldDxQdWJsaWNLZXlTaWduPikge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBzdGF0aWMgbmV3UHVibGljS2V5U2lnbihcbiAgICAgIHByaW1pdGl2ZVNldDogUHJpbWl0aXZlU2V0LlByaW1pdGl2ZVNldDxQdWJsaWNLZXlTaWduPik6IFB1YmxpY0tleVNpZ24ge1xuICAgIGlmICghcHJpbWl0aXZlU2V0KSB7XG4gICAgICB0aHJvdyBuZXcgU2VjdXJpdHlFeGNlcHRpb24oJ1ByaW1pdGl2ZSBzZXQgaGFzIHRvIGJlIG5vbi1udWxsLicpO1xuICAgIH1cbiAgICBpZiAoIXByaW1pdGl2ZVNldC5nZXRQcmltYXJ5KCkpIHtcbiAgICAgIHRocm93IG5ldyBTZWN1cml0eUV4Y2VwdGlvbignUHJpbWFyeSBoYXMgdG8gYmUgbm9uLW51bGwuJyk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgV3JhcHBlZFB1YmxpY0tleVNpZ24ocHJpbWl0aXZlU2V0KTtcbiAgfVxuXG4gIGFzeW5jIHNpZ24oZGF0YTogVWludDhBcnJheSkge1xuICAgIFZhbGlkYXRvcnMucmVxdWlyZVVpbnQ4QXJyYXkoZGF0YSk7XG4gICAgY29uc3QgcHJpbWFyeSA9IHRoaXMucHJpbWl0aXZlU2V0LmdldFByaW1hcnkoKTtcbiAgICBpZiAoIXByaW1hcnkpIHtcbiAgICAgIHRocm93IG5ldyBTZWN1cml0eUV4Y2VwdGlvbignUHJpbWFyeSBub3Qgc2V0LicpO1xuICAgIH1cbiAgICBjb25zdCBwcmltaXRpdmUgPSBwcmltYXJ5LmdldFByaW1pdGl2ZSgpO1xuICAgIGNvbnN0IHNpZ25hdHVyZSA9IGF3YWl0IHByaW1pdGl2ZS5zaWduKGRhdGEpO1xuICAgIGNvbnN0IGtleUlkID0gcHJpbWFyeS5nZXRJZGVudGlmaWVyKCk7XG4gICAgcmV0dXJuIEJ5dGVzLmNvbmNhdChrZXlJZCwgc2lnbmF0dXJlKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUHVibGljS2V5U2lnbldyYXBwZXIgaW1wbGVtZW50cyBQcmltaXRpdmVXcmFwcGVyPFB1YmxpY0tleVNpZ24+IHtcbiAgLyoqXG4gICAqL1xuICB3cmFwKHByaW1pdGl2ZVNldDogUHJpbWl0aXZlU2V0LlByaW1pdGl2ZVNldDxQdWJsaWNLZXlTaWduPikge1xuICAgIHJldHVybiBXcmFwcGVkUHVibGljS2V5U2lnbi5uZXdQdWJsaWNLZXlTaWduKHByaW1pdGl2ZVNldCk7XG4gIH1cblxuICAvKipcbiAgICovXG4gIGdldFByaW1pdGl2ZVR5cGUoKSB7XG4gICAgcmV0dXJuIFB1YmxpY0tleVNpZ247XG4gIH1cbn1cbiJdfQ==