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
  • Specifications and Test Suites
  • Cryptography Backends

Was this helpful?

  1. Verifiable Digital Credentials
  2. DIDKit

Specifications and Dependencies

PreviousRuntime ConfigurationNextQuickstart

Last updated 7 months ago

Was this helpful?

At Spruce, we consider it essential to be very explicit and up-front about our definition of standards compliance, our evidence to back that up, and the open-source dependencies and libraries which power our security and trust guarantees. To this end, we maintain both lists here, and think that both are as important as our changelogs.

Specifications and Test Suites

To demonstrate our commitment to standards and interoperability, we have ensured that our implementation conforms to the following specifications and aspire to pass their test suites where applicable:

  • (passing, )

  • (test suite pending CR, syntax support)

  • VC HTTP API Test Suite v0.0.1 (passing, )

  • RDF Dataset Normalization Test Cases (passing)

  • (440/450 passing)

  • IETF: , , , ,

Cryptography Backends

We strongly prefer tried and tested implementations of cryptographic functions and believe that it's most responsible to list them out in a forthcoming manner to any potential users.

DIDKit is engineered so that the target platform and compile-time flags may be used to specify different cryptographic backends, such as to leverage native hardware capabilities, cross-compile to e.g. WASM, or to give advanced users the option to only use libraries that they trust.

  • : default for hashes, ed25519 functions, RSA, and randomness. The ed25519 functions here cannot currently compile to WASM.

  • : optionally for RSA.

  • : optionally for ed25519. Compiles to WASM.

  • : optionally for randomness.

  • : optionally for sha256 hashes.

  • (, , or ; via ): optionally for HTTPS.

If you have constructive opinions about the set of cryptographic libraries that should be supported, please .

⚙️
W3C Verifiable Credentials
Test Suite
instructions
W3C Decentralized Identifiers
instructions
JSON-LD to RDF Transformation Test Cases
Linked Data Proofs 1.0
DID Resolution
JWT
JWS
JWK
JWA
CFRG ECDH and Signatures in JOSE
ring, v0.16
rsa, v0.3
ed25519-dalek, v1
rand, v0.7
sha2, v0.9
native-tls
openssl
security_framework
schannel
hyper-tls
open an issue