@atproto/jwk 0.4.0 → 0.5.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 +10 -0
- package/dist/jwk.d.ts +272 -651
- package/dist/jwk.d.ts.map +1 -1
- package/dist/jwk.js +16 -10
- package/dist/jwk.js.map +1 -1
- package/dist/jwks.d.ts +201 -193
- package/dist/jwks.d.ts.map +1 -1
- package/dist/jwks.js +8 -0
- package/dist/jwks.js.map +1 -1
- package/dist/jwt.d.ts +60 -630
- package/dist/jwt.d.ts.map +1 -1
- package/dist/key.d.ts.map +1 -1
- package/dist/key.js +2 -0
- package/dist/key.js.map +1 -1
- package/package.json +1 -1
- package/src/jwk.ts +25 -20
- package/src/jwks.ts +8 -0
- package/src/key.ts +3 -0
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/key.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key.d.ts","sourceRoot":"","sources":["../src/key.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAa,MAAM,UAAU,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC7D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAK3D,8BAAsB,GAAG,CAAC,CAAC,SAAS,GAAG,GAAG,GAAG;IAC/B,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;gBAAhB,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"key.d.ts","sourceRoot":"","sources":["../src/key.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAa,MAAM,UAAU,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC7D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAK3D,8BAAsB,GAAG,CAAC,CAAC,SAAS,GAAG,GAAG,GAAG;IAC/B,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;gBAAhB,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;IAQ/C,IAAI,SAAS,IAAI,OAAO,CAKvB;IAED,IAAI,UAAU,IAAI,OAAO,CAIxB;IAED,IAAI,UAAU,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAExC;IAED,IACI,SAAS,IACT,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE;QAAE,GAAG,EAAE,KAAK,CAAA;KAAE,CAAC,GAAG;QAAE,CAAC,CAAC,EAAE,KAAK,CAAA;KAAE,CAAC,GACpD,SAAS,CAQZ;IAED,IACI,OAAO,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,SAAS,CAIvC;IAED,IAAI,GAAG,0BAEN;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;;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
|
@@ -48,6 +48,8 @@ let Key = (() => {
|
|
|
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`
|
|
51
53
|
Object.defineProperty(this, "jwk", {
|
|
52
54
|
enumerable: true,
|
|
53
55
|
configurable: true,
|
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;
|
|
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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atproto/jwk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "A library for working with JSON Web Keys (JWKs) in TypeScript. This is meant to be extended by environment-specific libraries like @atproto/jwk-jose.",
|
|
6
6
|
"keywords": [
|
package/src/jwk.ts
CHANGED
|
@@ -111,36 +111,41 @@ export const jwkUnknownKeySchema = jwkBaseSchema.extend({
|
|
|
111
111
|
.refine((v) => v !== 'RSA' && v !== 'EC' && v !== 'OKP' && v !== 'oct'),
|
|
112
112
|
})
|
|
113
113
|
|
|
114
|
-
export const jwkSchema = z
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
export type Jwk = z.infer<typeof jwkSchema>
|
|
124
|
-
|
|
125
|
-
export const jwkValidator = jwkSchema
|
|
126
|
-
.refine((k) => k.use != null || k.key_ops != null, 'use or key_ops required')
|
|
114
|
+
export const jwkSchema = z
|
|
115
|
+
.union([
|
|
116
|
+
jwkUnknownKeySchema,
|
|
117
|
+
jwkRsaKeySchema,
|
|
118
|
+
jwkEcKeySchema,
|
|
119
|
+
jwkEcSecp256k1KeySchema,
|
|
120
|
+
jwkOkpKeySchema,
|
|
121
|
+
jwkSymKeySchema,
|
|
122
|
+
])
|
|
127
123
|
.refine(
|
|
128
124
|
(k) =>
|
|
125
|
+
// https://datatracker.ietf.org/doc/html/rfc7517#section-4.3
|
|
126
|
+
// > The "use" parameter is employed to indicate whether a public key is
|
|
127
|
+
// > used for encrypting data or verifying the signature on data.
|
|
129
128
|
!k.use ||
|
|
130
129
|
!k.key_ops ||
|
|
131
|
-
k.key_ops.every(
|
|
132
|
-
k.use === 'sig'
|
|
133
|
-
? o === 'sign' || o === 'verify'
|
|
134
|
-
: o === 'encrypt' || o === 'decrypt',
|
|
130
|
+
k.key_ops.every(
|
|
131
|
+
k.use === 'sig' ? (o) => o === 'verify' : (o) => o === 'decrypt',
|
|
135
132
|
),
|
|
136
|
-
|
|
133
|
+
{
|
|
134
|
+
message: 'use and key_ops must be consistent',
|
|
135
|
+
path: ['key_ops'],
|
|
136
|
+
},
|
|
137
137
|
)
|
|
138
138
|
|
|
139
|
-
export
|
|
139
|
+
export type Jwk = z.infer<typeof jwkSchema>
|
|
140
|
+
|
|
141
|
+
/** @deprecated use {@link jwkSchema} */
|
|
142
|
+
export const jwkValidator = jwkSchema
|
|
143
|
+
|
|
144
|
+
export const jwkPubSchema = jwkSchema
|
|
140
145
|
.refine((k) => k.kid != null, 'kid is required')
|
|
141
146
|
.refine((k) => !('k' in k) && !('d' in k), 'private key not allowed')
|
|
142
147
|
|
|
143
|
-
export const jwkPrivateSchema =
|
|
148
|
+
export const jwkPrivateSchema = jwkSchema.refine(
|
|
144
149
|
(k) => ('k' in k && k.k != null) || ('d' in k && k.d != null),
|
|
145
150
|
'private key required',
|
|
146
151
|
)
|
package/src/jwks.ts
CHANGED
|
@@ -1,12 +1,20 @@
|
|
|
1
1
|
import { z } from 'zod'
|
|
2
2
|
import { jwkPubSchema, jwkSchema } from './jwk.js'
|
|
3
3
|
|
|
4
|
+
/**
|
|
5
|
+
* JSON Web Key Set schema. The keys set, in this context, represents a
|
|
6
|
+
* collection of JSON Web Keys (JWKs), that can be both public and private.
|
|
7
|
+
*/
|
|
4
8
|
export const jwksSchema = z.object({
|
|
5
9
|
keys: z.array(jwkSchema),
|
|
6
10
|
})
|
|
7
11
|
|
|
8
12
|
export type Jwks = z.infer<typeof jwksSchema>
|
|
9
13
|
|
|
14
|
+
/**
|
|
15
|
+
* Public JSON Web Key Set schema. All keys must be public keys, have a `kid`,
|
|
16
|
+
* and `use` or `key_ops` defined.
|
|
17
|
+
*/
|
|
10
18
|
export const jwksPubSchema = z.object({
|
|
11
19
|
keys: z.array(jwkPubSchema),
|
|
12
20
|
})
|
package/src/key.ts
CHANGED
|
@@ -9,6 +9,9 @@ const jwkSchemaReadonly = jwkSchema.readonly()
|
|
|
9
9
|
|
|
10
10
|
export abstract class Key<J extends Jwk = Jwk> {
|
|
11
11
|
constructor(protected readonly jwk: Readonly<J>) {
|
|
12
|
+
// @TODO "use" is actually only for public keys. We should allow missing
|
|
13
|
+
// "use" here and automatically add it to the exposed `publicJwk`
|
|
14
|
+
|
|
12
15
|
// A key should always be used either for signing or encryption.
|
|
13
16
|
if (!jwk.use) throw new JwkError('Missing "use" Parameter value')
|
|
14
17
|
}
|