Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

110 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mdoc verifier

Overview

This project is an mdoc/mDL (mobile driving license) verification compliant with ISO/IEC 18013-5:2021.

mdog

Included Packages

  • decoder: Provides decryption functionality for each protocol and parse to mdocResponse
    • apple_hpke: Decryption for Apple's Verify with Wallet API
    • android_hpke: Decryption for Android's Identity Credential API (Preview)
    • openid4vp: Decryption for OpenID4VP based Identity Credential API
  • session_transcript: Provides session transcript functionality for each protocol
    • apple: Session transcript for Apple's Verify with Wallet API
    • android: Session transcript for Android's Identity Credential API (Preview)
    • openid4vp: Session transcript for OpenID4VP based Identity Credential API
    • browser: Session transcript for browser's Identity Credential API
  • document: Define the element identifiers for each doctype and namespace.
  • internal: Contains internal packages
    • cryptoroot: Provides certificate management
    • server: Contains the code for the sample server
  • mdoc: Provides mdoc data model and verification functionality

How to use for Apple's Verify with Wallet API

Status of behavior check

owf wallet
(prevew)
owf wallet
(oid4vp)
Apple wallet
(sample data)
Apple wallet
(iOS simulator)
EUDI wallet
Interface for communicating with wallets Identity Credential API Identity Credential API Verify with Wallet API Verify with Wallet API OID4VP
Encryption HPKE No encryption HPKE HPKE JOSE
Reader authenticator - - Verify with the Marchant Key is managed by developer center.
(The sample data is fixed)
Verify with the Marchant Key is managed by developer center.
(iOS simulator returns mock data)
client_id_schema = x509_san_dns

(Create root certification and embeded in the wallet)
Verification of issuer certification ok ok Can be verified by trusting the certificate of the issuer attached to the sample. The mock data was broken. Unknown where issuer's certificate or root certificate is located.

Also, the certificate has expired.
Verification of mso ok ok ok ok ok
Verification of device signature ok ok ok The mock data was broken. ok
Check digest ok ok ok ok ok

Prerequisites

Identity Credentials API

Open wallet Foundation

Apple Wallet (client app)

EUDI Wallet - Android

cp ${this repository}/internal/cryptoroot/pem/rootCert.pem ${eudi-app-android-wallet-ui}/resporesources-logic/src/main/res/raw/eudi_pid_issuer_ut.pem
  • Build and install the app.

How to use sample server

  • Install ngrok and set up the authentication token:
$ ngrok config add-authtoken (token)

$ ngrok config edit
version: "2"
authtoken: (token)
tunnels:
  id-server:
    addr: 8080
    proto: http
    subdomain: (server-sub-domain)
  web-client:
    addr: 8081
    proto: http
    subdomain: (client-sub-domain)
  • Environment
export SERVER_DOMAIN="(server-sub-domain)"
export CLIENT_DOMAIN="(client-sub-domain)"
  • Launch ngrok on your laptop
make ngrok
  • Start the server
make run
  • access to the (client-sub-domain)

links

About

No description, website, or topics provided.

Resources

Stars

14 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages