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.
33 lines • 3.29 kB
JavaScript
/**
* @license
* Copyright 2020 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
import { BinaryKeysetReader } from './binary_keyset_reader';
import { BinaryKeysetWriter } from './binary_keyset_writer';
import { KeysetHandle } from './keyset_handle';
const binaryKeysetWriter = new BinaryKeysetWriter();
/**
* Static methods for reading or writing cleartext keysets.
*
* @final
*/
export class CleartextKeysetHandle {
/**
* Serializes a KeysetHandle to binary.
*
*/
static serializeToBinary(keysetHandle) {
return binaryKeysetWriter.encodeBinary(keysetHandle.getKeyset());
}
/**
* Creates a KeysetHandle from a binary representation of a keyset.
*
*/
static deserializeFromBinary(keysetBinary) {
const reader = BinaryKeysetReader.withUint8Array(keysetBinary);
const keysetFromReader = reader.read();
return new KeysetHandle(keysetFromReader);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYXJ0ZXh0X2tleXNldF9oYW5kbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9pbnRlcm5hbC9jbGVhcnRleHRfa2V5c2V0X2hhbmRsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRTdDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO0FBRXBEOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxZQUEwQjtRQUNqRCxPQUFPLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLHFCQUFxQixDQUFDLFlBQXdCO1FBQ25ELE1BQU0sTUFBTSxHQUFHLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMvRCxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2QyxPQUFPLElBQUksWUFBWSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDNUMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMjAgR29vZ2xlIExMQ1xuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbiAqL1xuXG5pbXBvcnQge0JpbmFyeUtleXNldFJlYWRlcn0gZnJvbSAnLi9iaW5hcnlfa2V5c2V0X3JlYWRlcic7XG5pbXBvcnQge0JpbmFyeUtleXNldFdyaXRlcn0gZnJvbSAnLi9iaW5hcnlfa2V5c2V0X3dyaXRlcic7XG5pbXBvcnQge0tleXNldEhhbmRsZX0gZnJvbSAnLi9rZXlzZXRfaGFuZGxlJztcblxuY29uc3QgYmluYXJ5S2V5c2V0V3JpdGVyID0gbmV3IEJpbmFyeUtleXNldFdyaXRlcigpO1xuXG4vKipcbiAqIFN0YXRpYyBtZXRob2RzIGZvciByZWFkaW5nIG9yIHdyaXRpbmcgY2xlYXJ0ZXh0IGtleXNldHMuXG4gKlxuICogQGZpbmFsXG4gKi9cbmV4cG9ydCBjbGFzcyBDbGVhcnRleHRLZXlzZXRIYW5kbGUge1xuICAvKipcbiAgICogU2VyaWFsaXplcyBhIEtleXNldEhhbmRsZSB0byBiaW5hcnkuXG4gICAqXG4gICAqL1xuICBzdGF0aWMgc2VyaWFsaXplVG9CaW5hcnkoa2V5c2V0SGFuZGxlOiBLZXlzZXRIYW5kbGUpOiBVaW50OEFycmF5IHtcbiAgICByZXR1cm4gYmluYXJ5S2V5c2V0V3JpdGVyLmVuY29kZUJpbmFyeShrZXlzZXRIYW5kbGUuZ2V0S2V5c2V0KCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBLZXlzZXRIYW5kbGUgZnJvbSBhIGJpbmFyeSByZXByZXNlbnRhdGlvbiBvZiBhIGtleXNldC5cbiAgICpcbiAgICovXG4gIHN0YXRpYyBkZXNlcmlhbGl6ZUZyb21CaW5hcnkoa2V5c2V0QmluYXJ5OiBVaW50OEFycmF5KTogS2V5c2V0SGFuZGxlIHtcbiAgICBjb25zdCByZWFkZXIgPSBCaW5hcnlLZXlzZXRSZWFkZXIud2l0aFVpbnQ4QXJyYXkoa2V5c2V0QmluYXJ5KTtcbiAgICBjb25zdCBrZXlzZXRGcm9tUmVhZGVyID0gcmVhZGVyLnJlYWQoKTtcbiAgICByZXR1cm4gbmV3IEtleXNldEhhbmRsZShrZXlzZXRGcm9tUmVhZGVyKTtcbiAgfVxufVxuIl19