Skip to content

Commit f7e3b11

Browse files
authored
test: ubique test vector (#52)
1 parent ff41f06 commit f7e3b11

File tree

2 files changed

+44
-9
lines changed

2 files changed

+44
-9
lines changed

Diff for: src/__tests__/issuing/device-response.tests.ts

-9
Original file line numberDiff line numberDiff line change
@@ -182,15 +182,6 @@ describe('issuing a device response', () => {
182182
const readerEngagementBytes = randomFillSync(Buffer.alloc(32))
183183
const deviceEngagementBytes = randomFillSync(Buffer.alloc(32))
184184

185-
const getSessionTranscriptBytes = (rdrEngtBytes: Buffer, devEngtBytes: Buffer, eRdrKeyBytes: Buffer) =>
186-
cborEncode(
187-
DataItem.fromData([
188-
new DataItem({ buffer: devEngtBytes }),
189-
new DataItem({ buffer: eRdrKeyBytes }),
190-
rdrEngtBytes,
191-
])
192-
)
193-
194185
beforeAll(async () => {
195186
// Nothing more to do on the verifier side.
196187

Diff for: src/__tests__/ubique.tests.ts

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
import { X509Certificate } from '@peculiar/x509'
2+
import { describe, it } from 'vitest'
3+
import { DeviceResponse } from '../mdoc/model/device-response'
4+
import { Verifier } from '../mdoc/verifier'
5+
import { mdocContext } from './'
6+
7+
const ISSUER_CERTIFICATE = `-----BEGIN CERTIFICATE-----
8+
MIIBQTCB76ADAgECAiBtxZMzkeRG1H7HmLdQGvZQTeY3NmAVroE8U1glBaBFQzAK
9+
BggqhkjOPQQDAjAeMQ8wDQYDVQQDDAZJc3N1ZXIxCzAJBgNVBAYTAkNIMB4XDTI1
10+
MDEzMDEwNTYwNFoXDTI2MDEzMDEwNTYwNFowHzELMAkGA1UEBhMCQ0gxEDAOBgNV
11+
BAMMB1N1YmplY3QwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ2sWdrE5B3m+Xv
12+
09wUBShYmf4V1Rs44oJlotAN2fZKZ86AmgyRYKc1wDYyCFBSVQIDOTh1cvSC2aKk
13+
tb9aRVFMMAoGCCqGSM49BAMCA0EAcgjH/q6Sl4xjuAK3F+1ZxJjZT5iZzcILfFaj
14+
ndzUGIEt+r+NKUBudbinH5yO3/QhRCCZLuhOoOQPsmilkUjqmg==
15+
-----END CERTIFICATE-----`
16+
const DEVICE_RESPONSE =
17+
'o2d2ZXJzaW9uYzEuMGlkb2N1bWVudHOBo2dkb2NUeXBldW9yZy5pc28uMTgwMTMuNS4xLm1ETGxpc3N1ZXJTaWduZWSiamlzc3VlckF1dGiEQ6EBJqEYIVkBRTCCAUEwge-gAwIBAgIgbcWTM5HkRtR-x5i3UBr2UE3mNzZgFa6BPFNYJQWgRUMwCgYIKoZIzj0EAwIwHjEPMA0GA1UEAwwGSXNzdWVyMQswCQYDVQQGEwJDSDAeFw0yNTAxMzAxMDU2MDRaFw0yNjAxMzAxMDU2MDRaMB8xCzAJBgNVBAYTAkNIMRAwDgYDVQQDDAdTdWJqZWN0MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAENrFnaxOQd5vl79PcFAUoWJn-FdUbOOKCZaLQDdn2SmfOgJoMkWCnNcA2MghQUlUCAzk4dXL0gtmipLW_WkVRTDAKBggqhkjOPQQDAgNBAHIIx_6ukpeMY7gCtxftWcSY2U-Ymc3CC3xWo53c1BiBLfq_jSlAbnW4px-cjt_0IUQgmS7oTqDkD7JopZFI6ppZAaLYGFkBnaZndmVyc2lvbmMxLjBvZGlnZXN0QWxnb3JpdGhtZ1NIQS0yNTZsdmFsdWVEaWdlc3RzoXFvcmcuaXNvLjE4MDEzLjUuMaMAWCCoCXVh2f3jegnYqJkR-xxgCG2OERNxyJKlXYzjFaDYKgFYIE2tjrQwlw6cmuRAz-a0mHY_VUhjOHpHZidygQAIDHaFAlggXu4HpxuFI2LusYkE67HaztOsyNlPYiRrLA4U6Egmf1ZtZGV2aWNlS2V5SW5mb6FpZGV2aWNlS2V5pAECIAEhWCDEis7CW2GwJAkzQ_JAmVc3t7ChF8JIxPq5q0KwBQ0tYCJYIEFEpLJvRXCaTSim3oTRG-6S4tmzzdeWdkkNTntFFK_7Z2RvY1R5cGV1b3JnLmlzby4xODAxMy41LjEubURMbHZhbGlkaXR5SW5mb6Nmc2lnbmVkwHQyMDI1LTAxLTMwVDEwOjU2OjExWml2YWxpZEZyb23AdDIwMjUtMDEtMzBUMTA6NTY6MTFaanZhbGlkVW50aWzAdDIwMjUtMDItMTNUMTA6NTY6MTFaWEBV1hbSWcPuSXLUMWzJ8TLd7b29O2AZqCaacWm1f3DqIpjSCCXDKRGH3-msEL6RrPgY-pTjyvTivwGLM5FKJZHyam5hbWVTcGFjZXOhcW9yZy5pc28uMTgwMTMuNS4xgdgYWGWkaGRpZ2VzdElEAGZyYW5kb21YIM2DE-hZD3xZJG73iUVma9_thd-lSPDbuxSVC8Bym53ccWVsZW1lbnRJZGVudGlmaWVya2ZhbWlseV9uYW1lbGVsZW1lbnRWYWx1ZWVKb25lc2xkZXZpY2VTaWduZWSiam5hbWVTcGFjZXPYGEGgamRldmljZUF1dGihb2RldmljZVNpZ25hdHVyZYRDoQEmoPZYQEKMuH5fCSUyCfJRcae0UyQMh8s1gWPK4qsABDpDd2KUNobbHcR3AYWB-6V4s40UR5m159hhE12-aKa_GR8BPotmc3RhdHVzAA'
18+
19+
describe('Ubique mdoc implementation', () => {
20+
it('should verify DeviceResponse from Ubique', async () => {
21+
const verifierGeneratedNonce = 'abcdefg'
22+
const mdocGeneratedNonce = '123456'
23+
const clientId = 'Cq1anPb8vZU5j5C0d7hcsbuJLBpIawUJIDQRi2Ebwb4'
24+
const responseUri = 'http://localhost:4000/api/presentation_request/dc8999df-d6ea-4c84-9985-37a8b81a82ec/callback'
25+
const deviceResponse = Buffer.from(DEVICE_RESPONSE, 'base64url')
26+
27+
const verifier = new Verifier()
28+
await verifier.verifyDeviceResponse(
29+
{
30+
trustedCertificates: [new Uint8Array(new X509Certificate(ISSUER_CERTIFICATE).rawData)],
31+
encodedDeviceResponse: deviceResponse,
32+
encodedSessionTranscript: await DeviceResponse.calculateSessionTranscriptForOID4VP({
33+
context: mdocContext,
34+
clientId,
35+
responseUri,
36+
verifierGeneratedNonce,
37+
mdocGeneratedNonce,
38+
}),
39+
now: new Date('2025-02-01'),
40+
},
41+
mdocContext
42+
)
43+
})
44+
})

0 commit comments

Comments
 (0)