inital thoughts from Christian and Paul
{
"alg" : ES256,
"kid" : 1 //pointing to https://example.org/.well-known/jwks#1
"typ": "statuslist+jwt", //MUST
}
.
{
"iss": "https://example.org/" //MUST
"iat": 1683560915, //MUST
"exp": 1686232115, //MAY -> this allows issuer to defined a TTL
// this part probably needs to change
"definition": { // optional: could be left out if pre-defined type
"state_bits": 2, //MUST
"state_definitions_uri":, //CONDITIONAL: uri to explanations
"state_definitions" { //CONDITIONAL: explanations inline
"0" : "VALID",
"1" : "SUSPENDED",
"2" : "REVOKED",
"3" : "UNDEFINED" //or absent
}
}
"encoded_status" : "H4sIAAAAAAAAA-3BMQEAAADCoPVPbQwfoAAAAAAAAAAAAAAAAAAAAIC3AYbSVKsAQAAA"
}
.
{
<signature>
}
The typ
header parameter of the Status List JWT MUST be present. The typ
value MUST use statuslist+jws
.
The following JWT claims [@!RFC7519] MUST be present in a Status List Credential expressed as a JWT:
iss
: REQUIRED. The issuer of the Status List JWT. The value of iss
MUST be a URI.iat
: REQUIRED. The time of issuance of the Status List JWT.exp
: OPTIONAL. The expiry time of the Status List JWT.encoded_status
: REQUIRED. Bitstring values that express the status of the digital credential. It is GZIP-compressed [@!RFC1952] and base64 encoded [@!RFC4648].Note: If the issuer makes use of exp
, it is RECOMMENDED to reissue a new status list before the exp
date is reached. (P added)
{
...
//[k: not needed]
"status_type": "status_list-jws" // do we need this or is resolving the status list and parsing the type from there fine?
// 42 = identifier for status list
// 1234 = identifier in status list (1234th entry)
"status_uri": "https://example.com/status_list/42#1234",
}
status
: REQUIRED. The information on how to read the status of the Credential. See TBD for more information.When both Holder and the Verifier is offline.
Do we want this..?
{
"typ": "statuslist+jwt-revoc2", // statuslist for revocation with 2 bits with predefined meaning
"iss": "https://example.org/"
"iat": 1683560915,
"exp": 1686232115,
"status" : "H4sIAAAAAAAAA-3BMQEAAADCoPVPbQwfoAAAAAAAAAAAAAAAAAAAAIC3AYbSVKsAQAAA"
}
I dislike the ex
{
"typ": "statuslist+jwt", // statuslist with included definition
"iss": "https://example.org/"
"iat": 1683560915,
"exp": 1686232115,
"def": {
"bits": 2,
"values": {
"0" : "VALID",
"1" : "SUSPENDED",
"2" : "REVOKED",
"3" : "UNDEFINED" //or absent
}
},
"status" : "H4sIAAAAAAAAA-3BMQEAAADCoPVPbQwfoAAAAAAAAAAAAAAAAAAAAIC3AYbSVKsAQAAA"
}
typ is for JOSE header (Paul)
Define common statuses:
Define common status lists:
Type definition for "revocation-list":
{
"bit_size": 1,
"values": {
"0" : "NOT REVOKED",
"1" : "REVOKED",
}
}`
Type definition for "revocation-suspension-list":
{
"bit_size": 1,
"values": {
"0" : "VALID",
"1" : "SUSPENDED",
"2" : "REVOKED",
"3" : "UNDEFINED", //or absent
}
}`
How to use well-defined status list types:
"sts_lst": {
"typ": "revocation-list",
"list": "H4sIAAAAAAAAA-3BMQEAAADCoPVPbQwfoAA......IC3AYbSVKsAQAAA"
}
How to define new types:
"sts_lst": {
"typ_def" : {
"bit_size": 2,
"values": {
"0" : "MY_FANCY_STATUS_1",
"1" : "REVOKED",
"2" : "REVOKED",
"3" : "UNDEFINED" //or absent
}
},
"list": "H4sIAAAAAAAAA-3BMQEAAADCoPVPbQwfoAA......IC3AYbSVKsAQAAA"
}
or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing