@schemavaults/jwt 0.6.16 → 0.6.22

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.
@@ -0,0 +1,7 @@
1
+ import { type ApiServerId } from "@schemavaults/app-definitions";
2
+ export interface ICreateJwksAccessProofToken {
3
+ api_server_id: ApiServerId;
4
+ private_key: CryptoKey;
5
+ }
6
+ export declare function createJwksAccessProofToken({ api_server_id, private_key, }: ICreateJwksAccessProofToken): Promise<string>;
7
+ export default createJwksAccessProofToken;
@@ -0,0 +1,25 @@
1
+ import { sign_verify_alg } from "../jwt";
2
+ import { apiServerIdSchema, SCHEMAVAULTS_AUTH_APP_DEFINITION, SCHEMAVAULTS_AUTH_SERVER, } from "@schemavaults/app-definitions";
3
+ import { SignJWT } from "jose";
4
+ export async function createJwksAccessProofToken({ api_server_id, private_key, }) {
5
+ if (!apiServerIdSchema.safeParse(api_server_id)) {
6
+ throw new TypeError("Invalid API server ID!");
7
+ }
8
+ if (api_server_id === SCHEMAVAULTS_AUTH_SERVER.api_server_id) {
9
+ throw new Error(`'${SCHEMAVAULTS_AUTH_SERVER.api_server_id}' does not use JWKS access proof tokens`);
10
+ }
11
+ const token_builder = new SignJWT({
12
+ api_server_id,
13
+ })
14
+ .setSubject(api_server_id)
15
+ .setIssuer(api_server_id)
16
+ .setAudience(SCHEMAVAULTS_AUTH_APP_DEFINITION.app_id)
17
+ .setNotBefore(new Date(Date.now() - 1))
18
+ .setExpirationTime("2 min")
19
+ .setProtectedHeader({
20
+ alg: sign_verify_alg,
21
+ });
22
+ return await token_builder.sign(private_key);
23
+ }
24
+ export default createJwksAccessProofToken;
25
+ //# sourceMappingURL=createJwksAccessProofToken.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createJwksAccessProofToken.js","sourceRoot":"","sources":["../../src/JwksAccessProofToken/createJwksAccessProofToken.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAEL,iBAAiB,EACjB,gCAAgC,EAChC,wBAAwB,GACzB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAO/B,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,EAC/C,aAAa,EACb,WAAW,GACiB;IAC5B,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,SAAS,CAAC,wBAAwB,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,aAAa,KAAK,wBAAwB,CAAC,aAAa,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CACb,IAAI,wBAAwB,CAAC,aAAa,yCAAyC,CACpF,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC;QAChC,aAAa;KACd,CAAC;SACC,UAAU,CAAC,aAAa,CAAC;SACzB,SAAS,CAAC,aAAa,CAAC;SACxB,WAAW,CAAC,gCAAgC,CAAC,MAAM,CAAC;SACpD,YAAY,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;SACtC,iBAAiB,CAAC,OAAO,CAAC;SAC1B,kBAAkB,CAAC;QAClB,GAAG,EAAE,eAAe;KACrB,CAAC,CAAC;IAEL,OAAO,MAAM,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC/C,CAAC;AAED,eAAe,0BAA0B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { verifyJwksAccessProofToken } from "./verifyJwksAccessProofToken";
2
+ export { createJwksAccessProofToken } from "./createJwksAccessProofToken";
@@ -0,0 +1,3 @@
1
+ export { verifyJwksAccessProofToken } from "./verifyJwksAccessProofToken";
2
+ export { createJwksAccessProofToken } from "./createJwksAccessProofToken";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/JwksAccessProofToken/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { type ApiServerId } from "@schemavaults/app-definitions";
2
+ export interface IVerifyJwksAccessProofToken {
3
+ token: string;
4
+ api_server_id: ApiServerId;
5
+ public_key: CryptoKey;
6
+ }
7
+ export declare function verifyJwksAccessProofToken({ token, api_server_id, public_key, }: IVerifyJwksAccessProofToken): Promise<boolean>;
8
+ export default verifyJwksAccessProofToken;
@@ -0,0 +1,33 @@
1
+ import { apiServerIdSchema, SCHEMAVAULTS_AUTH_APP_DEFINITION, SCHEMAVAULTS_AUTH_SERVER, } from "@schemavaults/app-definitions";
2
+ import { jwtVerify } from "jose";
3
+ import signVerifyAlg, { sign_verify_alg } from "../jwt/sign_verify_alg";
4
+ export async function verifyJwksAccessProofToken({ token, api_server_id, public_key, }) {
5
+ if (typeof token !== "string") {
6
+ throw new TypeError("Expected token to verify to be a string!");
7
+ }
8
+ if (!apiServerIdSchema.safeParse(api_server_id)) {
9
+ throw new TypeError("Invalid API server ID!");
10
+ }
11
+ if (api_server_id === SCHEMAVAULTS_AUTH_SERVER.api_server_id) {
12
+ throw new Error(`'${SCHEMAVAULTS_AUTH_SERVER.api_server_id}' does not use JWKS access proof tokens`);
13
+ }
14
+ const payload = await jwtVerify(token, public_key, {
15
+ audience: SCHEMAVAULTS_AUTH_APP_DEFINITION.app_id,
16
+ issuer: api_server_id,
17
+ subject: api_server_id,
18
+ algorithms: [signVerifyAlg],
19
+ });
20
+ if (payload.payload.aud !== SCHEMAVAULTS_AUTH_APP_DEFINITION.app_id) {
21
+ return false;
22
+ }
23
+ if (payload.payload.sub !== api_server_id ||
24
+ payload.payload.iss !== api_server_id) {
25
+ return false;
26
+ }
27
+ if (payload.protectedHeader.alg !== sign_verify_alg) {
28
+ return false;
29
+ }
30
+ return true;
31
+ }
32
+ export default verifyJwksAccessProofToken;
33
+ //# sourceMappingURL=verifyJwksAccessProofToken.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verifyJwksAccessProofToken.js","sourceRoot":"","sources":["../../src/JwksAccessProofToken/verifyJwksAccessProofToken.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,iBAAiB,EACjB,gCAAgC,EAChC,wBAAwB,GACzB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,aAAa,EAAE,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAQvE,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,EAC/C,KAAK,EACL,aAAa,EACb,UAAU,GACkB;IAC5B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,SAAS,CAAC,0CAA0C,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,SAAS,CAAC,wBAAwB,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,aAAa,KAAK,wBAAwB,CAAC,aAAa,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CACb,IAAI,wBAAwB,CAAC,aAAa,yCAAyC,CACpF,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE;QACjD,QAAQ,EAAE,gCAAgC,CAAC,MAAM;QACjD,MAAM,EAAE,aAAa;QACrB,OAAO,EAAE,aAAa;QACtB,UAAU,EAAE,CAAC,aAAa,CAAC;KAC5B,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,KAAK,gCAAgC,CAAC,MAAM,EAAE,CAAC;QACpE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IACE,OAAO,CAAC,OAAO,CAAC,GAAG,KAAK,aAAa;QACrC,OAAO,CAAC,OAAO,CAAC,GAAG,KAAK,aAAa,EACrC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,OAAO,CAAC,eAAe,CAAC,GAAG,KAAK,eAAe,EAAE,CAAC;QACpD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,eAAe,0BAA0B,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
- export * from './jwt';
2
- export type * from './jwt';
1
+ export * from "./jwt";
2
+ export type * from "./jwt";
3
+ export { createJwksAccessProofToken, verifyJwksAccessProofToken, } from "./JwksAccessProofToken";
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
1
  // @schemavaults/jwt - index.ts
