@atproto/jwk 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/dist/alg.d.ts +2 -2
- package/dist/alg.d.ts.map +1 -1
- package/dist/alg.js +14 -8
- package/dist/alg.js.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/jwk.d.ts +3725 -1143
- package/dist/jwk.d.ts.map +1 -1
- package/dist/jwk.js +141 -47
- package/dist/jwk.js.map +1 -1
- package/dist/jwks.d.ts +212 -1523
- package/dist/jwks.d.ts.map +1 -1
- package/dist/jwks.js +21 -4
- package/dist/jwks.js.map +1 -1
- package/dist/jwt-decode.js.map +1 -1
- package/dist/jwt-verify.js.map +1 -1
- package/dist/jwt.d.ts +3937 -1186
- package/dist/jwt.d.ts.map +1 -1
- package/dist/jwt.js.map +1 -1
- package/dist/key.d.ts +22 -9
- package/dist/key.d.ts.map +1 -1
- package/dist/key.js +101 -20
- package/dist/key.js.map +1 -1
- package/dist/keyset.d.ts +382 -15
- package/dist/keyset.d.ts.map +1 -1
- package/dist/keyset.js +32 -46
- package/dist/keyset.js.map +1 -1
- package/dist/util.d.ts +1 -6
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +4 -0
- package/dist/util.js.map +1 -1
- package/package.json +2 -2
- package/src/alg.ts +22 -10
- package/src/jwk.ts +163 -51
- package/src/jwks.ts +23 -6
- package/src/key.ts +137 -27
- package/src/keyset.ts +60 -60
- package/src/util.ts +6 -18
package/dist/jwt.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../src/jwt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,eAAO,MAAM,eAAe,kGAGuB,CAAA;AAEnD,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AACvD,eAAO,MAAM,WAAW,GAAI,MAAM,OAAO,KAAG,IAAI,IAAI,SACX,CAAA;AAEzC,eAAO,MAAM,iBAAiB,wFAGqB,CAAA;AAEnD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAC3D,eAAO,MAAM,aAAa,GAAI,MAAM,OAAO,KAAG,IAAI,IAAI,WACX,CAAA;AAE3C;;GAEG;AACH,eAAO,MAAM,eAAe;IAExB,yCAAyC;;IAEzC,2CAA2C;;IAE3C,4CAA4C;;;;;;;;;;;;;;;;;;;;;;;IAW5C,sCAAsC;;IAEtC,yCAAyC;;IAEzC,uDAAuD;;IAEvD,kEAAkE;;IAElE,yEAAyE;;IAEzE,oCAAoC;;IAEpC,4CAA4C;;IAE5C,yCAAyC;;;IA7BzC,yCAAyC;;IAEzC,2CAA2C;;IAE3C,4CAA4C;;;;;;;;;;;;;;;;;;;;;;;IAW5C,sCAAsC;;IAEtC,yCAAyC;;IAEzC,uDAAuD;;IAEvD,kEAAkE;;IAElE,yEAAyE;;IAEzE,oCAAoC;;IAEpC,4CAA4C;;IAE5C,yCAAyC;;;IA7BzC,yCAAyC;;IAEzC,2CAA2C;;IAE3C,4CAA4C;;;;;;;;;;;;;;;;;;;;;;;IAW5C,sCAAsC;;IAEtC,yCAAyC;;IAEzC,uDAAuD;;IAEvD,kEAAkE;;IAElE,yEAAyE;;IAEzE,oCAAoC;;IAEpC,4CAA4C;;IAE5C,yCAAyC;;gCAG7B,CAAA;AAEhB,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAEvD;;;GAGG;AACH,eAAO,MAAM,SAAS,2CAsCpB,CAAA;AAGF,eAAO,MAAM,gBAAgB
|
|
1
|
+
{"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../src/jwt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,eAAO,MAAM,eAAe,kGAGuB,CAAA;AAEnD,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AACvD,eAAO,MAAM,WAAW,GAAI,MAAM,OAAO,KAAG,IAAI,IAAI,SACX,CAAA;AAEzC,eAAO,MAAM,iBAAiB,wFAGqB,CAAA;AAEnD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAC3D,eAAO,MAAM,aAAa,GAAI,MAAM,OAAO,KAAG,IAAI,IAAI,WACX,CAAA;AAE3C;;GAEG;AACH,eAAO,MAAM,eAAe;IAExB,yCAAyC;;IAEzC,2CAA2C;;IAE3C,4CAA4C;;;;;;;;;;;;;;;;;;;;;;;IAW5C,sCAAsC;;IAEtC,yCAAyC;;IAEzC,uDAAuD;;IAEvD,kEAAkE;;IAElE,yEAAyE;;IAEzE,oCAAoC;;IAEpC,4CAA4C;;IAE5C,yCAAyC;;;IA7BzC,yCAAyC;;IAEzC,2CAA2C;;IAE3C,4CAA4C;;;;;;;;;;;;;;;;;;;;;;;IAW5C,sCAAsC;;IAEtC,yCAAyC;;IAEzC,uDAAuD;;IAEvD,kEAAkE;;IAElE,yEAAyE;;IAEzE,oCAAoC;;IAEpC,4CAA4C;;IAE5C,yCAAyC;;;IA7BzC,yCAAyC;;IAEzC,2CAA2C;;IAE3C,4CAA4C;;;;;;;;;;;;;;;;;;;;;;;IAW5C,sCAAsC;;IAEtC,yCAAyC;;IAEzC,uDAAuD;;IAEvD,kEAAkE;;IAElE,yEAAyE;;IAEzE,oCAAoC;;IAEpC,4CAA4C;;IAE5C,yCAAyC;;gCAG7B,CAAA;AAEhB,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAEvD;;;GAGG;AACH,eAAO,MAAM,SAAS,2CAsCpB,CAAA;AAGF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCA6Gb,CAAA;AAEhB,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA"}
|
package/dist/jwt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt.js","sourceRoot":"","sources":["../src/jwt.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"jwt.js","sourceRoot":"","sources":["../src/jwt.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod'\nimport { jwkPubSchema } from './jwk.js'\nimport { jwtCharsRefinement, segmentedStringRefinementFactory } from './util.js'\n\nexport const signedJwtSchema = z\n .string()\n .superRefine(jwtCharsRefinement)\n .superRefine(segmentedStringRefinementFactory(3))\n\nexport type SignedJwt = z.infer<typeof signedJwtSchema>\nexport const isSignedJwt = (data: unknown): data is SignedJwt =>\n signedJwtSchema.safeParse(data).success\n\nexport const unsignedJwtSchema = z\n .string()\n .superRefine(jwtCharsRefinement)\n .superRefine(segmentedStringRefinementFactory(2))\n\nexport type UnsignedJwt = z.infer<typeof unsignedJwtSchema>\nexport const isUnsignedJwt = (data: unknown): data is UnsignedJwt =>\n unsignedJwtSchema.safeParse(data).success\n\n/**\n * @see {@link https://www.rfc-editor.org/rfc/rfc7515.html#section-4}\n */\nexport const jwtHeaderSchema = z\n .object({\n /** \"alg\" (Algorithm) Header Parameter */\n alg: z.string(),\n /** \"jku\" (JWK Set URL) Header Parameter */\n jku: z.string().url().optional(),\n /** \"jwk\" (JSON Web Key) Header Parameter */\n jwk: z\n .object({\n kty: z.string(),\n crv: z.string().optional(),\n x: z.string().optional(),\n y: z.string().optional(),\n e: z.string().optional(),\n n: z.string().optional(),\n })\n .optional(),\n /** \"kid\" (Key ID) Header Parameter */\n kid: z.string().optional(),\n /** \"x5u\" (X.509 URL) Header Parameter */\n x5u: z.string().optional(),\n /** \"x5c\" (X.509 Certificate Chain) Header Parameter */\n x5c: z.array(z.string()).optional(),\n /** \"x5t\" (X.509 Certificate SHA-1 Thumbprint) Header Parameter */\n x5t: z.string().optional(),\n /** \"x5t#S256\" (X.509 Certificate SHA-256 Thumbprint) Header Parameter */\n 'x5t#S256': z.string().optional(),\n /** \"typ\" (Type) Header Parameter */\n typ: z.string().optional(),\n /** \"cty\" (Content Type) Header Parameter */\n cty: z.string().optional(),\n /** \"crit\" (Critical) Header Parameter */\n crit: z.array(z.string()).optional(),\n })\n .passthrough()\n\nexport type JwtHeader = z.infer<typeof jwtHeaderSchema>\n\n/**\n * @see {@link https://www.rfc-editor.org/rfc/rfc9449.html#section-4.2-4.6}\n * @see {@link https://www.rfc-editor.org/rfc/rfc9110#section-7.1}\n */\nexport const htuSchema = z.string().superRefine((value, ctx) => {\n try {\n const url = new URL(value)\n if (url.protocol !== 'http:' && url.protocol !== 'https:') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'Only http: and https: protocols are allowed',\n })\n }\n\n if (url.username || url.password) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'Credentials not allowed',\n })\n }\n\n if (url.search) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'Query string not allowed',\n })\n }\n\n if (url.hash) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'Fragment not allowed',\n })\n }\n } catch (err) {\n ctx.addIssue({\n code: z.ZodIssueCode.invalid_string,\n validation: 'url',\n })\n }\n\n return value\n})\n\n// https://www.iana.org/assignments/jwt/jwt.xhtml\nexport const jwtPayloadSchema = z\n .object({\n iss: z.string().optional(),\n aud: z.union([z.string(), z.array(z.string()).nonempty()]).optional(),\n sub: z.string().optional(),\n exp: z.number().int().optional(),\n nbf: z.number().int().optional(),\n iat: z.number().int().optional(),\n jti: z.string().optional(),\n htm: z.string().optional(),\n htu: htuSchema.optional(),\n ath: z.string().optional(),\n acr: z.string().optional(),\n azp: z.string().optional(),\n amr: z.array(z.string()).optional(),\n // https://datatracker.ietf.org/doc/html/rfc7800\n cnf: z\n .object({\n kid: z.string().optional(), // Key ID\n jwk: jwkPubSchema.optional(), // JWK\n jwe: z.string().optional(), // Encrypted key\n jku: z.string().url().optional(), // JWK Set URI (\"kid\" should also be provided)\n\n // https://datatracker.ietf.org/doc/html/rfc9449#section-6.1\n jkt: z.string().optional(),\n\n // https://datatracker.ietf.org/doc/html/rfc8705\n 'x5t#S256': z.string().optional(), // X.509 Certificate SHA-256 Thumbprint\n\n // https://datatracker.ietf.org/doc/html/rfc9203\n osc: z.string().optional(), // OSCORE_Input_Material carrying the parameters for using OSCORE per-message security with implicit key confirmation\n })\n .optional(),\n\n client_id: z.string().optional(),\n\n scope: z.string().optional(),\n nonce: z.string().optional(),\n\n at_hash: z.string().optional(),\n c_hash: z.string().optional(),\n s_hash: z.string().optional(),\n auth_time: z.number().int().optional(),\n\n // https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims\n\n // OpenID: \"profile\" scope\n name: z.string().optional(),\n family_name: z.string().optional(),\n given_name: z.string().optional(),\n middle_name: z.string().optional(),\n nickname: z.string().optional(),\n preferred_username: z.string().optional(),\n gender: z.string().optional(), // OpenID only defines \"male\" and \"female\" without forbidding other values\n picture: z.string().url().optional(),\n profile: z.string().url().optional(),\n website: z.string().url().optional(),\n birthdate: z\n .string()\n .regex(/\\d{4}-\\d{2}-\\d{2}/) // YYYY-MM-DD\n .optional(),\n zoneinfo: z\n .string()\n .regex(/^[A-Za-z0-9_/]+$/)\n .optional(),\n locale: z\n .string()\n .regex(/^[a-z]{2,3}(-[A-Z]{2})?$/)\n .optional(),\n updated_at: z.number().int().optional(),\n\n // OpenID: \"email\" scope\n email: z.string().optional(),\n email_verified: z.boolean().optional(),\n\n // OpenID: \"phone\" scope\n phone_number: z.string().optional(),\n phone_number_verified: z.boolean().optional(),\n\n // OpenID: \"address\" scope\n // https://openid.net/specs/openid-connect-core-1_0.html#AddressClaim\n address: z\n .object({\n formatted: z.string().optional(),\n street_address: z.string().optional(),\n locality: z.string().optional(),\n region: z.string().optional(),\n postal_code: z.string().optional(),\n country: z.string().optional(),\n })\n .optional(),\n\n // https://datatracker.ietf.org/doc/html/rfc9396#section-14.2\n authorization_details: z\n .array(\n z\n .object({\n type: z.string(),\n // https://datatracker.ietf.org/doc/html/rfc9396#section-2.2\n locations: z.array(z.string()).optional(),\n actions: z.array(z.string()).optional(),\n datatypes: z.array(z.string()).optional(),\n identifier: z.string().optional(),\n privileges: z.array(z.string()).optional(),\n })\n .passthrough(),\n )\n .optional(),\n })\n .passthrough()\n\nexport type JwtPayload = z.infer<typeof jwtPayloadSchema>\n"]}
|
package/dist/key.d.ts
CHANGED
|
@@ -1,19 +1,29 @@
|
|
|
1
|
-
import { Jwk } from './jwk.js';
|
|
1
|
+
import { Jwk, KeyUsage, PrivateJwk, PublicJwk } from './jwk.js';
|
|
2
2
|
import { VerifyOptions, VerifyResult } from './jwt-verify.js';
|
|
3
3
|
import { JwtHeader, JwtPayload, SignedJwt } from './jwt.js';
|
|
4
|
+
export type KeyMatchOptions = {
|
|
5
|
+
usage?: KeyUsage;
|
|
6
|
+
kid?: string | string[];
|
|
7
|
+
alg?: string | string[];
|
|
8
|
+
};
|
|
9
|
+
export type ActivityCheckOptions = {
|
|
10
|
+
allowRevoked?: boolean;
|
|
11
|
+
clockTolerance?: number;
|
|
12
|
+
currentDate?: Date;
|
|
13
|
+
};
|
|
4
14
|
export declare abstract class Key<J extends Jwk = Jwk> {
|
|
5
|
-
|
|
15
|
+
readonly jwk: Readonly<J>;
|
|
6
16
|
constructor(jwk: Readonly<J>);
|
|
7
17
|
get isPrivate(): boolean;
|
|
8
18
|
get isSymetric(): boolean;
|
|
9
|
-
get privateJwk(): Readonly<
|
|
10
|
-
get publicJwk(): Readonly<
|
|
11
|
-
kty: 'oct';
|
|
12
|
-
}> & {
|
|
13
|
-
d?: never;
|
|
14
|
-
}> | undefined;
|
|
19
|
+
get privateJwk(): Readonly<PrivateJwk> | undefined;
|
|
20
|
+
get publicJwk(): Readonly<PublicJwk> | undefined;
|
|
15
21
|
get bareJwk(): Readonly<Jwk> | undefined;
|
|
16
|
-
|
|
22
|
+
/**
|
|
23
|
+
* @note Only defined on public keys
|
|
24
|
+
*/
|
|
25
|
+
get use(): 'sig' | 'enc' | undefined;
|
|
26
|
+
get keyOps(): readonly KeyUsage[] | undefined;
|
|
17
27
|
/**
|
|
18
28
|
* The (forced) algorithm to use. If not provided, the key will be usable with
|
|
19
29
|
* any of the algorithms in {@link algorithms}.
|
|
@@ -28,6 +38,9 @@ export declare abstract class Key<J extends Jwk = Jwk> {
|
|
|
28
38
|
* this set will only contain that algorithm.
|
|
29
39
|
*/
|
|
30
40
|
get algorithms(): readonly string[];
|
|
41
|
+
get isRevoked(): boolean;
|
|
42
|
+
isActive(options?: ActivityCheckOptions): boolean;
|
|
43
|
+
matches(opts: KeyMatchOptions): boolean;
|
|
31
44
|
/**
|
|
32
45
|
* Create a signed JWT
|
|
33
46
|
*/
|
package/dist/key.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key.d.ts","sourceRoot":"","sources":["../src/key.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"key.d.ts","sourceRoot":"","sources":["../src/key.ts"],"names":[],"mappings":"AACA,OAAO,EACL,GAAG,EACH,QAAQ,EAER,UAAU,EACV,SAAS,EASV,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC7D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAG3D,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,CAAC,EAAE,QAAQ,CAAA;IAChB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACvB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,IAAI,CAAA;CACnB,CAAA;AAED,8BAAsB,GAAG,CAAC,CAAC,SAAS,GAAG,GAAG,GAAG;IAC/B,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;gBAAhB,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;IAErC,IACI,SAAS,IAAI,OAAO,CAEvB;IAED,IACI,UAAU,IAAI,OAAO,CAExB;IAED,IAAI,UAAU,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,SAAS,CAIjD;IAED,IACI,SAAS,IAAI,QAAQ,CAAC,SAAS,CAAC,GAAG,SAAS,CAmB/C;IAED,IACI,OAAO,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,SAAS,CAIvC;IAED;;OAEG;IACH,IAAI,GAAG,IAAI,KAAK,GAAG,KAAK,GAAG,SAAS,CAEnC;IAED,IAAI,MAAM,IAAI,SAAS,QAAQ,EAAE,GAAG,SAAS,CAE5C;IAED;;;;;OAKG;IACH,IAAI,GAAG,yBAEN;IAED,IAAI,GAAG,yBAEN;IAED,IAAI,GAAG,gFAEN;IAED;;;OAGG;IACH,IACI,UAAU,IAAI,SAAS,MAAM,EAAE,CAElC;IAED,IAAI,SAAS,YAEZ;IAED,QAAQ,CAAC,OAAO,CAAC,EAAE,oBAAoB;IAevC,OAAO,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO;IA0CvC;;OAEG;IACH,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;IAE9E;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,MAAM,GAAG,KAAK,EACzC,KAAK,EAAE,SAAS,EAChB,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,GACzB,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;CAC5B"}
|
package/dist/key.js
CHANGED
|
@@ -36,65 +36,71 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn,
|
|
|
36
36
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
37
|
exports.Key = void 0;
|
|
38
38
|
const alg_js_1 = require("./alg.js");
|
|
39
|
-
const errors_js_1 = require("./errors.js");
|
|
40
39
|
const jwk_js_1 = require("./jwk.js");
|
|
41
40
|
const util_js_1 = require("./util.js");
|
|
42
|
-
const jwkSchemaReadonly = jwk_js_1.jwkSchema.readonly();
|
|
43
41
|
let Key = (() => {
|
|
44
42
|
var _a;
|
|
45
43
|
let _instanceExtraInitializers = [];
|
|
44
|
+
let _get_isPrivate_decorators;
|
|
45
|
+
let _get_isSymetric_decorators;
|
|
46
46
|
let _get_publicJwk_decorators;
|
|
47
47
|
let _get_bareJwk_decorators;
|
|
48
48
|
let _get_algorithms_decorators;
|
|
49
49
|
return _a = class Key {
|
|
50
50
|
constructor(jwk) {
|
|
51
|
-
// @TODO "use" is actually only for public keys. We should allow missing
|
|
52
|
-
// "use" here and automatically add it to the exposed `publicJwk`
|
|
53
51
|
Object.defineProperty(this, "jwk", {
|
|
54
52
|
enumerable: true,
|
|
55
53
|
configurable: true,
|
|
56
54
|
writable: true,
|
|
57
55
|
value: (__runInitializers(this, _instanceExtraInitializers), jwk)
|
|
58
56
|
});
|
|
59
|
-
// A key should always be used either for signing or encryption.
|
|
60
|
-
if (!jwk.use)
|
|
61
|
-
throw new errors_js_1.JwkError('Missing "use" Parameter value');
|
|
62
57
|
}
|
|
63
58
|
get isPrivate() {
|
|
64
|
-
|
|
65
|
-
if ('d' in jwk && jwk.d !== undefined)
|
|
66
|
-
return true;
|
|
67
|
-
if ('k' in jwk && jwk.k !== undefined)
|
|
68
|
-
return true;
|
|
69
|
-
return false;
|
|
59
|
+
return (0, jwk_js_1.isPrivateJwk)(this.jwk);
|
|
70
60
|
}
|
|
71
61
|
get isSymetric() {
|
|
72
|
-
|
|
73
|
-
if ('k' in jwk && jwk.k !== undefined)
|
|
74
|
-
return true;
|
|
75
|
-
return false;
|
|
62
|
+
return (0, jwk_js_1.hasSharedSecretJwk)(this.jwk);
|
|
76
63
|
}
|
|
77
64
|
get privateJwk() {
|
|
78
|
-
|
|
65
|
+
if (!this.isPrivate)
|
|
66
|
+
return undefined;
|
|
67
|
+
return this.jwk;
|
|
79
68
|
}
|
|
80
69
|
get publicJwk() {
|
|
81
70
|
if (this.isSymetric)
|
|
82
71
|
return undefined;
|
|
83
|
-
|
|
72
|
+
if (!this.isPrivate)
|
|
73
|
+
return this.jwk;
|
|
74
|
+
const validated = jwk_js_1.jwkPubSchema.safeParse({
|
|
84
75
|
...this.jwk,
|
|
85
76
|
d: undefined,
|
|
86
77
|
k: undefined,
|
|
78
|
+
use: undefined,
|
|
79
|
+
key_ops: buildPublicKeyOps(this.keyOps) ?? jwk_js_1.PUBLIC_KEY_USAGE,
|
|
87
80
|
});
|
|
81
|
+
// One reason why the parsing might fail is if key_ops is empty. This check
|
|
82
|
+
// also allows to future proof the code (e.g if another type of private key
|
|
83
|
+
// is added that uses a different property than "d" or "k" to store its
|
|
84
|
+
// private value).
|
|
85
|
+
if (!validated.success)
|
|
86
|
+
return undefined;
|
|
87
|
+
return Object.freeze(validated.data);
|
|
88
88
|
}
|
|
89
89
|
get bareJwk() {
|
|
90
90
|
if (this.isSymetric)
|
|
91
91
|
return undefined;
|
|
92
92
|
const { kty, crv, e, n, x, y } = this.jwk;
|
|
93
|
-
return
|
|
93
|
+
return Object.freeze(jwk_js_1.jwkSchema.parse({ crv, e, kty, n, x, y }));
|
|
94
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* @note Only defined on public keys
|
|
97
|
+
*/
|
|
95
98
|
get use() {
|
|
96
99
|
return this.jwk.use;
|
|
97
100
|
}
|
|
101
|
+
get keyOps() {
|
|
102
|
+
return this.jwk.key_ops;
|
|
103
|
+
}
|
|
98
104
|
/**
|
|
99
105
|
* The (forced) algorithm to use. If not provided, the key will be usable with
|
|
100
106
|
* any of the algorithms in {@link algorithms}.
|
|
@@ -117,12 +123,72 @@ let Key = (() => {
|
|
|
117
123
|
get algorithms() {
|
|
118
124
|
return Object.freeze(Array.from((0, alg_js_1.jwkAlgorithms)(this.jwk)));
|
|
119
125
|
}
|
|
126
|
+
get isRevoked() {
|
|
127
|
+
return this.jwk.revoked != null;
|
|
128
|
+
}
|
|
129
|
+
isActive(options) {
|
|
130
|
+
if (!options?.allowRevoked && this.isRevoked)
|
|
131
|
+
return false;
|
|
132
|
+
const tolerance = options?.clockTolerance ?? 0;
|
|
133
|
+
if (tolerance !== Infinity) {
|
|
134
|
+
const now = options?.currentDate?.getTime() ?? Date.now();
|
|
135
|
+
const { exp, nbf } = this.jwk;
|
|
136
|
+
if (nbf != null && !(now >= nbf * 1e3 - tolerance))
|
|
137
|
+
return false;
|
|
138
|
+
if (exp != null && !(now < exp * 1e3 + tolerance))
|
|
139
|
+
return false;
|
|
140
|
+
}
|
|
141
|
+
return true;
|
|
142
|
+
}
|
|
143
|
+
matches(opts) {
|
|
144
|
+
if (opts.kid != null) {
|
|
145
|
+
const matchesKid = Array.isArray(opts.kid)
|
|
146
|
+
? this.kid != null && opts.kid.includes(this.kid)
|
|
147
|
+
: this.kid === opts.kid;
|
|
148
|
+
if (!matchesKid)
|
|
149
|
+
return false;
|
|
150
|
+
}
|
|
151
|
+
if (opts.alg != null) {
|
|
152
|
+
const matchesAlg = Array.isArray(opts.alg)
|
|
153
|
+
? opts.alg.some((a) => this.algorithms.includes(a))
|
|
154
|
+
: this.algorithms.includes(opts.alg);
|
|
155
|
+
if (!matchesAlg)
|
|
156
|
+
return false;
|
|
157
|
+
}
|
|
158
|
+
if (opts.usage != null) {
|
|
159
|
+
const matchesOps = this.keyOps == null ||
|
|
160
|
+
this.keyOps.includes(opts.usage) ||
|
|
161
|
+
// @NOTE Because this.jwk represents the private key (typically used for
|
|
162
|
+
// private operations), the public counterpart operations are allowed.
|
|
163
|
+
(opts.usage === 'verify' && this.keyOps.includes('sign')) ||
|
|
164
|
+
(opts.usage === 'encrypt' && this.keyOps.includes('decrypt')) ||
|
|
165
|
+
(opts.usage === 'wrapKey' && this.keyOps.includes('unwrapKey'));
|
|
166
|
+
if (!matchesOps)
|
|
167
|
+
return false;
|
|
168
|
+
const matchesUse = this.use == null ||
|
|
169
|
+
(this.use === 'sig' && (0, jwk_js_1.isSigKeyUsage)(opts.usage)) ||
|
|
170
|
+
(this.use === 'enc' && (0, jwk_js_1.isEncKeyUsage)(opts.usage));
|
|
171
|
+
if (!matchesUse)
|
|
172
|
+
return false;
|
|
173
|
+
// @NOTE This is only relevant when "key_ops" and "use" are undefined.
|
|
174
|
+
// This line also ensures that when "opts.usage" is a private key usage
|
|
175
|
+
// (e.g. "sign"), the key is indeed a private key.
|
|
176
|
+
const matchesKeyType = this.isPrivate || (0, jwk_js_1.isPublicKeyUsage)(opts.usage);
|
|
177
|
+
if (!matchesKeyType)
|
|
178
|
+
return false;
|
|
179
|
+
}
|
|
180
|
+
return true;
|
|
181
|
+
}
|
|
120
182
|
},
|
|
121
183
|
(() => {
|
|
122
184
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
185
|
+
_get_isPrivate_decorators = [util_js_1.cachedGetter];
|
|
186
|
+
_get_isSymetric_decorators = [util_js_1.cachedGetter];
|
|
123
187
|
_get_publicJwk_decorators = [util_js_1.cachedGetter];
|
|
124
188
|
_get_bareJwk_decorators = [util_js_1.cachedGetter];
|
|
125
189
|
_get_algorithms_decorators = [util_js_1.cachedGetter];
|
|
190
|
+
__esDecorate(_a, null, _get_isPrivate_decorators, { kind: "getter", name: "isPrivate", static: false, private: false, access: { has: obj => "isPrivate" in obj, get: obj => obj.isPrivate }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
191
|
+
__esDecorate(_a, null, _get_isSymetric_decorators, { kind: "getter", name: "isSymetric", static: false, private: false, access: { has: obj => "isSymetric" in obj, get: obj => obj.isSymetric }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
126
192
|
__esDecorate(_a, null, _get_publicJwk_decorators, { kind: "getter", name: "publicJwk", static: false, private: false, access: { has: obj => "publicJwk" in obj, get: obj => obj.publicJwk }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
127
193
|
__esDecorate(_a, null, _get_bareJwk_decorators, { kind: "getter", name: "bareJwk", static: false, private: false, access: { has: obj => "bareJwk" in obj, get: obj => obj.bareJwk }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
128
194
|
__esDecorate(_a, null, _get_algorithms_decorators, { kind: "getter", name: "algorithms", static: false, private: false, access: { has: obj => "algorithms" in obj, get: obj => obj.algorithms }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
@@ -131,4 +197,19 @@ let Key = (() => {
|
|
|
131
197
|
_a;
|
|
132
198
|
})();
|
|
133
199
|
exports.Key = Key;
|
|
200
|
+
function buildPublicKeyOps(keyUsages) {
|
|
201
|
+
if (keyUsages == null)
|
|
202
|
+
return undefined;
|
|
203
|
+
// https://datatracker.ietf.org/doc/html/rfc7517#section-4.3
|
|
204
|
+
// > Duplicate key operation values MUST NOT be present in the array.
|
|
205
|
+
const publicOps = new Set(keyUsages.filter(jwk_js_1.isPublicKeyUsage));
|
|
206
|
+
// @NOTE Translating private key usage into public key usage
|
|
207
|
+
if (keyUsages.includes('sign'))
|
|
208
|
+
publicOps.add('verify');
|
|
209
|
+
if (keyUsages.includes('decrypt'))
|
|
210
|
+
publicOps.add('encrypt');
|
|
211
|
+
if (keyUsages.includes('unwrapKey'))
|
|
212
|
+
publicOps.add('wrapKey');
|
|
213
|
+
return Array.from(publicOps);
|
|
214
|
+
}
|
|
134
215
|
//# sourceMappingURL=key.js.map
|
package/dist/key.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key.js","sourceRoot":"","sources":["../src/key.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAwC;AACxC,2CAAsC;AACtC,qCAAyC;AAGzC,uCAAwC;AAExC,MAAM,iBAAiB,GAAG,kBAAS,CAAC,QAAQ,EAAE,CAAA;IAExB,GAAG;;;;;;sBAAH,GAAG;YACvB,YAA+B,GAAgB;gBAC7C,wEAAwE;gBACxE,iEAAiE;gBAFvD;;;;4BADQ,mDAAG,EACQ,GAAG;mBAAa;gBAI7C,gEAAgE;gBAChE,IAAI,CAAC,GAAG,CAAC,GAAG;oBAAE,MAAM,IAAI,oBAAQ,CAAC,+BAA+B,CAAC,CAAA;YACnE,CAAC;YAED,IAAI,SAAS;gBACX,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;gBACpB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,SAAS;oBAAE,OAAO,IAAI,CAAA;gBAClD,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,SAAS;oBAAE,OAAO,IAAI,CAAA;gBAClD,OAAO,KAAK,CAAA;YACd,CAAC;YAED,IAAI,UAAU;gBACZ,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;gBACpB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,SAAS;oBAAE,OAAO,IAAI,CAAA;gBAClD,OAAO,KAAK,CAAA;YACd,CAAC;YAED,IAAI,UAAU;gBACZ,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAA;YAC9C,CAAC;YAGD,IAAI,SAAS;gBAGX,IAAI,IAAI,CAAC,UAAU;oBAAE,OAAO,SAAS,CAAA;gBAErC,OAAO,iBAAiB,CAAC,KAAK,CAAC;oBAC7B,GAAG,IAAI,CAAC,GAAG;oBACX,CAAC,EAAE,SAAS;oBACZ,CAAC,EAAE,SAAS;iBACb,CAA+C,CAAA;YAClD,CAAC;YAGD,IAAI,OAAO;gBACT,IAAI,IAAI,CAAC,UAAU;oBAAE,OAAO,SAAS,CAAA;gBACrC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,GAAU,CAAA;gBAChD,OAAO,iBAAiB,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;YAC1D,CAAC;YAED,IAAI,GAAG;gBACL,OAAO,IAAI,CAAC,GAAG,CAAC,GAAI,CAAA;YACtB,CAAC;YAED;;;;;eAKG;YACH,IAAI,GAAG;gBACL,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;YACrB,CAAC;YAED,IAAI,GAAG;gBACL,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;YACrB,CAAC;YAED,IAAI,GAAG;gBACL,OAAQ,IAAI,CAAC,GAAyD,CAAC,GAAG,CAAA;YAC5E,CAAC;YAED;;;eAGG;YAEH,IAAI,UAAU;gBACZ,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAA,sBAAa,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YAC3D,CAAC;;;;yCAjDA,sBAAY;uCAaZ,sBAAY;0CAiCZ,sBAAY;YA7Cb,gLAAI,SAAS,6DAUZ;YAGD,0KAAI,OAAO,6DAIV;YA6BD,mLAAI,UAAU,6DAEb;;;;;AA3EmB,kBAAG"}
|
|
1
|
+
{"version":3,"file":"key.js","sourceRoot":"","sources":["../src/key.ts"],"names":[],"mappings":"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","sourcesContent":["import { jwkAlgorithms } from './alg.js'\nimport {\n Jwk,\n KeyUsage,\n PUBLIC_KEY_USAGE,\n PrivateJwk,\n PublicJwk,\n PublicKeyUsage,\n hasSharedSecretJwk,\n isEncKeyUsage,\n isPrivateJwk,\n isPublicKeyUsage,\n isSigKeyUsage,\n jwkPubSchema,\n jwkSchema,\n} from './jwk.js'\nimport { VerifyOptions, VerifyResult } from './jwt-verify.js'\nimport { JwtHeader, JwtPayload, SignedJwt } from './jwt.js'\nimport { cachedGetter } from './util.js'\n\nexport type KeyMatchOptions = {\n usage?: KeyUsage\n kid?: string | string[]\n alg?: string | string[]\n}\n\nexport type ActivityCheckOptions = {\n allowRevoked?: boolean\n clockTolerance?: number\n currentDate?: Date\n}\n\nexport abstract class Key<J extends Jwk = Jwk> {\n constructor(readonly jwk: Readonly<J>) {}\n\n @cachedGetter\n get isPrivate(): boolean {\n return isPrivateJwk(this.jwk)\n }\n\n @cachedGetter\n get isSymetric(): boolean {\n return hasSharedSecretJwk(this.jwk)\n }\n\n get privateJwk(): Readonly<PrivateJwk> | undefined {\n if (!this.isPrivate) return undefined\n\n return this.jwk as Readonly<PrivateJwk>\n }\n\n @cachedGetter\n get publicJwk(): Readonly<PublicJwk> | undefined {\n if (this.isSymetric) return undefined\n if (!this.isPrivate) return this.jwk as Readonly<PublicJwk>\n\n const validated = jwkPubSchema.safeParse({\n ...this.jwk,\n d: undefined,\n k: undefined,\n use: undefined,\n key_ops: buildPublicKeyOps(this.keyOps) ?? PUBLIC_KEY_USAGE,\n })\n\n // One reason why the parsing might fail is if key_ops is empty. This check\n // also allows to future proof the code (e.g if another type of private key\n // is added that uses a different property than \"d\" or \"k\" to store its\n // private value).\n if (!validated.success) return undefined\n\n return Object.freeze(validated.data)\n }\n\n @cachedGetter\n get bareJwk(): Readonly<Jwk> | undefined {\n if (this.isSymetric) return undefined\n const { kty, crv, e, n, x, y } = this.jwk as any\n return Object.freeze(jwkSchema.parse({ crv, e, kty, n, x, y }))\n }\n\n /**\n * @note Only defined on public keys\n */\n get use(): 'sig' | 'enc' | undefined {\n return this.jwk.use\n }\n\n get keyOps(): readonly KeyUsage[] | undefined {\n return this.jwk.key_ops\n }\n\n /**\n * The (forced) algorithm to use. If not provided, the key will be usable with\n * any of the algorithms in {@link algorithms}.\n *\n * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-3.1 | \"alg\" (Algorithm) Header Parameter Values for JWS}\n */\n get alg() {\n return this.jwk.alg\n }\n\n get kid() {\n return this.jwk.kid\n }\n\n get crv() {\n return (this.jwk as { crv: undefined } | Extract<J, { crv: unknown }>).crv\n }\n\n /**\n * All the algorithms that this key can be used with. If `alg` is provided,\n * this set will only contain that algorithm.\n */\n @cachedGetter\n get algorithms(): readonly string[] {\n return Object.freeze(Array.from(jwkAlgorithms(this.jwk)))\n }\n\n get isRevoked() {\n return this.jwk.revoked != null\n }\n\n isActive(options?: ActivityCheckOptions) {\n if (!options?.allowRevoked && this.isRevoked) return false\n\n const tolerance = options?.clockTolerance ?? 0\n if (tolerance !== Infinity) {\n const now = options?.currentDate?.getTime() ?? Date.now()\n const { exp, nbf } = this.jwk\n\n if (nbf != null && !(now >= nbf * 1e3 - tolerance)) return false\n if (exp != null && !(now < exp * 1e3 + tolerance)) return false\n }\n\n return true\n }\n\n matches(opts: KeyMatchOptions): boolean {\n if (opts.kid != null) {\n const matchesKid = Array.isArray(opts.kid)\n ? this.kid != null && opts.kid.includes(this.kid)\n : this.kid === opts.kid\n if (!matchesKid) return false\n }\n\n if (opts.alg != null) {\n const matchesAlg = Array.isArray(opts.alg)\n ? opts.alg.some((a) => this.algorithms.includes(a))\n : this.algorithms.includes(opts.alg)\n if (!matchesAlg) return false\n }\n\n if (opts.usage != null) {\n const matchesOps =\n this.keyOps == null ||\n this.keyOps.includes(opts.usage) ||\n // @NOTE Because this.jwk represents the private key (typically used for\n // private operations), the public counterpart operations are allowed.\n (opts.usage === 'verify' && this.keyOps.includes('sign')) ||\n (opts.usage === 'encrypt' && this.keyOps.includes('decrypt')) ||\n (opts.usage === 'wrapKey' && this.keyOps.includes('unwrapKey'))\n if (!matchesOps) return false\n\n const matchesUse =\n this.use == null ||\n (this.use === 'sig' && isSigKeyUsage(opts.usage)) ||\n (this.use === 'enc' && isEncKeyUsage(opts.usage))\n if (!matchesUse) return false\n\n // @NOTE This is only relevant when \"key_ops\" and \"use\" are undefined.\n // This line also ensures that when \"opts.usage\" is a private key usage\n // (e.g. \"sign\"), the key is indeed a private key.\n const matchesKeyType = this.isPrivate || isPublicKeyUsage(opts.usage)\n if (!matchesKeyType) return false\n }\n\n return true\n }\n\n /**\n * Create a signed JWT\n */\n abstract createJwt(header: JwtHeader, payload: JwtPayload): Promise<SignedJwt>\n\n /**\n * Verify the signature, headers and payload of a JWT\n *\n * @throws {JwtVerifyError} if the JWT is invalid\n */\n abstract verifyJwt<C extends string = never>(\n token: SignedJwt,\n options?: VerifyOptions<C>,\n ): Promise<VerifyResult<C>>\n}\n\nfunction buildPublicKeyOps(\n keyUsages?: readonly KeyUsage[],\n): PublicKeyUsage[] | undefined {\n if (keyUsages == null) return undefined\n\n // https://datatracker.ietf.org/doc/html/rfc7517#section-4.3\n // > Duplicate key operation values MUST NOT be present in the array.\n const publicOps = new Set(keyUsages.filter(isPublicKeyUsage))\n\n // @NOTE Translating private key usage into public key usage\n if (keyUsages.includes('sign')) publicOps.add('verify')\n if (keyUsages.includes('decrypt')) publicOps.add('encrypt')\n if (keyUsages.includes('unwrapKey')) publicOps.add('wrapKey')\n\n return Array.from(publicOps)\n}\n"]}
|