UNPKG

ts-mls

Version:

[![CI](https://github.com/LukaJCB/ts-mls/actions/workflows/ci.yml/badge.svg)](https://github.com/LukaJCB/ts-mls/actions/workflows/ci.yml) [![npm version](https://badge.fury.io/js/ts-mls.svg)](https://badge.fury.io/js/ts-mls) [![Coverage Status](https://co

26 lines 1.53 kB
import { flatMapDecoder, mapDecoder, mapDecoders } from "./codec/tlsDecoder.js"; import { contramapEncoders } from "./codec/tlsEncoder.js"; import { refhash } from "./crypto/hash.js"; import { decodeFramedContent, decodeFramedContentAuthData, encodeFramedContent, encodeFramedContentAuthData, encodeFramedContentTBS, } from "./framedContent.js"; import { decodeWireformat, encodeWireformat } from "./wireformat.js"; export const encodeAuthenticatedContent = contramapEncoders([encodeWireformat, encodeFramedContent, encodeFramedContentAuthData], (a) => [a.wireformat, a.content, a.auth]); export const decodeAuthenticatedContent = mapDecoders([ decodeWireformat, flatMapDecoder(decodeFramedContent, (content) => { return mapDecoder(decodeFramedContentAuthData(content.contentType), (auth) => ({ content, auth })); }), ], (wireformat, contentAuth) => ({ wireformat, ...contentAuth, })); export const encodeAuthenticatedContentTBM = contramapEncoders([encodeFramedContentTBS, encodeFramedContentAuthData], (t) => [t.contentTbs, t.auth]); export function createMembershipTag(membershipKey, tbm, h) { return h.mac(membershipKey, encodeAuthenticatedContentTBM(tbm)); } export function verifyMembershipTag(membershipKey, tbm, tag, h) { return h.verifyMac(membershipKey, tag, encodeAuthenticatedContentTBM(tbm)); } export function makeProposalRef(proposal, h) { return refhash("MLS 1.0 Proposal Reference", encodeAuthenticatedContent(proposal), h); } //# sourceMappingURL=authenticatedContent.js.map