SpruceKit
SpruceID
  • 🌲SpruceKit Introduction
    • Decentralized Identity Overview
    • Glossary
  • ⚡Quickstart
  • SpruceKit Mobile
    • SpruceKit Showcase App
      • Installation
      • Getting Started
      • Issue a Showcase Credential
      • Present a Showcase Credential
    • SpruceKit Mobile SDK
      • Introduction
      • Core Components
        • StorageManager
        • KeyManager
        • CredentialPack
        • Card
        • IsoMdlPresentation
        • mDocReader/IsomDLReader
        • Document Scanner
      • SpruceKit iOS SDK
        • Installation
        • Build a Wallet
          • Accept a W3C VC
          • Present a W3C VC
          • Present mDL in-person/offline
          • Present an mDL over the internet
        • Build a Verifier
          • Verify a W3C VC
          • Verify an mDL in-person/offline
          • Verify an mDL over the internet
      • SpruceKit Android SDK
        • Installation
        • Build a Wallet
          • Accept a W3C VC
          • Present a W3C VC
          • Present an mDL in-person/offline
          • Present an mDL over the internet
        • Build a Verifier
          • Verify a W3C VC
          • Verify an mDL in-person/offline
          • Verify an mDL over the internet
  • Verifiable Digital Credentials
    • ⚙️DIDKit
      • Installation
      • Core Concepts
      • DID Methods
      • Runtime Configuration
      • Specifications and Dependencies
      • Quickstart
      • DIDKit Packages
        • Command Line Interface
        • HTTP Server
        • Rust Crate
        • C Interface
        • Java and Android
        • Python
        • Javascript
      • DIDKit Examples
        • Core Functions (CLI)
        • Core Functions (HTTP)
        • did-web in minutes
        • Batch Generation & Verification
    • 🪪ISO mDL
      • Quickstart
      • Core Concepts
      • User Guide
  • Schema Definition Language
    • 🔗TreeLDR
      • TreeLDR Quickstart
        • First Schema
        • Compilation into JSON Schema
        • Compilation into JSON-LD Context
        • Writing a Layout
        • Simple Rust Integration
      • Types
        • Literal Types
      • Layouts
        • Primitive Layouts
        • Literal Layouts
        • Enumeration
        • Array Layout
        • References
      • Compiling
        • Schema Definition Formats
          • JSON Schema
          • JSON-LD Context
          • Resource Description Framework (RDF)
        • Programming Languages
          • Compiling to Rust
      • RDF Vocabulary
      • 💡TreeLDR Basics
        • Types and Layouts
        • Properties
        • Syntax
  • Witness for Credential Claims
    • 🔭Rebase
      • Core Library
      • Rust Client/Witness SDK
      • WASM Client SDK
      • Simple "Basic Post" Schema
      • DNS Witness Flow Schema
  • References
    • Contributing
    • Code of Conduct
Powered by GitBook
On this page
  • Devices & Readers
  • An Example Flow

Was this helpful?

  1. Verifiable Digital Credentials
  2. ISO mDL

Core Concepts

Core concepts for using the Rust ISO mDL library.

PreviousQuickstartNextUser Guide

Last updated 5 months ago

Was this helpful?

Devices & Readers

In the context of ISO 18013-5, a "Device" is typically the mDL holder's smartphone or other mobile device. The device stores the digital version of the driver's license (the mDL). The device runs an mDL application, such as one using Spruce's isomdl library. The device protects the mDL data and the user controls how it is shared.

A "Reader" represents the equipment used by a verifying party to request and read information from an mDL. It could be a dedicated device or software running on a smartphone or tablet. Readers are used by entities that need to verify the mDL, such as law enforcement, age-restricted venues, or other service providers.

Once the Device has initialized and established a new secure engagement with the Reader, the reader requests the Device to share mDL data and verifies its authenticity and integrity.

In the context of ISO 18013-5, a "Device" refers to the smartphone or mobile device of the mDL (mobile driver's license) holder. This device stores the digital version of the driver's license and runs an mDL application, such as one built using Spruce's isomdl library. The device is responsible for protecting the mDL data and managing how and when it is shared.

A "Reader" is the equipment used by a verifying party to request and access information from an mDL. This can be either a dedicated device or software running on a smartphone or tablet. Readers are used by organizations that need to verify the mDL, such as law enforcement, age-restricted venues, or service providers.

After the Device has initialized and established a secure connection with the Reader, the Reader starts the process of retrieving the data and verifying the authenticity and integrity of the mDL information. The Reader requests specific data elements from the Device, and the Device, based on the user's consent and its security policies, provides the requested information.

This exchange is secured using cryptographic protocols outlined in the standard.

An Example Flow

The following sequence diagram illustrates the process of the Device initializing and establishing a session with a Reader to request information from the mDL, such as whether the user is over the age of 21.

In the next section we'll walk through how to implement this process using the Spruce isomdl Rust library.

🪪