+
Kotlin Multiplatform SD-JWT library
+
by walt.id
+
Create JSON Web Tokens (JWTs) that support Selective Disclosure
+
+
+
+
+
+
+
+
+
+
+## Getting Started
+
+* [Usage with Maven or Gradle (JVM)](#usage-with-maven-or-gradle-jvm)
+* [Usage with NPM/NodeJs (JavaScript)](#usage-with-npmnodejs-javascript)
+* [Sign SD-JWT tokens](#create-and-sign-an-sd-jwt-using-the-nimbusds-based-jwt-crypto-provider)
+* [Present SD-JWT tokens with selection of disclosed and undisclosed payload fields](#present-an-sd-jwt)
+* [Parse and verify SD-JWT tokens, resolving original payload with disclosed fields](#parse-and-verify-an-sd-jwt-using-the-nimbusds-based-jwt-crypto-provider)
+* [Integrate with your choice of framework or library, for cryptography and key management, on your platform](#integrate-with-custom-jwt-crypto-provider)
+
+### Further information
+
+Checkout the [documentation regarding SD-JWTs](https://docs.walt.id/v/ssikit/concepts/selective-disclosure), to find out more.
+
+## What is the SD-JWT library?
+
+This libary implements the **Selective Disclosure JWT (SD-JWT)**
+specification: [draft-ietf-oauth-selective-disclosure-jwt-04](https://datatracker.ietf.org/doc/draft-ietf-oauth-selective-disclosure-jwt/04/).
+
+### Features
+
+* **Create and sign** SD-JWT tokens
+ * Choose selectively disclosable payload fields (SD fields)
+ * Create digests for SD fields and insert into JWT body payload
+ * Create and append encoded disclosure strings for SD fields to JWT token
+ * Add random or fixed number of **decoy digests** on each nested object property
+* **Present** SD-JWT tokens
+ * Selection of fields to be disclosed
+ * Support for appending optional holder binding
+* Full support for **nested SD fields** and **recursive disclosures**
+* **Parse** SD-JWT tokens and restore original payload with disclosed fields
+* **Verify** SD-JWT token
+ * Signature verification
+ * Hash comparison and tamper check of the appended disclosures
+* Support for **integration** with various crypto libraries and frameworks, to perform the cryptographic operations and key management
+* **Multiplatform support**:
+ * Java/JVM
+ * JavaScript
+ * Native
+
+## Usage with Maven or Gradle (JVM)
+
+**Maven / Gradle repository**:
+
+`https://maven.walt.id/repository/waltid-ssi-kit/`
+
+**Maven**
+
+```xml
+[...]
+