Sign In

@hellocoop/httpsig

Package Overview
Dependencies
Maintainers
2
Versions
18
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@hellocoop/httpsig - npm Package Compare versions

Comparing version
1.7.1
to
2.0.0-alpha.0
+30
dist/errors.d.ts
/**
* Typed verification errors
*
* Verification failures carry the Signature-Error code the server should
* report, rather than leaving it to be recovered by matching on message text.
*/
import { SignatureErrorCode } from './types.js';
export interface SignatureVerificationErrorOptions {
/** Covered components the server requires, for invalid_input. */
requiredInput?: string[];
cause?: unknown;
}
export declare class SignatureVerificationError extends Error {
readonly code: SignatureErrorCode;
readonly requiredInput?: string[];
constructor(code: SignatureErrorCode, message: string, options?: SignatureVerificationErrorOptions);
}
/** The key material is malformed, or forbidden by the specification. */
export declare function invalidKey(message: string): SignatureVerificationError;
/** The algorithm is well formed but this implementation cannot use it. */
export declare function unsupportedAlgorithm(message: string): SignatureVerificationError;
/** The Signature-Key scheme is not one this implementation understands. */
export declare function unsupportedScheme(message: string): SignatureVerificationError;
/** The assertion is malformed. */
export declare function invalidJwt(message: string): SignatureVerificationError;
/** The assertion is well formed but no longer valid. */
export declare function expiredJwt(message: string): SignatureVerificationError;
/** The covered components are missing something the verifier requires. */
export declare function invalidInput(message: string, requiredInput?: string[]): SignatureVerificationError;
//# sourceMappingURL=errors.d.ts.map
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAE/C,MAAM,WAAW,iCAAiC;IAC9C,iEAAiE;IACjE,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,KAAK,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,qBAAa,0BAA2B,SAAQ,KAAK;IACjD,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAA;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;gBAG7B,IAAI,EAAE,kBAAkB,EACxB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,iCAAsC;CAOtD;AAED,wEAAwE;AACxE,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,0BAA0B,CAEtE;AAED,0EAA0E;AAC1E,wBAAgB,oBAAoB,CAChC,OAAO,EAAE,MAAM,GAChB,0BAA0B,CAE5B;AAED,2EAA2E;AAC3E,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,0BAA0B,CAE7E;AAED,kCAAkC;AAClC,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,0BAA0B,CAEtE;AAED,wDAAwD;AACxD,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,0BAA0B,CAEtE;AAED,0EAA0E;AAC1E,wBAAgB,YAAY,CACxB,OAAO,EAAE,MAAM,EACf,aAAa,CAAC,EAAE,MAAM,EAAE,GACzB,0BAA0B,CAI5B"}
"use strict";
/**
* Typed verification errors
*
* Verification failures carry the Signature-Error code the server should
* report, rather than leaving it to be recovered by matching on message text.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.SignatureVerificationError = void 0;
exports.invalidKey = invalidKey;
exports.unsupportedAlgorithm = unsupportedAlgorithm;
exports.unsupportedScheme = unsupportedScheme;
exports.invalidJwt = invalidJwt;
exports.expiredJwt = expiredJwt;
exports.invalidInput = invalidInput;
class SignatureVerificationError extends Error {
code;
requiredInput;
constructor(code, message, options = {}) {
super(message, { cause: options.cause });
this.name = 'SignatureVerificationError';
this.code = code;
this.requiredInput = options.requiredInput;
}
}
exports.SignatureVerificationError = SignatureVerificationError;
/** The key material is malformed, or forbidden by the specification. */
function invalidKey(message) {
return new SignatureVerificationError('invalid_key', message);
}
/** The algorithm is well formed but this implementation cannot use it. */
function unsupportedAlgorithm(message) {
return new SignatureVerificationError('unsupported_algorithm', message);
}
/** The Signature-Key scheme is not one this implementation understands. */
function unsupportedScheme(message) {
return new SignatureVerificationError('unsupported_scheme', message);
}
/** The assertion is malformed. */
function invalidJwt(message) {
return new SignatureVerificationError('invalid_jwt', message);
}
/** The assertion is well formed but no longer valid. */
function expiredJwt(message) {
return new SignatureVerificationError('expired_jwt', message);
}
/** The covered components are missing something the verifier requires. */
function invalidInput(message, requiredInput) {
return new SignatureVerificationError('invalid_input', message, {
requiredInput,
});
}
//# sourceMappingURL=errors.js.map
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AA2BH,gCAEC;AAGD,oDAIC;AAGD,8CAEC;AAGD,gCAEC;AAGD,gCAEC;AAGD,oCAOC;AAnDD,MAAa,0BAA2B,SAAQ,KAAK;IACxC,IAAI,CAAoB;IACxB,aAAa,CAAW;IAEjC,YACI,IAAwB,EACxB,OAAe,EACf,UAA6C,EAAE;QAE/C,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA;QACxC,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAA;QACxC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAA;IAC9C,CAAC;CACJ;AAdD,gEAcC;AAED,wEAAwE;AACxE,SAAgB,UAAU,CAAC,OAAe;IACtC,OAAO,IAAI,0BAA0B,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;AACjE,CAAC;AAED,0EAA0E;AAC1E,SAAgB,oBAAoB,CAChC,OAAe;IAEf,OAAO,IAAI,0BAA0B,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAA;AAC3E,CAAC;AAED,2EAA2E;AAC3E,SAAgB,iBAAiB,CAAC,OAAe;IAC7C,OAAO,IAAI,0BAA0B,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAA;AACxE,CAAC;AAED,kCAAkC;AAClC,SAAgB,UAAU,CAAC,OAAe;IACtC,OAAO,IAAI,0BAA0B,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;AACjE,CAAC;AAED,wDAAwD;AACxD,SAAgB,UAAU,CAAC,OAAe;IACtC,OAAO,IAAI,0BAA0B,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;AACjE,CAAC;AAED,0EAA0E;AAC1E,SAAgB,YAAY,CACxB,OAAe,EACf,aAAwB;IAExB,OAAO,IAAI,0BAA0B,CAAC,eAAe,EAAE,OAAO,EAAE;QAC5D,aAAa;KAChB,CAAC,CAAA;AACN,CAAC"}
+5
-4

