edhoc
Version:
A Node.js implementation of EDHOC (Ephemeral Diffie-Hellman Over COSE) protocol for lightweight authenticated key exchange in IoT and other constrained environments.
39 lines • 2.59 kB
TypeScript
import { EdhocCredentials, EdhocConnectionID, EdhocEAD, EdhocSuite } from './edhoc';
/** Encode a CBOR sequence (concatenated CBOR items) */
export declare function encodeCborSequence(...items: unknown[]): Buffer;
/** Decode N items from a CBOR sequence buffer */
export declare function decodeCborSequence(buf: Buffer, count?: number): unknown[];
/** Encode SUITES_I: single int if one suite, array if multiple (selected last) */
export declare function encodeSuites(suites: EdhocSuite[], selected: EdhocSuite): number | number[];
/** Convert a connection ID to its raw byte representation (for OSCORE IDs).
* RFC 9528 §3.3.2: the OSCORE identifier is a 1-byte bstr whose byte value
* is the CBOR encoding of the integer n ∈ [-24, 23]. */
export declare function connectionIdToBytes(cid: EdhocConnectionID): Buffer;
/** Decode a CBOR-decoded value back to an EdhocConnectionID */
export declare function connectionIdFromCbor(value: unknown): EdhocConnectionID;
/** Encode ID_CRED_x for PLAINTEXT / context embedding (already CBOR) */
export declare function encodeIdCred(credentials: EdhocCredentials): Buffer;
/** Encode ID_CRED_x as a CBOR map (full form for MAC context / Sig_structure).
* For kid: {4: bstr(cbor(kid))}; for x5chain/x5t: same as encodeIdCred. */
export declare function encodeIdCredMap(credentials: EdhocCredentials): Buffer;
/** Encode CRED_x as a CBOR item for use in context / TH input.
* For CCS (kid + isCBOR): credBytes is already CBOR, return as-is.
* For DER certs: wrap as CBOR bstr. */
export declare function encodeCredItem(credentials: EdhocCredentials, credBytes: Buffer): Buffer;
/** Decode an ID_CRED_x value (already CBOR-decoded) into partial credentials */
export declare function decodeIdCred(value: unknown): EdhocCredentials;
/** Get the raw credential bytes (CRED_x) from credentials */
export declare function getCredBytes(credentials: EdhocCredentials): Buffer;
/** Encode PLAINTEXT_2/3: ID_CRED_x, Signature_or_MAC_x, ?EAD */
export declare function encodePlaintext(idCredCbor: Buffer, signatureOrMac: Buffer, ead?: EdhocEAD[]): Buffer;
/** Parse PLAINTEXT_2/3 into { idCredRaw, signatureOrMac, ead } */
export declare function parsePlaintext(data: Buffer): {
idCredRaw: unknown;
signatureOrMac: Buffer;
ead: EdhocEAD[];
};
/** Encode EAD tokens as a CBOR sequence of (label, ?value) pairs */
export declare function encodeEadItems(tokens: EdhocEAD[]): Buffer;
/** Parse EAD items from decoded CBOR values */
export declare function parseEadItems(items: unknown[]): EdhocEAD[];
//# sourceMappingURL=cbor-utils.d.ts.map