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.
25 lines • 2.53 kB
JavaScript
/**
* @license
* Copyright 2020 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
import { SecurityException } from '../exception/security_exception';
import { PbEncryptedKeyset, PbKeyset } from './proto';
/**
* KeysetWriter knows how to write a keyset or an encrypted keyset.
*
* @final
*/
export class BinaryKeysetWriter {
encodeBinary(keyset) {
// keep serializeBinary calls monomorphic
if (keyset instanceof PbKeyset) {
return keyset.serializeBinary();
}
if (keyset instanceof PbEncryptedKeyset) {
return keyset.serializeBinary();
}
throw new SecurityException('unexpected type for keyset.');
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluYXJ5X2tleXNldF93cml0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9pbnRlcm5hbC9iaW5hcnlfa2V5c2V0X3dyaXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFFbEUsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFFBQVEsRUFBQyxNQUFNLFNBQVMsQ0FBQztBQUVwRDs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixZQUFZLENBQUMsTUFBa0M7UUFDN0MseUNBQXlDO1FBQ3pDLElBQUksTUFBTSxZQUFZLFFBQVEsRUFBRTtZQUM5QixPQUFPLE1BQU0sQ0FBQyxlQUFlLEVBQUUsQ0FBQztTQUNqQztRQUNELElBQUksTUFBTSxZQUFZLGlCQUFpQixFQUFFO1lBQ3ZDLE9BQU8sTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQ2pDO1FBQ0QsTUFBTSxJQUFJLGlCQUFpQixDQUFDLDZCQUE2QixDQUFDLENBQUM7SUFDN0QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMjAgR29vZ2xlIExMQ1xuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbiAqL1xuXG5pbXBvcnQge1NlY3VyaXR5RXhjZXB0aW9ufSBmcm9tICcuLi9leGNlcHRpb24vc2VjdXJpdHlfZXhjZXB0aW9uJztcbmltcG9ydCB7S2V5c2V0V3JpdGVyfSBmcm9tICcuL2tleXNldF93cml0ZXInO1xuaW1wb3J0IHtQYkVuY3J5cHRlZEtleXNldCwgUGJLZXlzZXR9IGZyb20gJy4vcHJvdG8nO1xuXG4vKipcbiAqIEtleXNldFdyaXRlciBrbm93cyBob3cgdG8gd3JpdGUgYSBrZXlzZXQgb3IgYW4gZW5jcnlwdGVkIGtleXNldC5cbiAqXG4gKiBAZmluYWxcbiAqL1xuZXhwb3J0IGNsYXNzIEJpbmFyeUtleXNldFdyaXRlciBpbXBsZW1lbnRzIEtleXNldFdyaXRlciB7XG4gIGVuY29kZUJpbmFyeShrZXlzZXQ6IFBiS2V5c2V0fFBiRW5jcnlwdGVkS2V5c2V0KTogVWludDhBcnJheSB7XG4gICAgLy8ga2VlcCBzZXJpYWxpemVCaW5hcnkgY2FsbHMgbW9ub21vcnBoaWNcbiAgICBpZiAoa2V5c2V0IGluc3RhbmNlb2YgUGJLZXlzZXQpIHtcbiAgICAgIHJldHVybiBrZXlzZXQuc2VyaWFsaXplQmluYXJ5KCk7XG4gICAgfVxuICAgIGlmIChrZXlzZXQgaW5zdGFuY2VvZiBQYkVuY3J5cHRlZEtleXNldCkge1xuICAgICAgcmV0dXJuIGtleXNldC5zZXJpYWxpemVCaW5hcnkoKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IFNlY3VyaXR5RXhjZXB0aW9uKCd1bmV4cGVjdGVkIHR5cGUgZm9yIGtleXNldC4nKTtcbiAgfVxufVxuIl19