@@ -8,8 +8,9 @@ /**

export { expressVerify, fastifyVerify, nextJsVerify, nextJsPagesVerify, } from './helpers.js';
export { generateSignatureErrorHeader, parseSignatureError, generateAcceptSignatureHeader, parseAcceptSignature, } from './utils/signature.js';
export { generateKeyPair } from './utils/crypto.js';
export type { GenerateKeyPairOptions, KeyPair } from './utils/crypto.js';
export { generateSignatureErrorHeader, parseSignatureError, generateAcceptSignatureHeader, parseAcceptSignature, generateAcceptSignatureSchemeHeader, parseAcceptSignatureScheme, generateAcceptSignatureAlgHeader, parseAcceptSignatureAlg, } from './utils/signature.js';
export { generateKeyPair, determineAlgorithm } from './utils/crypto.js';
export type { GenerateKeyPairOptions, GeneratableAlgorithm, KeyPair, } from './utils/crypto.js';
export { SignatureVerificationError } from './errors.js';
export { calculateThumbprint } from './utils/thumbprint.js';
export type { HttpSigFetchOptions, HttpSigFetchResultWithSent, SentRequest, SignatureKeyType, VerifyRequest, VerifyOptions, VerificationResult, SignatureError, SignatureErrorCode, AcceptSignatureParams, SigKeyValue, } from './types.js';
export type { HttpSigFetchOptions, HttpSigFetchResultWithSent, SentRequest, SignatureKeyType, VerifyRequest, VerifyOptions, VerificationResult, SignatureError, SignatureErrorCode, SignatureKeyScheme, SignatureAlgorithm, AcceptSignatureParams, } from './types.js';
export { VALID_DERIVED_COMPONENTS, DEFAULT_COMPONENTS_GET, DEFAULT_COMPONENTS_BODY, } from './types.js';
//# sourceMappingURL=index.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EACH,aAAa,EACb,aAAa,EACb,YAAY,EACZ,iBAAiB,GACpB,MAAM,cAAc,CAAA;AAErB,OAAO,EACH,4BAA4B,EAC5B,mBAAmB,EACnB,6BAA6B,EAC7B,oBAAoB,GACvB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,YAAY,EAAE,sBAAsB,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAExE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D,YAAY,EACR,mBAAmB,EACnB,0BAA0B,EAC1B,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,WAAW,GACd,MAAM,YAAY,CAAA;AAEnB,OAAO,EACH,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,GAC1B,MAAM,YAAY,CAAA"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EACH,aAAa,EACb,aAAa,EACb,YAAY,EACZ,iBAAiB,GACpB,MAAM,cAAc,CAAA;AAErB,OAAO,EACH,4BAA4B,EAC5B,mBAAmB,EACnB,6BAA6B,EAC7B,oBAAoB,EACpB,mCAAmC,EACnC,0BAA0B,EAC1B,gCAAgC,EAChC,uBAAuB,GAC1B,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACvE,YAAY,EACR,sBAAsB,EACtB,oBAAoB,EACpB,OAAO,GACV,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAA;AAExD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D,YAAY,EACR,mBAAmB,EACnB,0BAA0B,EAC1B,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,GACxB,MAAM,YAAY,CAAA;AAEnB,OAAO,EACH,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,GAC1B,MAAM,YAAY,CAAA"}

@@ -7,3 +7,3 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.DEFAULT_COMPONENTS_BODY = exports.DEFAULT_COMPONENTS_GET = exports.VALID_DERIVED_COMPONENTS = exports.calculateThumbprint = exports.generateKeyPair = exports.parseAcceptSignature = exports.generateAcceptSignatureHeader = exports.parseSignatureError = exports.generateSignatureErrorHeader = exports.nextJsPagesVerify = exports.nextJsVerify = exports.fastifyVerify = exports.expressVerify = exports.verify = void 0;
exports.DEFAULT_COMPONENTS_BODY = exports.DEFAULT_COMPONENTS_GET = exports.VALID_DERIVED_COMPONENTS = exports.calculateThumbprint = exports.SignatureVerificationError = exports.determineAlgorithm = exports.generateKeyPair = exports.parseAcceptSignatureAlg = exports.generateAcceptSignatureAlgHeader = exports.parseAcceptSignatureScheme = exports.generateAcceptSignatureSchemeHeader = exports.parseAcceptSignature = exports.generateAcceptSignatureHeader = exports.parseSignatureError = exports.generateSignatureErrorHeader = exports.nextJsPagesVerify = exports.nextJsVerify = exports.fastifyVerify = exports.expressVerify = exports.verify = void 0;
var fetch_js_1 = require("./fetch.js");

@@ -23,4 +23,11 @@ Object.defineProperty(exports, "fetch", { enumerable: true, get: function () { return fetch_js_1.fetch; } });

Object.defineProperty(exports, "parseAcceptSignature", { enumerable: true, get: function () { return signature_js_1.parseAcceptSignature; } });
Object.defineProperty(exports, "generateAcceptSignatureSchemeHeader", { enumerable: true, get: function () { return signature_js_1.generateAcceptSignatureSchemeHeader; } });
Object.defineProperty(exports, "parseAcceptSignatureScheme", { enumerable: true, get: function () { return signature_js_1.parseAcceptSignatureScheme; } });
Object.defineProperty(exports, "generateAcceptSignatureAlgHeader", { enumerable: true, get: function () { return signature_js_1.generateAcceptSignatureAlgHeader; } });
Object.defineProperty(exports, "parseAcceptSignatureAlg", { enumerable: true, get: function () { return signature_js_1.parseAcceptSignatureAlg; } });
var crypto_js_1 = require("./utils/crypto.js");
Object.defineProperty(exports, "generateKeyPair", { enumerable: true, get: function () { return crypto_js_1.generateKeyPair; } });
Object.defineProperty(exports, "determineAlgorithm", { enumerable: true, get: function () { return crypto_js_1.determineAlgorithm; } });
var errors_js_1 = require("./errors.js");
Object.defineProperty(exports, "SignatureVerificationError", { enumerable: true, get: function () { return errors_js_1.SignatureVerificationError; } });
var thumbprint_js_1 = require("./utils/thumbprint.js");

@@ -27,0 +34,0 @@ Object.defineProperty(exports, "calculateThumbprint", { enumerable: true, get: function () { return thumbprint_js_1.calculateThumbprint; } });

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,uCAAkC;AAAzB,iGAAA,KAAK,OAAA;AACd,yCAAoC;AAA3B,mGAAA,MAAM,OAAA;AAEf,2CAKqB;AAJjB,2GAAA,aAAa,OAAA;AACb,2GAAA,aAAa,OAAA;AACb,0GAAA,YAAY,OAAA;AACZ,+GAAA,iBAAiB,OAAA;AAGrB,qDAK6B;AAJzB,4HAAA,4BAA4B,OAAA;AAC5B,mHAAA,mBAAmB,OAAA;AACnB,6HAAA,6BAA6B,OAAA;AAC7B,oHAAA,oBAAoB,OAAA;AAGxB,+CAAmD;AAA1C,4GAAA,eAAe,OAAA;AAGxB,uDAA2D;AAAlD,oHAAA,mBAAmB,OAAA;AAgB5B,uCAImB;AAHf,oHAAA,wBAAwB,OAAA;AACxB,kHAAA,sBAAsB,OAAA;AACtB,mHAAA,uBAAuB,OAAA"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,uCAAkC;AAAzB,iGAAA,KAAK,OAAA;AACd,yCAAoC;AAA3B,mGAAA,MAAM,OAAA;AAEf,2CAKqB;AAJjB,2GAAA,aAAa,OAAA;AACb,2GAAA,aAAa,OAAA;AACb,0GAAA,YAAY,OAAA;AACZ,+GAAA,iBAAiB,OAAA;AAGrB,qDAS6B;AARzB,4HAAA,4BAA4B,OAAA;AAC5B,mHAAA,mBAAmB,OAAA;AACnB,6HAAA,6BAA6B,OAAA;AAC7B,oHAAA,oBAAoB,OAAA;AACpB,mIAAA,mCAAmC,OAAA;AACnC,0HAAA,0BAA0B,OAAA;AAC1B,gIAAA,gCAAgC,OAAA;AAChC,uHAAA,uBAAuB,OAAA;AAG3B,+CAAuE;AAA9D,4GAAA,eAAe,OAAA;AAAE,+GAAA,kBAAkB,OAAA;AAO5C,yCAAwD;AAA/C,uHAAA,0BAA0B,OAAA;AAEnC,uDAA2D;AAAlD,oHAAA,mBAAmB,OAAA;AAiB5B,uCAImB;AAHf,oHAAA,wBAAwB,OAAA;AACxB,kHAAA,sBAAsB,OAAA;AACtB,mHAAA,uBAAuB,OAAA"}

@@ -70,3 +70,2 @@ /**

jwksCacheTtl?: number;
strictAAuth?: boolean;
}

@@ -114,2 +113,4 @@ export interface VerificationResult {

export interface HwkValue {
/** REQUIRED. A fully-specified JOSE algorithm identifier. */
alg: string;
kty: string;

@@ -133,17 +134,22 @@ crv?: string;

*/
export type SignatureErrorCode = 'unsupported_algorithm' | 'invalid_signature' | 'invalid_input' | 'invalid_request' | 'invalid_key' | 'unknown_key' | 'invalid_jwt' | 'expired_jwt';
export type SignatureErrorCode = 'unsupported_algorithm' | 'unsupported_scheme' | 'invalid_signature' | 'invalid_input' | 'invalid_request' | 'invalid_key' | 'unknown_key' | 'invalid_jwt' | 'expired_jwt';
/**
* Parsed Signature-Error header
*
* The supported_algorithms member was removed in -07; a server states what
* would have worked in Accept-Signature-Alg instead.
*/
export interface SignatureError {
error: SignatureErrorCode;
supported_algorithms?: string[];
required_input?: string[];
}
/**
* Accept-Signature sigkey parameter values
* Signature-Key schemes defined by the draft. Not all are implemented here.
*/
export type SigKeyValue = 'jkt' | 'uri' | 'x509';
export type SignatureKeyScheme = 'hwk' | 'jwt' | 'jkt-jwt' | 'jwks_uri' | 'jwks' | 'self-jwt' | 'x509';
/**
* Parsed Accept-Signature header parameters
*
* The sigkey parameter was removed in -07. Use the Accept-Signature-Scheme
* and Accept-Signature-Alg header fields.
*/

