Skip to content

Commit 2556959

Browse files
authored
[INJIMOB-3687] - update documentation (#2175)
Signed-off-by: Swati Goel <meet2swati@gmail.com>
1 parent 549a3b0 commit 2556959

2 files changed

Lines changed: 28 additions & 20 deletions

File tree

docs/openid4vp-support.md

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@ requesting and presenting Verifiable Credentials.
3434

3535
```mermaid
3636
sequenceDiagram
37-
participant 🌐 Verifier
37+
participant Verifier as 🌐 Verifier
3838
participant Inji_Wallet as 📱Inji Wallet
39-
participant 🙋 User
39+
participant User as 🙋 User
4040
4141
Verifier->>User: 1. Display Authorization Request as QR Code
4242
User-->>Verifier: 2. Scan QR Code via Inji Wallet
@@ -63,7 +63,7 @@ The implementation of this feature involves the following steps:
6363

6464
- Below are the supported Client Id Scheme by the library:
6565

66-
- **pre-registered** : This client id scheme suggests that the verifier is already registered with the wallet and the trust is already established. The request must be signed when shared by reference.
66+
- **pre-registered** : This client id scheme suggests that the verifier is already registered with the wallet and the trust is already established. The request must be signed when shared by reference. The request can be signed or unsigned when shared by value.
6767

6868
- **redirect-uri**: When the Client Identifier Scheme is `redirect_uri`, it specifies that the client id is Verifier's Response URI . In this case, the Authorization Request must not be signed
6969

@@ -127,10 +127,11 @@ sequenceDiagram
127127
Lib->>VP: HTTP POST Request with:<br/>1. VP Token<br/>2. Presentation Submission<br/>3. State
128128
```
129129

130-
**Note:**
130+
**Note:**
131131
Holder binding support - The holder binding is a feature that allows the Verifier to ensure that the Verifiable Presentation is being presented by the same holder that holds the Verifiable Credentials.
132-
* for ldp_vc format
133-
* Supported for VCs signed with signature suite **_Ed25519Signature2020_**.
134-
* for vc+sd-jwt and dc+sd-jwt format
135-
* Via [cnf](https://www.ietf.org/archive/id/draft-ietf-oauth-sd-jwt-vc-10.html#section-3.2.2.2-3.4.2.1) claim and supported for `kid` only
136-
* Supported algorithms - **_ES256_**, **_Ed25519_**.
132+
133+
- for ldp_vc format
134+
- Supported for VCs signed with signature suite **_Ed25519Signature2020_**.
135+
- for vc+sd-jwt and dc+sd-jwt format
136+
- Via [cnf](https://www.ietf.org/archive/id/draft-ietf-oauth-sd-jwt-vc-10.html#section-3.2.2.2-3.4.2.1) claim and supported for `kid` only
137+
- Supported algorithms - **_ES256_**, **_Ed25519_**.

docs/revocation-support.md

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
This document explains how Inji Wallet determines whether a credential is valid, revoked, or in a pending/unknown state.
44

5-
Revocation is based on the [**Status List 2021**](https://www.w3.org/TR/vc-bitstring-status-list/) mechanism. The wallet currently supports only `statusPurpose = "revocation"`. Additionally, the wallet only supports status check of credentials in the `ldp_vc` format. For other formats status check is bypassed for now.
5+
Revocation is based on the [**Status List 2021**](https://www.w3.org/TR/vc-bitstring-status-list/) mechanism.
6+
The wallet currently supports only `statusPurpose = "revocation"`. Additionally, the wallet only supports status check
7+
of credentials in the `ldp_vc` format. For other formats status check is bypassed for now.
68

79
---
810

@@ -38,7 +40,7 @@ Revocation is based on the [**Status List 2021**](https://www.w3.org/TR/vc-bitst
3840
K --> L{Bit Value}
3941
4042
L -->|0| R1[VALID]
41-
L -->|>0| R2[REVOKED]
43+
L -->|1| R2[REVOKED]
4244
L -->|Error| R3[PENDING]
4345
4446
@@ -54,12 +56,14 @@ Revocation is based on the [**Status List 2021**](https://www.w3.org/TR/vc-bitst
5456

5557
## Step-By-Step Explanation
5658

57-
**The steps described below take place in the respective native modules of Android [VC verifier library](https://github.com/mosip/vc-verifier/tree/master/vc-verifier/kotlin) and iOS (embedded in iOS module within wallet)**
59+
**The steps described below take place in the respective native modules of Android [VC verifier library](https://github.com/mosip/vc-verifier/tree/master/vc-verifier/kotlin) and iOS (embedded in iOS module within wallet)**
5860

5961
### 1. VC Downloaded
62+
6063
As soon as the credential is downloaded in the wallet, the status checking process begins automatically.
6164

6265
### 2. Extract `credentialStatus` Entries
66+
6367
The wallet reads the `credentialStatus` field from the credential and filters entries where:
6468

6569
```
@@ -71,6 +75,7 @@ statusPurpose == "revocation"
7175
- If multiple entries exist, the wallet picks the one with matching purpose
7276

7377
### 3. Fetch Status List Credential
78+
7479
From the selected `credentialStatus` entry, the wallet extracts:
7580

7681
```js
@@ -95,30 +100,32 @@ The wallet performs comprehensive validation:
95100
- **Bit extraction** — computes the bit value at `statusListIndex`
96101
- **Returns** — final revocation status result
97102

98-
99103
### 5. Interpreting the Result
100104

101105
After computing the status bit from the encoded list:
102106

103-
| `statusValue` | Meaning | Wallet Final State |
104-
|---------------|---------|-------------------|
105-
| `0` | Credential is valid | **VALID** |
106-
| `>0` | Credential is revoked | **REVOKED** |
107-
| Exception / network error / malformed data | Could not determine status | **PENDING** |
107+
| `statusValue` | Meaning | Wallet Final State |
108+
| ------------------------------------------ | -------------------------- | ------------------ |
109+
| `0` | Credential is valid | **VALID** |
110+
| `1` | Credential is revoked | **REVOKED** |
111+
| Exception / network error / malformed data | Could not determine status | **PENDING** |
108112

109113
### 6. Final Wallet States
110114

111115
#### VALID ✓
116+
112117
- `statusValue = 0`
113118
- No errors during processing
114119
- Credential can be used normally
115120

116121
#### REVOKED ✗
117-
- `statusValue > 0`
122+
123+
- `statusValue = 1`
118124
- No errors during processing
119125
- Credential should not be used
120126

121127
#### PENDING ⏳
128+
122129
The credential status could not be determined due to:
123130

124131
- Network failure or timeout
@@ -137,7 +144,7 @@ The wallet UI displays this state as **"Status Pending"**.
137144

138145
- **Purpose support:** Only `revocation` is currently supported. Future expansion may include `suspension` or other purposes as defined in the Status List 2021 specification.
139146

140-
- **Multi-bit status:** Credentials with `statusSize > 1` are supported (0 = valid, >0 = revoked).
147+
- **Multi-bit status:** Credentials with `statusSize > 1` not supported.
141148

142149
- **iOS signature verification:** Full signature verification of the Status List VC will be added to the iOS library in a future update. Currently, this step is bypassed.
143150

0 commit comments

Comments
 (0)