@atproto/jwk 0.1.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 +7 -0
- package/LICENSE.txt +7 -0
- package/dist/alg.d.ts +3 -0
- package/dist/alg.d.ts.map +1 -0
- package/dist/alg.js +90 -0
- package/dist/alg.js.map +1 -0
- package/dist/errors.d.ts +24 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +62 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +27 -0
- package/dist/index.js.map +1 -0
- package/dist/jwk.d.ts +2424 -0
- package/dist/jwk.d.ts.map +1 -0
- package/dist/jwk.js +112 -0
- package/dist/jwk.js.map +1 -0
- package/dist/jwks.d.ts +1770 -0
- package/dist/jwks.d.ts.map +1 -0
- package/dist/jwks.js +12 -0
- package/dist/jwks.js.map +1 -0
- package/dist/jwt-decode.d.ts +6 -0
- package/dist/jwt-decode.d.ts.map +1 -0
- package/dist/jwt-decode.js +20 -0
- package/dist/jwt-decode.js.map +1 -0
- package/dist/jwt-verify.d.ts +20 -0
- package/dist/jwt-verify.d.ts.map +1 -0
- package/dist/jwt-verify.js +3 -0
- package/dist/jwt-verify.js.map +1 -0
- package/dist/jwt.d.ts +1785 -0
- package/dist/jwt.d.ts.map +1 -0
- package/dist/jwt.js +150 -0
- package/dist/jwt.js.map +1 -0
- package/dist/key.d.ts +38 -0
- package/dist/key.d.ts.map +1 -0
- package/dist/key.js +131 -0
- package/dist/key.js.map +1 -0
- package/dist/keyset.d.ts +41 -0
- package/dist/keyset.d.ts.map +1 -0
- package/dist/keyset.js +234 -0
- package/dist/keyset.js.map +1 -0
- package/dist/util.d.ts +48 -0
- package/dist/util.d.ts.map +1 -0
- package/dist/util.js +143 -0
- package/dist/util.js.map +1 -0
- package/package.json +38 -0
- package/src/alg.ts +98 -0
- package/src/errors.ts +56 -0
- package/src/index.ts +10 -0
- package/src/jwk.ts +141 -0
- package/src/jwks.ts +15 -0
- package/src/jwt-decode.ts +27 -0
- package/src/jwt-verify.ts +22 -0
- package/src/jwt.ts +173 -0
- package/src/key.ts +93 -0
- package/src/keyset.ts +240 -0
- package/src/util.ts +181 -0
- package/tsconfig.build.json +8 -0
- package/tsconfig.json +4 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jwk.d.ts","sourceRoot":"","sources":["../src/jwk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,cAAc,wGASzB,CAAA;AAEF,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA;AAErD;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYxB,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0B1B,CAAA;AAEF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASzB,CAAA;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASlC,CAAA;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAO1B,CAAA;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK1B,CAAA;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI9B,CAAA;AAEF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAOpB,CAAA;AAEF,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAA;AAE3C,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYtB,CAAA;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE8C,CAAA"}
|
package/dist/jwk.js
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.jwkPubSchema = exports.jwkValidator = exports.jwkSchema = exports.jwkUnknownKeySchema = exports.jwkSymKeySchema = exports.jwkOkpKeySchema = exports.jwkEcSecp256k1KeySchema = exports.jwkEcKeySchema = exports.jwkRsaKeySchema = exports.jwkBaseSchema = exports.keyUsageSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
exports.keyUsageSchema = zod_1.z.enum([
|
|
6
|
+
'sign',
|
|
7
|
+
'verify',
|
|
8
|
+
'encrypt',
|
|
9
|
+
'decrypt',
|
|
10
|
+
'wrapKey',
|
|
11
|
+
'unwrapKey',
|
|
12
|
+
'deriveKey',
|
|
13
|
+
'deriveBits',
|
|
14
|
+
]);
|
|
15
|
+
/**
|
|
16
|
+
* The "use" and "key_ops" JWK members SHOULD NOT be used together;
|
|
17
|
+
* however, if both are used, the information they convey MUST be
|
|
18
|
+
* consistent. Applications should specify which of these members they
|
|
19
|
+
* use, if either is to be used by the application.
|
|
20
|
+
*
|
|
21
|
+
* @todo Actually check that "use" and "key_ops" are consistent when both are present.
|
|
22
|
+
* @see {@link https://datatracker.ietf.org/doc/html/rfc7517#section-4.3}
|
|
23
|
+
*/
|
|
24
|
+
exports.jwkBaseSchema = zod_1.z.object({
|
|
25
|
+
kty: zod_1.z.string().min(1),
|
|
26
|
+
alg: zod_1.z.string().min(1).optional(),
|
|
27
|
+
kid: zod_1.z.string().min(1).optional(),
|
|
28
|
+
ext: zod_1.z.boolean().optional(),
|
|
29
|
+
use: zod_1.z.enum(['sig', 'enc']).optional(),
|
|
30
|
+
key_ops: zod_1.z.array(exports.keyUsageSchema).optional(),
|
|
31
|
+
x5c: zod_1.z.array(zod_1.z.string()).optional(), // X.509 Certificate Chain
|
|
32
|
+
x5t: zod_1.z.string().min(1).optional(), // X.509 Certificate SHA-1 Thumbprint
|
|
33
|
+
'x5t#S256': zod_1.z.string().min(1).optional(), // X.509 Certificate SHA-256 Thumbprint
|
|
34
|
+
x5u: zod_1.z.string().url().optional(), // X.509 URL
|
|
35
|
+
});
|
|
36
|
+
/**
|
|
37
|
+
* @todo: properly implement this
|
|
38
|
+
*/
|
|
39
|
+
exports.jwkRsaKeySchema = exports.jwkBaseSchema.extend({
|
|
40
|
+
kty: zod_1.z.literal('RSA'),
|
|
41
|
+
alg: zod_1.z
|
|
42
|
+
.enum(['RS256', 'RS384', 'RS512', 'PS256', 'PS384', 'PS512'])
|
|
43
|
+
.optional(),
|
|
44
|
+
n: zod_1.z.string().min(1), // Modulus
|
|
45
|
+
e: zod_1.z.string().min(1), // Exponent
|
|
46
|
+
d: zod_1.z.string().min(1).optional(), // Private Exponent
|
|
47
|
+
p: zod_1.z.string().min(1).optional(), // First Prime Factor
|
|
48
|
+
q: zod_1.z.string().min(1).optional(), // Second Prime Factor
|
|
49
|
+
dp: zod_1.z.string().min(1).optional(), // First Factor CRT Exponent
|
|
50
|
+
dq: zod_1.z.string().min(1).optional(), // Second Factor CRT Exponent
|
|
51
|
+
qi: zod_1.z.string().min(1).optional(), // First CRT Coefficient
|
|
52
|
+
oth: zod_1.z
|
|
53
|
+
.array(zod_1.z.object({
|
|
54
|
+
r: zod_1.z.string().optional(),
|
|
55
|
+
d: zod_1.z.string().optional(),
|
|
56
|
+
t: zod_1.z.string().optional(),
|
|
57
|
+
}))
|
|
58
|
+
.nonempty()
|
|
59
|
+
.optional(), // Other Primes Info
|
|
60
|
+
});
|
|
61
|
+
exports.jwkEcKeySchema = exports.jwkBaseSchema.extend({
|
|
62
|
+
kty: zod_1.z.literal('EC'),
|
|
63
|
+
alg: zod_1.z.enum(['ES256', 'ES384', 'ES512']).optional(),
|
|
64
|
+
crv: zod_1.z.enum(['P-256', 'P-384', 'P-521']),
|
|
65
|
+
x: zod_1.z.string().min(1),
|
|
66
|
+
y: zod_1.z.string().min(1),
|
|
67
|
+
d: zod_1.z.string().min(1).optional(), // ECC Private Key
|
|
68
|
+
});
|
|
69
|
+
exports.jwkEcSecp256k1KeySchema = exports.jwkBaseSchema.extend({
|
|
70
|
+
kty: zod_1.z.literal('EC'),
|
|
71
|
+
alg: zod_1.z.enum(['ES256K']).optional(),
|
|
72
|
+
crv: zod_1.z.enum(['secp256k1']),
|
|
73
|
+
x: zod_1.z.string().min(1),
|
|
74
|
+
y: zod_1.z.string().min(1),
|
|
75
|
+
d: zod_1.z.string().min(1).optional(), // ECC Private Key
|
|
76
|
+
});
|
|
77
|
+
exports.jwkOkpKeySchema = exports.jwkBaseSchema.extend({
|
|
78
|
+
kty: zod_1.z.literal('OKP'),
|
|
79
|
+
alg: zod_1.z.enum(['EdDSA']).optional(),
|
|
80
|
+
crv: zod_1.z.enum(['Ed25519', 'Ed448']),
|
|
81
|
+
x: zod_1.z.string().min(1),
|
|
82
|
+
d: zod_1.z.string().min(1).optional(), // ECC Private Key
|
|
83
|
+
});
|
|
84
|
+
exports.jwkSymKeySchema = exports.jwkBaseSchema.extend({
|
|
85
|
+
kty: zod_1.z.literal('oct'), // Octet Sequence (used to represent symmetric keys)
|
|
86
|
+
alg: zod_1.z.enum(['HS256', 'HS384', 'HS512']).optional(),
|
|
87
|
+
k: zod_1.z.string(), // Key Value (base64url encoded)
|
|
88
|
+
});
|
|
89
|
+
exports.jwkUnknownKeySchema = exports.jwkBaseSchema.extend({
|
|
90
|
+
kty: zod_1.z
|
|
91
|
+
.string()
|
|
92
|
+
.refine((v) => v !== 'RSA' && v !== 'EC' && v !== 'OKP' && v !== 'oct'),
|
|
93
|
+
});
|
|
94
|
+
exports.jwkSchema = zod_1.z.union([
|
|
95
|
+
exports.jwkUnknownKeySchema,
|
|
96
|
+
exports.jwkRsaKeySchema,
|
|
97
|
+
exports.jwkEcKeySchema,
|
|
98
|
+
exports.jwkEcSecp256k1KeySchema,
|
|
99
|
+
exports.jwkOkpKeySchema,
|
|
100
|
+
exports.jwkSymKeySchema,
|
|
101
|
+
]);
|
|
102
|
+
exports.jwkValidator = exports.jwkSchema
|
|
103
|
+
.refine((k) => k.use != null || k.key_ops != null, 'use or key_ops required')
|
|
104
|
+
.refine((k) => !k.use ||
|
|
105
|
+
!k.key_ops ||
|
|
106
|
+
k.key_ops.every((o) => k.use === 'sig'
|
|
107
|
+
? o === 'sign' || o === 'verify'
|
|
108
|
+
: o === 'encrypt' || o === 'decrypt'), 'use and key_ops must be consistent');
|
|
109
|
+
exports.jwkPubSchema = exports.jwkValidator
|
|
110
|
+
.refine((k) => k.kid != null, 'kid is required')
|
|
111
|
+
.refine((k) => !('k' in k) && !('d' in k), 'private key not allowed');
|
|
112
|
+
//# sourceMappingURL=jwk.js.map
|
package/dist/jwk.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jwk.js","sourceRoot":"","sources":["../src/jwk.ts"],"names":[],"mappings":"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"}
|