@gleif-it/did-webs-ts
Version:
did-webs typescript library
20 lines (19 loc) • 1.14 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.decodeKey = void 0;
const R = require("remeda");
const isValidEd25519Cesr_js_1 = require("../validators/isValidEd25519Cesr.js");
const isValidSecp256k1Cesr_js_1 = require("../validators/isValidSecp256k1Cesr.js");
const base64UrlToBytes_js_1 = require("../conversions/base64UrlToBytes.js");
const bytesToBase64Url_js_1 = require("../conversions/bytesToBase64Url.js");
const decodeWith = (code) => (rawBytes) => rawBytes.slice(code.length === 4 ? 0 : code.length);
const parseCode = (encoded) => encoded[0] === '1' ? encoded.slice(4) : encoded;
const decode = (code, encoded) => R.pipe(encoded, parseCode, base64UrlToBytes_js_1.base64UrlToBytes, decodeWith(code));
const decodeKey = (key) => {
if ((0, isValidEd25519Cesr_js_1.isValidEd25519Cesr)(key))
return (0, bytesToBase64Url_js_1.bytesToBase64Url)(decode('D', key));
if ((0, isValidSecp256k1Cesr_js_1.isValidSecp256k1Cesr)(key))
return (0, bytesToBase64Url_js_1.bytesToBase64Url)(decode('1AAA', key));
throw new Error("Can't decode key");
};
exports.decodeKey = decodeKey;