@credo-ts/core 0.6.2-alpha-20251211125344 → 0.6.2-alpha-20260108172346

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.
Files changed (80) hide show
  1. package/build/crypto/index.d.mts +1 -1
  2. package/build/crypto/index.mjs +1 -0
  3. package/build/crypto/webcrypto/index.d.mts +1 -1
  4. package/build/crypto/webcrypto/index.mjs +1 -0
  5. package/build/crypto/webcrypto/types.d.mts +16 -2
  6. package/build/crypto/webcrypto/types.d.mts.map +1 -1
  7. package/build/crypto/webcrypto/types.mjs +50 -1
  8. package/build/crypto/webcrypto/types.mjs.map +1 -1
  9. package/build/crypto/webcrypto/utils/keyAlgorithmConversion.mjs +1 -2
  10. package/build/crypto/webcrypto/utils/keyAlgorithmConversion.mjs.map +1 -1
  11. package/build/index.d.mts +5 -3
  12. package/build/index.d.mts.map +1 -1
  13. package/build/index.mjs +4 -1
  14. package/build/index.mjs.map +1 -1
  15. package/build/modules/dids/domain/keyDidDocument.mjs +2 -2
  16. package/build/modules/dids/domain/keyDidDocument.mjs.map +1 -1
  17. package/build/modules/dids/methods/jwk/DidJwk.mjs +1 -1
  18. package/build/modules/dids/methods/jwk/DidJwk.mjs.map +1 -1
  19. package/build/modules/kms/jwk/PublicJwk.d.mts +9 -2
  20. package/build/modules/kms/jwk/PublicJwk.d.mts.map +1 -1
  21. package/build/modules/kms/jwk/PublicJwk.mjs +19 -9
  22. package/build/modules/kms/jwk/PublicJwk.mjs.map +1 -1
  23. package/build/modules/kms/jwk/kty/PublicJwk.d.mts +1 -1
  24. package/build/modules/kms/jwk/kty/PublicJwk.d.mts.map +1 -1
  25. package/build/modules/kms/jwk/kty/ec/P256PublicJwk.d.mts +2 -2
  26. package/build/modules/kms/jwk/kty/ec/P256PublicJwk.d.mts.map +1 -1
  27. package/build/modules/kms/jwk/kty/ec/P256PublicJwk.mjs +2 -2
  28. package/build/modules/kms/jwk/kty/ec/P256PublicJwk.mjs.map +1 -1
  29. package/build/modules/kms/jwk/kty/ec/P384PublicJwk.d.mts +2 -2
  30. package/build/modules/kms/jwk/kty/ec/P384PublicJwk.d.mts.map +1 -1
  31. package/build/modules/kms/jwk/kty/ec/P384PublicJwk.mjs +2 -2
  32. package/build/modules/kms/jwk/kty/ec/P384PublicJwk.mjs.map +1 -1
  33. package/build/modules/kms/jwk/kty/ec/P521PublicJwk.d.mts +2 -2
  34. package/build/modules/kms/jwk/kty/ec/P521PublicJwk.d.mts.map +1 -1
  35. package/build/modules/kms/jwk/kty/ec/P521PublicJwk.mjs +2 -2
  36. package/build/modules/kms/jwk/kty/ec/P521PublicJwk.mjs.map +1 -1
  37. package/build/modules/kms/jwk/kty/ec/Secp256k1PublicJwk.d.mts +2 -2
  38. package/build/modules/kms/jwk/kty/ec/Secp256k1PublicJwk.d.mts.map +1 -1
  39. package/build/modules/kms/jwk/kty/ec/Secp256k1PublicJwk.mjs +2 -2
  40. package/build/modules/kms/jwk/kty/ec/Secp256k1PublicJwk.mjs.map +1 -1
  41. package/build/modules/kms/jwk/kty/okp/Ed25519PublicJwk.d.mts +2 -2
  42. package/build/modules/kms/jwk/kty/okp/Ed25519PublicJwk.d.mts.map +1 -1
  43. package/build/modules/kms/jwk/kty/okp/Ed25519PublicJwk.mjs +2 -2
  44. package/build/modules/kms/jwk/kty/okp/Ed25519PublicJwk.mjs.map +1 -1
  45. package/build/modules/kms/jwk/kty/okp/X25519PublicJwk.d.mts +2 -2
  46. package/build/modules/kms/jwk/kty/okp/X25519PublicJwk.d.mts.map +1 -1
  47. package/build/modules/kms/jwk/kty/okp/X25519PublicJwk.mjs +2 -2
  48. package/build/modules/kms/jwk/kty/okp/X25519PublicJwk.mjs.map +1 -1
  49. package/build/modules/kms/jwk/kty/rsa/RsaPublicJwk.d.mts +3 -3
  50. package/build/modules/kms/jwk/kty/rsa/RsaPublicJwk.d.mts.map +1 -1
  51. package/build/modules/kms/jwk/kty/rsa/RsaPublicJwk.mjs +2 -2
  52. package/build/modules/kms/jwk/kty/rsa/RsaPublicJwk.mjs.map +1 -1
  53. package/build/modules/mdoc/MdocContext.mjs +1 -1
  54. package/build/modules/mdoc/MdocContext.mjs.map +1 -1
  55. package/build/modules/x509/CertificateSigningRequest.d.mts +58 -0
  56. package/build/modules/x509/CertificateSigningRequest.d.mts.map +1 -0
  57. package/build/modules/x509/CertificateSigningRequest.mjs +148 -0
  58. package/build/modules/x509/CertificateSigningRequest.mjs.map +1 -0
  59. package/build/modules/x509/X509Api.d.mts +4 -1
  60. package/build/modules/x509/X509Api.d.mts.map +1 -1
  61. package/build/modules/x509/X509Api.mjs +6 -0
  62. package/build/modules/x509/X509Api.mjs.map +1 -1
  63. package/build/modules/x509/X509Certificate.d.mts +4 -4
  64. package/build/modules/x509/X509Certificate.d.mts.map +1 -1
  65. package/build/modules/x509/X509Certificate.mjs +3 -3
  66. package/build/modules/x509/X509Certificate.mjs.map +1 -1
  67. package/build/modules/x509/X509Service.d.mts +8 -3
  68. package/build/modules/x509/X509Service.d.mts.map +1 -1
  69. package/build/modules/x509/X509Service.mjs +10 -2
  70. package/build/modules/x509/X509Service.mjs.map +1 -1
  71. package/build/modules/x509/X509ServiceOptions.d.mts +22 -1
  72. package/build/modules/x509/X509ServiceOptions.d.mts.map +1 -1
  73. package/build/modules/x509/index.d.mts +2 -1
  74. package/build/modules/x509/index.mjs +1 -0
  75. package/build/modules/x509/utils/nameConversion.mjs +1 -1
  76. package/build/modules/x509/utils/nameConversion.mjs.map +1 -1
  77. package/build/utils/IntegrityVerifier.d.mts +44 -0
  78. package/build/utils/IntegrityVerifier.d.mts.map +1 -0
  79. package/build/utils/index.d.mts +1 -0
  80. package/package.json +1 -1
@@ -4,7 +4,7 @@ import { Sha256 } from "./hashes/Sha256.mjs";
4
4
  import { Sha384 } from "./hashes/Sha384.mjs";
5
5
  import { Sha512 } from "./hashes/Sha512.mjs";
6
6
  import "./hashes/index.mjs";
7
- import { KeyGenAlgorithm, KeySignParams } from "./webcrypto/types.mjs";
7
+ import { KeyGenAlgorithm, KeySignParams, jwaAlgorithmToKeySignParams, keyParamsToJwaAlgorithm } from "./webcrypto/types.mjs";
8
8
  import { CredoWebCryptoKey } from "./webcrypto/CredoWebCryptoKey.mjs";
9
9
  import { CredoWebCrypto } from "./webcrypto/CredoWebCrypto.mjs";
10
10
  import { publicJwkToCryptoKeyAlgorithm } from "./webcrypto/utils/keyAlgorithmConversion.mjs";
@@ -8,6 +8,7 @@ import { Hasher } from "./hashes/Hasher.mjs";
8
8
  import "./hashes/index.mjs";
9
9
  import { JwtPayload } from "./jose/jwt/JwtPayload.mjs";
10
10
  import { CredoWebCryptoKey } from "./webcrypto/CredoWebCryptoKey.mjs";
11
+ import { jwaAlgorithmToKeySignParams, keyParamsToJwaAlgorithm } from "./webcrypto/types.mjs";
11
12
  import { publicJwkToCryptoKeyAlgorithm } from "./webcrypto/utils/keyAlgorithmConversion.mjs";
12
13
  import { CredoWebCrypto } from "./webcrypto/CredoWebCrypto.mjs";
13
14
  import "./webcrypto/index.mjs";
@@ -1,4 +1,4 @@
1
- import { KeyGenAlgorithm, KeySignParams } from "./types.mjs";
1
+ import { KeyGenAlgorithm, KeySignParams, jwaAlgorithmToKeySignParams, keyParamsToJwaAlgorithm } from "./types.mjs";
2
2
  import { CredoWebCryptoKey } from "./CredoWebCryptoKey.mjs";
3
3
  import { CredoWebCrypto } from "./CredoWebCrypto.mjs";
4
4
  import { publicJwkToCryptoKeyAlgorithm } from "./utils/keyAlgorithmConversion.mjs";
@@ -1,6 +1,7 @@
1
1
 
2
2
 
3
3
  import { CredoWebCryptoKey } from "./CredoWebCryptoKey.mjs";
4
+ import { jwaAlgorithmToKeySignParams, keyParamsToJwaAlgorithm } from "./types.mjs";
4
5
  import { publicJwkToCryptoKeyAlgorithm } from "./utils/keyAlgorithmConversion.mjs";
5
6
  import "./utils/index.mjs";
6
7
  import { CredoWebCrypto } from "./CredoWebCrypto.mjs";
@@ -1,6 +1,7 @@
1
+ import { KnownJwaSignatureAlgorithm } from "../../modules/kms/jwk/jwa.mjs";
1
2
  import { AnyUint8Array } from "../../types.mjs";
2
3
  import { Jwk } from "../../modules/kms/jwk/jwk.mjs";
3
- import "./CredoWebCryptoKey.mjs";
4
+ import { CredoWebCryptoKey } from "./CredoWebCryptoKey.mjs";
4
5
  import "../../modules/kms/index.mjs";
5
6
 
6
7
  //#region src/crypto/webcrypto/types.d.ts
@@ -57,6 +58,19 @@ type KeyImportParams = EcKeyImportParams | Ed25519KeyImportParams | RsaHashedImp
57
58
  type KeyGenAlgorithm = EcKeyGenParams | Ed25519KeyGenParams | RsaHashedKeyGenParams;
58
59
  type KeySignParams = EcdsaParams | Ed25519Params | RsaSsaParams;
59
60
  type KeyVerifyParams = EcdsaParams | Ed25519Params | RsaSsaParams;
61
+ /**
62
+ * Derives the JWA algorithm name from KeySignParams or KeyVerifyParams
63
+ * @param params - The signing or verification parameters
64
+ * @returns The corresponding JWA algorithm string
65
+ */
66
+ declare function keyParamsToJwaAlgorithm(params: KeySignParams | KeyVerifyParams, key: CredoWebCryptoKey): KnownJwaSignatureAlgorithm;
67
+ /**
68
+ * Converts a JWA signature algorithm to the appropriate KeySignParams
69
+ * This is the inverse of keyParamsToJwaAlgorithm
70
+ * @param algorithm - The JWA signature algorithm (e.g., 'ES256', 'RS256', 'EdDSA')
71
+ * @returns The signing parameters with the appropriate algorithm name and hash
72
+ */
73
+ declare function jwaAlgorithmToKeySignParams(algorithm: KnownJwaSignatureAlgorithm): KeySignParams;
60
74
  //#endregion
61
- export { JsonWebKey, KeyFormat, KeyGenAlgorithm, KeyImportParams, KeySignParams, KeyType, KeyUsage, KeyVerifyParams };
75
+ export { JsonWebKey, KeyFormat, KeyGenAlgorithm, KeyImportParams, KeySignParams, KeyType, KeyUsage, KeyVerifyParams, jwaAlgorithmToKeySignParams, keyParamsToJwaAlgorithm };
62
76
  //# sourceMappingURL=types.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.mts","names":[],"sources":["../../../src/crypto/webcrypto/types.ts"],"sourcesContent":[],"mappings":";;;;;;KAwBK,uBAAA;AAAA,KAQO,WAAA,GARP;EAQO,IAAA,EAAA,OAAA;EAKA,IAAA,EAAA;IAEA,IAAA,EALI,uBAOA;EAUJ,CAAA,GAjBgC,uBAiBb;AAE/B,CAAA;AAKY,KArBA,aAAA,GAqBqB;EAarB,IAAA,EAAA,SAAA;AAEZ,CAAA;AAKY,KAvCA,YAAA,GAuCA;EAKA,IAAA,EAAA,mBAAQ,GAAA,SAAA;EACR,IAAA,EAAA;IACA,IAAA,EA5CI,uBA4CG;EAEP,CAAA,GA9CgC,uBA8CnB;EAIb,UAAA,CAAA,EAAA,MAAe;CAAG;AAAoB,KAxCtC,mBAAA,GAwCsC;EAAyB,IAAA,EAAA,SAAA;CAAqB;AACpF,KAvCA,cAAA,GAuCe;EAAG,IAAA,EAAA,OAAA;EAAiB,UAAA,EAAA,OAAA,GAAA,OAAA,GAAA,OAAA,GAAA,OAAA;CAAsB;AAAqB,KAlC9E,qBAAA,GAkC8E;EAC9E,IAAA,EAAA,mBAAa,GAAA,SAAA;EAAG,aAAA,EAAA,MAAA;EAAc,cAAA,EAhCxB,aAgCwB;EAAgB,IAAA,EAAA;IAAY,IAAA,EA/BtD,uBA+BsD;EAC1D,CAAA;CAAkB;AAAc,KAvBhC,sBAAA,GAuBgC;EAAgB,IAAA,EAAA,SAAA;CAAY;KArB5D,iBAAA;;;;KAKA,qBAAA;;;UAEI;;;KAGJ,QAAA;KACA,SAAA;KACA,OAAA;KAEA,UAAA,GAAa;KAIb,eAAA,GAAkB,oBAAoB,yBAAyB;KAC/D,eAAA,GAAkB,iBAAiB,sBAAsB;KACzD,aAAA,GAAgB,cAAc,gBAAgB;KAC9C,eAAA,GAAkB,cAAc,gBAAgB"}
1
+ {"version":3,"file":"types.d.mts","names":[],"sources":["../../../src/crypto/webcrypto/types.ts"],"sourcesContent":[],"mappings":";;;;;;;KAwBK,uBAAA;KAQO,WAAA;EARP,IAAA,EAAA,OAAA;EAQO,IAAA,EAAA;IAKA,IAAA,EAHI,uBAGS;EAEb,CAAA,GALgC,uBAKpB;AAYxB,CAAA;AAEY,KAhBA,aAAA,GAgBc;EAKd,IAAA,EAAA,SAAA;AAaZ,CAAA;AAEY,KAlCA,YAAA,GAkCiB;EAKjB,IAAA,EAAA,mBAAqB,GAAA,SAEjB;EAGJ,IAAA,EAAA;IACA,IAAA,EA3CI,uBA2CK;EACT,CAAA,GA5CgC,uBA4CzB;EAEP,UAAA,CAAA,EAAU,MAAA;AAItB,CAAA;AAA8B,KAxClB,mBAAA,GAwCkB;EAAoB,IAAA,EAAA,SAAA;CAAyB;AAAqB,KAtCpF,cAAA,GAsCoF;EACpF,IAAA,EAAA,OAAA;EAAkB,UAAA,EAAA,OAAA,GAAA,OAAA,GAAA,OAAA,GAAA,OAAA;CAAiB;AAAsB,KAlCzD,qBAAA,GAkCyD;EAAqB,IAAA,EAAA,mBAAA,GAAA,SAAA;EAC9E,aAAA,EAAA,MAAa;EAAG,cAAA,EAhCV,aAgCU;EAAc,IAAA,EAAA;IAAgB,IAAA,EA/B1C,uBA+B0C;EAAY,CAAA;AACtE,CAAA;AAA8B,KAvBlB,sBAAA,GAuBkB;EAAc,IAAA,EAAA,SAAA;CAAgB;AAAY,KArB5D,iBAAA,GAqB4D;EAOxD,IAAA,EAAA,OAAA;EACN,UAAA,EAAA,OAAA,GAAA,OAAA,GAAA,OAAA,GAAA,OAAA;CAAgB;AACnB,KAzBK,qBAAA,GAyBL;EACJ,IAAA,EAAA,mBAAA,GAAA,SAAA;EAA0B,IAAA,EAAA;IAmHb,IAAA,EA3IA,uBA2I2B;;;KAxI/B,QAAA;KACA,SAAA;KACA,OAAA;KAEA,UAAA,GAAa;KAIb,eAAA,GAAkB,oBAAoB,yBAAyB;KAC/D,eAAA,GAAkB,iBAAiB,sBAAsB;KACzD,aAAA,GAAgB,cAAc,gBAAgB;KAC9C,eAAA,GAAkB,cAAc,gBAAgB;;;;;;iBAO5C,uBAAA,SACN,gBAAgB,sBACnB,oBACJ;;;;;;;iBAmHa,2BAAA,YAAuC,6BAA6B"}
@@ -62,7 +62,56 @@ function keyParamsToJwaAlgorithm(params, key) {
62
62
  }
63
63
  throw new CredoWebCryptoError(`Unsupported algorithm: ${params.name}`);
64
64
  }
65
+ /**
66
+ * Converts a JWA signature algorithm to the appropriate KeySignParams
67
+ * This is the inverse of keyParamsToJwaAlgorithm
68
+ * @param algorithm - The JWA signature algorithm (e.g., 'ES256', 'RS256', 'EdDSA')
69
+ * @returns The signing parameters with the appropriate algorithm name and hash
70
+ */
71
+ function jwaAlgorithmToKeySignParams(algorithm) {
72
+ switch (algorithm) {
73
+ case "ES256":
74
+ case "ES256K": return {
75
+ name: "ECDSA",
76
+ hash: "SHA-256"
77
+ };
78
+ case "ES384": return {
79
+ name: "ECDSA",
80
+ hash: "SHA-384"
81
+ };
82
+ case "ES512": return {
83
+ name: "ECDSA",
84
+ hash: "SHA-512"
85
+ };
86
+ case "EdDSA": return { name: "Ed25519" };
87
+ case "RS256": return {
88
+ name: "RSASSA-PKCS1-v1_5",
89
+ hash: "SHA-256"
90
+ };
91
+ case "RS384": return {
92
+ name: "RSASSA-PKCS1-v1_5",
93
+ hash: "SHA-384"
94
+ };
95
+ case "RS512": return {
96
+ name: "RSASSA-PKCS1-v1_5",
97
+ hash: "SHA-512"
98
+ };
99
+ case "PS256": return {
100
+ name: "RSA-PSS",
101
+ hash: "SHA-256"
102
+ };
103
+ case "PS384": return {
104
+ name: "RSA-PSS",
105
+ hash: "SHA-384"
106
+ };
107
+ case "PS512": return {
108
+ name: "RSA-PSS",
109
+ hash: "SHA-512"
110
+ };
111
+ default: throw new CredoWebCryptoError(`Unsupported JWA algorithm: ${algorithm}`);
112
+ }
113
+ }
65
114
 
66
115
  //#endregion
