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.
Syncing