2
- export * from './jwt';
2
+ export * from "./jwt";
3
+ export { createJwksAccessProofToken, verifyJwksAccessProofToken, } from "./JwksAccessProofToken";
3
4
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,cAAc,OAAO,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,cAAc,OAAO,CAAC;AAGtB,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,wBAAwB,CAAC"}
@@ -89,6 +89,9 @@ export async function generateJWT({ type, user, iat, client_app_id, audience, ..
89
89
  throw new Error("Received invalid list of organization IDs that user is a member of!");
90
90
  }
91
91
  const orgs = parsed_organization_ids.data;
92
+ if (new Set(orgs).size !== orgs.length) {
93
+ throw new Error("Expected organization IDs in 'orgs' list to be unique.");
94
+ }
92
95
  if (type === "refresh" &&
93
96
  audience !== SCHEMAVAULTS_AUTH_APP_DEFINITION.app_id) {
94
97
  throw new Error("Invalid audience for refresh token");
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/jwt/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/jwt/generate.ts"],"names":[],"mappings":"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"}
@@ -2,12 +2,12 @@ export { decodeJWT } from "./decode";
2
2
  export { getExpiryTime, getExpiryDurationString } from "./expiry";
3
3
  export { JWT_Factory } from "./jwt-factory";
4
4
  export type { CustomJWTPayload } from "./payload_data";
5
- export { JWT_Keys, generateNewJwtKeySet, generateJwtSigningKeyPair, generateJwtContentEncryptionKeyPair, to_public_jwks, importAsymmetricJWK, jsonSerializedJwtKeySchema, PEMFormat, } from "./jwt_keys";
5
+ export { JWT_Keys, generateNewJwtKeySet, generateJwtSigningKeyPair, generateJwtContentEncryptionKeyPair, to_public_jwks, importAsymmetricJWK, jsonSerializedJwtKeySchema, PEMFormat, ContentEncryptionKeyPairFactory, SigningKeyPairFactory, } from "./jwt_keys";
6
6
  export type * from "./jwt_keys";
7
7
  export { getKeysetIdFromToken } from "./get_keyset_id_from_token";
8
8
  export { default as getAudienceFromToken } from "./get_audience_from_token";
9
9
  export { refreshTokenExpiry, accessTokenExpiry } from "./expiry";
10
- export { jwtVerify, importSPKI, SignJWT } from "jose";
10
+ export { jwtVerify, importSPKI, SignJWT, importPKCS8 } from "jose";
11
11
  export type { JWTPayload, JWTVerifyResult } from "jose";
12
12
  export { sign_verify_alg } from "./sign_verify_alg";
13
13
  export { encrypt_decrypt_alg } from "./encrypt_decrypt_alg";
package/dist/jwt/index.js CHANGED
@@ -2,12 +2,12 @@
2
2
  export { decodeJWT } from "./decode";
3
3
  export { getExpiryTime, getExpiryDurationString } from "./expiry";
4
4
  export { JWT_Factory } from "./jwt-factory";
5
- export { JWT_Keys, generateNewJwtKeySet, generateJwtSigningKeyPair, generateJwtContentEncryptionKeyPair, to_public_jwks, importAsymmetricJWK, jsonSerializedJwtKeySchema, PEMFormat, } from "./jwt_keys";
5
+ export { JWT_Keys, generateNewJwtKeySet, generateJwtSigningKeyPair, generateJwtContentEncryptionKeyPair, to_public_jwks, importAsymmetricJWK, jsonSerializedJwtKeySchema, PEMFormat, ContentEncryptionKeyPairFactory, SigningKeyPairFactory, } from "./jwt_keys";
6
6
  export { getKeysetIdFromToken } from "./get_keyset_id_from_token";
7
7
  export { default as getAudienceFromToken } from "./get_audience_from_token";
8
8
  export { refreshTokenExpiry, accessTokenExpiry } from "./expiry";
9
9
  // Re-export jose functions for JWKS access key verification
10
- export { jwtVerify, importSPKI, SignJWT } from "jose";
10
+ export { jwtVerify, importSPKI, SignJWT, importPKCS8 } from "jose";
11
11
  // Algorithms used
12
12
  export { sign_verify_alg } from "./sign_verify_alg";
13
13
  export { encrypt_decrypt_alg } from "./encrypt_decrypt_alg";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/jwt/index.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,OAAO,EACL,QAAQ,EACR,oBAAoB,EACpB,yBAAyB,EACzB,mCAAmC,EACnC,cAAc,EACd,mBAAmB,EACnB,0BAA0B,EAC1B,SAAS,GACV,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAE5E,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAEjE,4DAA4D;AAC5D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAGtD,kBAAkB;AAClB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/jwt/index.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,OAAO,EACL,QAAQ,EACR,oBAAoB,EACpB,yBAAyB,EACzB,mCAAmC,EACnC,cAAc,EACd,mBAAmB,EACnB,0BAA0B,EAC1B,SAAS,EACT,+BAA+B,EAC/B,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAE5E,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAEjE,4DAA4D;AAC5D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAGnE,kBAAkB;AAClB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -1,5 +1,4 @@
1
- import { base64url } from "jose";
2
- import { PEMFormat } from "./pem-format";
1
+ import PEMFormat from "./pem-format";
3
2
  export class AbstractBaseKeyPairFactory {
4
3
  debug;
5
4
  constructor(options = {}) {
@@ -14,8 +13,8 @@ export class AbstractBaseKeyPairFactory {
14
13
  return [privateKey, publicKey];
15
14
  case "base64url":
16
15
  return [
17
- base64url.encode(privateKey),
18
- base64url.encode(publicKey),
16
+ PEMFormat.parsePem(privateKey, "PRIVATE").toBase64Url(),
17
+ PEMFormat.parsePem(publicKey, "PUBLIC").toBase64Url(),
19
18
  ];
20
19
  default:
21
20
  throw new Error("Received invalid 'export_method' to generate key pair with!");
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractBaseKeyPairFactory.js","sourceRoot":"","sources":["../../../src/jwt/jwt_keys/AbstractBaseKeyPairFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAOzC,MAAM,OAAgB,0BAA0B;IAC3B,KAAK,CAAU;IAElC,YAAmB,UAAqC,EAAE;QACxD,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;IACtC,CAAC;IAES,MAAM,CAAC,WAAW,CAAC,GAAgB,EAAE,QAA8B;QAC3E,OAAO,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAES,MAAM,CAAC,aAAa,CAAC,CAAC,UAAU,EAAE,SAAS,CAAmD,EAAE,aAAkC;QAC1I,QAAQ,aAAa,EAAE,CAAC;YACtB,KAAK,KAAK;gBACR,OAAO,CAAC,UAAU,EAAE,SAAS,CAG5B,CAAC;YACJ,KAAK,WAAW;gBACd,OAAO;oBACL,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC;oBAC5B,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC;iBACiB,CAAC;YACjD;gBACE,MAAM,IAAI,KAAK,CACb,6DAA6D,CAC9D,CAAC;QACN,CAAC;IACH,CAAC;CAGF;AAED,eAAe,0BAA0B,CAAC"}
1
+ {"version":3,"file":"AbstractBaseKeyPairFactory.js","sourceRoot":"","sources":["../../../src/jwt/jwt_keys/AbstractBaseKeyPairFactory.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAMrC,MAAM,OAAgB,0BAA0B;IAC3B,KAAK,CAAU;IAElC,YAAmB,UAAqC,EAAE;QACxD,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;IACtC,CAAC;IAES,MAAM,CAAC,WAAW,CAC1B,GAAgB,EAChB,QAA8B;QAE9B,OAAO,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAES,MAAM,CAAC,aAAa,CAC5B,CAAC,UAAU,EAAE,SAAS,CAAmD,EACzE,aAAkC;QAElC,QAAQ,aAAa,EAAE,CAAC;YACtB,KAAK,KAAK;gBACR,OAAO,CAAC,UAAU,EAAE,SAAS,CAG5B,CAAC;YACJ,KAAK,WAAW;gBACd,OAAO;oBACL,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,WAAW,EAAE;oBACvD,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,WAAW,EAAE;iBACT,CAAC;YACjD;gBACE,MAAM,IAAI,KAAK,CACb,6DAA6D,CAC9D,CAAC;QACN,CAAC;IACH,CAAC;CAKF;AAED,eAAe,0BAA0B,CAAC"}
@@ -1,13 +1,12 @@
1
1
  export { JWT_Keys, JWT_Keys as default } from "./jwt_keys";
2
- export type { I_JWT_Keys } from './I_JWT_Keys';
3
- export { jsonSerializedJwtKeySchema } from './JsonSerializedJwtKey';
4
- export type { JsonSerializedJwtKey } from './JsonSerializedJwtKey';
5
- export { ContentEncryptionKeyPairFactory } from './ContentEncryptionKeyPairFactory';
2
+ export type { I_JWT_Keys } from "./I_JWT_Keys";
3
+ export { jsonSerializedJwtKeySchema } from "./JsonSerializedJwtKey";
4
+ export type { JsonSerializedJwtKey } from "./JsonSerializedJwtKey";
5
+ export { ContentEncryptionKeyPairFactory } from "./ContentEncryptionKeyPairFactory";
6
6
  export { SigningKeyPairFactory } from "./SigningKeyPairFactory";
7
- export { generateNewJwtKeySet, generateJwtContentEncryptionKeyPair, generateJwtSigningKeyPair } from './generate_new_jwt_keyset';
8
- import { to_public_jwks } from './to_public_jwks';
9
- export { to_public_jwks };
10
- export type { JWK } from './JWK';
11
- export type { JWKS } from './JWKS';
7
+ export { generateNewJwtKeySet, generateJwtContentEncryptionKeyPair, generateJwtSigningKeyPair, } from "./generate_new_jwt_keyset";
8
+ export { to_public_jwks } from "./to_public_jwks";
9
+ export type { JWK } from "./JWK";
10
+ export type { JWKS } from "./JWKS";
12
11
  export { importAsymmetricJWK } from "./importAsymmetricJWK";
13
- export { PEMFormat } from './pem-format';
12
+ export { PEMFormat } from "./pem-format";
@@ -1,12 +1,11 @@
1
1
  // jwt_keys/index.ts
2
2
  // JWT_Keys contains a set of keys used for JWT encryption and signing
3
3
  export { JWT_Keys, JWT_Keys as default } from "./jwt_keys";
4
- export { jsonSerializedJwtKeySchema } from './JsonSerializedJwtKey';
5
- export { ContentEncryptionKeyPairFactory } from './ContentEncryptionKeyPairFactory';
4
+ export { jsonSerializedJwtKeySchema } from "./JsonSerializedJwtKey";
5
+ export { ContentEncryptionKeyPairFactory } from "./ContentEncryptionKeyPairFactory";
6
6
  export { SigningKeyPairFactory } from "./SigningKeyPairFactory";
7
- export { generateNewJwtKeySet, generateJwtContentEncryptionKeyPair, generateJwtSigningKeyPair } from './generate_new_jwt_keyset';
8
- import { to_public_jwks } from './to_public_jwks';
9
- export { to_public_jwks };
7
+ export { generateNewJwtKeySet, generateJwtContentEncryptionKeyPair, generateJwtSigningKeyPair, } from "./generate_new_jwt_keyset";
8
+ export { to_public_jwks } from "./to_public_jwks";
10
9
  export { importAsymmetricJWK } from "./importAsymmetricJWK";
11
- export { PEMFormat } from './pem-format';
10
+ export { PEMFormat } from "./pem-format";
12
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/jwt/jwt_keys/index.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,sEAAsE;AAEtE,OAAO,EAAE,QAAQ,EAAE,QAAQ,IAAI,OAAO,EAAE,MAAM,YAAY,CAAC;AAG3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAGpE,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EACL,oBAAoB,EACpB,mCAAmC,EACnC,yBAAyB,EAC1B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,CAAC;AAI1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/jwt/jwt_keys/index.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,sEAAsE;AAEtE,OAAO,EAAE,QAAQ,EAAE,QAAQ,IAAI,OAAO,EAAE,MAAM,YAAY,CAAC;AAG3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAGpE,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EACL,oBAAoB,EACpB,mCAAmC,EACnC,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIlD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
@@ -6,6 +6,8 @@
6
6
  * @see PEMFormat.isPemFormat()
7
7
  */
8
8
  export declare class PEMFormat {
9
+ private readonly _pem;
10
+ private readonly _key_type;
9
11
  private constructor();
10
12
  private static arrayBufferToBase64;
11
13
  private static addNewLines;
@@ -13,5 +15,10 @@ export declare class PEMFormat {
13
15
  private static getPemSuffix;
14
16
  static toPemFormat(key: ArrayBuffer, key_type: "PUBLIC" | "PRIVATE"): string;
15
17
  static isPemFormat(key: string, key_type: "PUBLIC" | "PRIVATE"): boolean;
18
+ static parsePem(pem: string, key_type: "PUBLIC" | "PRIVATE"): PEMFormat;
19
+ get value(): string;
20
+ get key_type(): "PUBLIC" | "PRIVATE";
21
+ toBase64Url(): string;
22
+ static fromBase64Url(base64url_encoded_pem_key: string, key_type: "PUBLIC" | "PRIVATE"): PEMFormat;
16
23
  }
17
24
  export default PEMFormat;
@@ -1,3 +1,5 @@
1
+ import isValidBase64UrlEncoding from "../../utils/isValidBase64UrlEncoding";
2
+ import { base64url } from "jose";
1
3
  /**
2
4
  * @name PEMFormat
3
5
  * @class
@@ -6,7 +8,21 @@
6
8
  * @see PEMFormat.isPemFormat()
7
9
  */
8
10
  export class PEMFormat {
9
- constructor() { }
11
+ _pem;
12
+ _key_type;
13
+ constructor(pem, key_type) {
14
+ if (typeof pem !== "string") {
15
+ throw new TypeError("Expected 'pem' key to be a string!");
16
+ }
17
+ if (key_type !== "PUBLIC" && key_type !== "PRIVATE") {
18
+ throw new TypeError("Expected 'key_type' to be 'PUBLIC' or 'PRIVATE'");
19
+ }
20
+ if (!PEMFormat.isPemFormat(pem, key_type)) {
21
+ throw new TypeError("Key does not appear to be in valid PEM format!");
22
+ }
23
+ this._pem = pem;
24
+ this._key_type = key_type;
25
+ }
10
26
  static arrayBufferToBase64(arrayBuffer) {
11
27
  let byteArray = new Uint8Array(arrayBuffer);
12
28
  let byteString = "";
@@ -64,6 +80,37 @@ export class PEMFormat {
64
80
  }
65
81
  return true;
66
82
  }
83
+ static parsePem(pem, key_type) {
84
+ if (key_type !== "PUBLIC" && key_type !== "PRIVATE") {
85
+ throw new TypeError("Expected 'key_type' to be 'PUBLIC' or 'PRIVATE'");
86
+ }
87
+ return new PEMFormat(pem, key_type);
88
+ }
89
+ get value() {
90
+ return this._pem;
91
+ }
92
+ get key_type() {
93
+ return this._key_type;
94
+ }
95
+ toBase64Url() {
96
+ return base64url.encode(this._pem);
97
+ }
98
+ static fromBase64Url(base64url_encoded_pem_key, key_type) {
99
+ if (typeof base64url_encoded_pem_key !== "string") {
100
+ throw new TypeError("Expected 'base64url_encoded_pem_key' key to be a string!");
101
+ }
102
+ else if (!isValidBase64UrlEncoding(base64url_encoded_pem_key)) {
103
+ throw new TypeError("'base64url_encoded_pem_key' does not appear to be base64url-encoded!");
104
+ }
105
+ if (key_type !== "PUBLIC" && key_type !== "PRIVATE") {
106
+ throw new TypeError("Expected 'key_type' to be 'PUBLIC' or 'PRIVATE'");
107
+ }
108
+ const decoded = base64url.decode(base64url_encoded_pem_key).toString();
109
+ if (typeof decoded !== "string") {
110
+ throw new TypeError("Expected 'decoded' key to be a string!");
111
+ }
112
+ return new PEMFormat(decoded, key_type);
113
+ }
67
114
  }
68
115
  export default PEMFormat;
69
116
  //# sourceMappingURL=pem-format.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pem-format.js","sourceRoot":"","sources":["../../../src/jwt/jwt_keys/pem-format.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pem-format.js","sourceRoot":"","sources":["../../../src/jwt/jwt_keys/pem-format.ts"],"names":[],"mappings":"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"}
@@ -31,8 +31,12 @@ export async function to_public_jwks(active_keysets) {
31
31
  continue;
32
32
  }
33
33
  }
34
+ const keys = output_jwks;
35
+ if (keys.length === 0) {
36
+ console.warn("[to_public_jwks] Output 'keys' array is empty!");
37
+ }
34
38
  return {
35
- keys: output_jwks,
39
+ keys,
36
40
  };
37
41
  }
38
42
  export default to_public_jwks;
@@ -1 +1 @@
1
- {"version":3,"file":"to_public_jwks.js","sourceRoot":"","sources":["../../../src/jwt/jwt_keys/to_public_jwks.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAY,MAAM,MAAM,CAAC;AAC3C,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AAEtD,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,cAAkD;IAElD,MAAM,OAAO,GAA0B,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC;QAClE,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IAErB,MAAM,WAAW,GAAU,EAAE,CAAC;IAE9B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAW,MAAM,CAAC,SAAS,CAAC;QAE3C,IAAI,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAC9D,8CAA8C;YAC9C,SAAS;QACX,CAAC;QAED,MAAM,WAAW,GACf,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC9B,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAe,GAAG,CAAC,QAAQ,CAAC;YAC1C,IAAI,QAAQ,KAAK,YAAY,IAAI,QAAQ,KAAK,cAAc,EAAE,CAAC;gBAC7D,SAAS,CAAC,yDAAyD;YACrE,CAAC;YACD,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CACb,WAAW,SAAS,0CAA0C,CAC/D,CAAC;YACJ,CAAC;YACD,MAAM,kBAAkB,GAAc,MAAM,MAAM,CAAC,GAAG,QAAQ,MAAM,CAAC,CAAC;YAEtE,MAAM,GAAG,GAAW,kBAAkB,CAAC,GAAG,CAAC,CAAC;YAE5C,MAAM,GAAG,GAAQ,MAAM,SAAS,CAAC,kBAAkB,CAAC,CAAC;YACrD,WAAW,CAAC,IAAI,CAAC;gBACf,GAAG,GAAG;gBACN,GAAG,EAAE,GAAG,SAAS,IAAI,GAAG,CAAC,QAAQ,EAAE;gBACnC,GAAG;aACJ,CAAC,CAAC;YACH,SAAS;QACX,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,EAAE,WAAW;KAClB,CAAC;AACJ,CAAC;AAED,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"to_public_jwks.js","sourceRoot":"","sources":["../../../src/jwt/jwt_keys/to_public_jwks.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAY,MAAM,MAAM,CAAC;AAC3C,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AAEtD,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,cAAkD;IAElD,MAAM,OAAO,GAA0B,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC;QAClE,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IAErB,MAAM,WAAW,GAAU,EAAE,CAAC;IAE9B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAW,MAAM,CAAC,SAAS,CAAC;QAE3C,IAAI,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAC9D,8CAA8C;YAC9C,SAAS;QACX,CAAC;QAED,MAAM,WAAW,GACf,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC9B,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAe,GAAG,CAAC,QAAQ,CAAC;YAC1C,IAAI,QAAQ,KAAK,YAAY,IAAI,QAAQ,KAAK,cAAc,EAAE,CAAC;gBAC7D,SAAS,CAAC,yDAAyD;YACrE,CAAC;YACD,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CACb,WAAW,SAAS,0CAA0C,CAC/D,CAAC;YACJ,CAAC;YACD,MAAM,kBAAkB,GAAc,MAAM,MAAM,CAAC,GAAG,QAAQ,MAAM,CAAC,CAAC;YAEtE,MAAM,GAAG,GAAW,kBAAkB,CAAC,GAAG,CAAC,CAAC;YAE5C,MAAM,GAAG,GAAQ,MAAM,SAAS,CAAC,kBAAkB,CAAC,CAAC;YACrD,WAAW,CAAC,IAAI,CAAC;gBACf,GAAG,GAAG;gBACN,GAAG,EAAE,GAAG,SAAS,IAAI,GAAG,CAAC,QAAQ,EAAE;gBACnC,GAAG;aACJ,CAAC,CAAC;YACH,SAAS;QACX,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAmB,WAAW,CAAC;IACzC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;IACjE,CAAC;IAED,OAAO;QACL,IAAI;KACL,CAAC;AACJ,CAAC;AAED,eAAe,cAAc,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@schemavaults/jwt",
3
3
  "description": "Utility functions for authentication and authorization for use from the auth server or a resource server",
4
- "version": "0.6.16",
4
+ "version": "0.6.22",
5
5
  "license": "UNLICENSED",
6
6
  "private": false,
7
7
  "repository": {
@@ -16,8 +16,8 @@
16
16
  "dependencies": {
17
17
  "zod": "3.23.8",
18
18
  "jose": "6.1.3",
19
- "@schemavaults/auth-common": "0.7.29",
20
- "@schemavaults/app-definitions": "0.6.11"
19
+ "@schemavaults/auth-common": "0.8.2",
20
+ "@schemavaults/app-definitions": "0.6.12"
21
21
  },
22
22
  "scripts": {
23
23
  "build": "tsc --project tsconfig.json && tsc-alias --project tsconfig.json",
@@ -26,7 +26,8 @@
26
26
  "cleanup:delete-tests-dir": "rm -rf ./dist/tests",
27
27
  "cleanup": "bun run cleanup:delete-tests-dir && bun run cleanup:compiled-tests-output",
28
28
  "postbuild": "bun run cleanup",
29
- "lint": "eslint src --ext .ts,.tsx"
29
+ "lint": "eslint src --ext .ts,.tsx",
30
+ "typecheck": "tsc --project tsconfig.json --noEmit"
30
31
  },
31
32
  "devDependencies": {
32
33
  "typescript": "5.9.3",