@sphereon/ssi-sdk.mdl-mdoc 0.34.1-fix.78 → 0.34.1-fix.80
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +31 -28
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +50 -51
- package/dist/index.d.ts +50 -51
- package/dist/index.js +6 -3
- package/dist/index.js.map +1 -1
- package/package.json +13 -13
- package/src/agent/mDLMdoc.ts +3 -2
- package/src/functions/index.ts +23 -21
- package/src/types/ImDLMdoc.ts +14 -13
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sphereon/ssi-sdk.mdl-mdoc",
|
|
3
|
-
"version": "0.34.1-fix.
|
|
3
|
+
"version": "0.34.1-fix.80+f71b3901",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -30,11 +30,11 @@
|
|
|
30
30
|
"@sphereon/kmp-mdoc-core": "0.2.0-SNAPSHOT.26",
|
|
31
31
|
"@sphereon/pex": "5.0.0-unstable.28",
|
|
32
32
|
"@sphereon/pex-models": "^2.3.2",
|
|
33
|
-
"@sphereon/ssi-sdk-ext.did-utils": "0.34.1-fix.
|
|
34
|
-
"@sphereon/ssi-sdk-ext.key-utils": "0.34.1-fix.
|
|
35
|
-
"@sphereon/ssi-sdk-ext.x509-utils": "0.34.1-fix.
|
|
36
|
-
"@sphereon/ssi-sdk.core": "0.34.1-fix.
|
|
37
|
-
"@sphereon/ssi-types": "0.34.1-fix.
|
|
33
|
+
"@sphereon/ssi-sdk-ext.did-utils": "0.34.1-fix.80+f71b3901",
|
|
34
|
+
"@sphereon/ssi-sdk-ext.key-utils": "0.34.1-fix.80+f71b3901",
|
|
35
|
+
"@sphereon/ssi-sdk-ext.x509-utils": "0.34.1-fix.80+f71b3901",
|
|
36
|
+
"@sphereon/ssi-sdk.core": "0.34.1-fix.80+f71b3901",
|
|
37
|
+
"@sphereon/ssi-types": "0.34.1-fix.80+f71b3901",
|
|
38
38
|
"@veramo/core": "4.2.0",
|
|
39
39
|
"@veramo/did-manager": "4.2.0",
|
|
40
40
|
"@veramo/utils": "4.2.0",
|
|
@@ -49,12 +49,12 @@
|
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"@sphereon/oid4vci-client": "0.19.1-feature.DIIPv4.86",
|
|
51
51
|
"@sphereon/oid4vci-common": "0.19.1-feature.DIIPv4.86",
|
|
52
|
-
"@sphereon/ssi-express-support": "0.34.1-fix.
|
|
53
|
-
"@sphereon/ssi-sdk-ext.key-manager": "0.34.1-fix.
|
|
54
|
-
"@sphereon/ssi-sdk-ext.kms-local": "0.34.1-fix.
|
|
55
|
-
"@sphereon/ssi-sdk.agent-config": "0.34.1-fix.
|
|
56
|
-
"@sphereon/ssi-sdk.data-store": "0.34.1-fix.
|
|
57
|
-
"@sphereon/ssi-sdk.public-key-hosting": "0.34.1-fix.
|
|
52
|
+
"@sphereon/ssi-express-support": "0.34.1-fix.80+f71b3901",
|
|
53
|
+
"@sphereon/ssi-sdk-ext.key-manager": "0.34.1-fix.80+f71b3901",
|
|
54
|
+
"@sphereon/ssi-sdk-ext.kms-local": "0.34.1-fix.80+f71b3901",
|
|
55
|
+
"@sphereon/ssi-sdk.agent-config": "0.34.1-fix.80+f71b3901",
|
|
56
|
+
"@sphereon/ssi-sdk.data-store": "0.34.1-fix.80+f71b3901",
|
|
57
|
+
"@sphereon/ssi-sdk.public-key-hosting": "0.34.1-fix.80+f71b3901",
|
|
58
58
|
"@transmute/json-web-signature": "0.7.0-unstable.81",
|
|
59
59
|
"@types/cors": "^2.8.17",
|
|
60
60
|
"@types/express": "^4.17.21",
|
|
@@ -89,5 +89,5 @@
|
|
|
89
89
|
"EBSI",
|
|
90
90
|
"EBSI Authorization Client"
|
|
91
91
|
],
|
|
92
|
-
"gitHead": "
|
|
92
|
+
"gitHead": "f71b39017a0bd9ac33fab56d2d61287d8d5c14f4"
|
|
93
93
|
}
|
package/src/agent/mDLMdoc.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import mdocPkg from '@sphereon/kmp-mdoc-core'
|
|
2
|
+
const { com } = mdocPkg
|
|
2
3
|
import { calculateJwkThumbprint } from '@sphereon/ssi-sdk-ext.key-utils'
|
|
3
4
|
import { CertificateInfo, getCertificateInfo, pemOrDerToX509Certificate, X509ValidationResult } from '@sphereon/ssi-sdk-ext.x509-utils'
|
|
4
5
|
import { JWK } from '@sphereon/ssi-types'
|
|
@@ -121,7 +122,7 @@ export class MDLMdoc implements IAgentPlugin {
|
|
|
121
122
|
presentationDefinition as IOid4VPPresentationDefinition,
|
|
122
123
|
)
|
|
123
124
|
const docsAndDescriptors: DocumentDescriptorMatchResult[] = []
|
|
124
|
-
let lastError: com.sphereon.crypto.generic.IVerifyResults<com.sphereon.crypto.cose.ICoseKeyCbor> | undefined = undefined
|
|
125
|
+
let lastError: mdocPkg.com.sphereon.crypto.generic.IVerifyResults<mdocPkg.com.sphereon.crypto.cose.ICoseKeyCbor> | undefined = undefined
|
|
125
126
|
for (let match of allMatches) {
|
|
126
127
|
if (match.document) {
|
|
127
128
|
const result = await validate(match.document)
|
package/src/functions/index.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import mdocPkg from '@sphereon/kmp-mdoc-core'
|
|
2
|
+
const { com } = mdocPkg
|
|
3
|
+
import { Nullable } from '@sphereon/kmp-mdoc-core'
|
|
2
4
|
import { calculateJwkThumbprint, globalCrypto, verifyRawSignature } from '@sphereon/ssi-sdk-ext.key-utils'
|
|
3
5
|
import {
|
|
4
6
|
CertificateInfo,
|
|
@@ -16,22 +18,22 @@ import { Certificate, CryptoEngine, setEngine } from 'pkijs'
|
|
|
16
18
|
import { fromString } from 'uint8arrays/from-string'
|
|
17
19
|
import { IRequiredContext, VerifyCertificateChainArgs } from '../types/ImDLMdoc'
|
|
18
20
|
|
|
19
|
-
type CoseKeyCbor = com.sphereon.crypto.cose.CoseKeyCbor
|
|
20
|
-
type ICoseKeyCbor = com.sphereon.crypto.cose.ICoseKeyCbor
|
|
21
|
-
type ToBeSignedCbor = com.sphereon.crypto.cose.ToBeSignedCbor
|
|
21
|
+
type CoseKeyCbor = mdocPkg.com.sphereon.crypto.cose.CoseKeyCbor
|
|
22
|
+
type ICoseKeyCbor = mdocPkg.com.sphereon.crypto.cose.ICoseKeyCbor
|
|
23
|
+
type ToBeSignedCbor = mdocPkg.com.sphereon.crypto.cose.ToBeSignedCbor
|
|
22
24
|
const CoseJoseKeyMappingService = com.sphereon.crypto.CoseJoseKeyMappingService
|
|
23
|
-
type SignatureAlgorithm = com.sphereon.crypto.generic.SignatureAlgorithm
|
|
24
|
-
type ICoseCryptoCallbackJS = com.sphereon.crypto.ICoseCryptoCallbackJS
|
|
25
|
-
type IKey = com.sphereon.crypto.IKey
|
|
26
|
-
type IX509ServiceJS = com.sphereon.crypto.IX509ServiceJS
|
|
27
|
-
type Jwk = com.sphereon.crypto.jose.Jwk
|
|
25
|
+
type SignatureAlgorithm = mdocPkg.com.sphereon.crypto.generic.SignatureAlgorithm
|
|
26
|
+
type ICoseCryptoCallbackJS = mdocPkg.com.sphereon.crypto.ICoseCryptoCallbackJS
|
|
27
|
+
type IKey = mdocPkg.com.sphereon.crypto.IKey
|
|
28
|
+
type IX509ServiceJS = mdocPkg.com.sphereon.crypto.IX509ServiceJS
|
|
29
|
+
type Jwk = mdocPkg.com.sphereon.crypto.jose.Jwk
|
|
28
30
|
const KeyInfo = com.sphereon.crypto.KeyInfo
|
|
29
|
-
type X509VerificationProfile = com.sphereon.crypto.X509VerificationProfile
|
|
31
|
+
type X509VerificationProfile = mdocPkg.com.sphereon.crypto.X509VerificationProfile
|
|
30
32
|
const DateTimeUtils = com.sphereon.kmp.DateTimeUtils
|
|
31
33
|
const decodeFrom = com.sphereon.kmp.decodeFrom
|
|
32
34
|
const encodeTo = com.sphereon.kmp.encodeTo
|
|
33
35
|
const Encoding = com.sphereon.kmp.Encoding
|
|
34
|
-
type LocalDateTimeKMP = com.sphereon.kmp.LocalDateTimeKMP
|
|
36
|
+
type LocalDateTimeKMP = mdocPkg.com.sphereon.kmp.LocalDateTimeKMP
|
|
35
37
|
const SignatureAlgorithm = com.sphereon.crypto.generic.SignatureAlgorithm
|
|
36
38
|
const DefaultCallbacks = com.sphereon.crypto.DefaultCallbacks
|
|
37
39
|
|
|
@@ -54,7 +56,7 @@ export class CoseCryptoService implements ICoseCryptoCallbackJS {
|
|
|
54
56
|
return Promise.reject(Error('No key present in keyInfo. This implementation cannot sign without a key!'))
|
|
55
57
|
}
|
|
56
58
|
const resolvedKeyInfo = com.sphereon.crypto.ResolvedKeyInfo.Static.fromKeyInfo(keyInfo, key)
|
|
57
|
-
const jwkKeyInfo: com.sphereon.crypto.ResolvedKeyInfo<Jwk> = CoseJoseKeyMappingService.toResolvedJwkKeyInfo(resolvedKeyInfo)
|
|
59
|
+
const jwkKeyInfo: mdocPkg.com.sphereon.crypto.ResolvedKeyInfo<Jwk> = CoseJoseKeyMappingService.toResolvedJwkKeyInfo(resolvedKeyInfo)
|
|
58
60
|
|
|
59
61
|
const kid = jwkKeyInfo.kid ?? calculateJwkThumbprint({ jwk: jwkKeyInfo.key.toJsonDTO() }) ?? jwkKeyInfo.key.getKidAsString(true)
|
|
60
62
|
if (!kid) {
|
|
@@ -72,10 +74,10 @@ export class CoseCryptoService implements ICoseCryptoCallbackJS {
|
|
|
72
74
|
}
|
|
73
75
|
|
|
74
76
|
async verify1Async<CborType>(
|
|
75
|
-
input: com.sphereon.crypto.cose.CoseSign1Cbor<CborType>,
|
|
76
|
-
keyInfo: com.sphereon.crypto.IKeyInfo<ICoseKeyCbor>,
|
|
77
|
+
input: mdocPkg.com.sphereon.crypto.cose.CoseSign1Cbor<CborType>,
|
|
78
|
+
keyInfo: mdocPkg.com.sphereon.crypto.IKeyInfo<ICoseKeyCbor>,
|
|
77
79
|
requireX5Chain: Nullable<boolean>,
|
|
78
|
-
): Promise<com.sphereon.crypto.generic.IVerifySignatureResult<ICoseKeyCbor>> {
|
|
80
|
+
): Promise<mdocPkg.com.sphereon.crypto.generic.IVerifySignatureResult<ICoseKeyCbor>> {
|
|
79
81
|
const getCertAndKey = async (
|
|
80
82
|
x5c: Nullable<Array<string>>,
|
|
81
83
|
): Promise<{
|
|
@@ -154,12 +156,12 @@ export class CoseCryptoService implements ICoseCryptoCallbackJS {
|
|
|
154
156
|
error: !valid,
|
|
155
157
|
message: `Signature of '${issuerCert ? getSubjectDN(issuerCert).DN : kid}' was ${valid ? '' : 'in'}valid`,
|
|
156
158
|
keyInfo: issuerCoseKeyInfo,
|
|
157
|
-
} satisfies com.sphereon.crypto.generic.IVerifySignatureResult<ICoseKeyCbor>
|
|
159
|
+
} satisfies mdocPkg.com.sphereon.crypto.generic.IVerifySignatureResult<ICoseKeyCbor>
|
|
158
160
|
}
|
|
159
161
|
|
|
160
|
-
resolvePublicKeyAsync<KT extends com.sphereon.crypto.IKey>(
|
|
161
|
-
keyInfo: com.sphereon.crypto.IKeyInfo<KT>,
|
|
162
|
-
): Promise<com.sphereon.crypto.IResolvedKeyInfo<KT>> {
|
|
162
|
+
resolvePublicKeyAsync<KT extends mdocPkg.com.sphereon.crypto.IKey>(
|
|
163
|
+
keyInfo: mdocPkg.com.sphereon.crypto.IKeyInfo<KT>,
|
|
164
|
+
): Promise<mdocPkg.com.sphereon.crypto.IResolvedKeyInfo<KT>> {
|
|
163
165
|
if (keyInfo.key) {
|
|
164
166
|
return Promise.resolve(CoseJoseKeyMappingService.toResolvedKeyInfo(keyInfo, keyInfo.key))
|
|
165
167
|
}
|
|
@@ -210,7 +212,7 @@ export class X509CallbackService implements IX509ServiceJS {
|
|
|
210
212
|
trustedCerts: Nullable<string[]>,
|
|
211
213
|
verificationProfile?: X509VerificationProfile | undefined,
|
|
212
214
|
verificationTime?: Nullable<LocalDateTimeKMP>,
|
|
213
|
-
): Promise<com.sphereon.crypto.IX509VerificationResult<KeyType>> {
|
|
215
|
+
): Promise<mdocPkg.com.sphereon.crypto.IX509VerificationResult<KeyType>> {
|
|
214
216
|
const verificationAt = verificationTime ?? DateTimeUtils.Static.DEFAULT.dateTimeLocal()
|
|
215
217
|
let chain: Array<string | Uint8Array> = []
|
|
216
218
|
if (chainDER && chainDER.length > 0) {
|
|
@@ -236,7 +238,7 @@ export class X509CallbackService implements IX509ServiceJS {
|
|
|
236
238
|
message: result.message,
|
|
237
239
|
error: result.error,
|
|
238
240
|
verificationTime: verificationAt,
|
|
239
|
-
} satisfies com.sphereon.crypto.IX509VerificationResult<KeyType>
|
|
241
|
+
} satisfies mdocPkg.com.sphereon.crypto.IX509VerificationResult<KeyType>
|
|
240
242
|
}
|
|
241
243
|
|
|
242
244
|
setTrustedCerts = (trustedCertsInPEM?: Array<string>) => {
|
package/src/types/ImDLMdoc.ts
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
import
|
|
1
|
+
import mdocPkg from '@sphereon/kmp-mdoc-core'
|
|
2
|
+
const { com } = mdocPkg
|
|
2
3
|
import { PresentationDefinitionV2, PresentationSubmission } from '@sphereon/pex-models'
|
|
3
4
|
import { ISphereonKeyManager } from '@sphereon/ssi-sdk-ext.key-manager'
|
|
4
5
|
import { CertificateInfo, SubjectAlternativeGeneralName, X509ValidationResult } from '@sphereon/ssi-sdk-ext.x509-utils'
|
|
5
6
|
import { IAgentContext, IDIDManager, IPluginMethodMap, IResolver } from '@veramo/core'
|
|
6
|
-
export type IKey = com.sphereon.crypto.IKey
|
|
7
|
-
export type CoseSign1Json = com.sphereon.crypto.cose.CoseSign1Json
|
|
8
|
-
export type CoseSign1Cbor<Any> = com.sphereon.crypto.cose.CoseSign1Cbor<Any>
|
|
9
|
-
export type ICoseKeyCbor = com.sphereon.crypto.cose.ICoseKeyCbor
|
|
10
|
-
export type ICoseKeyJson = com.sphereon.crypto.cose.ICoseKeyJson
|
|
11
|
-
export type IKeyInfo<KT extends IKey = IKey> = com.sphereon.crypto.IKeyInfo<KT>
|
|
12
|
-
export type IVerifyResults<KT extends IKey> = com.sphereon.crypto.generic.IVerifyResults<KT>
|
|
13
|
-
export type IVerifySignatureResult<KT extends IKey> = com.sphereon.crypto.generic.IVerifySignatureResult<KT>
|
|
14
|
-
export type DocumentJson = com.sphereon.mdoc.data.device.DocumentJson
|
|
15
|
-
export type DocumentCbor = com.sphereon.mdoc.data.device.DocumentCbor
|
|
7
|
+
export type IKey = mdocPkg.com.sphereon.crypto.IKey
|
|
8
|
+
export type CoseSign1Json = mdocPkg.com.sphereon.crypto.cose.CoseSign1Json
|
|
9
|
+
export type CoseSign1Cbor<Any> = mdocPkg.com.sphereon.crypto.cose.CoseSign1Cbor<Any>
|
|
10
|
+
export type ICoseKeyCbor = mdocPkg.com.sphereon.crypto.cose.ICoseKeyCbor
|
|
11
|
+
export type ICoseKeyJson = mdocPkg.com.sphereon.crypto.cose.ICoseKeyJson
|
|
12
|
+
export type IKeyInfo<KT extends IKey = IKey> = mdocPkg.com.sphereon.crypto.IKeyInfo<KT>
|
|
13
|
+
export type IVerifyResults<KT extends IKey> = mdocPkg.com.sphereon.crypto.generic.IVerifyResults<KT>
|
|
14
|
+
export type IVerifySignatureResult<KT extends IKey> = mdocPkg.com.sphereon.crypto.generic.IVerifySignatureResult<KT>
|
|
15
|
+
export type DocumentJson = mdocPkg.com.sphereon.mdoc.data.device.DocumentJson
|
|
16
|
+
export type DocumentCbor = mdocPkg.com.sphereon.mdoc.data.device.DocumentCbor
|
|
16
17
|
export const CborByteString = com.sphereon.cbor.CborByteString
|
|
17
18
|
export const CoseKeyCbor = com.sphereon.crypto.cose.CoseKeyCbor
|
|
18
19
|
export const CoseCryptoServiceJS = com.sphereon.crypto.CoseCryptoServiceJS
|
|
@@ -25,8 +26,8 @@ export const Encoding = com.sphereon.kmp.Encoding
|
|
|
25
26
|
export const MdocValidations = com.sphereon.mdoc.data.MdocValidations
|
|
26
27
|
export const MdocOid4vpService = com.sphereon.mdoc.oid4vp.MdocOid4vpServiceJs
|
|
27
28
|
export const Jwk = com.sphereon.crypto.jose.Jwk
|
|
28
|
-
export type DocumentDescriptorMatchResult = com.sphereon.mdoc.oid4vp.DocumentDescriptorMatchResult
|
|
29
|
-
export type IOid4VPPresentationDefinition = com.sphereon.mdoc.oid4vp.IOid4VPPresentationDefinition
|
|
29
|
+
export type DocumentDescriptorMatchResult = mdocPkg.com.sphereon.mdoc.oid4vp.DocumentDescriptorMatchResult
|
|
30
|
+
export type IOid4VPPresentationDefinition = mdocPkg.com.sphereon.mdoc.oid4vp.IOid4VPPresentationDefinition
|
|
30
31
|
export const Oid4VPPresentationSubmission = com.sphereon.mdoc.oid4vp.Oid4VPPresentationSubmission
|
|
31
32
|
|
|
32
33
|
export interface ImDLMdoc extends IPluginMethodMap {
|