You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
clarify, add context, or otherwise improve examples (#457)
* work on simple example in sec 6
* Simple Structured SD-JWT work
* work on Complex Structured SD-JWT
* SD-JWT-based Verifiable Credentials work
* Work on W3C Verifiable Credentials Data Model v2.0
* Try to better link the digests to the Disclosures in the respective text around examples
* Document History is part of the document too
* typo fix
* actually...
Copy file name to clipboardExpand all lines: draft-ietf-oauth-selective-disclosure-jwt.md
+30-21Lines changed: 30 additions & 21 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -716,32 +716,32 @@ lines in RFCs and for readability. JSON does not allow line breaks within string
716
716
717
717
## Issuance
718
718
719
-
The Issuer is using the following input JWT Claims Set:
719
+
The following data about the user comprises the input JWT Claims Set used by the Issuer:
720
720
721
721
<{{examples/simple/user_claims.json}}
722
722
723
-
The Issuer in this case made the following decisions:
723
+
In this example, the following decisions were made by the Issuer in constructing the SD-JWT:
724
724
725
725
* The `nationalities` array is always visible, but its contents are selectively disclosable.
726
-
* The `sub` element and essential verification data (`iss`, `iat`, `cnf`, etc.) are always visible.
726
+
* The `sub` element as well as essential verification data (`iss`, `exp`, `cnf`, etc.) are always visible.
727
727
* All other End-User claims are selectively disclosable.
728
-
* For `address`, the Issuer is using a flat structure, i.e., all of the claims
728
+
* For `address`, the Issuer is using a flat structure, i.e., all the claims
729
729
in the `address` claim can only be disclosed in full. Other options are
730
730
discussed in (#nested_data).
731
731
732
732
The following payload is used for the SD-JWT:
733
733
734
734
<{{examples/simple/sd_jwt_payload.json}}
735
735
736
-
The following Disclosures are created by the Issuer:
736
+
The respective Disclosures are created by the Issuer:
737
737
738
738
{{examples/simple/disclosures.md}}
739
739
740
-
The payload is then signed by the Issuer to create the following JWT:
740
+
The payload is then signed by the Issuer to create the following Issuer-signed JWT:
741
741
742
742
<{{examples/simple/sd_jwt_jws_part.txt}}
743
743
744
-
The following is the issued SD-JWT:
744
+
Adding the Disclosures produces the SD-JWT:
745
745
746
746
<{{examples/simple/sd_jwt_issuance.txt}}
747
747
@@ -763,6 +763,10 @@ If the Verifier did not require Key Binding, then the Holder could have
763
763
presented the SD-JWT with selected Disclosures directly, instead of encapsulating it in
764
764
an SD-JWT+KB.
765
765
766
+
After validation, the Verifier will have the following processed SD-JWT payload available for further handling:
767
+
768
+
<{{examples/simple/verified_contents.json}}
769
+
766
770
# Considerations on Nested Data in SD-JWTs {#nested_data}
767
771
768
772
Being JSON, an object in an SD-JWT payload MAY contain name/value pairs where the value is another object or objects MAY be elements in arrays. In SD-JWT, the Issuer decides for each claim individually, on each level of the JSON, whether the claim should be selectively disclosable or not. This choice can be made on each level independent from whether keys higher in the hierarchy are selectively disclosable.
@@ -788,7 +792,7 @@ The Issuer can decide to treat the `address` claim as a block that can either be
The Issuer would create the following Disclosure referenced by the one hash in the SD-JWT:
792
796
793
797
{{examples/address_only_flat/disclosures.md}}
794
798
@@ -1681,7 +1685,7 @@ Line breaks have been added for readability.
1681
1685
1682
1686
In this example, in contrast to (#main-example), the Issuer decided to create a structured object for the `address` claim, allowing to separately disclose individual members of the claim.
1683
1687
1684
-
The Issuer is using the following input JWT Claims Set:
1688
+
The following data about the user comprises the input JWT Claims Set used by the Issuer:
1685
1689
1686
1690
<{{examples/simple_structured/user_claims.json}}
1687
1691
@@ -1691,7 +1695,7 @@ The following payload is used for the SD-JWT:
After the validation, the Verifier will have the following data for further processing:
1736
+
The Verifier will have this processed SD-JWT payload available after validation:
1729
1737
1730
1738
<{{examples/complex_ekyc/verified_contents.json}}
1731
1739
@@ -1740,7 +1748,7 @@ a German citizen.
1740
1748
Key Binding is applied
1741
1749
using the Holder's public key passed in a `cnf` claim in the SD-JWT.
1742
1750
1743
-
The Issuer is using the following input JWT Claims Set:
1751
+
The following citizen data is the input JWT Claims Set:
1744
1752
1745
1753
<{{examples/arf-pid/user_claims.json}}
1746
1754
@@ -1752,19 +1760,19 @@ The following payload is used for the SD-JWT:
1752
1760
1753
1761
<{{examples/arf-pid/sd_jwt_payload.json}}
1754
1762
1755
-
The following Disclosures are created by the Issuer:
1763
+
The digests in the SD-JWT payload reference the following Disclosures:
1756
1764
1757
1765
{{examples/arf-pid/disclosures.md}}
1758
1766
1759
1767
The following is an example of an SD-JWT+KB that discloses only nationality and the fact that the person is over 18 years old:
1760
1768
1761
1769
<{{examples/arf-pid/sd_jwt_presentation.txt}}
1762
1770
1763
-
The following is the payload of a corresponding Key Binding JWT:
1771
+
This is the payload of the corresponding Key Binding JWT:
1764
1772
1765
1773
<{{examples/arf-pid/kb_jwt_payload.json}}
1766
1774
1767
-
After the validation, the Verifier will have the following data for further processing:
1775
+
After validation, the Verifier will have the following processed SD-JWT payload available for further handling:
1768
1776
1769
1777
<{{examples/arf-pid/verified_contents.json}}
1770
1778
@@ -1776,7 +1784,7 @@ could be used to express a W3C Verifiable Credentials Data Model v2.0 [@VC_DATA_
1776
1784
Key Binding is applied
1777
1785
using the Holder's public key passed in a `cnf` claim in the SD-JWT.
1778
1786
1779
-
The Issuer is using the following input JWT Claims Set:
1787
+
The following is the input JWT Claims Set:
1780
1788
1781
1789
<{{examples/jsonld/user_claims.json}}
1782
1790
@@ -1788,15 +1796,15 @@ The following payload is used for the SD-JWT:
1788
1796
1789
1797
<{{examples/jsonld/sd_jwt_payload.json}}
1790
1798
1791
-
The following Disclosures are created by the Issuer:
1799
+
The digests in the SD-JWT payload reference the following Disclosures:
1792
1800
1793
1801
{{examples/jsonld/disclosures.md}}
1794
1802
1795
-
The following is an example of an SD-JWT+KB that discloses only `type`, `medicinalProductName`, `atcCode` of the vaccine, `type` of the `recipient`, `type`, `order` and `dateOfVaccination`:
1803
+
This is an example of an SD-JWT+KB that discloses only `type`, `medicinalProductName`, `atcCode` of the vaccine, `type` of the `recipient`, `type`, `order` and `dateOfVaccination`:
1796
1804
1797
1805
<{{examples/jsonld/sd_jwt_presentation.txt}}
1798
1806
1799
-
After the validation, the Verifier will have the following data for further processing:
1807
+
After the validation, the Verifier will have the following processed SD-JWT payload available for further handling:
1800
1808
1801
1809
<{{examples/jsonld/verified_contents.json}}
1802
1810
@@ -1925,6 +1933,7 @@ data. The original JSON data is then used by the application. See
1925
1933
1926
1934
-12
1927
1935
1936
+
* Clarify, add context, or otherwise improve the examples
1928
1937
* Editorial and reference fixes
1929
1938
* Moved considerations around unlinkability to the top of the Privacy Considerations section
0 commit comments