Skip to content

Commit 8041023

Browse files
authored
Merge branch 'main' into c2bo/sd-jwt-example
2 parents da83e8c + 1482e02 commit 8041023

File tree

3 files changed

+39
-40
lines changed

3 files changed

+39
-40
lines changed

draft-ietf-oauth-status-list.md

Lines changed: 33 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -652,6 +652,7 @@ A malicious Issuer could bypass the privacy benefits of the herd privacy by gene
652652
Once the Relying Party receives the Referenced Token, this enables him to request the Status List to validate its status through the provided `uri` parameter and look up the corresponding `index`. However, the Relying Party may persistently store the `uri` and `index` of the Referenced Token to request the Status List again at a later time. By doing so regularly, the Relying Party may create a profile of the Referenced Token's validity status. This behaviour may be intended as a feature, e.g. for a KYC process that requires regular validity checks, but might also be abused in cases where this is not intended and unknown to the Holder, e.g. profiling the suspension of a driving license or checking the employment status of an employee credential.
653653

654654
This behaviour could be mitigated by:
655+
655656
- adding authorization rules to the Status List, see [](#security-authorization).
656657
- regular re-issuance of the Referenced Token, see [](#implementation-lifecycle).
657658

@@ -695,14 +696,14 @@ IANA "JSON Web Token Claims" registry {{IANA.JWT}} established by {{RFC7519}}.
695696
* Claim Name: `status`
696697
* Claim Description: Reference to a status or validity mechanism containing up-to-date status information on the JWT.
697698
* Change Controller: IETF
698-
* Specification Document(s): [](#status-claim) of this specification
699+
* Specification Document(s): [](#status-claim) of this specification
699700

700701
<br/>
701702

702703
* Claim Name: `status_list`
703-
* Claim Description: A status list containing up-to-date status information on multiple other JWTs encoded as a bitarray.
704+
* Claim Description: A status list containing up-to-date status information on multiple tokens.
704705
* Change Controller: IETF
705-
* Specification Document(s): [](#status-list-token-jwt) of this specification
706+
* Specification Document(s): [](#status-list-token-jwt) of this specification
706707

707708
<br/>
708709

@@ -737,9 +738,9 @@ Specification Document(s):
737738
### Initial Registry Contents
738739

739740
* Status Method Value: `status_list`
740-
* Status Method Description: A status list containing up-to-date status information on multiple other JWTs encoded as a bitarray.
741+
* Status Method Description: A status list containing up-to-date status information on multiple tokens.
741742
* Change Controller: IETF
742-
* Specification Document(s): [](#referenced-token-jwt) of this specification
743+
* Specification Document(s): [](#referenced-token-jwt) of this specification
743744

744745
## CBOR Web Token Claims Registration
745746

@@ -754,15 +755,15 @@ IANA "CBOR Web Token (CWT) Claims" registry {{IANA.CWT}} established by {{RFC839
754755
* Claim Key: TBD (requested assignment 65535)
755756
* Claim Description: Reference to a status or validity mechanism containing up-to-date status information on the CWT.
756757
* Change Controller: IETF
757-
* Specification Document(s): [](#status-claim) of this specification
758+
* Specification Document(s): [](#status-claim) of this specification
758759

759760
<br/>
760761

761762
* Claim Name: `status_list`
762763
* Claim Key: TBD (requested assignment 65533)
763-
* Claim Description: A status list containing up-to-date status information on multiple other CWTs encoded as a bitarray.
764+
* Claim Description: A status list containing up-to-date status information on multiple tokens.
764765
* Change Controller: IETF
765-
* Specification Document(s): [](#status-list-token-cwt) of this specification
766+
* Specification Document(s): [](#status-list-token-cwt) of this specification
766767

767768
<br/>
768769

@@ -797,9 +798,9 @@ Specification Document(s):
797798
### Initial Registry Contents
798799

799800
* Status Method Value: `status_list`
800-
* Status Method Description: A status list containing up-to-date status information on multiple other CWTs encoded as a bitarray.
801+
* Status Method Description: A status list containing up-to-date status information on multiple tokens.
801802
* Change Controller: IETF
802-
* Specification Document(s): [](#referenced-token-cwt) of this specification
803+
* Specification Document(s): [](#referenced-token-cwt) of this specification
803804

804805
## Media Type Registration
805806

@@ -813,15 +814,13 @@ To indicate that the content is an JSON-based Status List:
813814
* Subtype name: statuslist+json
814815
* Required parameters: n/a
815816
* Optional parameters: n/a
816-
* Encoding considerations: binary; A JSON-based Status List is a JSON Object.
817-
* Security considerations: See (#Security) of \[ this specification \]
817+
* Encoding considerations: See [](#status-list-json) of this specification
818+
* Security considerations: See [](#Security) of this specification
818819
* Interoperability considerations: n/a
819-
* Published specification: \[ this specification \]
820-
* Applications that use this media type: Applications using \[ this specification \] for updated status information of tokens
820+
* Published specification: this specification
821+
* Applications that use this media type: Applications using this specification for updated status information of tokens
821822
* Fragment identifier considerations: n/a
822-
* Additional information:
823-
* File extension(s): n/a
824-
* Macintosh file type code(s): n/a
823+
* Additional information: n/a
825824
* Person &amp; email address to contact for further information: Paul Bastian, paul.bastian@posteo.de
826825
* Intended usage: COMMON
827826
* Restrictions on usage: none
@@ -835,15 +834,13 @@ To indicate that the content is an JWT-based Status List:
835834
* Subtype name: statuslist+jwt
836835
* Required parameters: n/a
837836
* Optional parameters: n/a
838-
* Encoding considerations: binary; A JWT-based Status List is a JWT; JWT values are encoded as a series of base64url-encoded values (some of which may be the empty string) separated by period ('.') characters.
839-
* Security considerations: See (#Security) of \[ this specification \]
837+
* Encoding considerations: See [](#status-list-token-jwt) of this specification
838+
* Security considerations: See [](#Security) of this specification
840839
* Interoperability considerations: n/a
841-
* Published specification: \[ this specification \]
842-
* Applications that use this media type: Applications using \[ this specification \] for updated status information of tokens
840+
* Published specification: this specification
841+
* Applications that use this media type: Applications using this specification for updated status information of tokens
843842
* Fragment identifier considerations: n/a
844-
* Additional information:
845-
* File extension(s): n/a
846-
* Macintosh file type code(s): n/a
843+
* Additional information: n/a
847844
* Person &amp; email address to contact for further information: Paul Bastian, paul.bastian@posteo.de
848845
* Intended usage: COMMON
849846
* Restrictions on usage: none
@@ -857,15 +854,13 @@ To indicate that the content is an CBOR-based Status List:
857854
* Subtype name: statuslist+cbor
858855
* Required parameters: n/a
859856
* Optional parameters: n/a
860-
* Encoding considerations: binary; A CBOR-based Status List is a CBOR Object.
861-
* Security considerations: See (#Security) of \[ this specification \]
857+
* Encoding considerations: See [](#status-list-cbor) of this specification
858+
* Security considerations: See [](#Security) of this specification
862859
* Interoperability considerations: n/a
863-
* Published specification: \[ this specification \]
864-
* Applications that use this media type: Applications using \[ this specification \] for updated status information of tokens
860+
* Published specification: this specification
861+
* Applications that use this media type: Applications using this specification for updated status information of tokens
865862
* Fragment identifier considerations: n/a
866-
* Additional information:
867-
* File extension(s): n/a
868-
* Macintosh file type code(s): n/a
863+
* Additional information: n/a
869864
* Person &amp; email address to contact for further information: Paul Bastian, paul.bastian@posteo.de
870865
* Intended usage: COMMON
871866
* Restrictions on usage: none
@@ -879,15 +874,13 @@ To indicate that the content is an CWT-based Status List:
879874
* Subtype name: statuslist+cwt
880875
* Required parameters: n/a
881876
* Optional parameters: n/a
882-
* Encoding considerations: binary;
883-
* Security considerations: See (#Security) of \[ this specification \]
877+
* Encoding considerations: See [](#status-list-token-cwt) of this specification
878+
* Security considerations: See [](#Security) of this specification
884879
* Interoperability considerations: n/a
885-
* Published specification: \[ this specification \]
886-
* Applications that use this media type: Applications using \[ this specification \] for updated status information of tokens
880+
* Published specification: this specification
881+
* Applications that use this media type: Applications using this specification for updated status information of tokens
887882
* Fragment identifier considerations: n/a
888-
* Additional information:
889-
* File extension(s): n/a
890-
* Macintosh file type code(s): n/a
883+
* Additional information: n/a
891884
* Person &amp; email address to contact for further information: Paul Bastian, paul.bastian@posteo.de
892885
* Intended usage: COMMON
893886
* Restrictions on usage: none
@@ -923,6 +916,8 @@ for their valuable contributions, discussions and feedback to this specification
923916
-04
924917

925918
* add sd-jwt-vc example
919+
* fix CWT status_list map encoding
920+
* editorial fixes
926921
* add CORS considerations to the http endpoint
927922
* fix reference of Status List in CBOR format
928923
* added status_list CWT claim key assigned

src/main.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ def statusListEncoding1Bit():
6161

6262
def statusListEncoding1BitCBOR():
6363
status_list = exampleStatusList1Bit()
64-
encoded = status_list.encodeAsCBOR()
64+
encoded = status_list.encodeAsCBORRaw()
6565
hex_encoded = encoded.hex()
6666
text = "byte_array = [{}, {}] \nencoded:\n{}".format(
6767
hex(status_list.list[0]), hex(status_list.list[1]), util.printText(hex_encoded)
@@ -85,7 +85,7 @@ def statusListEncoding2Bit():
8585

8686
def statusListEncoding2BitCBOR():
8787
status_list = exampleStatusList2Bit()
88-
encoded = status_list.encodeAsCBOR()
88+
encoded = status_list.encodeAsCBORRaw()
8989
hex_encoded = encoded.hex()
9090
text = "byte_array = [{}, {}, {}] \nencoded:\n{}".format(
9191
hex(status_list.list[0]),

src/status_list.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,10 @@ def encodeAsCBOR(self) -> Dict:
4343
"bits": self.bits,
4444
"lst": encoded_list,
4545
}
46+
return object
47+
48+
def encodeAsCBORRaw(self) -> Dict:
49+
object = self.encodeAsCBOR()
4650
return dumps(object)
4751

4852
def decode(self, input: str):

0 commit comments

Comments
 (0)