UNPKG

@gleif-it/did-webs-ts

Version:
20 lines (19 loc) 1.14 kB
"use strict"; 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;