67
- export { keyParamsToJwaAlgorithm };
116
+ export { jwaAlgorithmToKeySignParams, keyParamsToJwaAlgorithm };
68
117
  //# sourceMappingURL=types.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.mjs","names":[],"sources":["../../../src/crypto/webcrypto/types.ts"],"sourcesContent":["/*\n *\n * Based on: https://www.w3.org/TR/WebCryptoAPI/\n */\n\nimport {\n Ed25519PublicJwk,\n type Jwk,\n type KnownJwaSignatureAlgorithm,\n P256PublicJwk,\n P384PublicJwk,\n P521PublicJwk,\n RsaPublicJwk,\n Secp256k1PublicJwk,\n} from '../../modules/kms'\nimport type { AnyUint8Array } from '../../types'\nimport { CredoWebCryptoError } from './CredoWebCryptoError'\nimport type { CredoWebCryptoKey } from './CredoWebCryptoKey'\n\nexport type CredoWebCryptoKeyPair = {\n publicKey: CredoWebCryptoKey\n privateKey: CredoWebCryptoKey\n}\n\ntype HashAlgorithmIdentifier = 'SHA-256' | 'SHA-384' | 'SHA-512'\n\n/*\n *\n * Sign and Verify Parameters\n *\n */\n\nexport type EcdsaParams = {\n name: 'ECDSA'\n hash: { name: HashAlgorithmIdentifier } | HashAlgorithmIdentifier\n}\n\nexport type Ed25519Params = { name: 'Ed25519' }\n\nexport type RsaSsaParams = {\n name: 'RSASSA-PKCS1-v1_5' | 'RSA-PSS'\n hash: { name: HashAlgorithmIdentifier } | HashAlgorithmIdentifier\n saltLength?: number // Only for RSA-PSS\n}\n\n/*\n *\n * Key Generation Parameters\n *\n */\n\nexport type Ed25519KeyGenParams = { name: 'Ed25519' }\n\nexport type EcKeyGenParams = {\n name: 'ECDSA'\n namedCurve: 'P-256' | 'P-384' | 'P-521' | 'K-256'\n}\n\nexport type RsaHashedKeyGenParams = {\n name: 'RSASSA-PKCS1-v1_5' | 'RSA-PSS'\n modulusLength: number\n publicExponent: AnyUint8Array\n hash: { name: HashAlgorithmIdentifier }\n}\n\n/*\n *\n * Key Import Parameters\n *\n */\n\nexport type Ed25519KeyImportParams = { name: 'Ed25519' }\n\nexport type EcKeyImportParams = {\n name: 'ECDSA'\n namedCurve: 'P-256' | 'P-384' | 'K-256' | 'P-521'\n}\n\nexport type RsaHashedImportParams = {\n name: 'RSASSA-PKCS1-v1_5' | 'RSA-PSS'\n hash: { name: HashAlgorithmIdentifier }\n}\n\nexport type KeyUsage = 'sign' | 'verify' | 'encrypt' | 'decrypt' | 'wrapKey' | 'unwrapKey' | 'deriveKey' | 'deriveBits'\nexport type KeyFormat = 'jwk' | 'pkcs8' | 'spki' | 'raw'\nexport type KeyType = 'private' | 'public' | 'secret'\n\nexport type JsonWebKey = Jwk\n\nexport type HashAlgorithm = { name: HashAlgorithmIdentifier }\n\nexport type KeyImportParams = EcKeyImportParams | Ed25519KeyImportParams | RsaHashedImportParams\nexport type KeyGenAlgorithm = EcKeyGenParams | Ed25519KeyGenParams | RsaHashedKeyGenParams\nexport type KeySignParams = EcdsaParams | Ed25519Params | RsaSsaParams\nexport type KeyVerifyParams = EcdsaParams | Ed25519Params | RsaSsaParams\n\n/**\n * Derives the JWA algorithm name from KeySignParams or KeyVerifyParams\n * @param params - The signing or verification parameters\n * @returns The corresponding JWA algorithm string\n */\nexport function keyParamsToJwaAlgorithm(\n params: KeySignParams | KeyVerifyParams,\n key: CredoWebCryptoKey\n): KnownJwaSignatureAlgorithm {\n if (params.name === 'Ed25519') {\n if (!key.publicJwk.is(Ed25519PublicJwk)) {\n throw new CredoWebCryptoError(\n `Unsupported key for algorithm for Ed25519: ${key.publicJwk.jwkTypeHumanDescription}`\n )\n }\n\n return 'EdDSA'\n }\n\n if (params.name === 'ECDSA') {\n // Normalize hash parameter\n const hashName = typeof params.hash === 'string' ? params.hash : params.hash.name\n\n if (key.publicJwk.is(Secp256k1PublicJwk)) {\n // Map ECDSA with different hash algorithms to JWA names\n switch (hashName) {\n case 'SHA-256':\n return 'ES256K'\n default:\n throw new CredoWebCryptoError(`Unsupported hash algorithm for ECDSA with Secp255K1: ${hashName}`)\n }\n }\n\n // Map ECDSA with different hash algorithms to JWA names\n if (key.publicJwk.is(P256PublicJwk)) {\n switch (hashName) {\n case 'SHA-256':\n return 'ES256'\n default:\n throw new CredoWebCryptoError(`Unsupported hash algorithm for ECDSA with P256: ${hashName}`)\n }\n }\n\n // Map ECDSA with different hash algorithms to JWA names\n if (key.publicJwk.is(P384PublicJwk)) {\n switch (hashName) {\n case 'SHA-384':\n return 'ES384'\n default:\n throw new CredoWebCryptoError(`Unsupported hash algorithm for ECDSA with P384: ${hashName}`)\n }\n }\n\n // Map ECDSA with different hash algorithms to JWA names\n if (key.publicJwk.is(P521PublicJwk)) {\n switch (hashName) {\n case 'SHA-512':\n return 'ES512'\n default:\n throw new CredoWebCryptoError(`Unsupported hash algorithm for ECDSA with P521: ${hashName}`)\n }\n }\n\n throw new CredoWebCryptoError(\n `Unsupported key ${key.publicJwk.jwkTypeHumanDescription} or hash algorithm '${hashName}' for ECDSA`\n )\n }\n\n if (params.name === 'RSASSA-PKCS1-v1_5') {\n // Normalize hash parameter\n const hashName = typeof params.hash === 'string' ? params.hash : params.hash.name\n\n if (!key.publicJwk.is(RsaPublicJwk)) {\n throw new CredoWebCryptoError(\n `Unsupported key for algorithm for RSASSA-PKCS1-v1_5: ${key.publicJwk.jwkTypeHumanDescription}`\n )\n }\n\n // Map RSA-PKCS1 with different hash algorithms to JWA names\n switch (hashName) {\n case 'SHA-256':\n return 'RS256'\n case 'SHA-384':\n return 'RS384'\n case 'SHA-512':\n return 'RS512'\n default:\n throw new CredoWebCryptoError(`Unsupported hash algorithm for RSASSA-PKCS1-v1_5: ${hashName}`)\n }\n }\n\n if (params.name === 'RSA-PSS') {\n // Normalize hash parameter\n const hashName = typeof params.hash === 'string' ? params.hash : params.hash.name\n\n if (!key.publicJwk.is(RsaPublicJwk)) {\n throw new CredoWebCryptoError(\n `Unsupported key for algorithm for RSA-PSS: ${key.publicJwk.jwkTypeHumanDescription}`\n )\n }\n\n // Map RSA-PSS with different hash algorithms to JWA names\n switch (hashName) {\n case 'SHA-256':\n return 'PS256'\n case 'SHA-384':\n return 'PS384'\n case 'SHA-512':\n return 'PS512'\n default:\n throw new CredoWebCryptoError(`Unsupported hash algorithm for RSA-PSS: ${hashName}`)\n }\n }\n\n throw new CredoWebCryptoError(`Unsupported algorithm: ${params.name}`)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAqGA,SAAgB,wBACd,QACA,KAC4B;AAC5B,KAAI,OAAO,SAAS,WAAW;AAC7B,MAAI,CAAC,IAAI,UAAU,GAAG,iBAAiB,CACrC,OAAM,IAAI,oBACR,8CAA8C,IAAI,UAAU,0BAC7D;AAGH,SAAO;;AAGT,KAAI,OAAO,SAAS,SAAS;EAE3B,MAAM,WAAW,OAAO,OAAO,SAAS,WAAW,OAAO,OAAO,OAAO,KAAK;AAE7E,MAAI,IAAI,UAAU,GAAG,mBAAmB,CAEtC,SAAQ,UAAR;GACE,KAAK,UACH,QAAO;GACT,QACE,OAAM,IAAI,oBAAoB,wDAAwD,WAAW;;AAKvG,MAAI,IAAI,UAAU,GAAG,cAAc,CACjC,SAAQ,UAAR;GACE,KAAK,UACH,QAAO;GACT,QACE,OAAM,IAAI,oBAAoB,mDAAmD,WAAW;;AAKlG,MAAI,IAAI,UAAU,GAAG,cAAc,CACjC,SAAQ,UAAR;GACE,KAAK,UACH,QAAO;GACT,QACE,OAAM,IAAI,oBAAoB,mDAAmD,WAAW;;AAKlG,MAAI,IAAI,UAAU,GAAG,cAAc,CACjC,SAAQ,UAAR;GACE,KAAK,UACH,QAAO;GACT,QACE,OAAM,IAAI,oBAAoB,mDAAmD,WAAW;;AAIlG,QAAM,IAAI,oBACR,mBAAmB,IAAI,UAAU,wBAAwB,sBAAsB,SAAS,aACzF;;AAGH,KAAI,OAAO,SAAS,qBAAqB;EAEvC,MAAM,WAAW,OAAO,OAAO,SAAS,WAAW,OAAO,OAAO,OAAO,KAAK;AAE7E,MAAI,CAAC,IAAI,UAAU,GAAG,aAAa,CACjC,OAAM,IAAI,oBACR,wDAAwD,IAAI,UAAU,0BACvE;AAIH,UAAQ,UAAR;GACE,KAAK,UACH,QAAO;GACT,KAAK,UACH,QAAO;GACT,KAAK,UACH,QAAO;GACT,QACE,OAAM,IAAI,oBAAoB,qDAAqD,WAAW;;;AAIpG,KAAI,OAAO,SAAS,WAAW;EAE7B,MAAM,WAAW,OAAO,OAAO,SAAS,WAAW,OAAO,OAAO,OAAO,KAAK;AAE7E,MAAI,CAAC,IAAI,UAAU,GAAG,aAAa,CACjC,OAAM,IAAI,oBACR,8CAA8C,IAAI,UAAU,0BAC7D;AAIH,UAAQ,UAAR;GACE,KAAK,UACH,QAAO;GACT,KAAK,UACH,QAAO;GACT,KAAK,UACH,QAAO;GACT,QACE,OAAM,IAAI,oBAAoB,2CAA2C,WAAW;;;AAI1F,OAAM,IAAI,oBAAoB,0BAA0B,OAAO,OAAO"}
1
+ {"version":3,"file":"types.mjs","names":[],"sources":["../../../src/crypto/webcrypto/types.ts"],"sourcesContent":["/*\n *\n * Based on: https://www.w3.org/TR/WebCryptoAPI/\n */\n\nimport {\n Ed25519PublicJwk,\n type Jwk,\n type KnownJwaSignatureAlgorithm,\n P256PublicJwk,\n P384PublicJwk,\n P521PublicJwk,\n RsaPublicJwk,\n Secp256k1PublicJwk,\n} from '../../modules/kms'\nimport type { AnyUint8Array } from '../../types'\nimport { CredoWebCryptoError } from './CredoWebCryptoError'\nimport type { CredoWebCryptoKey } from './CredoWebCryptoKey'\n\nexport type CredoWebCryptoKeyPair = {\n publicKey: CredoWebCryptoKey\n privateKey: CredoWebCryptoKey\n}\n\ntype HashAlgorithmIdentifier = 'SHA-256' | 'SHA-384' | 'SHA-512'\n\n/*\n *\n * Sign and Verify Parameters\n *\n */\n\nexport type EcdsaParams = {\n name: 'ECDSA'\n hash: { name: HashAlgorithmIdentifier } | HashAlgorithmIdentifier\n}\n\nexport type Ed25519Params = { name: 'Ed25519' }\n\nexport type RsaSsaParams = {\n name: 'RSASSA-PKCS1-v1_5' | 'RSA-PSS'\n hash: { name: HashAlgorithmIdentifier } | HashAlgorithmIdentifier\n saltLength?: number // Only for RSA-PSS\n}\n\n/*\n *\n * Key Generation Parameters\n *\n */\n\nexport type Ed25519KeyGenParams = { name: 'Ed25519' }\n\nexport type EcKeyGenParams = {\n name: 'ECDSA'\n namedCurve: 'P-256' | 'P-384' | 'P-521' | 'K-256'\n}\n\nexport type RsaHashedKeyGenParams = {\n name: 'RSASSA-PKCS1-v1_5' | 'RSA-PSS'\n modulusLength: number\n publicExponent: AnyUint8Array\n hash: { name: HashAlgorithmIdentifier }\n}\n\n/*\n *\n * Key Import Parameters\n *\n */\n\nexport type Ed25519KeyImportParams = { name: 'Ed25519' }\n\nexport type EcKeyImportParams = {\n name: 'ECDSA'\n namedCurve: 'P-256' | 'P-384' | 'K-256' | 'P-521'\n}\n\nexport type RsaHashedImportParams = {\n name: 'RSASSA-PKCS1-v1_5' | 'RSA-PSS'\n hash: { name: HashAlgorithmIdentifier }\n}\n\nexport type KeyUsage = 'sign' | 'verify' | 'encrypt' | 'decrypt' | 'wrapKey' | 'unwrapKey' | 'deriveKey' | 'deriveBits'\nexport type KeyFormat = 'jwk' | 'pkcs8' | 'spki' | 'raw'\nexport type KeyType = 'private' | 'public' | 'secret'\n\nexport type JsonWebKey = Jwk\n\nexport type HashAlgorithm = { name: HashAlgorithmIdentifier }\n\nexport type KeyImportParams = EcKeyImportParams | Ed25519KeyImportParams | RsaHashedImportParams\nexport type KeyGenAlgorithm = EcKeyGenParams | Ed25519KeyGenParams | RsaHashedKeyGenParams\nexport type KeySignParams = EcdsaParams | Ed25519Params | RsaSsaParams\nexport type KeyVerifyParams = EcdsaParams | Ed25519Params | RsaSsaParams\n\n/**\n * Derives the JWA algorithm name from KeySignParams or KeyVerifyParams\n * @param params - The signing or verification parameters\n * @returns The corresponding JWA algorithm string\n */\nexport function keyParamsToJwaAlgorithm(\n params: KeySignParams | KeyVerifyParams,\n key: CredoWebCryptoKey\n): KnownJwaSignatureAlgorithm {\n if (params.name === 'Ed25519') {\n if (!key.publicJwk.is(Ed25519PublicJwk)) {\n throw new CredoWebCryptoError(\n `Unsupported key for algorithm for Ed25519: ${key.publicJwk.jwkTypeHumanDescription}`\n )\n }\n\n return 'EdDSA'\n }\n\n if (params.name === 'ECDSA') {\n // Normalize hash parameter\n const hashName = typeof params.hash === 'string' ? params.hash : params.hash.name\n\n if (key.publicJwk.is(Secp256k1PublicJwk)) {\n // Map ECDSA with different hash algorithms to JWA names\n switch (hashName) {\n case 'SHA-256':\n return 'ES256K'\n default:\n throw new CredoWebCryptoError(`Unsupported hash algorithm for ECDSA with Secp255K1: ${hashName}`)\n }\n }\n\n // Map ECDSA with different hash algorithms to JWA names\n if (key.publicJwk.is(P256PublicJwk)) {\n switch (hashName) {\n case 'SHA-256':\n return 'ES256'\n default:\n throw new CredoWebCryptoError(`Unsupported hash algorithm for ECDSA with P256: ${hashName}`)\n }\n }\n\n // Map ECDSA with different hash algorithms to JWA names\n if (key.publicJwk.is(P384PublicJwk)) {\n switch (hashName) {\n case 'SHA-384':\n return 'ES384'\n default:\n throw new CredoWebCryptoError(`Unsupported hash algorithm for ECDSA with P384: ${hashName}`)\n }\n }\n\n // Map ECDSA with different hash algorithms to JWA names\n if (key.publicJwk.is(P521PublicJwk)) {\n switch (hashName) {\n case 'SHA-512':\n return 'ES512'\n default:\n throw new CredoWebCryptoError(`Unsupported hash algorithm for ECDSA with P521: ${hashName}`)\n }\n }\n\n throw new CredoWebCryptoError(\n `Unsupported key ${key.publicJwk.jwkTypeHumanDescription} or hash algorithm '${hashName}' for ECDSA`\n )\n }\n\n if (params.name === 'RSASSA-PKCS1-v1_5') {\n // Normalize hash parameter\n const hashName = typeof params.hash === 'string' ? params.hash : params.hash.name\n\n if (!key.publicJwk.is(RsaPublicJwk)) {\n throw new CredoWebCryptoError(\n `Unsupported key for algorithm for RSASSA-PKCS1-v1_5: ${key.publicJwk.jwkTypeHumanDescription}`\n )\n }\n\n // Map RSA-PKCS1 with different hash algorithms to JWA names\n switch (hashName) {\n case 'SHA-256':\n return 'RS256'\n case 'SHA-384':\n return 'RS384'\n case 'SHA-512':\n return 'RS512'\n default:\n throw new CredoWebCryptoError(`Unsupported hash algorithm for RSASSA-PKCS1-v1_5: ${hashName}`)\n }\n }\n\n if (params.name === 'RSA-PSS') {\n // Normalize hash parameter\n const hashName = typeof params.hash === 'string' ? params.hash : params.hash.name\n\n if (!key.publicJwk.is(RsaPublicJwk)) {\n throw new CredoWebCryptoError(\n `Unsupported key for algorithm for RSA-PSS: ${key.publicJwk.jwkTypeHumanDescription}`\n )\n }\n\n // Map RSA-PSS with different hash algorithms to JWA names\n switch (hashName) {\n case 'SHA-256':\n return 'PS256'\n case 'SHA-384':\n return 'PS384'\n case 'SHA-512':\n return 'PS512'\n default:\n throw new CredoWebCryptoError(`Unsupported hash algorithm for RSA-PSS: ${hashName}`)\n }\n }\n\n throw new CredoWebCryptoError(`Unsupported algorithm: ${params.name}`)\n}\n\n/**\n * Converts a JWA signature algorithm to the appropriate KeySignParams\n * This is the inverse of keyParamsToJwaAlgorithm\n * @param algorithm - The JWA signature algorithm (e.g., 'ES256', 'RS256', 'EdDSA')\n * @returns The signing parameters with the appropriate algorithm name and hash\n */\nexport function jwaAlgorithmToKeySignParams(algorithm: KnownJwaSignatureAlgorithm): KeySignParams {\n switch (algorithm) {\n // ECDSA algorithms\n case 'ES256':\n case 'ES256K':\n return { name: 'ECDSA', hash: 'SHA-256' }\n case 'ES384':\n return { name: 'ECDSA', hash: 'SHA-384' }\n case 'ES512':\n return { name: 'ECDSA', hash: 'SHA-512' }\n\n // EdDSA\n case 'EdDSA':\n return { name: 'Ed25519' }\n\n // RSA PKCS1\n case 'RS256':\n return { name: 'RSASSA-PKCS1-v1_5', hash: 'SHA-256' }\n case 'RS384':\n return { name: 'RSASSA-PKCS1-v1_5', hash: 'SHA-384' }\n case 'RS512':\n return { name: 'RSASSA-PKCS1-v1_5', hash: 'SHA-512' }\n\n // RSA PSS\n case 'PS256':\n return { name: 'RSA-PSS', hash: 'SHA-256' }\n case 'PS384':\n return { name: 'RSA-PSS', hash: 'SHA-384' }\n case 'PS512':\n return { name: 'RSA-PSS', hash: 'SHA-512' }\n\n default:\n throw new CredoWebCryptoError(`Unsupported JWA algorithm: ${algorithm}`)\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAqGA,SAAgB,wBACd,QACA,KAC4B;AAC5B,KAAI,OAAO,SAAS,WAAW;AAC7B,MAAI,CAAC,IAAI,UAAU,GAAG,iBAAiB,CACrC,OAAM,IAAI,oBACR,8CAA8C,IAAI,UAAU,0BAC7D;AAGH,SAAO;;AAGT,KAAI,OAAO,SAAS,SAAS;EAE3B,MAAM,WAAW,OAAO,OAAO,SAAS,WAAW,OAAO,OAAO,OAAO,KAAK;AAE7E,MAAI,IAAI,UAAU,GAAG,mBAAmB,CAEtC,SAAQ,UAAR;GACE,KAAK,UACH,QAAO;GACT,QACE,OAAM,IAAI,oBAAoB,wDAAwD,WAAW;;AAKvG,MAAI,IAAI,UAAU,GAAG,cAAc,CACjC,SAAQ,UAAR;GACE,KAAK,UACH,QAAO;GACT,QACE,OAAM,IAAI,oBAAoB,mDAAmD,WAAW;;AAKlG,MAAI,IAAI,UAAU,GAAG,cAAc,CACjC,SAAQ,UAAR;GACE,KAAK,UACH,QAAO;GACT,QACE,OAAM,IAAI,oBAAoB,mDAAmD,WAAW;;AAKlG,MAAI,IAAI,UAAU,GAAG,cAAc,CACjC,SAAQ,UAAR;GACE,KAAK,UACH,QAAO;GACT,QACE,OAAM,IAAI,oBAAoB,mDAAmD,WAAW;;AAIlG,QAAM,IAAI,oBACR,mBAAmB,IAAI,UAAU,wBAAwB,sBAAsB,SAAS,aACzF;;AAGH,KAAI,OAAO,SAAS,qBAAqB;EAEvC,MAAM,WAAW,OAAO,OAAO,SAAS,WAAW,OAAO,OAAO,OAAO,KAAK;AAE7E,MAAI,CAAC,IAAI,UAAU,GAAG,aAAa,CACjC,OAAM,IAAI,oBACR,wDAAwD,IAAI,UAAU,0BACvE;AAIH,UAAQ,UAAR;GACE,KAAK,UACH,QAAO;GACT,KAAK,UACH,QAAO;GACT,KAAK,UACH,QAAO;GACT,QACE,OAAM,IAAI,oBAAoB,qDAAqD,WAAW;;;AAIpG,KAAI,OAAO,SAAS,WAAW;EAE7B,MAAM,WAAW,OAAO,OAAO,SAAS,WAAW,OAAO,OAAO,OAAO,KAAK;AAE7E,MAAI,CAAC,IAAI,UAAU,GAAG,aAAa,CACjC,OAAM,IAAI,oBACR,8CAA8C,IAAI,UAAU,0BAC7D;AAIH,UAAQ,UAAR;GACE,KAAK,UACH,QAAO;GACT,KAAK,UACH,QAAO;GACT,KAAK,UACH,QAAO;GACT,QACE,OAAM,IAAI,oBAAoB,2CAA2C,WAAW;;;AAI1F,OAAM,IAAI,oBAAoB,0BAA0B,OAAO,OAAO;;;;;;;;AASxE,SAAgB,4BAA4B,WAAsD;AAChG,SAAQ,WAAR;EAEE,KAAK;EACL,KAAK,SACH,QAAO;GAAE,MAAM;GAAS,MAAM;GAAW;EAC3C,KAAK,QACH,QAAO;GAAE,MAAM;GAAS,MAAM;GAAW;EAC3C,KAAK,QACH,QAAO;GAAE,MAAM;GAAS,MAAM;GAAW;EAG3C,KAAK,QACH,QAAO,EAAE,MAAM,WAAW;EAG5B,KAAK,QACH,QAAO;GAAE,MAAM;GAAqB,MAAM;GAAW;EACvD,KAAK,QACH,QAAO;GAAE,MAAM;GAAqB,MAAM;GAAW;EACvD,KAAK,QACH,QAAO;GAAE,MAAM;GAAqB,MAAM;GAAW;EAGvD,KAAK,QACH,QAAO;GAAE,MAAM;GAAW,MAAM;GAAW;EAC7C,KAAK,QACH,QAAO;GAAE,MAAM;GAAW,MAAM;GAAW;EAC7C,KAAK,QACH,QAAO;GAAE,MAAM;GAAW,MAAM;GAAW;EAE7C,QACE,OAAM,IAAI,oBAAoB,8BAA8B,YAAY"}
@@ -1,6 +1,5 @@
1
1
 
2
2
 
3
- import { getJwkHumanDescription } from "../../../modules/kms/jwk/humanDescription.mjs";
4
3
  import { PublicJwk } from "../../../modules/kms/jwk/PublicJwk.mjs";
5
4
  import "../../../modules/kms/index.mjs";
6
5
  import { CredoWebCryptoError } from "../CredoWebCryptoError.mjs";
@@ -24,7 +23,7 @@ const publicJwkToCryptoKeyAlgorithm = (key) => {
24
23
  } else if (publicJwk.kty === "OKP") {
25
24
  if (publicJwk.crv === "Ed25519") return { name: "Ed25519" };
26
25
  }
27
- throw new CredoWebCryptoError(`Unsupported ${getJwkHumanDescription(key.toJson())}`);
26
+ throw new CredoWebCryptoError(`Unsupported ${key.jwkTypeHumanDescription}`);
28
27
  };