@@ -153,3 +159,2 @@ export interface AcceptSignatureParams {

components: string[];
sigkey?: SigKeyValue;
alg?: string;

@@ -159,5 +164,5 @@ tag?: string;

/**
* Supported signature algorithms
* Fully-specified JOSE algorithm identifiers this implementation supports.
*/
export type SignatureAlgorithm = 'Ed25519' | 'ES256';
export type SignatureAlgorithm = 'Ed25519' | 'Ed448' | 'ES256' | 'ES384' | 'ES512' | 'PS256' | 'PS384' | 'PS512' | 'RS256' | 'RS384' | 'RS512';
/**

@@ -164,0 +169,0 @@ * Algorithm parameters for signing

@@ -1,1 +0,1 @@

{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
/**
* Cryptographic utilities for HTTP Message Signatures
*
* Algorithm determination follows draft-hardt-httpbis-signature-key-07,
* Algorithm Determination: the signature algorithm is taken from the JWK `alg`
* member, which must be a fully-specified identifier (RFC 9864). It is never
* derived from `kty` and `crv` -- those underdetermine the algorithm for RSA
* keys, which have no curve and leave both padding and hash free, and for EC
* keys, whose curve does not fix the hash.
*/
import { AlgorithmParams } from '../types.js';
interface AlgorithmSpec {
/** The key type this algorithm requires. */
kty: string;
/** The curve this algorithm requires, where the key type has one. */
crv?: string;
/**
* WebCrypto parameters. The same object is passed to importKey and to
* sign/verify; each ignores the members it does not use.
*/
params: AlgorithmParams;
}
/**
* Get algorithm parameters from JWK
* Fully-specified JOSE algorithm identifiers this implementation supports.
*
* Note ES512 uses P-521, not a "P-512" curve.
*/
export declare const FULLY_SPECIFIED_ALGORITHMS: Readonly<Record<string, AlgorithmSpec>>;
/**
* Identifiers that name a different signature algorithm depending on the key
* they are used with. Deprecated by RFC 9864 and forbidden by the draft.
*/
export declare const POLYMORPHIC_ALGORITHMS: ReadonlySet<string>;
/**
* Shared-secret algorithms. Every scheme here distributes a public key, and a
* secret handed to the verifier proves nothing, so these are rejected rather
* than merely unimplemented.
*/
export declare const SYMMETRIC_ALGORITHMS: ReadonlySet<string>;
/**
* Fully-specified identifiers that are valid but that WebCrypto cannot
* implement, so they are declined rather than rejected as malformed.
*/
export declare const UNIMPLEMENTED_ALGORITHMS: ReadonlySet<string>;
/**
* Determine the signature algorithm for a JWK, validating it in the process.
*
* Throws a SignatureVerificationError carrying the Signature-Error code the
* verifier should report.
*/
export declare function determineAlgorithm(jwk: JsonWebKey): AlgorithmParams;
/**
* Get algorithm parameters from a JWK.
*/
export declare function getAlgorithmFromJwk(jwk: JsonWebKey): AlgorithmParams;
/**
* Validate a JWK, including that its algorithm is fully specified and
* consistent with its key material.
*/
export declare function validateJwk(jwk: JsonWebKey): void;
/**
* Import a JWK as a CryptoKey for signing

@@ -30,6 +82,10 @@ */

/**
* Algorithms generateKeyPair can produce.
*/
export type GeneratableAlgorithm = 'Ed25519' | 'ES256' | 'ES384' | 'ES512';
/**
* Options for key pair generation
*/
export interface GenerateKeyPairOptions {
algorithm?: 'Ed25519' | 'ES256';
algorithm?: GeneratableAlgorithm;
extractable?: boolean;

@@ -45,9 +101,9 @@ }

/**
* Generate a signing key pair
* Generate a signing key pair.
*
* The exported public JWK carries `alg`, which WebCrypto does not set. Without
* it the key cannot be conveyed by the hwk scheme.
*/
export declare function generateKeyPair(options?: GenerateKeyPairOptions): Promise<KeyPair>;
/**
* Validate JWK structure
*/
export declare function validateJwk(jwk: JsonWebKey): void;
export {};
//# sourceMappingURL=crypto.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../src/utils/crypto.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE7C;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,UAAU,GAAG,eAAe,CAgBpE;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAI1E;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAMzE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,CAI/D;AAED;;GAEG;AACH,wBAAsB,IAAI,CACtB,IAAI,EAAE,UAAU,EAChB,UAAU,EAAE,SAAS,EACrB,SAAS,EAAE,eAAe,GAC3B,OAAO,CAAC,UAAU,CAAC,CAIrB;AAED;;GAEG;AACH,wBAAsB,MAAM,CACxB,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,UAAU,EACrB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,eAAe,GAC3B,OAAO,CAAC,OAAO,CAAC,CAElB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACnC,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,CAAA;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAA;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACpB,UAAU,EAAE,SAAS,CAAA;IACrB,SAAS,EAAE,UAAU,CAAA;CACxB;AAED;;GAEG;AACH,wBAAsB,eAAe,CACjC,OAAO,CAAC,EAAE,sBAAsB,GACjC,OAAO,CAAC,OAAO,CAAC,CA+BlB;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CAejD"}
{"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../src/utils/crypto.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAG7C,UAAU,aAAa;IACnB,4CAA4C;IAC5C,GAAG,EAAE,MAAM,CAAA;IACX,qEAAqE;IACrE,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;;OAGG;IACH,MAAM,EAAE,eAAe,CAAA;CAC1B;AAED;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAC7C,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAmDhC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,CAAsB,CAAA;AAE7E;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAKnD,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EAAE,WAAW,CAAC,MAAM,CAIvD,CAAA;AASF;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,UAAU,GAAG,eAAe,CA4EnE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,UAAU,GAAG,eAAe,CAEpE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CAEjD;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAI1E;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAMzE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,CAI/D;AAED;;GAEG;AACH,wBAAsB,IAAI,CACtB,IAAI,EAAE,UAAU,EAChB,UAAU,EAAE,SAAS,EACrB,SAAS,EAAE,eAAe,GAC3B,OAAO,CAAC,UAAU,CAAC,CAIrB;AAED;;GAEG;AACH,wBAAsB,MAAM,CACxB,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,UAAU,EACrB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,eAAe,GAC3B,OAAO,CAAC,OAAO,CAAC,CAElB;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAA;AAE1E;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACnC,SAAS,CAAC,EAAE,oBAAoB,CAAA;IAChC,WAAW,CAAC,EAAE,OAAO,CAAA;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACpB,UAAU,EAAE,SAAS,CAAA;IACrB,SAAS,EAAE,UAAU,CAAA;CACxB;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACjC,OAAO,CAAC,EAAE,sBAAsB,GACjC,OAAO,CAAC,OAAO,CAAC,CA+BlB"}
"use strict";
/**
* Cryptographic utilities for HTTP Message Signatures
*
* Algorithm determination follows draft-hardt-httpbis-signature-key-07,
* Algorithm Determination: the signature algorithm is taken from the JWK `alg`
* member, which must be a fully-specified identifier (RFC 9864). It is never
* derived from `kty` and `crv` -- those underdetermine the algorithm for RSA
* keys, which have no curve and leave both padding and hash free, and for EC
* keys, whose curve does not fix the hash.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.UNIMPLEMENTED_ALGORITHMS = exports.SYMMETRIC_ALGORITHMS = exports.POLYMORPHIC_ALGORITHMS = exports.FULLY_SPECIFIED_ALGORITHMS = void 0;
exports.determineAlgorithm = determineAlgorithm;
exports.getAlgorithmFromJwk = getAlgorithmFromJwk;
exports.validateJwk = validateJwk;
exports.importPrivateKey = importPrivateKey;

@@ -13,26 +23,161 @@ exports.importPublicKey = importPublicKey;

exports.generateKeyPair = generateKeyPair;
exports.validateJwk = validateJwk;
const errors_js_1 = require("../errors.js");
/**
* Get algorithm parameters from JWK
* Fully-specified JOSE algorithm identifiers this implementation supports.
*
* Note ES512 uses P-521, not a "P-512" curve.
*/
function getAlgorithmFromJwk(jwk) {
if (jwk.kty === 'OKP') {
if (jwk.crv === 'Ed25519') {
return { name: 'Ed25519' };
}
throw new Error(`Unsupported OKP curve: ${jwk.crv}`);
exports.FULLY_SPECIFIED_ALGORITHMS = {
Ed25519: {
kty: 'OKP',
crv: 'Ed25519',
params: { name: 'Ed25519' },
},
Ed448: {
kty: 'OKP',
crv: 'Ed448',
params: { name: 'Ed448' },
},
ES256: {
kty: 'EC',
crv: 'P-256',
params: { name: 'ECDSA', namedCurve: 'P-256', hash: 'SHA-256' },
},
ES384: {
kty: 'EC',
crv: 'P-384',
params: { name: 'ECDSA', namedCurve: 'P-384', hash: 'SHA-384' },
},
ES512: {
kty: 'EC',
crv: 'P-521',
params: { name: 'ECDSA', namedCurve: 'P-521', hash: 'SHA-512' },
},
PS256: {
kty: 'RSA',
params: { name: 'RSA-PSS', hash: 'SHA-256', saltLength: 32 },
},
PS384: {
kty: 'RSA',
params: { name: 'RSA-PSS', hash: 'SHA-384', saltLength: 48 },
},
PS512: {
kty: 'RSA',
params: { name: 'RSA-PSS', hash: 'SHA-512', saltLength: 64 },
},
RS256: {
kty: 'RSA',
params: { name: 'RSASSA-PKCS1-v1_5', hash: 'SHA-256' },
},
RS384: {
kty: 'RSA',
params: { name: 'RSASSA-PKCS1-v1_5', hash: 'SHA-384' },
},
RS512: {
kty: 'RSA',
params: { name: 'RSASSA-PKCS1-v1_5', hash: 'SHA-512' },
},
};
/**
* Identifiers that name a different signature algorithm depending on the key
* they are used with. Deprecated by RFC 9864 and forbidden by the draft.
*/
exports.POLYMORPHIC_ALGORITHMS = new Set(['EdDSA']);
/**
* Shared-secret algorithms. Every scheme here distributes a public key, and a
* secret handed to the verifier proves nothing, so these are rejected rather
* than merely unimplemented.
*/
exports.SYMMETRIC_ALGORITHMS = new Set([
'HS256',
'HS384',
'HS512',
'hmac-sha256',
]);
/**
* Fully-specified identifiers that are valid but that WebCrypto cannot
* implement, so they are declined rather than rejected as malformed.
*/
exports.UNIMPLEMENTED_ALGORITHMS = new Set([
'ML-DSA-44',
'ML-DSA-65',
'ML-DSA-87',
]);
/** Key members each key type requires. */
const REQUIRED_MEMBERS = {
OKP: ['crv', 'x'],
EC: ['crv', 'x', 'y'],
RSA: ['n', 'e'],
};
/**
* Determine the signature algorithm for a JWK, validating it in the process.
*
* Throws a SignatureVerificationError carrying the Signature-Error code the
* verifier should report.
*/
function determineAlgorithm(jwk) {
if (!jwk || typeof jwk !== 'object') {
throw (0, errors_js_1.invalidKey)('JWK is not an object');
}
if (jwk.kty === 'EC') {
if (jwk.crv === 'P-256') {
return { name: 'ECDSA', namedCurve: 'P-256', hash: 'SHA-256' };
if (!jwk.kty) {
throw (0, errors_js_1.invalidKey)('JWK missing required member: kty');
}
// A shared secret cannot prove possession to a verifier that holds it.
if (jwk.kty === 'oct') {
throw (0, errors_js_1.invalidKey)('Symmetric keys are not permitted: kty "oct" names a shared secret');
}
const alg = jwk.alg;
if (!alg) {
throw (0, errors_js_1.invalidKey)('JWK missing required member: alg. The algorithm is taken from the key and is not derived from kty and crv');
}
if (exports.SYMMETRIC_ALGORITHMS.has(alg)) {
throw (0, errors_js_1.invalidKey)(`Symmetric algorithms are not permitted: "${alg}" names a shared secret`);
}
if (exports.POLYMORPHIC_ALGORITHMS.has(alg)) {
throw (0, errors_js_1.invalidKey)(`Polymorphic algorithm identifier "${alg}" is not permitted. Use a fully-specified identifier such as Ed25519 or Ed448 (RFC 9864)`);
}
// AKP covers several ML-DSA parameter sets, so the key type alone does not
// name an algorithm. Declining is a capability statement, not a parse
// failure, so it reports unsupported_algorithm.
if (jwk.kty === 'AKP' || exports.UNIMPLEMENTED_ALGORITHMS.has(alg)) {
throw (0, errors_js_1.unsupportedAlgorithm)(`Algorithm "${alg}" (kty "${jwk.kty}") is not implemented by this verifier`);
}
const spec = exports.FULLY_SPECIFIED_ALGORITHMS[alg];
if (!spec) {
throw (0, errors_js_1.unsupportedAlgorithm)(`Unsupported or not fully-specified algorithm: "${alg}"`);
}
// The key-structure members are redundant with a fully-specified alg. Use
// the redundancy as a check: a key that can be read two ways is rejected
// rather than resolved in favour of either reading.
if (jwk.kty !== spec.kty) {
throw (0, errors_js_1.invalidKey)(`JWK kty "${jwk.kty}" is inconsistent with alg "${alg}", which requires kty "${spec.kty}"`);
}
if (spec.crv && jwk.crv !== spec.crv) {
throw (0, errors_js_1.invalidKey)(`JWK crv "${jwk.crv}" is inconsistent with alg "${alg}", which requires crv "${spec.crv}"`);
}
for (const member of REQUIRED_MEMBERS[spec.kty] ?? []) {
if (!jwk[member]) {
throw (0, errors_js_1.invalidKey)(`${spec.kty} JWK missing required member: ${member}`);
}
throw new Error(`Unsupported EC curve: ${jwk.crv}`);
}
throw new Error(`Unsupported key type: ${jwk.kty}`);
return spec.params;
}
/**
* Get algorithm parameters from a JWK.
*/
function getAlgorithmFromJwk(jwk) {
return determineAlgorithm(jwk);
}
/**
* Validate a JWK, including that its algorithm is fully specified and
* consistent with its key material.
*/
function validateJwk(jwk) {
determineAlgorithm(jwk);
}
/**
* Import a JWK as a CryptoKey for signing
*/
async function importPrivateKey(jwk) {
const algorithm = getAlgorithmFromJwk(jwk);
const algorithm = determineAlgorithm(jwk);
return await crypto.subtle.importKey('jwk', jwk, algorithm, false, ['sign']);

@@ -44,3 +189,3 @@ }

async function importPublicKey(jwk) {
const algorithm = getAlgorithmFromJwk(jwk);
const algorithm = determineAlgorithm(jwk);
return await crypto.subtle.importKey('jwk', jwk, algorithm, false, [

@@ -72,3 +217,6 @@ 'verify',

/**
* Generate a signing key pair
* Generate a signing key pair.
*
* The exported public JWK carries `alg`, which WebCrypto does not set. Without
* it the key cannot be conveyed by the hwk scheme.
*/

@@ -78,16 +226,16 @@ async function generateKeyPair(options) {

const extractable = options?.extractable ?? true;
let genAlgorithm;
let keyUsages = ['sign', 'verify'];
if (algorithm === 'Ed25519') {
genAlgorithm = { name: 'Ed25519' };
}
else if (algorithm === 'ES256') {
genAlgorithm = { name: 'ECDSA', namedCurve: 'P-256' };
}
else {
const spec = exports.FULLY_SPECIFIED_ALGORITHMS[algorithm];
if (!spec) {
throw new Error(`Unsupported algorithm: ${algorithm}`);
}
const keyPair = (await crypto.subtle.generateKey(genAlgorithm, extractable, keyUsages));
const genAlgorithm = spec.crv
? spec.params.name === 'ECDSA'
? { name: 'ECDSA', namedCurve: spec.crv }
: { name: spec.params.name }
: { name: spec.params.name };
const keyPair = (await crypto.subtle.generateKey(genAlgorithm, extractable, ['sign', 'verify']));
// Public key is always exportable
const publicKey = await crypto.subtle.exportKey('jwk', keyPair.publicKey);
// WebCrypto omits alg; the draft requires it.
publicKey.alg = algorithm;
return {

@@ -98,27 +246,2 @@ privateKey: keyPair.privateKey,

}
/**
* Validate JWK structure
*/
function validateJwk(jwk) {
if (!jwk.kty) {
throw new Error('JWK missing required field: kty');
}
if (jwk.kty === 'OKP') {
if (!jwk.crv)
throw new Error('OKP JWK missing required field: crv');
if (!jwk.x)
throw new Error('OKP JWK missing required field: x');
}
else if (jwk.kty === 'EC') {
if (!jwk.crv)
throw new Error('EC JWK missing required field: crv');
if (!jwk.x)
throw new Error('EC JWK missing required field: x');
if (!jwk.y)
throw new Error('EC JWK missing required field: y');
}
else {
throw new Error(`Unsupported key type: ${jwk.kty}`);
}
}
//# sourceMappingURL=crypto.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/utils/crypto.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/utils/crypto.ts"],"names":[],"mappings":"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"}

@@ -11,2 +11,9 @@ /**

* Generate Signature-Input header value
*
* The `alg` signature parameter is deliberately never emitted. The algorithm
* is signaled by the key, per the JOSE path of RFC 9421 Section 3.3.7, which
* states that "the explicit alg signature parameter is not used at all when
* using JOSE signing algorithms". Emitting it would create a second source of
* truth in a namespace that does not correspond to the JWK `alg` anyway --
* JWA values are not registered in the HTTP Signature Algorithms registry.
*/

@@ -49,3 +56,7 @@ export declare function generateSignatureInputHeader(label: string, components: string[], created: number): string;

* Generate Signature-Error header value as RFC 8941 Dictionary
* Format: error=<code>[, supported_algorithms=("alg1" "alg2")][, required_input=("comp1" "comp2")]
* Format: error=<code>[, required_input=("comp1" "comp2")]
*
* The supported_algorithms member was removed in -07. A server states what
* would have worked in the Accept-Signature-Alg and Accept-Signature-Scheme
* header fields, which work on a challenge and on an error alike.
*/

@@ -58,4 +69,32 @@ export declare function generateSignatureErrorHeader(signatureError: SignatureError): string;

/**
* Generate Accept-Signature-Scheme: the Signature-Key schemes the server
* accepts, in descending order of preference.
*
* Format: scheme1, scheme2
*/
export declare function generateAcceptSignatureSchemeHeader(schemes: string[]): string;
/**
* Parse Accept-Signature-Scheme. Unrecognized tokens are preserved: a client
* ignores what it does not know so a server may list schemes registered after
* the client was written.
*/
export declare function parseAcceptSignatureScheme(header: string): string[];
/**
* Generate Accept-Signature-Alg: the signature algorithms the server accepts,
* as fully-specified JOSE identifiers.
*
* Format: alg1, alg2
*/
export declare function generateAcceptSignatureAlgHeader(algs: string[]): string;
/**
* Parse Accept-Signature-Alg.
*/
export declare function parseAcceptSignatureAlg(header: string): string[];
/**
* Generate Accept-Signature header value
* Format: label=("comp1" "comp2");sigkey=jkt[;alg="algo"][;tag="tag"]
* Format: label=("comp1" "comp2")[;alg="algo"][;tag="tag"]
*
* The sigkey parameter was removed in -07. A parameter value is a bare Item
* and cannot be a list, so sigkey could name only one scheme. Use
* Accept-Signature-Scheme and Accept-Signature-Alg instead.
*/

@@ -65,3 +104,3 @@ export declare function generateAcceptSignatureHeader(params: AcceptSignatureParams): string;

* Parse Accept-Signature header
* Format: label=("comp1" "comp2");sigkey=jkt[;alg="algo"][;tag="tag"]
* Format: label=("comp1" "comp2")[;alg="algo"][;tag="tag"]
*/

@@ -68,0 +107,0 @@ export declare function parseAcceptSignature(header: string): AcceptSignatureParams;

@@ -1,1 +0,1 @@

{"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../src/utils/signature.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACH,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EAEd,qBAAqB,EAExB,MAAM,aAAa,CAAA;AAEpB;;GAEG;AACH,wBAAgB,qBAAqB,CACjC,UAAU,EAAE,MAAM,EAAE,EACpB,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACrC,MAAM,CAYR;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CACxC,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAAE,EACpB,OAAO,EAAE,MAAM,GAChB,MAAM,CAGR;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACtC,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,gBAAgB,EAC9B,SAAS,CAAC,EAAE,UAAU,GACvB,MAAM,CA8CR;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACnC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,UAAU,GACtB,MAAM,CAGR;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAmB3E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,EAAE,CA+C1E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,EAAE,CA2HtE;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CACxC,cAAc,EAAE,cAAc,GAC/B,MAAM,CAkBR;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CA6ClE;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CACzC,MAAM,EAAE,qBAAqB,GAC9B,MAAM,CAgBR;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,qBAAqB,CA4C1E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAuBtE"}
{"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../src/utils/signature.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACH,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EAEd,qBAAqB,EACxB,MAAM,aAAa,CAAA;AAGpB;;GAEG;AACH,wBAAgB,qBAAqB,CACjC,UAAU,EAAE,MAAM,EAAE,EACpB,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACrC,MAAM,CAYR;AAED;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CACxC,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAAE,EACpB,OAAO,EAAE,MAAM,GAChB,MAAM,CAGR;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACtC,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,gBAAgB,EAC9B,SAAS,CAAC,EAAE,UAAU,GACvB,MAAM,CA0DR;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACnC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,UAAU,GACtB,MAAM,CAGR;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAmB3E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,EAAE,CA+C1E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAiItE;AAED;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CACxC,cAAc,EAAE,cAAc,GAC/B,MAAM,CAWR;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAqClE;AA0BD;;;;;GAKG;AACH,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAE7E;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAEnE;AAED;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAEvE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAEhE;AAED;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CACzC,MAAM,EAAE,qBAAqB,GAC9B,MAAM,CAaR;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,qBAAqB,CAmC1E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAuBtE"}

@@ -15,2 +15,6 @@ "use strict";

exports.parseSignatureError = parseSignatureError;
exports.generateAcceptSignatureSchemeHeader = generateAcceptSignatureSchemeHeader;
exports.parseAcceptSignatureScheme = parseAcceptSignatureScheme;
exports.generateAcceptSignatureAlgHeader = generateAcceptSignatureAlgHeader;
exports.parseAcceptSignatureAlg = parseAcceptSignatureAlg;
exports.generateAcceptSignatureHeader = generateAcceptSignatureHeader;

@@ -20,2 +24,3 @@ exports.parseAcceptSignature = parseAcceptSignature;

const base64_js_1 = require("./base64.js");
const errors_js_1 = require("../errors.js");
/**

@@ -37,2 +42,9 @@ * Generate signature base string from components

* Generate Signature-Input header value
*
* The `alg` signature parameter is deliberately never emitted. The algorithm
* is signaled by the key, per the JOSE path of RFC 9421 Section 3.3.7, which
* states that "the explicit alg signature parameter is not used at all when
* using JOSE signing algorithms". Emitting it would create a second source of
* truth in a namespace that does not correspond to the JWK `alg` anyway --
* JWA values are not registered in the HTTP Signature Algorithms registry.
*/

@@ -55,4 +67,13 @@ function generateSignatureInputHeader(label, components, created) {

}
// Build hwk parameters from JWK
const params = [`kty="${publicJwk.kty}"`];
// alg is REQUIRED and carries the algorithm; the verifier does not
// derive it from kty and crv.
if (!publicJwk.alg) {
throw new Error('Public JWK missing required alg member for hwk signature key type');
}
// Build hwk parameters from JWK. kid is deliberately not emitted: the
// key is inline, so an identifier selects nothing.
const params = [
`alg="${publicJwk.alg}"`,
`kty="${publicJwk.kty}"`,
];
if (publicJwk.crv)

@@ -211,4 +232,4 @@ params.push(`crv="${publicJwk.crv}"`);

}
if (!['hwk', 'jwt', 'jkt-jwt', 'jwks_uri', 'x509'].includes(scheme)) {
throw new Error(`Unsupported Signature-Key scheme: ${scheme}`);
if (!['hwk', 'jwt', 'jkt-jwt', 'jwks_uri'].includes(scheme)) {
throw (0, errors_js_1.unsupportedScheme)(`Unsupported Signature-Key scheme: ${scheme}`);
}

@@ -218,4 +239,12 @@ if (scheme === 'hwk') {

if (!params.kty) {
throw new Error('Signature-Key hwk scheme missing kty parameter');
throw (0, errors_js_1.invalidKey)('Signature-Key hwk scheme missing kty parameter');
}
if (!params.alg) {
throw (0, errors_js_1.invalidKey)('Signature-Key hwk scheme missing alg parameter');
}
// The key is inline, so a kid selects nothing and one that disagrees
// with the inline key has no defined resolution.
if (params.kid !== undefined) {
throw (0, errors_js_1.invalidKey)('Signature-Key hwk scheme MUST NOT include a kid parameter');
}
return [{ label, type: 'hwk', value: params }];

@@ -266,24 +295,16 @@ }

}
// Note: x509 scheme not yet implemented
// Future implementation would parse: x509;x5u="...";x5t="..."
// if (scheme === 'x509') {
// if (!params.x5u || !params.x5t) {
// throw new Error('Signature-Key x509 scheme missing x5u/x5t parameters')
// }
// return [{ label, type: 'x509', value: { x5u: params.x5u, x5t: params.x5t } }]
// }
throw new Error(`Unsupported Signature-Key scheme: ${scheme}`);
// Note: the x509, jwks, and self-jwt schemes are not yet implemented.
// Unknown and unimplemented schemes take the same defined path.
throw (0, errors_js_1.unsupportedScheme)(`Unsupported Signature-Key scheme: ${scheme}`);
}
/**
* Generate Signature-Error header value as RFC 8941 Dictionary
* Format: error=<code>[, supported_algorithms=("alg1" "alg2")][, required_input=("comp1" "comp2")]
* Format: error=<code>[, required_input=("comp1" "comp2")]
*
* The supported_algorithms member was removed in -07. A server states what
* would have worked in the Accept-Signature-Alg and Accept-Signature-Scheme
* header fields, which work on a challenge and on an error alike.
*/
function generateSignatureErrorHeader(signatureError) {
const parts = [`error=${signatureError.error}`];
if (signatureError.supported_algorithms) {
const algList = signatureError.supported_algorithms
.map((a) => `"${a}"`)
.join(' ');
parts.push(`supported_algorithms=(${algList})`);
}
if (signatureError.required_input) {

@@ -310,2 +331,3 @@ const inputList = signatureError.required_input

'unsupported_algorithm',
'unsupported_scheme',
'invalid_signature',

@@ -323,10 +345,2 @@ 'invalid_input',

const result = { error };
// Parse supported_algorithms inner list
const algMatch = trimmed.match(/supported_algorithms=\(([^)]*)\)/);
if (algMatch) {
result.supported_algorithms = algMatch[1]
.split(/\s+/)
.map((a) => a.replace(/"/g, ''))
.filter((a) => a);
}
// Parse required_input inner list

@@ -343,12 +357,65 @@ const inputMatch = trimmed.match(/required_input=\(([^)]*)\)/);

/**
* Generate an RFC 8941 List of Tokens.
*/
function generateTokenList(values) {
for (const value of values) {
if (!/^[A-Za-z*][A-Za-z0-9!#$%&'*+\-.^_`|~:/]*$/.test(value)) {
throw new Error(`Value is not a valid Structured Field Token: ${value}`);
}
}
return values.join(', ');
}
/**
* Parse an RFC 8941 List of Tokens, ignoring entries that are not tokens.
*/
function parseTokenList(header) {
return header
.split(',')
.map((v) => v.trim())
.filter((v) => /^[A-Za-z*][A-Za-z0-9!#$%&'*+\-.^_`|~:/]*$/.test(v));
}
/**
* Generate Accept-Signature-Scheme: the Signature-Key schemes the server
* accepts, in descending order of preference.
*
* Format: scheme1, scheme2
*/
function generateAcceptSignatureSchemeHeader(schemes) {
return generateTokenList(schemes);
}
/**
* Parse Accept-Signature-Scheme. Unrecognized tokens are preserved: a client
* ignores what it does not know so a server may list schemes registered after
* the client was written.
*/
function parseAcceptSignatureScheme(header) {
return parseTokenList(header);
}
/**
* Generate Accept-Signature-Alg: the signature algorithms the server accepts,
* as fully-specified JOSE identifiers.
*
* Format: alg1, alg2
*/
function generateAcceptSignatureAlgHeader(algs) {
return generateTokenList(algs);
}
/**
* Parse Accept-Signature-Alg.
*/
function parseAcceptSignatureAlg(header) {
return parseTokenList(header);
}
/**
* Generate Accept-Signature header value
* Format: label=("comp1" "comp2");sigkey=jkt[;alg="algo"][;tag="tag"]
* Format: label=("comp1" "comp2")[;alg="algo"][;tag="tag"]
*
* The sigkey parameter was removed in -07. A parameter value is a bare Item
* and cannot be a list, so sigkey could name only one scheme. Use
* Accept-Signature-Scheme and Accept-Signature-Alg instead.
*/
function generateAcceptSignatureHeader(params) {
const { label = 'sig', components, sigkey, alg, tag } = params;
const { label = 'sig', components, alg, tag } = params;
const componentList = components.map((c) => `"${c}"`).join(' ');
let header = `${label}=(${componentList})`;
if (sigkey) {
header += `;sigkey=${sigkey}`;
}
if (alg) {

@@ -364,3 +431,3 @@ header += `;alg="${alg}"`;

* Parse Accept-Signature header
* Format: label=("comp1" "comp2");sigkey=jkt[;alg="algo"][;tag="tag"]
* Format: label=("comp1" "comp2")[;alg="algo"][;tag="tag"]
*/

@@ -383,10 +450,2 @@ function parseAcceptSignature(header) {

if (paramsStr) {
// Parse sigkey token parameter
const sigkeyMatch = paramsStr.match(/;sigkey=([\w]+)/);
if (sigkeyMatch) {
const value = sigkeyMatch[1];
if (['jkt', 'uri', 'x509'].includes(value)) {
result.sigkey = value;
}
}
// Parse alg string parameter

@@ -393,0 +452,0 @@ const algMatch = paramsStr.match(/;alg="([^"]*)"/);

@@ -1,1 +0,1 @@

{"version":3,"file":"signature.js","sourceRoot":"","sources":["../../src/utils/signature.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"signature.js","sourceRoot":"","sources":["../../src/utils/signature.ts"],"names":[],"mappings":"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"}

@@ -1,1 +0,1 @@

{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../src/verify.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACH,aAAa,EACb,aAAa,EACb,kBAAkB,EAErB,MAAM,YAAY,CAAA;AAuUnB;;GAEG;AACH,wBAAsB,MAAM,CACxB,OAAO,EAAE,aAAa,EACtB,OAAO,GAAE,aAAkB,GAC5B,OAAO,CAAC,kBAAkB,CAAC,CAkR7B"}
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../src/verify.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACH,aAAa,EACb,aAAa,EACb,kBAAkB,EAErB,MAAM,YAAY,CAAA;AA+XnB;;GAEG;AACH,wBAAsB,MAAM,CACxB,OAAO,EAAE,aAAa,EACtB,OAAO,GAAE,aAAkB,GAC5B,OAAO,CAAC,kBAAkB,CAAC,CAmS7B"}

@@ -45,2 +45,3 @@ "use strict";

const cache_js_1 = require("./utils/cache.js");
const errors_js_1 = require("./errors.js");
// JWKS cache. Bounded: the cache key is a URL derived from the request being

@@ -51,2 +52,18 @@ // verified, so an unauthenticated signer would otherwise be able to grow this

/**
* Map a thrown error to a structured SignatureError.
*
* A SignatureVerificationError carries its code explicitly. Anything else is
* matched on message text, which covers paths that still throw plain Errors.
*/
function toSignatureError(error) {
if (error instanceof errors_js_1.SignatureVerificationError) {
const result = { error: error.code };
if (error.requiredInput) {
result.required_input = error.requiredInput;
}
return result;
}
return mapToSignatureError(error instanceof Error ? error.message : String(error));
}
/**
* Map an error message from verification to a structured SignatureError

@@ -164,15 +181,42 @@ */

/**
* Decode JWT and extract cnf.jwk claim
* Decode a jwt-scheme assertion and extract its cnf.jwk confirmation key.
*
* The issuer's signature over the assertion is NOT checked here -- the caller
* validates the issuer -- but `exp` is, because `exp` is what bounds how long
* the confirmation key the assertion carries remains acceptable. An assertion
* without `exp` would leave that key acceptable indefinitely.
*/
function decodeJWT(jwt) {
function decodeJWT(jwt, maxClockSkew) {
const parts = jwt.split('.');
if (parts.length !== 3) {
throw new Error('Invalid JWT format');
throw (0, errors_js_1.invalidJwt)('Invalid JWT format');
}
const header = JSON.parse(new TextDecoder().decode((0, base64_js_1.base64urlDecode)(parts[0])));
const payload = JSON.parse(new TextDecoder().decode((0, base64_js_1.base64urlDecode)(parts[1])));
let header;
let payload;
try {
header = JSON.parse(new TextDecoder().decode((0, base64_js_1.base64urlDecode)(parts[0])));
payload = JSON.parse(new TextDecoder().decode((0, base64_js_1.base64urlDecode)(parts[1])));
}
catch {
throw (0, errors_js_1.invalidJwt)('Invalid JWT: header or payload is not valid JSON');
}
// Extract cnf.jwk
if (!payload.cnf || !payload.cnf.jwk) {
throw new Error('JWT missing cnf.jwk claim');
throw (0, errors_js_1.invalidJwt)('JWT missing cnf.jwk claim');
}
const now = Math.floor(Date.now() / 1000);
if (typeof payload.exp !== 'number') {
throw (0, errors_js_1.invalidJwt)('JWT missing required exp claim');
}
if (payload.exp + maxClockSkew < now) {
throw (0, errors_js_1.expiredJwt)('JWT expired');
}
if (payload.iat !== undefined) {
if (typeof payload.iat !== 'number') {
throw (0, errors_js_1.invalidJwt)('JWT iat claim is not a number');
}
if (payload.iat - maxClockSkew > now) {
throw (0, errors_js_1.invalidJwt)('JWT iat is in the future');
}
}
return {

@@ -268,3 +312,2 @@ header,

const { maxClockSkew = 60, jwksCacheTtl = 3600000, // 1 hour
strictAAuth = true, // Enforce AAuth profile by default
} = options;

@@ -295,5 +338,12 @@ try {

const { components, params } = signatureInput;
// Validate that signature-key is in covered components (AAuth profile requirement)
if (strictAAuth && !components.includes('signature-key')) {
throw new Error('AAuth profile violation: signature-key must be in covered components');
// signature-key MUST be a covered component. If it is not, an attacker
// can substitute the scheme or the signer identity without
// invalidating the signature, so this is not optional.
if (!components.includes('signature-key')) {
throw (0, errors_js_1.invalidInput)('signature-key must be a covered component', [
'@method',
'@authority',
'@path',
'signature-key',
]);
}

@@ -316,3 +366,3 @@ // Validate timestamp

const jwtValue = signatureKey.value;
const { header, payload, publicKey } = decodeJWT(jwtValue.jwt);
const { header, payload, publicKey } = decodeJWT(jwtValue.jwt, maxClockSkew);
publicJwk = publicKey;

@@ -407,3 +457,13 @@ jwtData = {

}
// Add @signature-params
// Add @signature-params.
//
// Every parameter the signer sent is reproduced verbatim, including an
// `alg` parameter if one is present. @signature-params is covered by
// the signature, so dropping a parameter here would change the
// signature base and fail verification.
//
// Reproducing `alg` is not the same as honouring it: the algorithm is
// taken from the key material only (see getAlgorithmFromJwk below),
// per RFC 9421 Section 3.3.7. A signer that declares a misleading
// `alg` does not change which operation the verifier performs.
const componentList = components.map((c) => `"${c}"`).join(' ');

@@ -464,3 +524,3 @@ const paramPairs = Object.entries(params)

error: errorMessage,
signatureError: mapToSignatureError(errorMessage),
signatureError: toSignatureError(error),
};

@@ -467,0 +527,0 @@ }

@@ -1,1 +0,1 @@

{"version":3,"file":"verify.js","sourceRoot":"","sources":["../src/verify.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiVH,wBAqRC;AA9lBD,iDAK0B;AAC1B,uDAK6B;AAC7B,iDAAmD;AACnD,yDAA2D;AAC3D,+CAAkD;AAElD,6EAA6E;AAC7E,8EAA8E;AAC9E,mDAAmD;AACnD,MAAM,SAAS,GAAG,IAAI,0BAAe,EAAO,CAAA;AAE5C;;GAEG;AACH,SAAS,mBAAmB,CAAC,YAAoB;IAC7C,IACI,YAAY,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QAC9C,YAAY,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QAChD,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAC1C,YAAY,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QAC3C,YAAY,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QACjD,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QACxC,YAAY,CAAC,QAAQ,CAAC,4BAA4B,CAAC,EACrD,CAAC;QACC,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAA;IACzC,CAAC;IACD,IAAI,YAAY,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CAAC;QACnD,OAAO;YACH,KAAK,EAAE,eAAe;YACtB,cAAc,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,eAAe,CAAC;SACtE,CAAA;IACL,CAAC;IACD,IAAI,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC1C,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,CAAA;IACrC,CAAC;IACD,IAAI,YAAY,CAAC,QAAQ,CAAC,8BAA8B,CAAC,EAAE,CAAC;QACxD,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,CAAA;IACrC,CAAC;IACD,IACI,YAAY,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QACvD,YAAY,CAAC,QAAQ,CAAC,kCAAkC,CAAC,EAC3D,CAAC;QACC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA;IACnC,CAAC;IACD,IACI,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC;QACtC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,EAClC,CAAC;QACC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA;IACnC,CAAC;IACD,IACI,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC;QACpC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC;QACjC,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,EACxC,CAAC;QACC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA;IACnC,CAAC;IACD,IACI,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAC1C,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,EACtC,CAAC;QACC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA;IACnC,CAAC;IACD,IAAI,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;QAChD,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA;IACnC,CAAC;IACD,IACI,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC;QACjC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC;QACpC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,EACtC,CAAC;QACC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA;IACnC,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAA;AACzC,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CACrB,OAAoD;IAEpD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAA;IAExC,IAAI,OAAO,YAAY,OAAO,EAAE,CAAC;QAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAC3B,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,CAAA;QACxC,CAAC,CAAC,CAAA;IACN,CAAC;SAAM,CAAC;QACJ,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACjD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;YAClE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC,CAAA;QAC7C,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAA;AACjB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,SAAS,CAAC,GAAW,EAAE,QAAgB;IAClD,cAAc;IACd,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACjC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,MAAM,CAAA;IACjB,CAAC;IAED,aAAa;IACb,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC5C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACX,6BAA6B,GAAG,KAAK,QAAQ,CAAC,UAAU,EAAE,CAC7D,CAAA;IACL,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;IAElC,mBAAmB;IACnB,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;IAElC,OAAO,IAAI,CAAA;AACf,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,oBAAoB,CAC/B,EAAU,EACV,GAAW,EACX,GAAW,EACX,QAAgB;IAEhB,gCAAgC;IAChC,MAAM,WAAW,GAAG,GAAG,EAAE,gBAAgB,GAAG,EAAE,CAAA;IAC9C,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;IAEvD,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,uCAAuC,WAAW,EAAE,CAAC,CAAA;IACzE,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAA;IAEjC,aAAa;IACb,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IAE/C,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,4BAA4B,OAAO,EAAE,CAAC,CAAA;IAC1D,CAAC;IAED,6BAA6B;IAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAA;IAErD,IAAI,CAAC,GAAG,EAAE,CAAC;QACP,MAAM,IAAI,KAAK,CACX,iBAAiB,GAAG,4BAA4B,OAAO,EAAE,CAC5D,CAAA;IACL,CAAC;IAED,OAAO,GAAG,CAAA;AACd,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,GAAW;IAK1B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC5B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;IACzC,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CACrB,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAA,2BAAe,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CACtD,CAAA;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CACtB,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAA,2BAAe,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CACtD,CAAA;IAED,kBAAkB;IAClB,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAChD,CAAC;IAED,OAAO;QACH,MAAM;QACN,OAAO;QACP,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG;KAC7B,CAAA;AACL,CAAC;AAED;;GAEG;AACH,MAAM,aAAa,GAGf;IACA,cAAc,EAAE;QACZ,aAAa,EAAE,SAAS;QACxB,SAAS,EAAE,kBAAkB;KAChC;IACD,cAAc,EAAE;QACZ,aAAa,EAAE,SAAS;QACxB,SAAS,EAAE,kBAAkB;KAChC;CACJ,CAAA;AAED;;;GAGG;AACH,KAAK,UAAU,YAAY,CACvB,SAAiB,EACjB,YAAoB;IAQpB,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAClC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;IACzC,CAAC;IAED,0DAA0D;IAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CACrB,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAA,2BAAe,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CACtD,CAAA;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CACtB,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAA,2BAAe,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CACtD,CAAA;IAED,eAAe;IACf,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC3C,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACX,4BAA4B,MAAM,CAAC,GAAG,gBAAgB,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAChG,CAAA;IACL,CAAC;IAED,0CAA0C;IAC1C,MAAM,WAAW,GAAG,MAAM,CAAC,GAAiB,CAAA;IAC5C,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;IAC5D,CAAC;IAED,0EAA0E;IAC1E,MAAM,UAAU,GAAG,MAAM,IAAA,mCAAmB,EACxC,WAAW,EACX,SAAS,CAAC,aAAa,CAC1B,CAAA;IAED,uCAAuC;IACvC,MAAM,WAAW,GAAG,GAAG,SAAS,CAAC,SAAS,GAAG,UAAU,EAAE,CAAA;IACzD,IAAI,OAAO,CAAC,GAAG,KAAK,WAAW,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACX,mCAAmC,WAAW,SAAS,OAAO,CAAC,GAAG,EAAE,CACvE,CAAA;IACL,CAAC;IAED,iDAAiD;IACjD,IAAA,uBAAW,EAAC,WAAW,CAAC,CAAA;IACxB,MAAM,iBAAiB,GAAG,MAAM,IAAA,2BAAe,EAAC,WAAW,CAAC,CAAA;IAC5D,MAAM,SAAS,GAAG,IAAA,+BAAmB,EAAC,WAAW,CAAC,CAAA;IAElD,yDAAyD;IACzD,MAAM,UAAU,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACtE,MAAM,SAAS,GAAG,IAAA,2BAAe,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAE3C,MAAM,QAAQ,GAAG,MAAM,IAAA,kBAAY,EAC/B,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,SAAS,CACZ,CAAA;IACD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;IACjE,CAAC;IAED,0BAA0B;IAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;IAEzC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IACrD,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,GAAG,YAAY,GAAG,GAAG,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;IAC3C,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IACrD,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,GAAG,YAAY,GAAG,GAAG,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;IACxD,CAAC;IAED,wCAAwC;IACxC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;IACzD,CAAC;IAED,OAAO;QACH,MAAM;QACN,OAAO;QACP,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG;QAC7B,WAAW,EAAE,WAAW;QACxB,kBAAkB,EAAE,WAAW;KAClC,CAAA;AACL,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,MAAM,CACxB,OAAsB,EACtB,UAAyB,EAAE;IAE3B,MAAM,EACF,YAAY,GAAG,EAAE,EACjB,YAAY,GAAG,OAAO,EAAE,SAAS;IACjC,WAAW,GAAG,IAAI,EAAE,mCAAmC;MAC1D,GAAG,OAAO,CAAA;IAEX,IAAI,CAAC;QACD,oBAAoB;QACpB,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAEjD,8DAA8D;QAC9D,mEAAmE;QACnE,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;QACvD,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;QACnD,CAAC;QAED,MAAM,aAAa,GAAG,IAAA,gCAAiB,EAAC,kBAAkB,CAAC,CAAA;QAC3D,uEAAuE;QACvE,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;QACrC,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAA;QAEhC,4EAA4E;QAC5E,MAAM,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;QAC3D,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;QACrD,CAAC;QAED,MAAM,eAAe,GAAG,IAAA,kCAAmB,EAAC,oBAAoB,CAAC,CAAA;QACjE,MAAM,cAAc,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,CAAA;QAEvE,IAAI,CAAC,cAAc,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CACX,uCAAuC,KAAK,sBAAsB,CACrE,CAAA;QACL,CAAC;QAED,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,cAAc,CAAA;QAE7C,mFAAmF;QACnF,IAAI,WAAW,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CACX,sEAAsE,CACzE,CAAA;QACL,CAAC;QAED,qBAAqB;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;QAE3C,IAAI,IAAI,GAAG,YAAY,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACX,sDAAsD,IAAI,IAAI,CACjE,CAAA;QACL,CAAC;QAED,+BAA+B;QAC/B,IAAI,SAAqB,CAAA;QACzB,IAAI,OAA+D,CAAA;QACnE,IAAI,UAQW,CAAA;QACf,IAAI,WAAiE,CAAA;QAErE,IAAI,YAAY,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC9B,SAAS,GAAG,YAAY,CAAC,KAAmB,CAAA;QAChD,CAAC;aAAM,IAAI,YAAY,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAwB,CAAA;YACtD,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;YAC9D,SAAS,GAAG,SAAS,CAAA;YACrB,OAAO,GAAG;gBACN,MAAM;gBACN,OAAO;gBACP,GAAG,EAAE,QAAQ,CAAC,GAAG;aACpB,CAAA;QACL,CAAC;aAAM,IAAI,YAAY,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACzC,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAwB,CAAA;YACtD,MAAM,EACF,MAAM,EACN,OAAO,EACP,YAAY,EACZ,WAAW,EACX,kBAAkB,GACrB,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,CAAA;YAClD,SAAS,GAAG,YAAY,CAAA;YACxB,UAAU,GAAG;gBACT,MAAM;gBACN,OAAO;gBACP,GAAG,EAAE,QAAQ,CAAC,GAAG;gBACjB,WAAW;gBACX,kBAAkB;aACrB,CAAA;QACL,CAAC;aAAM,IAAI,YAAY,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC1C,MAAM,YAAY,GAAG,YAAY,CAAC,KAIjC,CAAA;YACD,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,YAAY,CAAA;YACrC,SAAS,GAAG,MAAM,oBAAoB,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,YAAY,CAAC,CAAA;YAClE,WAAW,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;QAClC,CAAC;aAAM,CAAC;YACJ,wCAAwC;YACxC,+BAA+B;YAC/B,8CAA8C;YAC9C,kCAAkC;YAClC,2BAA2B;YAC3B,sCAAsC;YACtC,WAAW;YACX,mDAAmD;YACnD,mDAAmD;YACnD,iDAAiD;YAEjD,MAAM,IAAI,KAAK,CACX,mCAAoC,YAAoB,CAAC,IAAI,EAAE,CAClE,CAAA;QACL,CAAC;QAED,sBAAsB;QACtB,IAAA,uBAAW,EAAC,SAAS,CAAC,CAAA;QAEtB,yBAAyB;QACzB,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QAChD,IAAI,CAAC,eAAe,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;QAC/C,CAAC;QAED,MAAM,UAAU,GAAG,IAAA,6BAAc,EAAC,eAAe,CAAC,CAAA;QAClD,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAEvC,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,iCAAiC,KAAK,EAAE,CAAC,CAAA;QAC7D,CAAC;QAED,yBAAyB;QACzB,+EAA+E;QAC/E,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QAC5D,MAAM,SAAS,GAAG,WAAW,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,GAAG,WAAW,EAAE,CAAA;QAE7E,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAA;QAEjD,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAA;QAC5D,eAAe,CAAC,GAAG,CAAC,aAAa,EAAE,SAAS,CAAC,CAAA;QAE7C,8DAA8D;QAC9D,eAAe,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;QAEpD,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QACvC,eAAe,CAAC,GAAG,CAAC,iBAAiB,EAAE,GAAG,OAAO,CAAC,IAAI,GAAG,WAAW,EAAE,CAAC,CAAA;QACvE,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;QAC1C,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;QAElD,6CAA6C;QAC7C,IACI,OAAO,CAAC,IAAI,KAAK,SAAS;YAC1B,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EACvC,CAAC;YACC,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;YACpD,IAAI,CAAC,cAAc,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CACX,uDAAuD,CAC1D,CAAA;YACL,CAAC;YAED,kCAAkC;YAClC,MAAM,EAAE,qBAAqB,EAAE,GAAG,wDAC9B,sBAAsB,GACzB,CAAA;YACD,MAAM,YAAY,GAAG,MAAM,qBAAqB,CAC5C,OAAO,CAAC,IAAW,CACtB,CAAA;YAED,IAAI,YAAY,KAAK,cAAc,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;YACzD,CAAC;QACL,CAAC;QAED,wBAAwB;QACxB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACjC,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5B,0DAA0D;gBAC1D,SAAQ;YACZ,CAAC;YAED,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;YACpC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,iCAAiC,SAAS,EAAE,CAAC,CAAA;YACjE,CAAC;YAED,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;QACzC,CAAC;QAED,wBAAwB;QACxB,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC/D,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;aACpC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAClB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC5B,OAAO,GAAG,GAAG,IAAI,KAAK,EAAE,CAAA;YAC5B,CAAC;YACD,qDAAqD;YACrD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;YACjC,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC3D,OAAO,GAAG,GAAG,IAAI,WAAW,EAAE,CAAA;YAClC,CAAC;YACD,OAAO,GAAG,GAAG,KAAK,WAAW,GAAG,CAAA;QACpC,CAAC,CAAC;aACD,IAAI,CAAC,GAAG,CAAC,CAAA;QACd,MAAM,eAAe,GAAG,IAAI,aAAa,KAAK,UAAU,EAAE,CAAA;QAC1D,eAAe,CAAC,GAAG,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAA;QACzD,MAAM,oBAAoB,GAAG,CAAC,GAAG,UAAU,EAAE,mBAAmB,CAAC,CAAA;QAEjE,0BAA0B;QAC1B,MAAM,aAAa,GAAG,IAAA,oCAAqB,EACvC,oBAAoB,EACpB,eAAe,CAClB,CAAA;QACD,MAAM,kBAAkB,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;QAElE,kEAAkE;QAClE,MAAM,UAAU,GAAG,MAAM,IAAA,mCAAmB,EAAC,SAAS,CAAC,CAAA;QAEvD,+BAA+B;QAC/B,MAAM,SAAS,GAAG,MAAM,IAAA,2BAAe,EAAC,SAAS,CAAC,CAAA;QAClD,MAAM,SAAS,GAAG,IAAA,+BAAmB,EAAC,SAAS,CAAC,CAAA;QAChD,MAAM,OAAO,GAAG,MAAM,IAAA,kBAAY,EAC9B,kBAAkB,EAClB,SAAS,EACT,SAAS,EACT,SAAS,CACZ,CAAA;QAED,MAAM,MAAM,GAAuB;YAC/B,QAAQ,EAAE,OAAO;YACjB,KAAK;YACL,OAAO,EAAE,YAAY,CAAC,IAAI;YAC1B,SAAS,EAAE,SAAS;YACpB,UAAU;YACV,OAAO,EAAE,MAAM,CAAC,OAAO;SAC1B,CAAA;QAED,IAAI,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,GAAG,GAAG,OAAO,CAAA;QACxB,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YACb,MAAM,CAAC,OAAO,GAAG,UAAU,CAAA;QAC/B,CAAC;QAED,IAAI,WAAW,EAAE,CAAC;YACd,MAAM,CAAC,QAAQ,GAAG,WAAW,CAAA;QACjC,CAAC;QAED,OAAO,MAAM,CAAA;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,YAAY,GACd,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC1D,OAAO;YACH,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,YAAY;YACnB,cAAc,EAAE,mBAAmB,CAAC,YAAY,CAAC;SACpD,CAAA;IACL,CAAC;AACL,CAAC"}
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../src/verify.ts"],"names":[],"mappings":"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"}
{
"name": "@hellocoop/httpsig",
"version": "1.7.1",
"version": "2.0.0-alpha.0",
"description": "HTTP Message Signatures (RFC 9421) with Signature-Key header support",

@@ -5,0 +5,0 @@ "repository": {

@@ -9,2 +9,14 @@ # @hellocoop/httpsig

### Draft version
| Package line | Implements | npm dist-tag |
| ------------ | -------------------------------------- | ------------ |
| `2.x` | `draft-hardt-httpbis-signature-key-07` | `alpha` |
| `1.x` | `draft-hardt-httpbis-signature-key-05` | `latest` |
The draft is not yet adopted and `-07` is not backward compatible with `-05`.
The `2.x` line tracks it and is published as a prerelease; `npm install
@hellocoop/httpsig` continues to give you `1.x` until `2.0.0` is released. See
[MIGRATING-2.0.md](./MIGRATING-2.0.md) for what changed.
**Key Features:**

@@ -11,0 +23,0 @@