@sphereon/ssi-sdk.mdl-mdoc 0.34.1-next.7 → 0.34.1-next.85
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 +32 -29
- 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 +14 -11
- package/dist/index.js.map +1 -1
- package/package.json +17 -17
- package/plugin.schema.json +1 -1
- package/src/agent/mDLMdoc.ts +3 -2
- package/src/functions/index.ts +31 -28
- 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-next.
|
|
3
|
+
"version": "0.34.1-next.85+019802c5",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -26,19 +26,19 @@
|
|
|
26
26
|
"build": "tsup --config ../../tsup.config.ts --tsconfig ../../tsconfig.tsup.json"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@sphereon/did-auth-siop-adapter": "0.19.1-
|
|
29
|
+
"@sphereon/did-auth-siop-adapter": "0.19.1-feature.SSISDK.45.86",
|
|
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
|
-
"@sphereon/ssi-sdk-ext.key-utils": "0.
|
|
35
|
-
"@sphereon/ssi-sdk-ext.x509-utils": "0.
|
|
36
|
-
"@sphereon/ssi-sdk.core": "0.34.1-next.
|
|
37
|
-
"@sphereon/ssi-types": "0.34.1-next.
|
|
33
|
+
"@sphereon/ssi-sdk-ext.did-utils": "0.34.1-next.85+019802c5",
|
|
34
|
+
"@sphereon/ssi-sdk-ext.key-utils": "0.34.1-next.85+019802c5",
|
|
35
|
+
"@sphereon/ssi-sdk-ext.x509-utils": "0.34.1-next.85+019802c5",
|
|
36
|
+
"@sphereon/ssi-sdk.core": "0.34.1-next.85+019802c5",
|
|
37
|
+
"@sphereon/ssi-types": "0.34.1-next.85+019802c5",
|
|
38
38
|
"@veramo/core": "4.2.0",
|
|
39
39
|
"@veramo/did-manager": "4.2.0",
|
|
40
40
|
"@veramo/utils": "4.2.0",
|
|
41
|
-
"cross-fetch": "^
|
|
41
|
+
"cross-fetch": "^4.1.0",
|
|
42
42
|
"debug": "^4.3.5",
|
|
43
43
|
"did-resolver": "^4.1.0",
|
|
44
44
|
"multiformats": "9.9.0",
|
|
@@ -47,14 +47,14 @@
|
|
|
47
47
|
"uuid": "^9.0.1"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
|
-
"@sphereon/oid4vci-client": "0.19.1-
|
|
51
|
-
"@sphereon/oid4vci-common": "0.19.1-
|
|
52
|
-
"@sphereon/ssi-express-support": "0.34.1-next.
|
|
53
|
-
"@sphereon/ssi-sdk-ext.key-manager": "0.
|
|
54
|
-
"@sphereon/ssi-sdk-ext.kms-local": "0.
|
|
55
|
-
"@sphereon/ssi-sdk.agent-config": "0.34.1-next.
|
|
56
|
-
"@sphereon/ssi-sdk.data-store": "0.34.1-next.
|
|
57
|
-
"@sphereon/ssi-sdk.public-key-hosting": "0.34.1-next.
|
|
50
|
+
"@sphereon/oid4vci-client": "0.19.1-feature.SSISDK.45.86",
|
|
51
|
+
"@sphereon/oid4vci-common": "0.19.1-feature.SSISDK.45.86",
|
|
52
|
+
"@sphereon/ssi-express-support": "0.34.1-next.85+019802c5",
|
|
53
|
+
"@sphereon/ssi-sdk-ext.key-manager": "0.34.1-next.85+019802c5",
|
|
54
|
+
"@sphereon/ssi-sdk-ext.kms-local": "0.34.1-next.85+019802c5",
|
|
55
|
+
"@sphereon/ssi-sdk.agent-config": "0.34.1-next.85+019802c5",
|
|
56
|
+
"@sphereon/ssi-sdk.data-store": "0.34.1-next.85+019802c5",
|
|
57
|
+
"@sphereon/ssi-sdk.public-key-hosting": "0.34.1-next.85+019802c5",
|
|
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": "019802c57e9c1f9e3df4ecbb1d6a17f49e8fdbeb"
|
|
93
93
|
}
|
package/plugin.schema.json
CHANGED
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,7 @@
|
|
|
1
|
-
import
|
|
1
|
+
import mdocPkg from '@sphereon/kmp-mdoc-core'
|
|
2
|
+
const { com } = mdocPkg
|
|
3
|
+
import { Nullable } from '@sphereon/kmp-mdoc-core'
|
|
4
|
+
|
|
2
5
|
import { calculateJwkThumbprint, globalCrypto, verifyRawSignature } from '@sphereon/ssi-sdk-ext.key-utils'
|
|
3
6
|
import {
|
|
4
7
|
CertificateInfo,
|
|
@@ -16,24 +19,24 @@ import { Certificate, CryptoEngine, setEngine } from 'pkijs'
|
|
|
16
19
|
import { fromString } from 'uint8arrays/from-string'
|
|
17
20
|
import { IRequiredContext, VerifyCertificateChainArgs } from '../types/ImDLMdoc'
|
|
18
21
|
|
|
19
|
-
type CoseKeyCbor = com.sphereon.crypto.cose.CoseKeyCbor
|
|
20
|
-
type ICoseKeyCbor = com.sphereon.crypto.cose.ICoseKeyCbor
|
|
21
|
-
type ToBeSignedCbor = com.sphereon.crypto.cose.ToBeSignedCbor
|
|
22
|
+
type CoseKeyCbor = mdocPkg.com.sphereon.crypto.cose.CoseKeyCbor
|
|
23
|
+
type ICoseKeyCbor = mdocPkg.com.sphereon.crypto.cose.ICoseKeyCbor
|
|
24
|
+
type ToBeSignedCbor = mdocPkg.com.sphereon.crypto.cose.ToBeSignedCbor
|
|
22
25
|
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
|
|
28
|
-
const KeyInfo = com.sphereon.crypto.KeyInfo
|
|
29
|
-
type X509VerificationProfile = com.sphereon.crypto.X509VerificationProfile
|
|
30
|
-
const DateTimeUtils = com.sphereon.kmp.DateTimeUtils
|
|
31
|
-
const decodeFrom = com.sphereon.kmp.decodeFrom
|
|
32
|
-
const encodeTo = com.sphereon.kmp.encodeTo
|
|
33
|
-
const Encoding = com.sphereon.kmp.Encoding
|
|
34
|
-
type LocalDateTimeKMP = com.sphereon.kmp.LocalDateTimeKMP
|
|
35
|
-
const SignatureAlgorithm = com.sphereon.crypto.generic.SignatureAlgorithm
|
|
36
|
-
const DefaultCallbacks = com.sphereon.crypto.DefaultCallbacks
|
|
26
|
+
type SignatureAlgorithm = mdocPkg.com.sphereon.crypto.generic.SignatureAlgorithm
|
|
27
|
+
type ICoseCryptoCallbackJS = mdocPkg.com.sphereon.crypto.ICoseCryptoCallbackJS
|
|
28
|
+
type IKey = mdocPkg.com.sphereon.crypto.IKey
|
|
29
|
+
type IX509ServiceJS = mdocPkg.com.sphereon.crypto.IX509ServiceJS
|
|
30
|
+
type Jwk = mdocPkg.com.sphereon.crypto.jose.Jwk
|
|
31
|
+
const KeyInfo = mdocPkg.com.sphereon.crypto.KeyInfo
|
|
32
|
+
type X509VerificationProfile = mdocPkg.com.sphereon.crypto.X509VerificationProfile
|
|
33
|
+
const DateTimeUtils = mdocPkg.com.sphereon.kmp.DateTimeUtils
|
|
34
|
+
const decodeFrom = mdocPkg.com.sphereon.kmp.decodeFrom
|
|
35
|
+
const encodeTo = mdocPkg.com.sphereon.kmp.encodeTo
|
|
36
|
+
const Encoding = mdocPkg.com.sphereon.kmp.Encoding
|
|
37
|
+
type LocalDateTimeKMP = mdocPkg.com.sphereon.kmp.LocalDateTimeKMP
|
|
38
|
+
const SignatureAlgorithm = mdocPkg.com.sphereon.crypto.generic.SignatureAlgorithm
|
|
39
|
+
const DefaultCallbacks = mdocPkg.com.sphereon.crypto.DefaultCallbacks
|
|
37
40
|
|
|
38
41
|
export class CoseCryptoService implements ICoseCryptoCallbackJS {
|
|
39
42
|
constructor(private context?: IRequiredContext) {}
|
|
@@ -54,7 +57,7 @@ export class CoseCryptoService implements ICoseCryptoCallbackJS {
|
|
|
54
57
|
return Promise.reject(Error('No key present in keyInfo. This implementation cannot sign without a key!'))
|
|
55
58
|
}
|
|
56
59
|
const resolvedKeyInfo = com.sphereon.crypto.ResolvedKeyInfo.Static.fromKeyInfo(keyInfo, key)
|
|
57
|
-
const jwkKeyInfo: com.sphereon.crypto.ResolvedKeyInfo<Jwk> = CoseJoseKeyMappingService.toResolvedJwkKeyInfo(resolvedKeyInfo)
|
|
60
|
+
const jwkKeyInfo: mdocPkg.com.sphereon.crypto.ResolvedKeyInfo<Jwk> = CoseJoseKeyMappingService.toResolvedJwkKeyInfo(resolvedKeyInfo)
|
|
58
61
|
|
|
59
62
|
const kid = jwkKeyInfo.kid ?? calculateJwkThumbprint({ jwk: jwkKeyInfo.key.toJsonDTO() }) ?? jwkKeyInfo.key.getKidAsString(true)
|
|
60
63
|
if (!kid) {
|
|
@@ -72,10 +75,10 @@ export class CoseCryptoService implements ICoseCryptoCallbackJS {
|
|
|
72
75
|
}
|
|
73
76
|
|
|
74
77
|
async verify1Async<CborType>(
|
|
75
|
-
input: com.sphereon.crypto.cose.CoseSign1Cbor<CborType>,
|
|
76
|
-
keyInfo: com.sphereon.crypto.IKeyInfo<ICoseKeyCbor>,
|
|
78
|
+
input: mdocPkg.com.sphereon.crypto.cose.CoseSign1Cbor<CborType>,
|
|
79
|
+
keyInfo: mdocPkg.com.sphereon.crypto.IKeyInfo<ICoseKeyCbor>,
|
|
77
80
|
requireX5Chain: Nullable<boolean>,
|
|
78
|
-
): Promise<com.sphereon.crypto.generic.IVerifySignatureResult<ICoseKeyCbor>> {
|
|
81
|
+
): Promise<mdocPkg.com.sphereon.crypto.generic.IVerifySignatureResult<ICoseKeyCbor>> {
|
|
79
82
|
const getCertAndKey = async (
|
|
80
83
|
x5c: Nullable<Array<string>>,
|
|
81
84
|
): Promise<{
|
|
@@ -154,12 +157,12 @@ export class CoseCryptoService implements ICoseCryptoCallbackJS {
|
|
|
154
157
|
error: !valid,
|
|
155
158
|
message: `Signature of '${issuerCert ? getSubjectDN(issuerCert).DN : kid}' was ${valid ? '' : 'in'}valid`,
|
|
156
159
|
keyInfo: issuerCoseKeyInfo,
|
|
157
|
-
} satisfies com.sphereon.crypto.generic.IVerifySignatureResult<ICoseKeyCbor>
|
|
160
|
+
} satisfies mdocPkg.com.sphereon.crypto.generic.IVerifySignatureResult<ICoseKeyCbor>
|
|
158
161
|
}
|
|
159
162
|
|
|
160
|
-
resolvePublicKeyAsync<KT extends com.sphereon.crypto.IKey>(
|
|
161
|
-
keyInfo: com.sphereon.crypto.IKeyInfo<KT>,
|
|
162
|
-
): Promise<com.sphereon.crypto.IResolvedKeyInfo<KT>> {
|
|
163
|
+
resolvePublicKeyAsync<KT extends mdocPkg.com.sphereon.crypto.IKey>(
|
|
164
|
+
keyInfo: mdocPkg.com.sphereon.crypto.IKeyInfo<KT>,
|
|
165
|
+
): Promise<mdocPkg.com.sphereon.crypto.IResolvedKeyInfo<KT>> {
|
|
163
166
|
if (keyInfo.key) {
|
|
164
167
|
return Promise.resolve(CoseJoseKeyMappingService.toResolvedKeyInfo(keyInfo, keyInfo.key))
|
|
165
168
|
}
|
|
@@ -210,7 +213,7 @@ export class X509CallbackService implements IX509ServiceJS {
|
|
|
210
213
|
trustedCerts: Nullable<string[]>,
|
|
211
214
|
verificationProfile?: X509VerificationProfile | undefined,
|
|
212
215
|
verificationTime?: Nullable<LocalDateTimeKMP>,
|
|
213
|
-
): Promise<com.sphereon.crypto.IX509VerificationResult<KeyType>> {
|
|
216
|
+
): Promise<mdocPkg.com.sphereon.crypto.IX509VerificationResult<KeyType>> {
|
|
214
217
|
const verificationAt = verificationTime ?? DateTimeUtils.Static.DEFAULT.dateTimeLocal()
|
|
215
218
|
let chain: Array<string | Uint8Array> = []
|
|
216
219
|
if (chainDER && chainDER.length > 0) {
|
|
@@ -236,7 +239,7 @@ export class X509CallbackService implements IX509ServiceJS {
|
|
|
236
239
|
message: result.message,
|
|
237
240
|
error: result.error,
|
|
238
241
|
verificationTime: verificationAt,
|
|
239
|
-
} satisfies com.sphereon.crypto.IX509VerificationResult<KeyType>
|
|
242
|
+
} satisfies mdocPkg.com.sphereon.crypto.IX509VerificationResult<KeyType>
|
|
240
243
|
}
|
|
241
244
|
|
|
242
245
|
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 {
|