29
28
  const cryptoKeyAlgorithmToCreateKeyOptions = (algorithm) => {
30
29
  const algorithmName = algorithm.name.toUpperCase();
@@ -1 +1 @@
1
- {"version":3,"file":"keyAlgorithmConversion.mjs","names":[],"sources":["../../../../src/crypto/webcrypto/utils/keyAlgorithmConversion.ts"],"sourcesContent":["import { RSAPublicKey } from '@peculiar/asn1-rsa'\nimport { AsnParser, AsnSerializer } from '@peculiar/asn1-schema'\nimport { AlgorithmIdentifier, SubjectPublicKeyInfo } from '@peculiar/asn1-x509'\nimport { getJwkHumanDescription, type KmsCreateKeyType, PublicJwk } from '../../../modules/kms'\nimport {\n ecPublicKeyWithK256AlgorithmIdentifier,\n ecPublicKeyWithP256AlgorithmIdentifier,\n ecPublicKeyWithP384AlgorithmIdentifier,\n ecPublicKeyWithP521AlgorithmIdentifier,\n ed25519AlgorithmIdentifier,\n rsaKeyAlgorithmIdentifier,\n x25519AlgorithmIdentifier,\n} from '../algorithmIdentifiers'\nimport { CredoWebCryptoError } from '../CredoWebCryptoError'\nimport type { EcKeyGenParams, KeyGenAlgorithm, RsaHashedKeyGenParams } from '../types'\n\nexport const publicJwkToCryptoKeyAlgorithm = (key: PublicJwk): KeyGenAlgorithm => {\n const publicJwk = key.toJson()\n\n if (publicJwk.kty === 'EC') {\n if (publicJwk.crv === 'P-256' || publicJwk.crv === 'P-384' || publicJwk.crv === 'P-521') {\n return { name: 'ECDSA', namedCurve: publicJwk.crv }\n }\n\n if (publicJwk.crv === 'secp256k1') {\n return {\n name: 'ECDSA',\n namedCurve: 'K-256',\n }\n }\n } else if (publicJwk.kty === 'OKP') {\n if (publicJwk.crv === 'Ed25519') {\n return { name: 'Ed25519' }\n }\n }\n\n // TODO: support RSA, but i think we need some extra params for this\n throw new CredoWebCryptoError(`Unsupported ${getJwkHumanDescription(key.toJson())}`)\n}\n\n// TODO: support RSA\nexport const cryptoKeyAlgorithmToCreateKeyOptions = (algorithm: KeyGenAlgorithm) => {\n const algorithmName = algorithm.name.toUpperCase()\n switch (algorithmName) {\n case 'ED25519':\n return {\n kty: 'OKP',\n crv: 'Ed25519',\n } satisfies KmsCreateKeyType\n case 'X25519':\n return {\n kty: 'OKP',\n crv: 'X25519',\n } satisfies KmsCreateKeyType\n case 'ECDSA': {\n const crv = (algorithm as EcKeyGenParams).namedCurve.toUpperCase()\n switch (crv) {\n case 'P-256':\n case 'P-384':\n case 'P-521':\n return {\n kty: 'EC',\n crv,\n } satisfies KmsCreateKeyType\n case 'K-256':\n return {\n kty: 'EC',\n crv: 'secp256k1',\n } satisfies KmsCreateKeyType\n default:\n throw new CredoWebCryptoError(`Unsupported curve for ECDSA: ${(algorithm as EcKeyGenParams).namedCurve}`)\n }\n }\n case 'RSASSA-PKCS1-V1_5':\n case 'RSA-PSS': {\n const rsaParams = algorithm as RsaHashedKeyGenParams\n\n if (rsaParams.publicExponent) {\n throw new CredoWebCryptoError('Custom exponent not suported for RSA')\n }\n\n if (rsaParams.modulusLength !== 2048 && rsaParams.modulusLength !== 3072 && rsaParams.modulusLength !== 4096) {\n throw new CredoWebCryptoError(\n `Unsupported modulusLength '${rsaParams.modulusLength}' for RSA key. Expected one of 2048, 3072, 4096.`\n )\n }\n\n return {\n kty: 'RSA',\n modulusLength: rsaParams.modulusLength,\n } satisfies KmsCreateKeyType\n }\n }\n\n throw new CredoWebCryptoError(`Unsupported algorithm: ${algorithmName}`)\n}\n\nexport const spkiToPublicJwk = (spki: SubjectPublicKeyInfo): PublicJwk => {\n if (spki.algorithm.isEqual(ecPublicKeyWithP256AlgorithmIdentifier)) {\n return PublicJwk.fromPublicKey({\n kty: 'EC',\n crv: 'P-256',\n publicKey: new Uint8Array(spki.subjectPublicKey),\n })\n }\n if (spki.algorithm.isEqual(ecPublicKeyWithP384AlgorithmIdentifier)) {\n return PublicJwk.fromPublicKey({\n kty: 'EC',\n crv: 'P-384',\n publicKey: new Uint8Array(spki.subjectPublicKey),\n })\n }\n if (spki.algorithm.isEqual(ecPublicKeyWithP521AlgorithmIdentifier)) {\n return PublicJwk.fromPublicKey({\n kty: 'EC',\n crv: 'P-521',\n publicKey: new Uint8Array(spki.subjectPublicKey),\n })\n }\n if (spki.algorithm.isEqual(ecPublicKeyWithK256AlgorithmIdentifier)) {\n return PublicJwk.fromPublicKey({\n kty: 'EC',\n crv: 'secp256k1',\n publicKey: new Uint8Array(spki.subjectPublicKey),\n })\n }\n if (spki.algorithm.isEqual(ed25519AlgorithmIdentifier)) {\n return PublicJwk.fromPublicKey({\n kty: 'OKP',\n crv: 'Ed25519',\n publicKey: new Uint8Array(spki.subjectPublicKey),\n })\n }\n if (spki.algorithm.isEqual(x25519AlgorithmIdentifier)) {\n return PublicJwk.fromPublicKey({\n kty: 'OKP',\n crv: 'X25519',\n publicKey: new Uint8Array(spki.subjectPublicKey),\n })\n }\n if (spki.algorithm.isEqual(rsaKeyAlgorithmIdentifier)) {\n // The RSA key is another ASN.1 structure inside the subjectPublicKey bit string\n // The first byte in the bit string is the number of unused bits (typically 0)\n const keyWithoutUnusedBits = new Uint8Array(spki.subjectPublicKey).slice(1)\n\n // Parse the RSA public key structure\n const rsaPublicKey = AsnParser.parse(keyWithoutUnusedBits, RSAPublicKey)\n\n return PublicJwk.fromPublicKey({\n kty: 'RSA',\n modulus: new Uint8Array(rsaPublicKey.modulus),\n exponent: new Uint8Array(rsaPublicKey.publicExponent),\n })\n }\n\n throw new CredoWebCryptoError(\n `Unsupported algorithm: ${spki.algorithm.algorithm}, with params: ${spki.algorithm.parameters ? 'yes' : 'no'}`\n )\n}\n\nexport const publicJwkToSpki = (publicJwk: PublicJwk): SubjectPublicKeyInfo => {\n const publicKey = publicJwk.publicKey\n\n if (publicKey.kty === 'RSA') {\n const rsaPublicKey = new RSAPublicKey({\n modulus: new Uint8Array(publicKey.modulus).buffer,\n publicExponent: new Uint8Array(publicKey.exponent).buffer,\n })\n\n // 2. Encode the RSA public key to DER\n const rsaPublicKeyDer = AsnSerializer.serialize(rsaPublicKey)\n\n return new SubjectPublicKeyInfo({\n algorithm: rsaKeyAlgorithmIdentifier,\n subjectPublicKey: new Uint8Array([0, ...new Uint8Array(rsaPublicKeyDer)]).buffer,\n })\n }\n\n const crvToAlgorithm: Record<(typeof publicKey)['crv'], AlgorithmIdentifier> = {\n 'P-256': ecPublicKeyWithP256AlgorithmIdentifier,\n 'P-384': ecPublicKeyWithP384AlgorithmIdentifier,\n 'P-521': ecPublicKeyWithP521AlgorithmIdentifier,\n secp256k1: ecPublicKeyWithK256AlgorithmIdentifier,\n Ed25519: ed25519AlgorithmIdentifier,\n X25519: x25519AlgorithmIdentifier,\n }\n\n return new SubjectPublicKeyInfo({\n algorithm: crvToAlgorithm[publicKey.crv],\n subjectPublicKey: new Uint8Array(publicKey.publicKey).buffer,\n })\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"keyAlgorithmConversion.mjs","names":[],"sources":["../../../../src/crypto/webcrypto/utils/keyAlgorithmConversion.ts"],"sourcesContent":["import { RSAPublicKey } from '@peculiar/asn1-rsa'\nimport { AsnParser, AsnSerializer } from '@peculiar/asn1-schema'\nimport { AlgorithmIdentifier, SubjectPublicKeyInfo } from '@peculiar/asn1-x509'\nimport { type KmsCreateKeyType, PublicJwk } from '../../../modules/kms'\nimport {\n ecPublicKeyWithK256AlgorithmIdentifier,\n ecPublicKeyWithP256AlgorithmIdentifier,\n ecPublicKeyWithP384AlgorithmIdentifier,\n ecPublicKeyWithP521AlgorithmIdentifier,\n ed25519AlgorithmIdentifier,\n rsaKeyAlgorithmIdentifier,\n x25519AlgorithmIdentifier,\n} from '../algorithmIdentifiers'\nimport { CredoWebCryptoError } from '../CredoWebCryptoError'\nimport type { EcKeyGenParams, KeyGenAlgorithm, RsaHashedKeyGenParams } from '../types'\n\nexport const publicJwkToCryptoKeyAlgorithm = (key: PublicJwk): KeyGenAlgorithm => {\n const publicJwk = key.toJson()\n\n if (publicJwk.kty === 'EC') {\n if (publicJwk.crv === 'P-256' || publicJwk.crv === 'P-384' || publicJwk.crv === 'P-521') {\n return { name: 'ECDSA', namedCurve: publicJwk.crv }\n }\n\n if (publicJwk.crv === 'secp256k1') {\n return {\n name: 'ECDSA',\n namedCurve: 'K-256',\n }\n }\n } else if (publicJwk.kty === 'OKP') {\n if (publicJwk.crv === 'Ed25519') {\n return { name: 'Ed25519' }\n }\n }\n\n // TODO: support RSA, but i think we need some extra params for this\n throw new CredoWebCryptoError(`Unsupported ${key.jwkTypeHumanDescription}`)\n}\n\n// TODO: support RSA\nexport const cryptoKeyAlgorithmToCreateKeyOptions = (algorithm: KeyGenAlgorithm) => {\n const algorithmName = algorithm.name.toUpperCase()\n switch (algorithmName) {\n case 'ED25519':\n return {\n kty: 'OKP',\n crv: 'Ed25519',\n } satisfies KmsCreateKeyType\n case 'X25519':\n return {\n kty: 'OKP',\n crv: 'X25519',\n } satisfies KmsCreateKeyType\n case 'ECDSA': {\n const crv = (algorithm as EcKeyGenParams).namedCurve.toUpperCase()\n switch (crv) {\n case 'P-256':\n case 'P-384':\n case 'P-521':\n return {\n kty: 'EC',\n crv,\n } satisfies KmsCreateKeyType\n case 'K-256':\n return {\n kty: 'EC',\n crv: 'secp256k1',\n } satisfies KmsCreateKeyType\n default:\n throw new CredoWebCryptoError(`Unsupported curve for ECDSA: ${(algorithm as EcKeyGenParams).namedCurve}`)\n }\n }\n case 'RSASSA-PKCS1-V1_5':\n case 'RSA-PSS': {\n const rsaParams = algorithm as RsaHashedKeyGenParams\n\n if (rsaParams.publicExponent) {\n throw new CredoWebCryptoError('Custom exponent not suported for RSA')\n }\n\n if (rsaParams.modulusLength !== 2048 && rsaParams.modulusLength !== 3072 && rsaParams.modulusLength !== 4096) {\n throw new CredoWebCryptoError(\n `Unsupported modulusLength '${rsaParams.modulusLength}' for RSA key. Expected one of 2048, 3072, 4096.`\n )\n }\n\n return {\n kty: 'RSA',\n modulusLength: rsaParams.modulusLength,\n } satisfies KmsCreateKeyType\n }\n }\n\n throw new CredoWebCryptoError(`Unsupported algorithm: ${algorithmName}`)\n}\n\nexport const spkiToPublicJwk = (spki: SubjectPublicKeyInfo): PublicJwk => {\n if (spki.algorithm.isEqual(ecPublicKeyWithP256AlgorithmIdentifier)) {\n return PublicJwk.fromPublicKey({\n kty: 'EC',\n crv: 'P-256',\n publicKey: new Uint8Array(spki.subjectPublicKey),\n })\n }\n if (spki.algorithm.isEqual(ecPublicKeyWithP384AlgorithmIdentifier)) {\n return PublicJwk.fromPublicKey({\n kty: 'EC',\n crv: 'P-384',\n publicKey: new Uint8Array(spki.subjectPublicKey),\n })\n }\n if (spki.algorithm.isEqual(ecPublicKeyWithP521AlgorithmIdentifier)) {\n return PublicJwk.fromPublicKey({\n kty: 'EC',\n crv: 'P-521',\n publicKey: new Uint8Array(spki.subjectPublicKey),\n })\n }\n if (spki.algorithm.isEqual(ecPublicKeyWithK256AlgorithmIdentifier)) {\n return PublicJwk.fromPublicKey({\n kty: 'EC',\n crv: 'secp256k1',\n publicKey: new Uint8Array(spki.subjectPublicKey),\n })\n }\n if (spki.algorithm.isEqual(ed25519AlgorithmIdentifier)) {\n return PublicJwk.fromPublicKey({\n kty: 'OKP',\n crv: 'Ed25519',\n publicKey: new Uint8Array(spki.subjectPublicKey),\n })\n }\n if (spki.algorithm.isEqual(x25519AlgorithmIdentifier)) {\n return PublicJwk.fromPublicKey({\n kty: 'OKP',\n crv: 'X25519',\n publicKey: new Uint8Array(spki.subjectPublicKey),\n })\n }\n if (spki.algorithm.isEqual(rsaKeyAlgorithmIdentifier)) {\n // The RSA key is another ASN.1 structure inside the subjectPublicKey bit string\n // The first byte in the bit string is the number of unused bits (typically 0)\n const keyWithoutUnusedBits = new Uint8Array(spki.subjectPublicKey).slice(1)\n\n // Parse the RSA public key structure\n const rsaPublicKey = AsnParser.parse(keyWithoutUnusedBits, RSAPublicKey)\n\n return PublicJwk.fromPublicKey({\n kty: 'RSA',\n modulus: new Uint8Array(rsaPublicKey.modulus),\n exponent: new Uint8Array(rsaPublicKey.publicExponent),\n })\n }\n\n throw new CredoWebCryptoError(\n `Unsupported algorithm: ${spki.algorithm.algorithm}, with params: ${spki.algorithm.parameters ? 'yes' : 'no'}`\n )\n}\n\nexport const publicJwkToSpki = (publicJwk: PublicJwk): SubjectPublicKeyInfo => {\n const publicKey = publicJwk.publicKey\n\n if (publicKey.kty === 'RSA') {\n const rsaPublicKey = new RSAPublicKey({\n modulus: new Uint8Array(publicKey.modulus).buffer,\n publicExponent: new Uint8Array(publicKey.exponent).buffer,\n })\n\n // 2. Encode the RSA public key to DER\n const rsaPublicKeyDer = AsnSerializer.serialize(rsaPublicKey)\n\n return new SubjectPublicKeyInfo({\n algorithm: rsaKeyAlgorithmIdentifier,\n subjectPublicKey: new Uint8Array([0, ...new Uint8Array(rsaPublicKeyDer)]).buffer,\n })\n }\n\n const crvToAlgorithm: Record<(typeof publicKey)['crv'], AlgorithmIdentifier> = {\n 'P-256': ecPublicKeyWithP256AlgorithmIdentifier,\n 'P-384': ecPublicKeyWithP384AlgorithmIdentifier,\n 'P-521': ecPublicKeyWithP521AlgorithmIdentifier,\n secp256k1: ecPublicKeyWithK256AlgorithmIdentifier,\n Ed25519: ed25519AlgorithmIdentifier,\n X25519: x25519AlgorithmIdentifier,\n }\n\n return new SubjectPublicKeyInfo({\n algorithm: crvToAlgorithm[publicKey.crv],\n subjectPublicKey: new Uint8Array(publicKey.publicKey).buffer,\n })\n}\n"],"mappings":"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"}
package/build/index.d.mts CHANGED
@@ -27,12 +27,13 @@ import { Sha1 } from "./crypto/hashes/Sha1.mjs";
27
27
  import { Sha256 } from "./crypto/hashes/Sha256.mjs";
28
28
  import { Sha384 } from "./crypto/hashes/Sha384.mjs";
29
29
  import { Sha512 } from "./crypto/hashes/Sha512.mjs";
30
- import { KeyGenAlgorithm, KeySignParams } from "./crypto/webcrypto/types.mjs";
30
+ import { KeyGenAlgorithm, KeySignParams, jwaAlgorithmToKeySignParams, keyParamsToJwaAlgorithm } from "./crypto/webcrypto/types.mjs";
31
31
  import { CredoWebCryptoKey } from "./crypto/webcrypto/CredoWebCryptoKey.mjs";
32
32
  import { CredoWebCrypto } from "./crypto/webcrypto/CredoWebCrypto.mjs";
33
33
  import { publicJwkToCryptoKeyAlgorithm } from "./crypto/webcrypto/utils/keyAlgorithmConversion.mjs";
34
- import { EncodedX509Certificate, X509CertificateExtensionsOptions, X509CertificateIssuerAndSubjectOptions, X509CreateCertificateChainOptions, X509CreateCertificateOptions, X509GetLeafCertificateOptions, X509ParseCertificateOptions, X509ValidateCertificateChainOptions } from "./modules/x509/X509ServiceOptions.mjs";
34
+ import { EncodedX509Certificate, X509CertificateExtensionsOptions, X509CertificateIssuerAndSubjectOptions, X509CertificateSigningRequestExtensionsOptions, X509CreateCertificateChainOptions, X509CreateCertificateOptions, X509CreateCertificateSigningRequestOptions, X509GetLeafCertificateOptions, X509ParseCertificateOptions, X509ParseCertificateSigningRequestOptions, X509ValidateCertificateChainOptions } from "./modules/x509/X509ServiceOptions.mjs";
35
35
  import { X509Certificate, X509CertificateOptions, X509ExtendedKeyUsage, X509KeyUsage } from "./modules/x509/X509Certificate.mjs";
36
+ import { CertificateSigningRequest, CertificateSigningRequestOptions } from "./modules/x509/CertificateSigningRequest.mjs";
36
37
  import { extractX509CertificatesFromJwt } from "./modules/x509/extraction.mjs";
37
38
  import { createAuthorityKeyIdentifierExtension, createBasicConstraintsExtension, createCrlDistributionPointsExtension, createExtendedKeyUsagesExtension, createIssuerAlternativeNameExtension, createKeyUsagesExtension, createSubjectAlternativeNameExtension, createSubjectKeyIdentifierExtension } from "./modules/x509/utils/extensions.mjs";
38
39
  import { convertName } from "./modules/x509/utils/nameConversion.mjs";
@@ -91,6 +92,7 @@ import { W3cV2Credential, W3cV2CredentialOptions } from "./modules/vc/models/cre
91
92
  import { asArray } from "./utils/array.mjs";
92
93
  import { deepEquality, equalsIgnoreOrder, equalsWithOrder } from "./utils/deepEquality.mjs";
93
94
  import { indyDidFromPublicKeyBase58, isDid } from "./utils/did.mjs";
95
+ import { IntegrityVerifier } from "./utils/IntegrityVerifier.mjs";
94
96
  import { JsonEncoder } from "./utils/JsonEncoder.mjs";
95
97
  import { JsonTransformer } from "./utils/JsonTransformer.mjs";
96
98
  import { MessageValidator } from "./utils/MessageValidator.mjs";
@@ -270,5 +272,5 @@ declare const utils: {
270
272
  addSecondsToDate: typeof addSecondsToDate;
271
273
  };
272
274
  //#endregion
273
- export { ANONCREDS_DATA_INTEGRITY_CRYPTOSUITE, Agent, type AgentApi, AgentConfig, AgentContext, AgentContextProvider, type AgentDependencies, AnonCredsDataIntegrityServiceSymbol, AnoncredsDataIntegrityCreatePresentation, AnoncredsDataIntegrityVerifyPresentation, type AnyUint8Array, ApiModule, BaseAgent, BaseEvent, BaseLogger, type BaseName, BaseRecord, BaseRecordAny, type BaseRecordConstructor, Buffer, CREDENTIALS_CONTEXT_V1_URL, CREDENTIALS_CONTEXT_V2_URL, CREDENTIALS_ISSUER_URL, Cache, CacheModule, CacheModuleConfig, CacheModuleOptions, CachedStorageService, type CanBePromise, ClaimFormat, ClassValidationError, ConsoleLogger, type Constructable, type Constructor, ContentType, CredentialIssuancePurpose, CredentialMultiInstanceState, CredentialMultiInstanceUseMode, type CredentialMultiInstanceUseUpdateMode, CredoError, CredoWebCrypto, CredoWebCryptoKey, CustomDidTags, CustomW3cCredentialTags, DID_V1_CONTEXT_URL, DataIntegrityProof, DataIntegrityProofOptions, DateOnly, DateTransformer, DcqlCredential, DcqlCredentialsForRequest, DcqlEncodedPresentations, DcqlEncodedPresentationsEntry, DcqlError, DcqlFailedCredential, DcqlJwtVpPresentationToCreate, DcqlJwtW3cVpPresentationToCreate, DcqlLdpVpPresentationToCreate, DcqlMatchWithRecord, DcqlMdocCredential, DcqlMdocPresentationToCreate, DcqlModule, DcqlPresentation, DcqlPresentationResult, DcqlPresentationsToCreate, DcqlQuery, DcqlQueryResult, DcqlSdJwtVcCredential, DcqlSdJwtVcPresentationToCreate, DcqlSdJwtW3cVpPresentationToCreate, DcqlSelectCredentialsForRequestOptions, DcqlService, DcqlValidCredential, DcqlW3cVcCredential, DefaultAgentContextProvider, type DefaultAgentModules, DefaultMdocRecordTags, DefaultSdJwtVcRecordTags, DefaultW3cCredentialTags, DefaultW3cV2CredentialTags, DependencyManager, DidCommV1Service, LegacyDidCommV2Service as DidCommV2Service, LegacyDidCommV2ServiceOptions as DidCommV2ServiceOptions, DidCreateOptions, DidCreateResult, DidDeactivateOptions, DidDeactivateResult, DidDocument, DidDocumentBuilder, DidDocumentKey, DidDocumentMetadata, DidDocumentOperation, DidDocumentRole, DidDocumentService, DidJwk, DidKey, DidOperationStateActionBase, DidOperationStateFailed, DidOperationStateFinished, DidOperationStateWait, DidPurpose, DidRecord, DidRecordMetadataKeys, DidRecordProps, DidRegistrar, DidRegistrarService, DidRegistrationExtraOptions, DidRegistrationMetadata, DidRegistrationSecretOptions, DidRepository, DidResolutionMetadata, DidResolutionOptions, DidResolutionResult, DidResolver, DidResolverService, DidUpdateOptions, DidUpdateResult, DidsApi, DidsModule, DidsModuleConfig, DidsModuleConfigOptions, DifPexCredentialsForRequest, DifPexCredentialsForRequestRequirement, DifPexCredentialsForRequestSubmissionEntry, DifPexInputDescriptorToCredentials, DifPexPresentationWithDescriptor, DifPresentationExchangeDefinition, DifPresentationExchangeDefinitionV1, DifPresentationExchangeDefinitionV2, DifPresentationExchangeError, DifPresentationExchangeModule, DifPresentationExchangeService, DifPresentationExchangeSubmission, PresentationSubmissionLocation as DifPresentationExchangeSubmissionLocation, DocumentLoader, type DownloadToFileOptions, ENVELOPED_VERIFIABLE_CREDENTIAL_TYPE, ENVELOPED_VERIFIABLE_PRESENTATION_TYPE, EXPANDED_TYPE_CREDENTIALS_CONTEXT_V1_VC_TYPE, Ed25519Signature2018, Ed25519Signature2020, type EmptyModuleMap, EncodedX509Certificate, EventEmitter, EventMetadata, type FileSystem, GenericRecord, GenericRecordStorageProps, GenericRecordTags, GenericRecordsApi, GenericRecordsModule, HashName, Hasher, IAnonCredsDataIntegrityService, IDisclosureFrame, IPresentationFrame, ImportDidOptions, InMemoryLruCache, InMemoryLruCacheOptions, IndyAgentService, type InitConfig, InjectionSymbols, InjectionToken, IsEnvelopedVerifiableCredentialType, IsEnvelopedVerifiablePresentationType, IsStringOrInstance, IsStringOrInstanceOrArrayOfInstances, IsStringOrStringArray, IsStringOrVerificationMethod, IsUri, IsW3cCredentialSubject, IsW3cIssuer, IsW3cV2Issuer, type JsonArray, JsonEncoder, type JsonObject, JsonTransformer, type JsonValue, JwkDidCreateOptions, JwkDidDeactivateOptions, JwkDidRegistrar, JwkDidResolver, JwkDidUpdateOptions, JwsDetachedFormat, JwsFlattenedDetachedFormat, JwsGeneralFormat, JwsLinkedDataSignature, JwsLinkedDataSignatureOptions, JwsProtectedHeaderOptions, JwsService, JwsSigner, JwsSignerDid, JwsSignerJwk, JwsSignerWithJwk, JwsSignerX5c, Jwt, JwtPayload, JwtPayloadJson, JwtPayloadOptions, KeyDidCreateOptions, KeyDidDeactivateOptions, KeyDidRegistrar, KeyDidResolver, KeyDidUpdateOptions, KeyGenAlgorithm, KeySignParams, index_d_exports as Kms, LdKeyPair, LdKeyPairOptions, LogLevel, Logger, Mdoc, MdocApi, MdocDeviceResponse, MdocDeviceResponseOptions, MdocDeviceResponsePresentationDefinitionOptions, MdocDeviceResponseVerifyOptions, MdocDocumentRequest, MdocError, MdocModule, MdocNameSpaces, MdocOpenId4VpDcApiDraft24SessionTranscriptOptions, MdocOpenId4VpDcApiSessionTranscriptOptions, MdocOpenId4VpDraft18SessionTranscriptOptions, MdocOpenId4VpSessionTranscriptOptions, MdocRecord, MdocRecordInstances, MdocRecordStorageProps, MdocRepository, MdocService, MdocSessionTranscriptByteOptions, MdocSessionTranscriptOptions, MdocSignOptions, MdocStoreOptions, MdocSupportedSignatureAlgorithm, MdocVerifyOptions, MessageValidator, Metadata, type MetadataBase, Module, type ModulesMap, MultiBaseEncoder, MultiHashEncoder, DidCommV2Service as NewDidCommV2Service, DidCommV2ServiceEndpoint as NewDidCommV2ServiceEndpoint, DidCommV2ServiceEndpointOptions as NewDidCommV2ServiceEndpointOptions, type NonEmptyArray, type Optional, ParsedDid, PeerDidCreateOptions, PeerDidDeactivateOptions, PeerDidNumAlgo, PeerDidNumAlgo0CreateOptions, PeerDidNumAlgo1CreateOptions, PeerDidNumAlgo2CreateOptions, PeerDidNumAlgo4CreateOptions, PeerDidRegistrar, PeerDidResolver, PeerDidUpdateOptions, Proof, ProofPurpose, type Query, type QueryOptions, RecordDeletedEvent, RecordDuplicateError, RecordNotFoundError, RecordSavedEvent, RecordTags, RecordUpdatedEvent, Repository, RepositoryEventTypes, type ResolvedDidCommService, SECURITY_CONTEXT_SECP256k1_URL, SECURITY_CONTEXT_URL, SECURITY_CONTEXT_V1_URL, SECURITY_CONTEXT_V2_URL, SECURITY_CONTEXT_V3_URL, SECURITY_JWS_CONTEXT_URL, SECURITY_PROOF_URL, SECURITY_SIGNATURE_URL, SECURITY_X25519_CONTEXT_URL, SaveGenericRecordOption, SdJwtVc, SdJwtVcApi, SdJwtVcError, SdJwtVcHeader, SdJwtVcHolderBinding, SdJwtVcHolderDidBinding, SdJwtVcHolderJwkBinding, SdJwtVcIssuer, SdJwtVcIssuerDid, SdJwtVcIssuerX5c, SdJwtVcModule, SdJwtVcPayload, SdJwtVcPresentOptions, SdJwtVcRecord, SdJwtVcRecordInstances, SdJwtVcRecordStorageProps, SdJwtVcRepository, SdJwtVcService, SdJwtVcSignOptions, SdJwtVcStoreOptions, SdJwtVcTypeMetadata, SdJwtVcTypeMetadataClaim, SdJwtVcTypeMetadataDisplay, SdJwtVcTypeMetadataRenderingMethodSimple, SdJwtVcTypeMetadataRenderingMethodSvgTemplate, SdJwtVcVerifyOptions, ServiceTransformer, Sha1, Sha256, Sha384, Sha512, SignatureSuiteRegistry, SignatureSuiteToken, type SimpleQuery, SingleContextLruCacheItem, SingleContextLruCacheRecord, SingleContextStorageLruCache, SingleContextStorageLruCacheOptions, type SingleOrArray, SingleValidationResult, type StorageService, StorageUpdateService, StorageVersionRecord, StorageVersionRecordProps, StorageVersionRepository, SubmissionEntryCredential, SuiteInfo, TagValue, Tags, TagsBase, TypedArrayEncoder, type Uint8ArrayBuffer, type UnionToIntersection, Update, UpdateAssistant, UpdateAssistantUpdateOptions, type UpdateConfig, type UseInstanceFromCredentialRecordOptions, type UseInstanceFromCredentialRecordReturn, type V0_1ToV0_2UpdateConfig, VERIFIABLE_CREDENTIAL_TYPE, VERIFIABLE_PRESENTATION_TYPE, VERIFICATION_METHOD_TYPE_ECDSA_SECP256K1_VERIFICATION_KEY_2019, VERIFICATION_METHOD_TYPE_ED25519_VERIFICATION_KEY_2018, VERIFICATION_METHOD_TYPE_ED25519_VERIFICATION_KEY_2020, VERIFICATION_METHOD_TYPE_JSON_WEB_KEY_2020, VERIFICATION_METHOD_TYPE_MULTIKEY, VERIFICATION_METHOD_TYPE_X25519_KEY_AGREEMENT_KEY_2019, VerifiableCredential, VerifiablePresentation, VerificationMethod, VerificationMethodTransformer, VerificationResult, type VersionString, W3cCreatePresentationOptions, W3cCredential, W3cCredentialOptions, W3cCredentialRecord, W3cCredentialRecordInstances, W3cCredentialRecordOptions, W3cCredentialRepository, W3cCredentialSchema, W3cCredentialSchemaOptions, W3cCredentialService, W3cCredentialStatus, W3cCredentialStatusOptions, W3cCredentialSubject, W3cCredentialSubjectOptions, W3cCredentialSubjectTransformer, W3cCredentialsApi, W3cCredentialsModule, W3cCredentialsModuleConfig, W3cCredentialsModuleConfigOptions, W3cIssuer, W3cIssuerOptions, W3cIssuerTransformer, W3cJsonCredential, W3cJsonLdCredentialService, W3cJsonLdDeriveProofOptions, W3cJsonLdSignCredentialOptions, W3cJsonLdSignPresentationOptions, W3cJsonLdVerifiableCredential, W3cJsonLdVerifiableCredentialOptions, W3cJsonLdVerifiablePresentation, W3cJsonLdVerifiablePresentationOptions, W3cJsonLdVerifyCredentialOptions, W3cJsonLdVerifyPresentationOptions, W3cJsonPresentation, W3cJwtCredentialService, W3cJwtSignCredentialOptions, W3cJwtSignPresentationOptions, W3cJwtVerifiableCredential, W3cJwtVerifiableCredentialOptions, W3cJwtVerifiablePresentation, W3cJwtVerifiablePresentationOptions, W3cJwtVerifyCredentialOptions, W3cJwtVerifyPresentationOptions, W3cPresentation, W3cPresentationOptions, W3cSignCredentialOptions, W3cSignPresentationOptions, W3cStoreCredentialOptions, W3cV2Credential, W3cV2CredentialOptions, W3cV2CredentialRecord, W3cV2CredentialRecordInstances, W3cV2CredentialRecordOptions, W3cV2CredentialRepository, W3cV2CredentialSchema, W3cV2CredentialSchemaOptions, W3cV2CredentialService, W3cV2CredentialStatus, W3cV2CredentialStatusOptions, W3cV2CredentialSubject, W3cV2CredentialSubjectOptions, W3cV2CredentialsApi, W3cV2CredentialsModule, W3cV2EnvelopedVerifiableCredential, W3cV2EnvelopedVerifiableCredentialOptions, W3cV2EnvelopedVerifiableCredentialTransformer, W3cV2EnvelopedVerifiablePresentation, W3cV2EnvelopedVerifiablePresentationOptions, W3cV2Evidence, W3cV2EvidenceOptions, W3cV2Issuer, W3cV2IssuerOptions, W3cV2IssuerTransformer, W3cV2JsonCredential, W3cV2JsonLocalizedValue, W3cV2JsonPresentation, W3cV2JwtCredentialService, W3cV2JwtSignCredentialOptions, W3cV2JwtSignPresentationOptions, W3cV2JwtVerifiableCredential, W3cV2JwtVerifiableCredentialOptions, W3cV2JwtVerifiablePresentation, W3cV2JwtVerifiablePresentationOptions, W3cV2JwtVerifyCredentialOptions, W3cV2JwtVerifyPresentationOptions, W3cV2LocalizedValue, W3cV2LocalizedValueOptions, W3cV2LocalizedValueTransformer, W3cV2Presentation, W3cV2PresentationOptions, W3cV2RefreshService, W3cV2RefreshServiceOptions, W3cV2SdJwt, W3cV2SdJwtCredentialService, W3cV2SdJwtHeader, W3cV2SdJwtPayload, W3cV2SdJwtSignCredentialOptions, W3cV2SdJwtSignPresentationOptions, W3cV2SdJwtVcPresentOptions, W3cV2SdJwtVerifiableCredential, W3cV2SdJwtVerifiableCredentialOptions, W3cV2SdJwtVerifiablePresentation, W3cV2SdJwtVerifiablePresentationOptions, W3cV2SdJwtVerifyCredentialOptions, W3cV2SdJwtVerifyPresentationOptions, W3cV2SignCredentialOptions, W3cV2SignPresentationOptions, W3cV2StoreCredentialOptions, W3cV2TermsOfUse, W3cV2TermsOfUseOptions, W3cV2VerifiableCredential, W3cV2VerifiableCredentialOptions, W3cV2VerifiableCredentialTransformer, W3cV2VerifyCredentialOptions, W3cV2VerifyCredentialResult, W3cV2VerifyPresentationOptions, W3cV2VerifyPresentationResult, W3cVerifiableCredential, W3cVerifiableCredentialTransformer, W3cVerifiablePresentation, W3cVerifyCredentialOptions, W3cVerifyCredentialResult, W3cVerifyPresentationOptions, W3cVerifyPresentationResult, WebDidResolver, X509Api, X509Certificate, X509CertificateExtensionsOptions, X509CertificateIssuerAndSubjectOptions, X509CertificateOptions, X509CreateCertificateChainOptions, X509CreateCertificateOptions, X509Error, X509ExtendedKeyUsage, X509GetLeafCertificateOptions, X509KeyUsage, X509Module, X509ModuleConfig, X509ModuleConfigOptions, X509ParseCertificateOptions, X509Service, X509ValidateCertificateChainOptions, X509VerificationContext, X509VerificationTypeCredential, X509VerificationTypeOauth2ClientAttestation, X509VerificationTypeOauth2SecuredAuthorizationRequest, X509VerificationTypeOpenId4VciCredentialIssuerMetadata, X509VerificationTypeOpenId4VciKeyAttestation, type XOR, ZodValidationError, asArray, base64ToBase64URL, canUseInstanceFromCredentialRecord, convertName, convertPublicKeyToX25519, createAuthorityKeyIdentifierExtension, createBasicConstraintsExtension, createCrlDistributionPointsExtension, createExtendedKeyUsagesExtension, createIssuerAlternativeNameExtension, createKeyUsagesExtension, createPeerDidDocumentFromServices, createSubjectAlternativeNameExtension, createSubjectKeyIdentifierExtension, dcqlGetPresentationsToCreate, decodeSdJwt, deepEquality, deriveProof, didDocumentJsonToNumAlgo1Did, didDocumentToNumAlgo2Did, didDocumentToNumAlgo4Did, didKeyToEd25519PublicJwk, didKeyToVerkey, equalsIgnoreOrder, equalsWithOrder, extractPresentationsWithDescriptorsFromSubmission, extractX509CertificatesFromJwt, filterContextCorrelationId, findMatchingEd25519Key, findVerificationMethodByKeyType, getAlternativeDidsForPeerDid, getApiForModuleByName, getDirFromFilePath, getDomainFromUrl, getEcdsaSecp256k1VerificationKey2019, getEd25519VerificationKey2018, getEd25519VerificationKey2020, getJsonWebKey2020, getKmsKeyIdForVerifiacationMethod, getMultikey, getNumAlgoFromPeerDid, getPublicJwkFromEcdsaSecp256k1VerificationKey2019, getPublicJwkFromEd25519VerificationKey2018, getPublicJwkFromEd25519VerificationKey2020, getPublicJwkFromJsonWebKey2020, getPublicJwkFromMultikey, getPublicJwkFromVerificationMethod, getPublicJwkFrommX25519KeyAgreementKey2019, getRegisteredModuleByInstance, getRegisteredModuleByName, getX25519KeyAgreementKey2019, inject, injectAll, injectable, isDid, isDidKey, isEcdsaSecp256k1VerificationKey2019, isEd25519VerificationKey2018, isEd25519VerificationKey2020, isJsonObject, isJsonWebKey2020, isMdocSupportedSignatureAlgorithm, isMultikey, isNonEmptyArray, isStorageUpToDate, isValidPeerDid, isX25519KeyAgreementKey2019, joinUriParts, keyDidEd25519, keyDidX25519, mapNonEmptyArray, parseDid, publicJwkToCryptoKeyAlgorithm, replaceError, sdJwtVcHasher, serviceTypes, tryParseDid, useInstanceFromCredentialRecord, utils, vcLibraries, verkeyToDidKey, verkeyToPublicJwk, w3cDate };
275
+ export { ANONCREDS_DATA_INTEGRITY_CRYPTOSUITE, Agent, type AgentApi, AgentConfig, AgentContext, AgentContextProvider, type AgentDependencies, AnonCredsDataIntegrityServiceSymbol, AnoncredsDataIntegrityCreatePresentation, AnoncredsDataIntegrityVerifyPresentation, type AnyUint8Array, ApiModule, BaseAgent, BaseEvent, BaseLogger, type BaseName, BaseRecord, BaseRecordAny, type BaseRecordConstructor, Buffer, CREDENTIALS_CONTEXT_V1_URL, CREDENTIALS_CONTEXT_V2_URL, CREDENTIALS_ISSUER_URL, Cache, CacheModule, CacheModuleConfig, CacheModuleOptions, CachedStorageService, type CanBePromise, CertificateSigningRequest, CertificateSigningRequestOptions, ClaimFormat, ClassValidationError, ConsoleLogger, type Constructable, type Constructor, ContentType, CredentialIssuancePurpose, CredentialMultiInstanceState, CredentialMultiInstanceUseMode, type CredentialMultiInstanceUseUpdateMode, CredoError, CredoWebCrypto, CredoWebCryptoKey, CustomDidTags, CustomW3cCredentialTags, DID_V1_CONTEXT_URL, DataIntegrityProof, DataIntegrityProofOptions, DateOnly, DateTransformer, DcqlCredential, DcqlCredentialsForRequest, DcqlEncodedPresentations, DcqlEncodedPresentationsEntry, DcqlError, DcqlFailedCredential, DcqlJwtVpPresentationToCreate, DcqlJwtW3cVpPresentationToCreate, DcqlLdpVpPresentationToCreate, DcqlMatchWithRecord, DcqlMdocCredential, DcqlMdocPresentationToCreate, DcqlModule, DcqlPresentation, DcqlPresentationResult, DcqlPresentationsToCreate, DcqlQuery, DcqlQueryResult, DcqlSdJwtVcCredential, DcqlSdJwtVcPresentationToCreate, DcqlSdJwtW3cVpPresentationToCreate, DcqlSelectCredentialsForRequestOptions, DcqlService, DcqlValidCredential, DcqlW3cVcCredential, DefaultAgentContextProvider, type DefaultAgentModules, DefaultMdocRecordTags, DefaultSdJwtVcRecordTags, DefaultW3cCredentialTags, DefaultW3cV2CredentialTags, DependencyManager, DidCommV1Service, LegacyDidCommV2Service as DidCommV2Service, LegacyDidCommV2ServiceOptions as DidCommV2ServiceOptions, DidCreateOptions, DidCreateResult, DidDeactivateOptions, DidDeactivateResult, DidDocument, DidDocumentBuilder, DidDocumentKey, DidDocumentMetadata, DidDocumentOperation, DidDocumentRole, DidDocumentService, DidJwk, DidKey, DidOperationStateActionBase, DidOperationStateFailed, DidOperationStateFinished, DidOperationStateWait, DidPurpose, DidRecord, DidRecordMetadataKeys, DidRecordProps, DidRegistrar, DidRegistrarService, DidRegistrationExtraOptions, DidRegistrationMetadata, DidRegistrationSecretOptions, DidRepository, DidResolutionMetadata, DidResolutionOptions, DidResolutionResult, DidResolver, DidResolverService, DidUpdateOptions, DidUpdateResult, DidsApi, DidsModule, DidsModuleConfig, DidsModuleConfigOptions, DifPexCredentialsForRequest, DifPexCredentialsForRequestRequirement, DifPexCredentialsForRequestSubmissionEntry, DifPexInputDescriptorToCredentials, DifPexPresentationWithDescriptor, DifPresentationExchangeDefinition, DifPresentationExchangeDefinitionV1, DifPresentationExchangeDefinitionV2, DifPresentationExchangeError, DifPresentationExchangeModule, DifPresentationExchangeService, DifPresentationExchangeSubmission, PresentationSubmissionLocation as DifPresentationExchangeSubmissionLocation, DocumentLoader, type DownloadToFileOptions, ENVELOPED_VERIFIABLE_CREDENTIAL_TYPE, ENVELOPED_VERIFIABLE_PRESENTATION_TYPE, EXPANDED_TYPE_CREDENTIALS_CONTEXT_V1_VC_TYPE, Ed25519Signature2018, Ed25519Signature2020, type EmptyModuleMap, EncodedX509Certificate, EventEmitter, EventMetadata, type FileSystem, GenericRecord, GenericRecordStorageProps, GenericRecordTags, GenericRecordsApi, GenericRecordsModule, HashName, Hasher, IAnonCredsDataIntegrityService, IDisclosureFrame, IPresentationFrame, ImportDidOptions, InMemoryLruCache, InMemoryLruCacheOptions, IndyAgentService, type InitConfig, InjectionSymbols, InjectionToken, IntegrityVerifier, IsEnvelopedVerifiableCredentialType, IsEnvelopedVerifiablePresentationType, IsStringOrInstance, IsStringOrInstanceOrArrayOfInstances, IsStringOrStringArray, IsStringOrVerificationMethod, IsUri, IsW3cCredentialSubject, IsW3cIssuer, IsW3cV2Issuer, type JsonArray, JsonEncoder, type JsonObject, JsonTransformer, type JsonValue, JwkDidCreateOptions, JwkDidDeactivateOptions, JwkDidRegistrar, JwkDidResolver, JwkDidUpdateOptions, JwsDetachedFormat, JwsFlattenedDetachedFormat, JwsGeneralFormat, JwsLinkedDataSignature, JwsLinkedDataSignatureOptions, JwsProtectedHeaderOptions, JwsService, JwsSigner, JwsSignerDid, JwsSignerJwk, JwsSignerWithJwk, JwsSignerX5c, Jwt, JwtPayload, JwtPayloadJson, JwtPayloadOptions, KeyDidCreateOptions, KeyDidDeactivateOptions, KeyDidRegistrar, KeyDidResolver, KeyDidUpdateOptions, KeyGenAlgorithm, KeySignParams, index_d_exports as Kms, LdKeyPair, LdKeyPairOptions, LogLevel, Logger, Mdoc, MdocApi, MdocDeviceResponse, MdocDeviceResponseOptions, MdocDeviceResponsePresentationDefinitionOptions, MdocDeviceResponseVerifyOptions, MdocDocumentRequest, MdocError, MdocModule, MdocNameSpaces, MdocOpenId4VpDcApiDraft24SessionTranscriptOptions, MdocOpenId4VpDcApiSessionTranscriptOptions, MdocOpenId4VpDraft18SessionTranscriptOptions, MdocOpenId4VpSessionTranscriptOptions, MdocRecord, MdocRecordInstances, MdocRecordStorageProps, MdocRepository, MdocService, MdocSessionTranscriptByteOptions, MdocSessionTranscriptOptions, MdocSignOptions, MdocStoreOptions, MdocSupportedSignatureAlgorithm, MdocVerifyOptions, MessageValidator, Metadata, type MetadataBase, Module, type ModulesMap, MultiBaseEncoder, MultiHashEncoder, DidCommV2Service as NewDidCommV2Service, DidCommV2ServiceEndpoint as NewDidCommV2ServiceEndpoint, DidCommV2ServiceEndpointOptions as NewDidCommV2ServiceEndpointOptions, type NonEmptyArray, type Optional, ParsedDid, PeerDidCreateOptions, PeerDidDeactivateOptions, PeerDidNumAlgo, PeerDidNumAlgo0CreateOptions, PeerDidNumAlgo1CreateOptions, PeerDidNumAlgo2CreateOptions, PeerDidNumAlgo4CreateOptions, PeerDidRegistrar, PeerDidResolver, PeerDidUpdateOptions, Proof, ProofPurpose, type Query, type QueryOptions, RecordDeletedEvent, RecordDuplicateError, RecordNotFoundError, RecordSavedEvent, RecordTags, RecordUpdatedEvent, Repository, RepositoryEventTypes, type ResolvedDidCommService, SECURITY_CONTEXT_SECP256k1_URL, SECURITY_CONTEXT_URL, SECURITY_CONTEXT_V1_URL, SECURITY_CONTEXT_V2_URL, SECURITY_CONTEXT_V3_URL, SECURITY_JWS_CONTEXT_URL, SECURITY_PROOF_URL, SECURITY_SIGNATURE_URL, SECURITY_X25519_CONTEXT_URL, SaveGenericRecordOption, SdJwtVc, SdJwtVcApi, SdJwtVcError, SdJwtVcHeader, SdJwtVcHolderBinding, SdJwtVcHolderDidBinding, SdJwtVcHolderJwkBinding, SdJwtVcIssuer, SdJwtVcIssuerDid, SdJwtVcIssuerX5c, SdJwtVcModule, SdJwtVcPayload, SdJwtVcPresentOptions, SdJwtVcRecord, SdJwtVcRecordInstances, SdJwtVcRecordStorageProps, SdJwtVcRepository, SdJwtVcService, SdJwtVcSignOptions, SdJwtVcStoreOptions, SdJwtVcTypeMetadata, SdJwtVcTypeMetadataClaim, SdJwtVcTypeMetadataDisplay, SdJwtVcTypeMetadataRenderingMethodSimple, SdJwtVcTypeMetadataRenderingMethodSvgTemplate, SdJwtVcVerifyOptions, ServiceTransformer, Sha1, Sha256, Sha384, Sha512, SignatureSuiteRegistry, SignatureSuiteToken, type SimpleQuery, SingleContextLruCacheItem, SingleContextLruCacheRecord, SingleContextStorageLruCache, SingleContextStorageLruCacheOptions, type SingleOrArray, SingleValidationResult, type StorageService, StorageUpdateService, StorageVersionRecord, StorageVersionRecordProps, StorageVersionRepository, SubmissionEntryCredential, SuiteInfo, TagValue, Tags, TagsBase, TypedArrayEncoder, type Uint8ArrayBuffer, type UnionToIntersection, Update, UpdateAssistant, UpdateAssistantUpdateOptions, type UpdateConfig, type UseInstanceFromCredentialRecordOptions, type UseInstanceFromCredentialRecordReturn, type V0_1ToV0_2UpdateConfig, VERIFIABLE_CREDENTIAL_TYPE, VERIFIABLE_PRESENTATION_TYPE, VERIFICATION_METHOD_TYPE_ECDSA_SECP256K1_VERIFICATION_KEY_2019, VERIFICATION_METHOD_TYPE_ED25519_VERIFICATION_KEY_2018, VERIFICATION_METHOD_TYPE_ED25519_VERIFICATION_KEY_2020, VERIFICATION_METHOD_TYPE_JSON_WEB_KEY_2020, VERIFICATION_METHOD_TYPE_MULTIKEY, VERIFICATION_METHOD_TYPE_X25519_KEY_AGREEMENT_KEY_2019, VerifiableCredential, VerifiablePresentation, VerificationMethod, VerificationMethodTransformer, VerificationResult, type VersionString, W3cCreatePresentationOptions, W3cCredential, W3cCredentialOptions, W3cCredentialRecord, W3cCredentialRecordInstances, W3cCredentialRecordOptions, W3cCredentialRepository, W3cCredentialSchema, W3cCredentialSchemaOptions, W3cCredentialService, W3cCredentialStatus, W3cCredentialStatusOptions, W3cCredentialSubject, W3cCredentialSubjectOptions, W3cCredentialSubjectTransformer, W3cCredentialsApi, W3cCredentialsModule, W3cCredentialsModuleConfig, W3cCredentialsModuleConfigOptions, W3cIssuer, W3cIssuerOptions, W3cIssuerTransformer, W3cJsonCredential, W3cJsonLdCredentialService, W3cJsonLdDeriveProofOptions, W3cJsonLdSignCredentialOptions, W3cJsonLdSignPresentationOptions, W3cJsonLdVerifiableCredential, W3cJsonLdVerifiableCredentialOptions, W3cJsonLdVerifiablePresentation, W3cJsonLdVerifiablePresentationOptions, W3cJsonLdVerifyCredentialOptions, W3cJsonLdVerifyPresentationOptions, W3cJsonPresentation, W3cJwtCredentialService, W3cJwtSignCredentialOptions, W3cJwtSignPresentationOptions, W3cJwtVerifiableCredential, W3cJwtVerifiableCredentialOptions, W3cJwtVerifiablePresentation, W3cJwtVerifiablePresentationOptions, W3cJwtVerifyCredentialOptions, W3cJwtVerifyPresentationOptions, W3cPresentation, W3cPresentationOptions, W3cSignCredentialOptions, W3cSignPresentationOptions, W3cStoreCredentialOptions, W3cV2Credential, W3cV2CredentialOptions, W3cV2CredentialRecord, W3cV2CredentialRecordInstances, W3cV2CredentialRecordOptions, W3cV2CredentialRepository, W3cV2CredentialSchema, W3cV2CredentialSchemaOptions, W3cV2CredentialService, W3cV2CredentialStatus, W3cV2CredentialStatusOptions, W3cV2CredentialSubject, W3cV2CredentialSubjectOptions, W3cV2CredentialsApi, W3cV2CredentialsModule, W3cV2EnvelopedVerifiableCredential, W3cV2EnvelopedVerifiableCredentialOptions, W3cV2EnvelopedVerifiableCredentialTransformer, W3cV2EnvelopedVerifiablePresentation, W3cV2EnvelopedVerifiablePresentationOptions, W3cV2Evidence, W3cV2EvidenceOptions, W3cV2Issuer, W3cV2IssuerOptions, W3cV2IssuerTransformer, W3cV2JsonCredential, W3cV2JsonLocalizedValue, W3cV2JsonPresentation, W3cV2JwtCredentialService, W3cV2JwtSignCredentialOptions, W3cV2JwtSignPresentationOptions, W3cV2JwtVerifiableCredential, W3cV2JwtVerifiableCredentialOptions, W3cV2JwtVerifiablePresentation, W3cV2JwtVerifiablePresentationOptions, W3cV2JwtVerifyCredentialOptions, W3cV2JwtVerifyPresentationOptions, W3cV2LocalizedValue, W3cV2LocalizedValueOptions, W3cV2LocalizedValueTransformer, W3cV2Presentation, W3cV2PresentationOptions, W3cV2RefreshService, W3cV2RefreshServiceOptions, W3cV2SdJwt, W3cV2SdJwtCredentialService, W3cV2SdJwtHeader, W3cV2SdJwtPayload, W3cV2SdJwtSignCredentialOptions, W3cV2SdJwtSignPresentationOptions, W3cV2SdJwtVcPresentOptions, W3cV2SdJwtVerifiableCredential, W3cV2SdJwtVerifiableCredentialOptions, W3cV2SdJwtVerifiablePresentation, W3cV2SdJwtVerifiablePresentationOptions, W3cV2SdJwtVerifyCredentialOptions, W3cV2SdJwtVerifyPresentationOptions, W3cV2SignCredentialOptions, W3cV2SignPresentationOptions, W3cV2StoreCredentialOptions, W3cV2TermsOfUse, W3cV2TermsOfUseOptions, W3cV2VerifiableCredential, W3cV2VerifiableCredentialOptions, W3cV2VerifiableCredentialTransformer, W3cV2VerifyCredentialOptions, W3cV2VerifyCredentialResult, W3cV2VerifyPresentationOptions, W3cV2VerifyPresentationResult, W3cVerifiableCredential, W3cVerifiableCredentialTransformer, W3cVerifiablePresentation, W3cVerifyCredentialOptions, W3cVerifyCredentialResult, W3cVerifyPresentationOptions, W3cVerifyPresentationResult, WebDidResolver, X509Api, X509Certificate, X509CertificateExtensionsOptions, X509CertificateIssuerAndSubjectOptions, X509CertificateOptions, X509CertificateSigningRequestExtensionsOptions, X509CreateCertificateChainOptions, X509CreateCertificateOptions, X509CreateCertificateSigningRequestOptions, X509Error, X509ExtendedKeyUsage, X509GetLeafCertificateOptions, X509KeyUsage, X509Module, X509ModuleConfig, X509ModuleConfigOptions, X509ParseCertificateOptions, X509ParseCertificateSigningRequestOptions, X509Service, X509ValidateCertificateChainOptions, X509VerificationContext, X509VerificationTypeCredential, X509VerificationTypeOauth2ClientAttestation, X509VerificationTypeOauth2SecuredAuthorizationRequest, X509VerificationTypeOpenId4VciCredentialIssuerMetadata, X509VerificationTypeOpenId4VciKeyAttestation, type XOR, ZodValidationError, asArray, base64ToBase64URL, canUseInstanceFromCredentialRecord, convertName, convertPublicKeyToX25519, createAuthorityKeyIdentifierExtension, createBasicConstraintsExtension, createCrlDistributionPointsExtension, createExtendedKeyUsagesExtension, createIssuerAlternativeNameExtension, createKeyUsagesExtension, createPeerDidDocumentFromServices, createSubjectAlternativeNameExtension, createSubjectKeyIdentifierExtension, dcqlGetPresentationsToCreate, decodeSdJwt, deepEquality, deriveProof, didDocumentJsonToNumAlgo1Did, didDocumentToNumAlgo2Did, didDocumentToNumAlgo4Did, didKeyToEd25519PublicJwk, didKeyToVerkey, equalsIgnoreOrder, equalsWithOrder, extractPresentationsWithDescriptorsFromSubmission, extractX509CertificatesFromJwt, filterContextCorrelationId, findMatchingEd25519Key, findVerificationMethodByKeyType, getAlternativeDidsForPeerDid, getApiForModuleByName, getDirFromFilePath, getDomainFromUrl, getEcdsaSecp256k1VerificationKey2019, getEd25519VerificationKey2018, getEd25519VerificationKey2020, getJsonWebKey2020, getKmsKeyIdForVerifiacationMethod, getMultikey, getNumAlgoFromPeerDid, getPublicJwkFromEcdsaSecp256k1VerificationKey2019, getPublicJwkFromEd25519VerificationKey2018, getPublicJwkFromEd25519VerificationKey2020, getPublicJwkFromJsonWebKey2020, getPublicJwkFromMultikey, getPublicJwkFromVerificationMethod, getPublicJwkFrommX25519KeyAgreementKey2019, getRegisteredModuleByInstance, getRegisteredModuleByName, getX25519KeyAgreementKey2019, inject, injectAll, injectable, isDid, isDidKey, isEcdsaSecp256k1VerificationKey2019, isEd25519VerificationKey2018, isEd25519VerificationKey2020, isJsonObject, isJsonWebKey2020, isMdocSupportedSignatureAlgorithm, isMultikey, isNonEmptyArray, isStorageUpToDate, isValidPeerDid, isX25519KeyAgreementKey2019, joinUriParts, jwaAlgorithmToKeySignParams, keyDidEd25519, keyDidX25519, keyParamsToJwaAlgorithm, mapNonEmptyArray, parseDid, publicJwkToCryptoKeyAlgorithm, replaceError, sdJwtVcHasher, serviceTypes, tryParseDid, useInstanceFromCredentialRecord, utils, vcLibraries, verkeyToDidKey, verkeyToPublicJwk, w3cDate };
274
276
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/index.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAqGM"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/index.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAsGM"}
package/build/index.mjs CHANGED
@@ -19,6 +19,7 @@ import { Sha256 } from "./crypto/hashes/Sha256.mjs";
19
19
  import { Sha384 } from "./crypto/hashes/Sha384.mjs";
20
20
  import { Sha512 } from "./crypto/hashes/Sha512.mjs";
21
21
  import { Hasher } from "./crypto/hashes/Hasher.mjs";
22
+ import { IntegrityVerifier } from "./utils/IntegrityVerifier.mjs";
22
23
  import { JsonEncoder } from "./utils/JsonEncoder.mjs";
23
24
  import { MessageValidator } from "./utils/MessageValidator.mjs";
24
25
  import { JsonTransformer } from "./utils/JsonTransformer.mjs";
@@ -43,12 +44,14 @@ import { DefaultAgentContextProvider } from "./agent/context/DefaultAgentContext
43
44
  import "./agent/index.mjs";
44
45
  import { kms_exports } from "./modules/kms/index.mjs";
45
46
  import { CredoWebCryptoKey } from "./crypto/webcrypto/CredoWebCryptoKey.mjs";
47
+ import { jwaAlgorithmToKeySignParams, keyParamsToJwaAlgorithm } from "./crypto/webcrypto/types.mjs";
46
48
  import { publicJwkToCryptoKeyAlgorithm } from "./crypto/webcrypto/utils/keyAlgorithmConversion.mjs";
47
49
  import { CredoWebCrypto } from "./crypto/webcrypto/CredoWebCrypto.mjs";
48
50
  import { createAuthorityKeyIdentifierExtension, createBasicConstraintsExtension, createCrlDistributionPointsExtension, createExtendedKeyUsagesExtension, createIssuerAlternativeNameExtension, createKeyUsagesExtension, createSubjectAlternativeNameExtension, createSubjectKeyIdentifierExtension } from "./modules/x509/utils/extensions.mjs";
49
51
  import { X509Error } from "./modules/x509/X509Error.mjs";
50
52
  import { convertName } from "./modules/x509/utils/nameConversion.mjs";
51
53
  import { X509Certificate, X509ExtendedKeyUsage, X509KeyUsage } from "./modules/x509/X509Certificate.mjs";
54
+ import { CertificateSigningRequest } from "./modules/x509/CertificateSigningRequest.mjs";
52
55
  import { extractX509CertificatesFromJwt } from "./modules/x509/extraction.mjs";
53
56
  import { X509ModuleConfig } from "./modules/x509/X509ModuleConfig.mjs";
54
57
  import { X509Service } from "./modules/x509/X509Service.mjs";
@@ -238,5 +241,5 @@ const utils = {
238
241
  };
239
242
 
240
243
  //#endregion
241
- export { ANONCREDS_DATA_INTEGRITY_CRYPTOSUITE, Agent, AgentConfig, AgentContext, AnonCredsDataIntegrityServiceSymbol, BaseAgent, BaseLogger, BaseRecord, Buffer, CREDENTIALS_CONTEXT_V1_URL, CREDENTIALS_CONTEXT_V2_URL, CREDENTIALS_ISSUER_URL, CacheModule, CacheModuleConfig, CachedStorageService, ClaimFormat, ClassValidationError, ConsoleLogger, CredentialIssuancePurpose, CredentialMultiInstanceState, CredentialMultiInstanceUseMode, CredoError, CredoWebCrypto, CredoWebCryptoKey, DID_V1_CONTEXT_URL, DataIntegrityProof, DateOnly, DateTransformer, DcqlError, DcqlModule, DcqlService, DefaultAgentContextProvider, DependencyManager, DidCommV1Service, LegacyDidCommV2Service as DidCommV2Service, DidDocument, DidDocumentBuilder, DidDocumentRole, DidDocumentService, DidJwk, DidKey, DidRecord, DidRecordMetadataKeys, DidRegistrarService, DidRepository, DidResolverService, DidsApi, DidsModule, DidsModuleConfig, DifPresentationExchangeError, DifPresentationExchangeModule, DifPresentationExchangeService, PresentationSubmissionLocation as DifPresentationExchangeSubmissionLocation, ENVELOPED_VERIFIABLE_CREDENTIAL_TYPE, ENVELOPED_VERIFIABLE_PRESENTATION_TYPE, EXPANDED_TYPE_CREDENTIALS_CONTEXT_V1_VC_TYPE, Ed25519Signature2018, Ed25519Signature2020, EventEmitter, GenericRecord, GenericRecordsApi, GenericRecordsModule, Hasher, InMemoryLruCache, IndyAgentService, InjectionSymbols, IsEnvelopedVerifiableCredentialType, IsEnvelopedVerifiablePresentationType, IsStringOrInstance, IsStringOrInstanceOrArrayOfInstances, IsStringOrStringArray, IsStringOrVerificationMethod, IsUri, IsW3cCredentialSubject, IsW3cIssuer, IsW3cV2Issuer, JsonEncoder, JsonTransformer, JwkDidRegistrar, JwkDidResolver, JwsLinkedDataSignature, JwsService, Jwt, JwtPayload, KeyDidRegistrar, KeyDidResolver, kms_exports as Kms, LdKeyPair, LogLevel, Mdoc, MdocApi, MdocDeviceResponse, MdocError, MdocModule, MdocRecord, MdocRepository, MdocService, MessageValidator, Metadata, MultiBaseEncoder, MultiHashEncoder, DidCommV2Service as NewDidCommV2Service, DidCommV2ServiceEndpoint as NewDidCommV2ServiceEndpoint, PeerDidNumAlgo, PeerDidRegistrar, PeerDidResolver, RecordDuplicateError, RecordNotFoundError, Repository, RepositoryEventTypes, SECURITY_CONTEXT_SECP256k1_URL, SECURITY_CONTEXT_URL, SECURITY_CONTEXT_V1_URL, SECURITY_CONTEXT_V2_URL, SECURITY_CONTEXT_V3_URL, SECURITY_JWS_CONTEXT_URL, SECURITY_PROOF_URL, SECURITY_SIGNATURE_URL, SECURITY_X25519_CONTEXT_URL, SdJwtVcApi, SdJwtVcError, SdJwtVcModule, SdJwtVcRecord, SdJwtVcRepository, SdJwtVcService, ServiceTransformer, Sha1, Sha256, Sha384, Sha512, SignatureSuiteRegistry, SignatureSuiteToken, SingleContextLruCacheRecord, SingleContextStorageLruCache, StorageUpdateService, StorageVersionRecord, StorageVersionRepository, TypedArrayEncoder, UpdateAssistant, VERIFIABLE_CREDENTIAL_TYPE, VERIFIABLE_PRESENTATION_TYPE, VERIFICATION_METHOD_TYPE_ECDSA_SECP256K1_VERIFICATION_KEY_2019, VERIFICATION_METHOD_TYPE_ED25519_VERIFICATION_KEY_2018, VERIFICATION_METHOD_TYPE_ED25519_VERIFICATION_KEY_2020, VERIFICATION_METHOD_TYPE_JSON_WEB_KEY_2020, VERIFICATION_METHOD_TYPE_MULTIKEY, VERIFICATION_METHOD_TYPE_X25519_KEY_AGREEMENT_KEY_2019, VerificationMethod, VerificationMethodTransformer, W3cCredential, W3cCredentialRecord, W3cCredentialRepository, W3cCredentialSchema, W3cCredentialService, W3cCredentialStatus, W3cCredentialSubject, W3cCredentialSubjectTransformer, W3cCredentialsApi, W3cCredentialsModule, W3cCredentialsModuleConfig, W3cIssuer, W3cIssuerTransformer, W3cJsonLdCredentialService, W3cJsonLdVerifiableCredential, W3cJsonLdVerifiablePresentation, W3cJwtCredentialService, W3cJwtVerifiableCredential, W3cJwtVerifiablePresentation, W3cPresentation, W3cV2Credential, W3cV2CredentialRecord, W3cV2CredentialRepository, W3cV2CredentialSchema, W3cV2CredentialService, W3cV2CredentialStatus, W3cV2CredentialSubject, W3cV2CredentialsApi, W3cV2CredentialsModule, W3cV2EnvelopedVerifiableCredential, W3cV2EnvelopedVerifiableCredentialTransformer, W3cV2EnvelopedVerifiablePresentation, W3cV2Evidence, W3cV2Issuer, W3cV2IssuerTransformer, W3cV2JwtCredentialService, W3cV2JwtVerifiableCredential, W3cV2JwtVerifiablePresentation, W3cV2LocalizedValue, W3cV2LocalizedValueTransformer, W3cV2Presentation, W3cV2RefreshService, W3cV2SdJwtCredentialService, W3cV2SdJwtVerifiableCredential, W3cV2SdJwtVerifiablePresentation, W3cV2TermsOfUse, W3cV2VerifiableCredentialTransformer, W3cVerifiableCredentialTransformer, WebDidResolver, X509Api, X509Certificate, X509Error, X509ExtendedKeyUsage, X509KeyUsage, X509Module, X509ModuleConfig, X509Service, ZodValidationError, asArray, base64ToBase64URL, canUseInstanceFromCredentialRecord, convertName, convertPublicKeyToX25519, createAuthorityKeyIdentifierExtension, createBasicConstraintsExtension, createCrlDistributionPointsExtension, createExtendedKeyUsagesExtension, createIssuerAlternativeNameExtension, createKeyUsagesExtension, createPeerDidDocumentFromServices, createSubjectAlternativeNameExtension, createSubjectKeyIdentifierExtension, dcqlGetPresentationsToCreate, decodeSdJwt, deepEquality, deriveProof, didDocumentJsonToNumAlgo1Did, didDocumentToNumAlgo2Did, didDocumentToNumAlgo4Did, didKeyToEd25519PublicJwk, didKeyToVerkey, equalsIgnoreOrder, equalsWithOrder, extractPresentationsWithDescriptorsFromSubmission, extractX509CertificatesFromJwt, filterContextCorrelationId, findMatchingEd25519Key, findVerificationMethodByKeyType, getAlternativeDidsForPeerDid, getApiForModuleByName, getDirFromFilePath, getDomainFromUrl, getEcdsaSecp256k1VerificationKey2019, getEd25519VerificationKey2018, getEd25519VerificationKey2020, getJsonWebKey2020, getKmsKeyIdForVerifiacationMethod, getMultikey, getNumAlgoFromPeerDid, getPublicJwkFromEcdsaSecp256k1VerificationKey2019, getPublicJwkFromEd25519VerificationKey2018, getPublicJwkFromEd25519VerificationKey2020, getPublicJwkFromJsonWebKey2020, getPublicJwkFromMultikey, getPublicJwkFromVerificationMethod, getPublicJwkFrommX25519KeyAgreementKey2019, getRegisteredModuleByInstance, getRegisteredModuleByName, getX25519KeyAgreementKey2019, inject, injectAll, injectable, isDid, isDidKey, isEcdsaSecp256k1VerificationKey2019, isEd25519VerificationKey2018, isEd25519VerificationKey2020, isJsonObject, isJsonWebKey2020, isMdocSupportedSignatureAlgorithm, isMultikey, isNonEmptyArray, isStorageUpToDate, isValidPeerDid, isX25519KeyAgreementKey2019, joinUriParts, keyDidEd25519, keyDidX25519, mapNonEmptyArray, parseDid, publicJwkToCryptoKeyAlgorithm, replaceError, sdJwtVcHasher, serviceTypes, tryParseDid, useInstanceFromCredentialRecord, utils, vcLibraries, verkeyToDidKey, verkeyToPublicJwk, w3cDate };
244
+ export { ANONCREDS_DATA_INTEGRITY_CRYPTOSUITE, Agent, AgentConfig, AgentContext, AnonCredsDataIntegrityServiceSymbol, BaseAgent, BaseLogger, BaseRecord, Buffer, CREDENTIALS_CONTEXT_V1_URL, CREDENTIALS_CONTEXT_V2_URL, CREDENTIALS_ISSUER_URL, CacheModule, CacheModuleConfig, CachedStorageService, CertificateSigningRequest, ClaimFormat, ClassValidationError, ConsoleLogger, CredentialIssuancePurpose, CredentialMultiInstanceState, CredentialMultiInstanceUseMode, CredoError, CredoWebCrypto, CredoWebCryptoKey, DID_V1_CONTEXT_URL, DataIntegrityProof, DateOnly, DateTransformer, DcqlError, DcqlModule, DcqlService, DefaultAgentContextProvider, DependencyManager, DidCommV1Service, LegacyDidCommV2Service as DidCommV2Service, DidDocument, DidDocumentBuilder, DidDocumentRole, DidDocumentService, DidJwk, DidKey, DidRecord, DidRecordMetadataKeys, DidRegistrarService, DidRepository, DidResolverService, DidsApi, DidsModule, DidsModuleConfig, DifPresentationExchangeError, DifPresentationExchangeModule, DifPresentationExchangeService, PresentationSubmissionLocation as DifPresentationExchangeSubmissionLocation, ENVELOPED_VERIFIABLE_CREDENTIAL_TYPE, ENVELOPED_VERIFIABLE_PRESENTATION_TYPE, EXPANDED_TYPE_CREDENTIALS_CONTEXT_V1_VC_TYPE, Ed25519Signature2018, Ed25519Signature2020, EventEmitter, GenericRecord, GenericRecordsApi, GenericRecordsModule, Hasher, InMemoryLruCache, IndyAgentService, InjectionSymbols, IntegrityVerifier, IsEnvelopedVerifiableCredentialType, IsEnvelopedVerifiablePresentationType, IsStringOrInstance, IsStringOrInstanceOrArrayOfInstances, IsStringOrStringArray, IsStringOrVerificationMethod, IsUri, IsW3cCredentialSubject, IsW3cIssuer, IsW3cV2Issuer, JsonEncoder, JsonTransformer, JwkDidRegistrar, JwkDidResolver, JwsLinkedDataSignature, JwsService, Jwt, JwtPayload, KeyDidRegistrar, KeyDidResolver, kms_exports as Kms, LdKeyPair, LogLevel, Mdoc, MdocApi, MdocDeviceResponse, MdocError, MdocModule, MdocRecord, MdocRepository, MdocService, MessageValidator, Metadata, MultiBaseEncoder, MultiHashEncoder, DidCommV2Service as NewDidCommV2Service, DidCommV2ServiceEndpoint as NewDidCommV2ServiceEndpoint, PeerDidNumAlgo, PeerDidRegistrar, PeerDidResolver, RecordDuplicateError, RecordNotFoundError, Repository, RepositoryEventTypes, SECURITY_CONTEXT_SECP256k1_URL, SECURITY_CONTEXT_URL, SECURITY_CONTEXT_V1_URL, SECURITY_CONTEXT_V2_URL, SECURITY_CONTEXT_V3_URL, SECURITY_JWS_CONTEXT_URL, SECURITY_PROOF_URL, SECURITY_SIGNATURE_URL, SECURITY_X25519_CONTEXT_URL, SdJwtVcApi, SdJwtVcError, SdJwtVcModule, SdJwtVcRecord, SdJwtVcRepository, SdJwtVcService, ServiceTransformer, Sha1, Sha256, Sha384, Sha512, SignatureSuiteRegistry, SignatureSuiteToken, SingleContextLruCacheRecord, SingleContextStorageLruCache, StorageUpdateService, StorageVersionRecord, StorageVersionRepository, TypedArrayEncoder, UpdateAssistant, VERIFIABLE_CREDENTIAL_TYPE, VERIFIABLE_PRESENTATION_TYPE, VERIFICATION_METHOD_TYPE_ECDSA_SECP256K1_VERIFICATION_KEY_2019, VERIFICATION_METHOD_TYPE_ED25519_VERIFICATION_KEY_2018, VERIFICATION_METHOD_TYPE_ED25519_VERIFICATION_KEY_2020, VERIFICATION_METHOD_TYPE_JSON_WEB_KEY_2020, VERIFICATION_METHOD_TYPE_MULTIKEY, VERIFICATION_METHOD_TYPE_X25519_KEY_AGREEMENT_KEY_2019, VerificationMethod, VerificationMethodTransformer, W3cCredential, W3cCredentialRecord, W3cCredentialRepository, W3cCredentialSchema, W3cCredentialService, W3cCredentialStatus, W3cCredentialSubject, W3cCredentialSubjectTransformer, W3cCredentialsApi, W3cCredentialsModule, W3cCredentialsModuleConfig, W3cIssuer, W3cIssuerTransformer, W3cJsonLdCredentialService, W3cJsonLdVerifiableCredential, W3cJsonLdVerifiablePresentation, W3cJwtCredentialService, W3cJwtVerifiableCredential, W3cJwtVerifiablePresentation, W3cPresentation, W3cV2Credential, W3cV2CredentialRecord, W3cV2CredentialRepository, W3cV2CredentialSchema, W3cV2CredentialService, W3cV2CredentialStatus, W3cV2CredentialSubject, W3cV2CredentialsApi, W3cV2CredentialsModule, W3cV2EnvelopedVerifiableCredential, W3cV2EnvelopedVerifiableCredentialTransformer, W3cV2EnvelopedVerifiablePresentation, W3cV2Evidence, W3cV2Issuer, W3cV2IssuerTransformer, W3cV2JwtCredentialService, W3cV2JwtVerifiableCredential, W3cV2JwtVerifiablePresentation, W3cV2LocalizedValue, W3cV2LocalizedValueTransformer, W3cV2Presentation, W3cV2RefreshService, W3cV2SdJwtCredentialService, W3cV2SdJwtVerifiableCredential, W3cV2SdJwtVerifiablePresentation, W3cV2TermsOfUse, W3cV2VerifiableCredentialTransformer, W3cVerifiableCredentialTransformer, WebDidResolver, X509Api, X509Certificate, X509Error, X509ExtendedKeyUsage, X509KeyUsage, X509Module, X509ModuleConfig, X509Service, ZodValidationError, asArray, base64ToBase64URL, canUseInstanceFromCredentialRecord, convertName, convertPublicKeyToX25519, createAuthorityKeyIdentifierExtension, createBasicConstraintsExtension, createCrlDistributionPointsExtension, createExtendedKeyUsagesExtension, createIssuerAlternativeNameExtension, createKeyUsagesExtension, createPeerDidDocumentFromServices, createSubjectAlternativeNameExtension, createSubjectKeyIdentifierExtension, dcqlGetPresentationsToCreate, decodeSdJwt, deepEquality, deriveProof, didDocumentJsonToNumAlgo1Did, didDocumentToNumAlgo2Did, didDocumentToNumAlgo4Did, didKeyToEd25519PublicJwk, didKeyToVerkey, equalsIgnoreOrder, equalsWithOrder, extractPresentationsWithDescriptorsFromSubmission, extractX509CertificatesFromJwt, filterContextCorrelationId, findMatchingEd25519Key, findVerificationMethodByKeyType, getAlternativeDidsForPeerDid, getApiForModuleByName, getDirFromFilePath, getDomainFromUrl, getEcdsaSecp256k1VerificationKey2019, getEd25519VerificationKey2018, getEd25519VerificationKey2020, getJsonWebKey2020, getKmsKeyIdForVerifiacationMethod, getMultikey, getNumAlgoFromPeerDid, getPublicJwkFromEcdsaSecp256k1VerificationKey2019, getPublicJwkFromEd25519VerificationKey2018, getPublicJwkFromEd25519VerificationKey2020, getPublicJwkFromJsonWebKey2020, getPublicJwkFromMultikey, getPublicJwkFromVerificationMethod, getPublicJwkFrommX25519KeyAgreementKey2019, getRegisteredModuleByInstance, getRegisteredModuleByName, getX25519KeyAgreementKey2019, inject, injectAll, injectable, isDid, isDidKey, isEcdsaSecp256k1VerificationKey2019, isEd25519VerificationKey2018, isEd25519VerificationKey2020, isJsonObject, isJsonWebKey2020, isMdocSupportedSignatureAlgorithm, isMultikey, isNonEmptyArray, isStorageUpToDate, isValidPeerDid, isX25519KeyAgreementKey2019, joinUriParts, jwaAlgorithmToKeySignParams, keyDidEd25519, keyDidX25519, keyParamsToJwaAlgorithm, mapNonEmptyArray, parseDid, publicJwkToCryptoKeyAlgorithm, replaceError, sdJwtVcHasher, serviceTypes, tryParseDid, useInstanceFromCredentialRecord, utils, vcLibraries, verkeyToDidKey, verkeyToPublicJwk, w3cDate };
242
245
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../src/index.ts"],"sourcesContent":["// reflect-metadata used for class-transformer + class-validator\nimport 'reflect-metadata'\n\nexport * from './agent'\nexport { Agent } from './agent/Agent'\nexport { AgentConfig } from './agent/AgentConfig'\nexport type { AgentDependencies } from './agent/AgentDependencies'\nexport type { AgentApi, DefaultAgentModules, EmptyModuleMap, ModulesMap } from './agent/AgentModules'\nexport { BaseAgent } from './agent/BaseAgent'\nexport { EventEmitter } from './agent/EventEmitter'\nexport * from './agent/Events'\nexport { InjectionSymbols } from './constants'\nexport * from './crypto'\nexport * from './error'\nexport * from './logger'\nexport * from './modules/cache'\nexport * from './modules/dcql'\nexport * from './modules/dids'\nexport { tryParseDid } from './modules/dids/domain/parse'\n// TODO: Clean up these exports used by DIDComm module\nexport {\n didKeyToEd25519PublicJwk,\n didKeyToVerkey,\n isDidKey,\n verkeyToDidKey,\n verkeyToPublicJwk,\n} from './modules/dids/helpers'\nexport { didDocumentJsonToNumAlgo1Did } from './modules/dids/methods/peer/peerDidNumAlgo1'\nexport { didDocumentToNumAlgo2Did } from './modules/dids/methods/peer/peerDidNumAlgo2'\nexport { didDocumentToNumAlgo4Did } from './modules/dids/methods/peer/peerDidNumAlgo4'\nexport { DidRecordMetadataKeys } from './modules/dids/repository/didRecordMetadataTypes'\nexport * from './modules/dif-presentation-exchange'\nexport * from './modules/generic-records'\nexport * as Kms from './modules/kms'\nexport * from './modules/mdoc'\nexport * from './modules/sd-jwt-vc'\nexport * from './modules/vc'\nexport * from './modules/x509'\nexport * from './plugins'\nexport * from './storage/BaseRecord'\nexport type { DownloadToFileOptions, FileSystem } from './storage/FileSystem'\nexport { Metadata, type MetadataBase } from './storage/Metadata'\nexport * from './storage/migration'\nexport type { UpdateConfig, V0_1ToV0_2UpdateConfig } from './storage/migration/updates'\nexport { Repository } from './storage/Repository'\nexport * from './storage/RepositoryEvents'\nexport type { BaseRecordConstructor, Query, QueryOptions, SimpleQuery, StorageService } from './storage/StorageService'\nexport type {\n AnyUint8Array,\n CanBePromise,\n InitConfig,\n JsonArray,\n JsonObject,\n JsonValue,\n NonEmptyArray,\n Optional,\n ResolvedDidCommService,\n SingleOrArray,\n Uint8ArrayBuffer,\n XOR,\n} from './types'\nexport { isJsonObject, isNonEmptyArray, mapNonEmptyArray } from './types'\nexport {\n asArray,\n type BaseName,\n Buffer,\n DateTransformer,\n deepEquality,\n equalsIgnoreOrder,\n equalsWithOrder,\n IsStringOrInstance,\n IsStringOrInstanceOrArrayOfInstances,\n IsStringOrStringArray,\n IsUri,\n isDid,\n JsonEncoder,\n JsonTransformer,\n MessageValidator,\n MultiBaseEncoder,\n MultiHashEncoder,\n TypedArrayEncoder,\n} from './utils'\nexport { base64ToBase64URL } from './utils/base64'\nexport type {\n CredentialMultiInstanceUseUpdateMode,\n UseInstanceFromCredentialRecordOptions,\n UseInstanceFromCredentialRecordReturn,\n} from './utils/credentialUse'\nexport { canUseInstanceFromCredentialRecord, useInstanceFromCredentialRecord } from './utils/credentialUse'\nexport { CredentialMultiInstanceState, CredentialMultiInstanceUseMode } from './utils/credentialUseTypes'\nexport { getDomainFromUrl } from './utils/domain'\nexport type { Constructable, Constructor, UnionToIntersection } from './utils/mixins'\nexport { getDirFromFilePath, joinUriParts } from './utils/path'\nexport type { VersionString } from './utils/version'\n\nimport { indyDidFromPublicKeyBase58 } from './utils/did'\nimport { areObjectsEqual } from './utils/objectEquality'\nimport timestamp, { addSecondsToDate, dateToSeconds, nowInSeconds } from './utils/timestamp'\nimport { getProtocolScheme } from './utils/uri'\nimport { isValidUuid, uuid } from './utils/uuid'\n\nconst utils = {\n areObjectsEqual,\n uuid,\n isValidUuid,\n getProtocolScheme,\n timestamp,\n indyDidFromPublicKeyBase58,\n nowInSeconds,\n dateToSeconds,\n addSecondsToDate,\n}\n\nexport { utils }\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqGA,MAAM,QAAQ;CACZ;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../src/index.ts"],"sourcesContent":["// reflect-metadata used for class-transformer + class-validator\nimport 'reflect-metadata'\n\nexport * from './agent'\nexport { Agent } from './agent/Agent'\nexport { AgentConfig } from './agent/AgentConfig'\nexport type { AgentDependencies } from './agent/AgentDependencies'\nexport type { AgentApi, DefaultAgentModules, EmptyModuleMap, ModulesMap } from './agent/AgentModules'\nexport { BaseAgent } from './agent/BaseAgent'\nexport { EventEmitter } from './agent/EventEmitter'\nexport * from './agent/Events'\nexport { InjectionSymbols } from './constants'\nexport * from './crypto'\nexport * from './error'\nexport * from './logger'\nexport * from './modules/cache'\nexport * from './modules/dcql'\nexport * from './modules/dids'\nexport { tryParseDid } from './modules/dids/domain/parse'\n// TODO: Clean up these exports used by DIDComm module\nexport {\n didKeyToEd25519PublicJwk,\n didKeyToVerkey,\n isDidKey,\n verkeyToDidKey,\n verkeyToPublicJwk,\n} from './modules/dids/helpers'\nexport { didDocumentJsonToNumAlgo1Did } from './modules/dids/methods/peer/peerDidNumAlgo1'\nexport { didDocumentToNumAlgo2Did } from './modules/dids/methods/peer/peerDidNumAlgo2'\nexport { didDocumentToNumAlgo4Did } from './modules/dids/methods/peer/peerDidNumAlgo4'\nexport { DidRecordMetadataKeys } from './modules/dids/repository/didRecordMetadataTypes'\nexport * from './modules/dif-presentation-exchange'\nexport * from './modules/generic-records'\nexport * as Kms from './modules/kms'\nexport * from './modules/mdoc'\nexport * from './modules/sd-jwt-vc'\nexport * from './modules/vc'\nexport * from './modules/x509'\nexport * from './plugins'\nexport * from './storage/BaseRecord'\nexport type { DownloadToFileOptions, FileSystem } from './storage/FileSystem'\nexport { Metadata, type MetadataBase } from './storage/Metadata'\nexport * from './storage/migration'\nexport type { UpdateConfig, V0_1ToV0_2UpdateConfig } from './storage/migration/updates'\nexport { Repository } from './storage/Repository'\nexport * from './storage/RepositoryEvents'\nexport type { BaseRecordConstructor, Query, QueryOptions, SimpleQuery, StorageService } from './storage/StorageService'\nexport type {\n AnyUint8Array,\n CanBePromise,\n InitConfig,\n JsonArray,\n JsonObject,\n JsonValue,\n NonEmptyArray,\n Optional,\n ResolvedDidCommService,\n SingleOrArray,\n Uint8ArrayBuffer,\n XOR,\n} from './types'\nexport { isJsonObject, isNonEmptyArray, mapNonEmptyArray } from './types'\nexport {\n asArray,\n type BaseName,\n Buffer,\n DateTransformer,\n deepEquality,\n equalsIgnoreOrder,\n equalsWithOrder,\n IntegrityVerifier,\n IsStringOrInstance,\n IsStringOrInstanceOrArrayOfInstances,\n IsStringOrStringArray,\n IsUri,\n isDid,\n JsonEncoder,\n JsonTransformer,\n MessageValidator,\n MultiBaseEncoder,\n MultiHashEncoder,\n TypedArrayEncoder,\n} from './utils'\nexport { base64ToBase64URL } from './utils/base64'\nexport type {\n CredentialMultiInstanceUseUpdateMode,\n UseInstanceFromCredentialRecordOptions,\n UseInstanceFromCredentialRecordReturn,\n} from './utils/credentialUse'\nexport { canUseInstanceFromCredentialRecord, useInstanceFromCredentialRecord } from './utils/credentialUse'\nexport { CredentialMultiInstanceState, CredentialMultiInstanceUseMode } from './utils/credentialUseTypes'\nexport { getDomainFromUrl } from './utils/domain'\nexport type { Constructable, Constructor, UnionToIntersection } from './utils/mixins'\nexport { getDirFromFilePath, joinUriParts } from './utils/path'\nexport type { VersionString } from './utils/version'\n\nimport { indyDidFromPublicKeyBase58 } from './utils/did'\nimport { areObjectsEqual } from './utils/objectEquality'\nimport timestamp, { addSecondsToDate, dateToSeconds, nowInSeconds } from './utils/timestamp'\nimport { getProtocolScheme } from './utils/uri'\nimport { isValidUuid, uuid } from './utils/uuid'\n\nconst utils = {\n areObjectsEqual,\n uuid,\n isValidUuid,\n getProtocolScheme,\n timestamp,\n indyDidFromPublicKeyBase58,\n nowInSeconds,\n dateToSeconds,\n addSecondsToDate,\n}\n\nexport { utils }\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsGA,MAAM,QAAQ;CACZ;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD"}
@@ -34,9 +34,9 @@ function getJsonWebKey2020DidDocument(did, publicJwk) {
34
34
  });
35
35
  const didDocumentBuilder = new DidDocumentBuilder(did);
36
36
  didDocumentBuilder.addContext(SECURITY_JWS_CONTEXT_URL).addVerificationMethod(verificationMethod);
37
- if (publicJwk.supportedSignatureAlgorithms.length === 0 && publicJwk.supportdEncryptionKeyAgreementAlgorithms.length === 0) throw new CredoError("Key must support at least signing or encrypting");
37
+ if (publicJwk.supportedSignatureAlgorithms.length === 0 && publicJwk.supportedEncryptionKeyAgreementAlgorithms.length === 0) throw new CredoError("Key must support at least signing or encrypting");
38
38
  if (publicJwk.supportedSignatureAlgorithms.length > 0) didDocumentBuilder.addAuthentication(verificationMethod.id).addAssertionMethod(verificationMethod.id).addCapabilityDelegation(verificationMethod.id).addCapabilityInvocation(verificationMethod.id);
39
- if (publicJwk.supportdEncryptionKeyAgreementAlgorithms.length > 0) didDocumentBuilder.addKeyAgreement(verificationMethod.id);
39
+ if (publicJwk.supportedEncryptionKeyAgreementAlgorithms.length > 0) didDocumentBuilder.addKeyAgreement(verificationMethod.id);
40
40
  return didDocumentBuilder.build();
41
41
  }
42
42
  function getEd25519DidDoc(did, publicJwk) {
@@ -1 +1 @@
1
- {"version":3,"file":"keyDidDocument.mjs","names":[],"sources":["../../../../src/modules/dids/domain/keyDidDocument.ts"],"sourcesContent":["import { CredoError } from '../../../error'\nimport {\n Ed25519PublicJwk,\n getJwkHumanDescription,\n P256PublicJwk,\n P384PublicJwk,\n P521PublicJwk,\n Secp256k1PublicJwk,\n X25519PublicJwk,\n} from '../../kms'\nimport { PublicJwk } from '../../kms/jwk/PublicJwk'\nimport { SECURITY_JWS_CONTEXT_URL, SECURITY_X25519_CONTEXT_URL } from '../../vc/constants'\nimport { ED25519_SUITE_CONTEXT_URL_2018 } from '../../vc/data-integrity/signature-suites/ed25519/constants'\nimport { DidDocumentBuilder } from './DidDocumentBuilder'\nimport { convertPublicKeyToX25519 } from './key-type/ed25519'\nimport { getEd25519VerificationKey2018, getJsonWebKey2020, getX25519KeyAgreementKey2019 } from './verificationMethod'\nimport type { VerificationMethod } from './verificationMethod/VerificationMethod'\n\nexport function getDidDocumentForPublicJwk(did: string, publicJwk: PublicJwk) {\n if (publicJwk.is(Ed25519PublicJwk)) {\n return getEd25519DidDoc(did, publicJwk as PublicJwk<Ed25519PublicJwk>)\n }\n if (publicJwk.is(X25519PublicJwk)) {\n return getX25519DidDoc(did, publicJwk as PublicJwk<X25519PublicJwk>)\n }\n if (\n publicJwk.is(P256PublicJwk) ||\n publicJwk.is(P384PublicJwk) ||\n publicJwk.is(P521PublicJwk) ||\n publicJwk.is(Secp256k1PublicJwk)\n ) {\n return getJsonWebKey2020DidDocument(did, publicJwk)\n }\n\n throw new CredoError(`Unsupported public key type for did document: ${getJwkHumanDescription(publicJwk.toJson())}`)\n}\n\nexport function getJsonWebKey2020DidDocument(did: string, publicJwk: PublicJwk) {\n const verificationMethod = getJsonWebKey2020({ did, publicJwk })\n\n const didDocumentBuilder = new DidDocumentBuilder(did)\n didDocumentBuilder.addContext(SECURITY_JWS_CONTEXT_URL).addVerificationMethod(verificationMethod)\n\n if (\n publicJwk.supportedSignatureAlgorithms.length === 0 &&\n publicJwk.supportdEncryptionKeyAgreementAlgorithms.length === 0\n ) {\n throw new CredoError('Key must support at least signing or encrypting')\n }\n\n if (publicJwk.supportedSignatureAlgorithms.length > 0) {\n didDocumentBuilder\n .addAuthentication(verificationMethod.id)\n .addAssertionMethod(verificationMethod.id)\n .addCapabilityDelegation(verificationMethod.id)\n .addCapabilityInvocation(verificationMethod.id)\n }\n\n if (publicJwk.supportdEncryptionKeyAgreementAlgorithms.length > 0) {\n didDocumentBuilder.addKeyAgreement(verificationMethod.id)\n }\n\n return didDocumentBuilder.build()\n}\n\nfunction getEd25519DidDoc(did: string, publicJwk: PublicJwk<Ed25519PublicJwk>) {\n const verificationMethod = getEd25519VerificationKey2018({\n id: `${did}#${publicJwk.fingerprint}`,\n publicJwk,\n controller: did,\n })\n\n const publicKeyX25519 = convertPublicKeyToX25519(publicJwk.publicKey.publicKey)\n\n const publicJwkX25519 = PublicJwk.fromPublicKey({\n kty: 'OKP',\n crv: 'X25519',\n publicKey: publicKeyX25519,\n })\n\n const x25519VerificationMethod = getX25519KeyAgreementKey2019({\n id: `${did}#${publicJwkX25519.fingerprint}`,\n publicJwk: publicJwkX25519,\n controller: did,\n })\n\n const didDocBuilder = getSignatureKeyBase({ did, publicJwk, verificationMethod })\n\n didDocBuilder\n .addContext(ED25519_SUITE_CONTEXT_URL_2018)\n .addContext(SECURITY_X25519_CONTEXT_URL)\n .addKeyAgreement(x25519VerificationMethod)\n\n return didDocBuilder.build()\n}\n\nfunction getX25519DidDoc(did: string, publicJwk: PublicJwk<X25519PublicJwk>) {\n const verificationMethod = getX25519KeyAgreementKey2019({\n id: `${did}#${publicJwk.fingerprint}`,\n publicJwk,\n controller: did,\n })\n\n const document = new DidDocumentBuilder(did)\n .addKeyAgreement(verificationMethod)\n .addContext(SECURITY_X25519_CONTEXT_URL)\n .build()\n\n return document\n}\n\nfunction getSignatureKeyBase({\n did,\n publicJwk,\n verificationMethod,\n}: {\n did: string\n publicJwk: PublicJwk\n verificationMethod: VerificationMethod\n}) {\n const keyId = `${did}#${publicJwk.fingerprint}`\n\n return new DidDocumentBuilder(did)\n .addVerificationMethod(verificationMethod)\n .addAuthentication(keyId)\n .addAssertionMethod(keyId)\n .addCapabilityDelegation(keyId)\n .addCapabilityInvocation(keyId)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAkBA,SAAgB,2BAA2B,KAAa,WAAsB;AAC5E,KAAI,UAAU,GAAG,iBAAiB,CAChC,QAAO,iBAAiB,KAAK,UAAyC;AAExE,KAAI,UAAU,GAAG,gBAAgB,CAC/B,QAAO,gBAAgB,KAAK,UAAwC;AAEtE,KACE,UAAU,GAAG,cAAc,IAC3B,UAAU,GAAG,cAAc,IAC3B,UAAU,GAAG,cAAc,IAC3B,UAAU,GAAG,mBAAmB,CAEhC,QAAO,6BAA6B,KAAK,UAAU;AAGrD,OAAM,IAAI,WAAW,iDAAiD,uBAAuB,UAAU,QAAQ,CAAC,GAAG;;AAGrH,SAAgB,6BAA6B,KAAa,WAAsB;CAC9E,MAAM,qBAAqB,kBAAkB;EAAE;EAAK;EAAW,CAAC;CAEhE,MAAM,qBAAqB,IAAI,mBAAmB,IAAI;AACtD,oBAAmB,WAAW,yBAAyB,CAAC,sBAAsB,mBAAmB;AAEjG,KACE,UAAU,6BAA6B,WAAW,KAClD,UAAU,yCAAyC,WAAW,EAE9D,OAAM,IAAI,WAAW,kDAAkD;AAGzE,KAAI,UAAU,6BAA6B,SAAS,EAClD,oBACG,kBAAkB,mBAAmB,GAAG,CACxC,mBAAmB,mBAAmB,GAAG,CACzC,wBAAwB,mBAAmB,GAAG,CAC9C,wBAAwB,mBAAmB,GAAG;AAGnD,KAAI,UAAU,yCAAyC,SAAS,EAC9D,oBAAmB,gBAAgB,mBAAmB,GAAG;AAG3D,QAAO,mBAAmB,OAAO;;AAGnC,SAAS,iBAAiB,KAAa,WAAwC;CAC7E,MAAM,qBAAqB,8BAA8B;EACvD,IAAI,GAAG,IAAI,GAAG,UAAU;EACxB;EACA,YAAY;EACb,CAAC;CAEF,MAAM,kBAAkB,yBAAyB,UAAU,UAAU,UAAU;CAE/E,MAAM,kBAAkB,UAAU,cAAc;EAC9C,KAAK;EACL,KAAK;EACL,WAAW;EACZ,CAAC;CAEF,MAAM,2BAA2B,6BAA6B;EAC5D,IAAI,GAAG,IAAI,GAAG,gBAAgB;EAC9B,WAAW;EACX,YAAY;EACb,CAAC;CAEF,MAAM,gBAAgB,oBAAoB;EAAE;EAAK;EAAW;EAAoB,CAAC;AAEjF,eACG,WAAW,+BAA+B,CAC1C,WAAW,4BAA4B,CACvC,gBAAgB,yBAAyB;AAE5C,QAAO,cAAc,OAAO;;AAG9B,SAAS,gBAAgB,KAAa,WAAuC;CAC3E,MAAM,qBAAqB,6BAA6B;EACtD,IAAI,GAAG,IAAI,GAAG,UAAU;EACxB;EACA,YAAY;EACb,CAAC;AAOF,QALiB,IAAI,mBAAmB,IAAI,CACzC,gBAAgB,mBAAmB,CACnC,WAAW,4BAA4B,CACvC,OAAO;;AAKZ,SAAS,oBAAoB,EAC3B,KACA,WACA,sBAKC;CACD,MAAM,QAAQ,GAAG,IAAI,GAAG,UAAU;AAElC,QAAO,IAAI,mBAAmB,IAAI,CAC/B,sBAAsB,mBAAmB,CACzC,kBAAkB,MAAM,CACxB,mBAAmB,MAAM,CACzB,wBAAwB,MAAM,CAC9B,wBAAwB,MAAM"}
1
+ {"version":3,"file":"keyDidDocument.mjs","names":[],"sources":["../../../../src/modules/dids/domain/keyDidDocument.ts"],"sourcesContent":["import { CredoError } from '../../../error'\nimport {\n Ed25519PublicJwk,\n getJwkHumanDescription,\n P256PublicJwk,\n P384PublicJwk,\n P521PublicJwk,\n Secp256k1PublicJwk,\n X25519PublicJwk,\n} from '../../kms'\nimport { PublicJwk } from '../../kms/jwk/PublicJwk'\nimport { SECURITY_JWS_CONTEXT_URL, SECURITY_X25519_CONTEXT_URL } from '../../vc/constants'\nimport { ED25519_SUITE_CONTEXT_URL_2018 } from '../../vc/data-integrity/signature-suites/ed25519/constants'\nimport { DidDocumentBuilder } from './DidDocumentBuilder'\nimport { convertPublicKeyToX25519 } from './key-type/ed25519'\nimport { getEd25519VerificationKey2018, getJsonWebKey2020, getX25519KeyAgreementKey2019 } from './verificationMethod'\nimport type { VerificationMethod } from './verificationMethod/VerificationMethod'\n\nexport function getDidDocumentForPublicJwk(did: string, publicJwk: PublicJwk) {\n if (publicJwk.is(Ed25519PublicJwk)) {\n return getEd25519DidDoc(did, publicJwk as PublicJwk<Ed25519PublicJwk>)\n }\n if (publicJwk.is(X25519PublicJwk)) {\n return getX25519DidDoc(did, publicJwk as PublicJwk<X25519PublicJwk>)\n }\n if (\n publicJwk.is(P256PublicJwk) ||\n publicJwk.is(P384PublicJwk) ||\n publicJwk.is(P521PublicJwk) ||\n publicJwk.is(Secp256k1PublicJwk)\n ) {\n return getJsonWebKey2020DidDocument(did, publicJwk)\n }\n\n throw new CredoError(`Unsupported public key type for did document: ${getJwkHumanDescription(publicJwk.toJson())}`)\n}\n\nexport function getJsonWebKey2020DidDocument(did: string, publicJwk: PublicJwk) {\n const verificationMethod = getJsonWebKey2020({ did, publicJwk })\n\n const didDocumentBuilder = new DidDocumentBuilder(did)\n didDocumentBuilder.addContext(SECURITY_JWS_CONTEXT_URL).addVerificationMethod(verificationMethod)\n\n if (\n publicJwk.supportedSignatureAlgorithms.length === 0 &&\n publicJwk.supportedEncryptionKeyAgreementAlgorithms.length === 0\n ) {\n throw new CredoError('Key must support at least signing or encrypting')\n }\n\n if (publicJwk.supportedSignatureAlgorithms.length > 0) {\n didDocumentBuilder\n .addAuthentication(verificationMethod.id)\n .addAssertionMethod(verificationMethod.id)\n .addCapabilityDelegation(verificationMethod.id)\n .addCapabilityInvocation(verificationMethod.id)\n }\n\n if (publicJwk.supportedEncryptionKeyAgreementAlgorithms.length > 0) {\n didDocumentBuilder.addKeyAgreement(verificationMethod.id)\n }\n\n return didDocumentBuilder.build()\n}\n\nfunction getEd25519DidDoc(did: string, publicJwk: PublicJwk<Ed25519PublicJwk>) {\n const verificationMethod = getEd25519VerificationKey2018({\n id: `${did}#${publicJwk.fingerprint}`,\n publicJwk,\n controller: did,\n })\n\n const publicKeyX25519 = convertPublicKeyToX25519(publicJwk.publicKey.publicKey)\n\n const publicJwkX25519 = PublicJwk.fromPublicKey({\n kty: 'OKP',\n crv: 'X25519',\n publicKey: publicKeyX25519,\n })\n\n const x25519VerificationMethod = getX25519KeyAgreementKey2019({\n id: `${did}#${publicJwkX25519.fingerprint}`,\n publicJwk: publicJwkX25519,\n controller: did,\n })\n\n const didDocBuilder = getSignatureKeyBase({ did, publicJwk, verificationMethod })\n\n didDocBuilder\n .addContext(ED25519_SUITE_CONTEXT_URL_2018)\n .addContext(SECURITY_X25519_CONTEXT_URL)\n .addKeyAgreement(x25519VerificationMethod)\n\n return didDocBuilder.build()\n}\n\nfunction getX25519DidDoc(did: string, publicJwk: PublicJwk<X25519PublicJwk>) {\n const verificationMethod = getX25519KeyAgreementKey2019({\n id: `${did}#${publicJwk.fingerprint}`,\n publicJwk,\n controller: did,\n })\n\n const document = new DidDocumentBuilder(did)\n .addKeyAgreement(verificationMethod)\n .addContext(SECURITY_X25519_CONTEXT_URL)\n .build()\n\n return document\n}\n\nfunction getSignatureKeyBase({\n did,\n publicJwk,\n verificationMethod,\n}: {\n did: string\n publicJwk: PublicJwk\n verificationMethod: VerificationMethod\n}) {\n const keyId = `${did}#${publicJwk.fingerprint}`\n\n return new DidDocumentBuilder(did)\n .addVerificationMethod(verificationMethod)\n .addAuthentication(keyId)\n .addAssertionMethod(keyId)\n .addCapabilityDelegation(keyId)\n .addCapabilityInvocation(keyId)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAkBA,SAAgB,2BAA2B,KAAa,WAAsB;AAC5E,KAAI,UAAU,GAAG,iBAAiB,CAChC,QAAO,iBAAiB,KAAK,UAAyC;AAExE,KAAI,UAAU,GAAG,gBAAgB,CAC/B,QAAO,gBAAgB,KAAK,UAAwC;AAEtE,KACE,UAAU,GAAG,cAAc,IAC3B,UAAU,GAAG,cAAc,IAC3B,UAAU,GAAG,cAAc,IAC3B,UAAU,GAAG,mBAAmB,CAEhC,QAAO,6BAA6B,KAAK,UAAU;AAGrD,OAAM,IAAI,WAAW,iDAAiD,uBAAuB,UAAU,QAAQ,CAAC,GAAG;;AAGrH,SAAgB,6BAA6B,KAAa,WAAsB;CAC9E,MAAM,qBAAqB,kBAAkB;EAAE;EAAK;EAAW,CAAC;CAEhE,MAAM,qBAAqB,IAAI,mBAAmB,IAAI;AACtD,oBAAmB,WAAW,yBAAyB,CAAC,sBAAsB,mBAAmB;AAEjG,KACE,UAAU,6BAA6B,WAAW,KAClD,UAAU,0CAA0C,WAAW,EAE/D,OAAM,IAAI,WAAW,kDAAkD;AAGzE,KAAI,UAAU,6BAA6B,SAAS,EAClD,oBACG,kBAAkB,mBAAmB,GAAG,CACxC,mBAAmB,mBAAmB,GAAG,CACzC,wBAAwB,mBAAmB,GAAG,CAC9C,wBAAwB,mBAAmB,GAAG;AAGnD,KAAI,UAAU,0CAA0C,SAAS,EAC/D,oBAAmB,gBAAgB,mBAAmB,GAAG;AAG3D,QAAO,mBAAmB,OAAO;;AAGnC,SAAS,iBAAiB,KAAa,WAAwC;CAC7E,MAAM,qBAAqB,8BAA8B;EACvD,IAAI,GAAG,IAAI,GAAG,UAAU;EACxB;EACA,YAAY;EACb,CAAC;CAEF,MAAM,kBAAkB,yBAAyB,UAAU,UAAU,UAAU;CAE/E,MAAM,kBAAkB,UAAU,cAAc;EAC9C,KAAK;EACL,KAAK;EACL,WAAW;EACZ,CAAC;CAEF,MAAM,2BAA2B,6BAA6B;EAC5D,IAAI,GAAG,IAAI,GAAG,gBAAgB;EAC9B,WAAW;EACX,YAAY;EACb,CAAC;CAEF,MAAM,gBAAgB,oBAAoB;EAAE;EAAK;EAAW;EAAoB,CAAC;AAEjF,eACG,WAAW,+BAA+B,CAC1C,WAAW,4BAA4B,CACvC,gBAAgB,yBAAyB;AAE5C,QAAO,cAAc,OAAO;;AAG9B,SAAS,gBAAgB,KAAa,WAAuC;CAC3E,MAAM,qBAAqB,6BAA6B;EACtD,IAAI,GAAG,IAAI,GAAG,UAAU;EACxB;EACA,YAAY;EACb,CAAC;AAOF,QALiB,IAAI,mBAAmB,IAAI,CACzC,gBAAgB,mBAAmB,CACnC,WAAW,4BAA4B,CACvC,OAAO;;AAKZ,SAAS,oBAAoB,EAC3B,KACA,WACA,sBAKC;CACD,MAAM,QAAQ,GAAG,IAAI,GAAG,UAAU;AAElC,QAAO,IAAI,mBAAmB,IAAI,CAC/B,sBAAsB,mBAAmB,CACzC,kBAAkB,MAAM,CACxB,mBAAmB,MAAM,CACzB,wBAAwB,MAAM,CAC9B,wBAAwB,MAAM"}
@@ -14,7 +14,7 @@ var DidJwk = class DidJwk {
14
14
  this.publicJwk = publicJwk;
15
15
  }
16
16
  get allowsEncrypting() {
17
- return this.publicJwk.toJson().use === "enc" || this.publicJwk.supportdEncryptionKeyAgreementAlgorithms.length > 0;
17
+ return this.publicJwk.toJson().use === "enc" || this.publicJwk.supportedEncryptionKeyAgreementAlgorithms.length > 0;
18
18
  }
19
19
  get allowsSigning() {
20
20
  return this.publicJwk.toJson().use === "sig" || this.publicJwk.supportedSignatureAlgorithms.length > 0;
@@ -1 +1 @@
1
- {"version":3,"file":"DidJwk.mjs","names":["did: string","publicJwk: PublicJwk"],"sources":["../../../../../src/modules/dids/methods/jwk/DidJwk.ts"],"sourcesContent":["import { JsonEncoder } from '../../../../utils'\nimport { PublicJwk } from '../../../kms'\nimport { parseDid } from '../../domain/parse'\n\nimport { getDidJwkDocument } from './didJwkDidDocument'\n\nexport class DidJwk {\n private constructor(\n public readonly did: string,\n public readonly publicJwk: PublicJwk\n ) {}\n\n public get allowsEncrypting() {\n return this.publicJwk.toJson().use === 'enc' || this.publicJwk.supportdEncryptionKeyAgreementAlgorithms.length > 0\n }\n\n public get allowsSigning() {\n return this.publicJwk.toJson().use === 'sig' || this.publicJwk.supportedSignatureAlgorithms.length > 0\n }\n\n public static fromDid(did: string) {\n const parsed = parseDid(did)\n const jwkJson = JsonEncoder.fromBase64(parsed.id)\n\n // This validates the jwk\n const publicJwk = PublicJwk.fromUnknown(jwkJson)\n\n return new DidJwk(did, publicJwk)\n }\n\n /**\n * A did:jwk DID can only have one verification method, and the verification method\n * id will always be `<did>#0`.\n */\n public get verificationMethodId() {\n return `${this.did}#0`\n }\n\n public static fromPublicJwk(publicJwk: PublicJwk) {\n const did = `did:jwk:${JsonEncoder.toBase64URL(publicJwk.toJson({ includeKid: false }))}`\n\n return new DidJwk(did, publicJwk)\n }\n\n public get jwkJson() {\n return this.publicJwk.toJson()\n }\n\n public get didDocument() {\n return getDidJwkDocument(this)\n }\n}\n"],"mappings":";;;;;;;;;;AAMA,IAAa,SAAb,MAAa,OAAO;CAClB,AAAQ,YACN,AAAgBA,KAChB,AAAgBC,WAChB;EAFgB;EACA;;CAGlB,IAAW,mBAAmB;AAC5B,SAAO,KAAK,UAAU,QAAQ,CAAC,QAAQ,SAAS,KAAK,UAAU,yCAAyC,SAAS;;CAGnH,IAAW,gBAAgB;AACzB,SAAO,KAAK,UAAU,QAAQ,CAAC,QAAQ,SAAS,KAAK,UAAU,6BAA6B,SAAS;;CAGvG,OAAc,QAAQ,KAAa;EACjC,MAAM,SAAS,SAAS,IAAI;EAC5B,MAAM,UAAU,YAAY,WAAW,OAAO,GAAG;AAKjD,SAAO,IAAI,OAAO,KAFA,UAAU,YAAY,QAAQ,CAEf;;;;;;CAOnC,IAAW,uBAAuB;AAChC,SAAO,GAAG,KAAK,IAAI;;CAGrB,OAAc,cAAc,WAAsB;AAGhD,SAAO,IAAI,OAFC,WAAW,YAAY,YAAY,UAAU,OAAO,EAAE,YAAY,OAAO,CAAC,CAAC,IAEhE,UAAU;;CAGnC,IAAW,UAAU;AACnB,SAAO,KAAK,UAAU,QAAQ;;CAGhC,IAAW,cAAc;AACvB,SAAO,kBAAkB,KAAK"}
1
+ {"version":3,"file":"DidJwk.mjs","names":["did: string","publicJwk: PublicJwk"],"sources":["../../../../../src/modules/dids/methods/jwk/DidJwk.ts"],"sourcesContent":["import { JsonEncoder } from '../../../../utils'\nimport { PublicJwk } from '../../../kms'\nimport { parseDid } from '../../domain/parse'\n\nimport { getDidJwkDocument } from './didJwkDidDocument'\n\nexport class DidJwk {\n private constructor(\n public readonly did: string,\n public readonly publicJwk: PublicJwk\n ) {}\n\n public get allowsEncrypting() {\n return this.publicJwk.toJson().use === 'enc' || this.publicJwk.supportedEncryptionKeyAgreementAlgorithms.length > 0\n }\n\n public get allowsSigning() {\n return this.publicJwk.toJson().use === 'sig' || this.publicJwk.supportedSignatureAlgorithms.length > 0\n }\n\n public static fromDid(did: string) {\n const parsed = parseDid(did)\n const jwkJson = JsonEncoder.fromBase64(parsed.id)\n\n // This validates the jwk\n const publicJwk = PublicJwk.fromUnknown(jwkJson)\n\n return new DidJwk(did, publicJwk)\n }\n\n /**\n * A did:jwk DID can only have one verification method, and the verification method\n * id will always be `<did>#0`.\n */\n public get verificationMethodId() {\n return `${this.did}#0`\n }\n\n public static fromPublicJwk(publicJwk: PublicJwk) {\n const did = `did:jwk:${JsonEncoder.toBase64URL(publicJwk.toJson({ includeKid: false }))}`\n\n return new DidJwk(did, publicJwk)\n }\n\n public get jwkJson() {\n return this.publicJwk.toJson()\n }\n\n public get didDocument() {\n return getDidJwkDocument(this)\n }\n}\n"],"mappings":";;;;;;;;;;AAMA,IAAa,SAAb,MAAa,OAAO;CAClB,AAAQ,YACN,AAAgBA,KAChB,AAAgBC,WAChB;EAFgB;EACA;;CAGlB,IAAW,mBAAmB;AAC5B,SAAO,KAAK,UAAU,QAAQ,CAAC,QAAQ,SAAS,KAAK,UAAU,0CAA0C,SAAS;;CAGpH,IAAW,gBAAgB;AACzB,SAAO,KAAK,UAAU,QAAQ,CAAC,QAAQ,SAAS,KAAK,UAAU,6BAA6B,SAAS;;CAGvG,OAAc,QAAQ,KAAa;EACjC,MAAM,SAAS,SAAS,IAAI;EAC5B,MAAM,UAAU,YAAY,WAAW,OAAO,GAAG;AAKjD,SAAO,IAAI,OAAO,KAFA,UAAU,YAAY,QAAQ,CAEf;;;;;;CAOnC,IAAW,uBAAuB;AAChC,SAAO,GAAG,KAAK,IAAI;;CAGrB,OAAc,cAAc,WAAsB;AAGhD,SAAO,IAAI,OAFC,WAAW,YAAY,YAAY,UAAU,OAAO,EAAE,YAAY,OAAO,CAAC,CAAC,IAEhE,UAAU;;CAGnC,IAAW,UAAU;AACnB,SAAO,KAAK,UAAU,QAAQ;;CAGhC,IAAW,cAAc;AACvB,SAAO,kBAAkB,KAAK"}
@@ -32,8 +32,14 @@ declare class PublicJwk<Jwk extends SupportedPublicJwk = SupportedPublicJwk> {
32
32
  }?: {
33
33
  includeKid?: boolean;
34
34
  }): Jwk['jwk'];
35
+ /**
36
+ * Get the signature algorithms supported for this jwk.
37
+ *
38
+ * If the jwk has an `alg` field defined it will only return that alg
39
+ * and otherwise return all known supported signature algorithm.
40
+ */
35
41
  get supportedSignatureAlgorithms(): KnownJwaSignatureAlgorithm[];
36
- get supportdEncryptionKeyAgreementAlgorithms(): KnownJwaKeyAgreementAlgorithm[];
42
+ get supportedEncryptionKeyAgreementAlgorithms(): KnownJwaKeyAgreementAlgorithm[];
37
43
  /**
38
44
  * key type as defined in [JWA Specification](https://tools.ietf.org/html/rfc7518#section-6.1)
39
45
  */
@@ -57,12 +63,13 @@ declare class PublicJwk<Jwk extends SupportedPublicJwk = SupportedPublicJwk> {
57
63
  */
58
64
  getJwkThumbprint(hashAlgorithm?: HashName): Uint8Array<ArrayBuffer>;
59
65
  /**
60
- * Get the signature algorithm to use with this jwk. If the jwk has an `alg` field defined
66
+ * Get the first signature algorithm to use with this jwk. If the jwk has an `alg` field defined
61
67
  * it will use that alg, and otherwise fall back to the first supported signature algorithm.
62
68
  *
63
69
  * If no algorithm is supported it will throw an error
64
70
  */
65
71
  get signatureAlgorithm(): this["supportedSignatureAlgorithms"][number];
72
+ assertSignatureAlgorithmSupported(alg: KnownJwaSignatureAlgorithm): asserts alg is this['supportedSignatureAlgorithms'][number];
66
73
  static fromPublicKey<Supported extends SupportedPublicJwk['publicKey']>(publicKey: Supported): PublicJwk<ExtractByPublicKey<SupportedPublicJwk, Supported>>;
67
74
  /**
68
75
  * Returns the jwk encoded a Base58 multibase encoded multicodec key
@@ -1 +1 @@
1
- {"version":3,"file":"PublicJwk.d.mts","names":[],"sources":["../../../../src/modules/kms/jwk/PublicJwk.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"PublicJwk.d.mts","names":[],"sources":["../../../../src/modules/kms/jwk/PublicJwk.ts"],"sourcesContent":[],"mappings":"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"}