UNPKG

cose-kit

Version:

This is an early prototype of a RFC8152 COSE library for node.js.

52 lines (51 loc) 2.11 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.coseVerifyMAC0 = exports.coseVerifyX509 = exports.coseVerifyMultiSignature = exports.coseVerify = void 0; const cbor_js_1 = require("./cbor.js"); const Sign1_js_1 = require("./cose/Sign1.js"); const Sign_js_1 = require("./cose/Sign.js"); const Mac0_js_1 = require("./cose/Mac0.js"); const coseVerify = async (cose, key, externalAAD = new Uint8Array()) => { let decoded = cbor_js_1.encoder.decode(cose); if (Array.isArray(decoded) && decoded.length === 4) { const params = decoded; decoded = new Sign1_js_1.Sign1(...params); } if (!(decoded instanceof Sign1_js_1.Sign1)) { throw new Error('unknown COSE type'); } const isValid = await decoded.verify(key, externalAAD); return { isValid, decoded }; }; exports.coseVerify = coseVerify; const coseVerifyMultiSignature = async (cose, keys) => { const decoded = cbor_js_1.encoder.decode(cose); if (!(decoded instanceof Sign_js_1.Sign)) { throw new Error('unexpected COSE type'); } const isValid = await decoded.verify(keys); return { isValid, decoded }; }; exports.coseVerifyMultiSignature = coseVerifyMultiSignature; const coseVerifyX509 = async (cose, roots) => { const decoded = cbor_js_1.encoder.decode(cose); if (!(decoded instanceof Sign1_js_1.Sign1 || decoded instanceof Sign_js_1.Sign)) { throw new Error('unknown COSE type'); } const isValid = await decoded.verifyX509(roots); return { isValid, decoded }; }; exports.coseVerifyX509 = coseVerifyX509; const coseVerifyMAC0 = async (cose, key, externalAAD = new Uint8Array()) => { let decoded = cbor_js_1.encoder.decode(cose); if (Array.isArray(decoded) && decoded.length === 4) { const params = decoded; decoded = new Mac0_js_1.Mac0(...params); } if (!(decoded instanceof Mac0_js_1.Mac0)) { throw new Error('unexpected COSE type'); } const isValid = await decoded.verify(key, externalAAD); return { isValid, decoded }; }; exports.coseVerifyMAC0 = coseVerifyMAC0;