You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
174 lines
7.0 KiB
174 lines
7.0 KiB
{
|
|
"spec": "0.16",
|
|
"description": "Canonical dk1_ strings and rejected encodings (spec §18, §19, §66), generated by the reference implementation.",
|
|
"vectors": [
|
|
{
|
|
"name": "round 1",
|
|
"network": "datekeys:quicknet:v1",
|
|
"round": 1,
|
|
"canonical_json": "{\"version\":1,\"network\":\"datekeys:quicknet:v1\",\"round\":1}",
|
|
"base64url": "eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MX0",
|
|
"dk1": "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MX0"
|
|
},
|
|
{
|
|
"name": "round 1000",
|
|
"network": "datekeys:quicknet:v1",
|
|
"round": 1000,
|
|
"canonical_json": "{\"version\":1,\"network\":\"datekeys:quicknet:v1\",\"round\":1000}",
|
|
"base64url": "eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0",
|
|
"dk1": "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0"
|
|
},
|
|
{
|
|
"name": "normative 2030-01-01 round",
|
|
"network": "datekeys:quicknet:v1",
|
|
"round": 66884212,
|
|
"canonical_json": "{\"version\":1,\"network\":\"datekeys:quicknet:v1\",\"round\":66884212}",
|
|
"base64url": "eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6NjY4ODQyMTJ9",
|
|
"dk1": "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6NjY4ODQyMTJ9"
|
|
},
|
|
{
|
|
"name": "last Quicknet round",
|
|
"network": "datekeys:quicknet:v1",
|
|
"round": 83903165811,
|
|
"canonical_json": "{\"version\":1,\"network\":\"datekeys:quicknet:v1\",\"round\":83903165811}",
|
|
"base64url": "eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6ODM5MDMxNjU4MTF9",
|
|
"dk1": "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6ODM5MDMxNjU4MTF9"
|
|
},
|
|
{
|
|
"name": "whitespace in JSON",
|
|
"input": "dk1_eyJ2ZXJzaW9uIjogMSwgIm5ldHdvcmsiOiAiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCAicm91bmQiOiA2Njg4NDIxMn0",
|
|
"error": "ERR_DATEKEY_NON_CANONICAL"
|
|
},
|
|
{
|
|
"name": "keys reordered",
|
|
"input": "dk1_eyJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJ2ZXJzaW9uIjoxLCJyb3VuZCI6NjY4ODQyMTJ9",
|
|
"error": "ERR_DATEKEY_NON_CANONICAL"
|
|
},
|
|
{
|
|
"name": "trailing whitespace",
|
|
"input": "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6NjY4ODQyMTJ9Cg",
|
|
"error": "ERR_DATEKEY_NON_CANONICAL"
|
|
},
|
|
{
|
|
"name": "exponent notation",
|
|
"input": "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6Ni42ODg0MjEyZTd9",
|
|
"error": "ERR_DATEKEY_NON_CANONICAL"
|
|
},
|
|
{
|
|
"name": "fraction notation",
|
|
"input": "dk1_eyJ2ZXJzaW9uIjoxLjAsIm5ldHdvcmsiOiJkYXRla2V5czpxdWlja25ldDp2MSIsInJvdW5kIjo2Njg4NDIxMn0",
|
|
"error": "ERR_DATEKEY_NON_CANONICAL"
|
|
},
|
|
{
|
|
"name": "escaped character",
|
|
"input": "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXNcdTAwM2FxdWlja25ldDp2MSIsInJvdW5kIjo2Njg4NDIxMn0",
|
|
"error": "ERR_DATEKEY_NON_CANONICAL"
|
|
},
|
|
{
|
|
"name": "duplicate key",
|
|
"input": "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MSwicm91bmQiOjY2ODg0MjEyfQ",
|
|
"error": "ERR_DATEKEY_NON_CANONICAL"
|
|
},
|
|
{
|
|
"name": "padded Base64URL",
|
|
"input": "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0=",
|
|
"error": "ERR_DATEKEY_NON_CANONICAL"
|
|
},
|
|
{
|
|
"name": "non-zero trailing bits",
|
|
"input": "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH1",
|
|
"error": "ERR_DATEKEY_NON_CANONICAL"
|
|
},
|
|
{
|
|
"name": "extra field",
|
|
"input": "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6NjY4ODQyMTIsInB1YmxpY19rZXkiOiIwMCJ9",
|
|
"error": "ERR_DATEKEY_INVALID"
|
|
},
|
|
{
|
|
"name": "missing field",
|
|
"input": "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEifQ",
|
|
"error": "ERR_DATEKEY_INVALID"
|
|
},
|
|
{
|
|
"name": "version 2",
|
|
"input": "dk1_eyJ2ZXJzaW9uIjoyLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6NjY4ODQyMTJ9",
|
|
"error": "ERR_DATEKEY_INVALID"
|
|
},
|
|
{
|
|
"name": "round 0",
|
|
"input": "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MH0",
|
|
"error": "ERR_DATEKEY_INVALID"
|
|
},
|
|
{
|
|
"name": "negative round",
|
|
"input": "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6LTF9",
|
|
"error": "ERR_DATEKEY_INVALID"
|
|
},
|
|
{
|
|
"name": "fractional round",
|
|
"input": "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MS41fQ",
|
|
"error": "ERR_DATEKEY_INVALID"
|
|
},
|
|
{
|
|
"name": "round above 2^53-1",
|
|
"input": "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6OTAwNzE5OTI1NDc0MDk5Mn0",
|
|
"error": "ERR_DATEKEY_INVALID"
|
|
},
|
|
{
|
|
"name": "round as string",
|
|
"input": "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6IjY2ODg0MjEyIn0",
|
|
"error": "ERR_DATEKEY_INVALID"
|
|
},
|
|
{
|
|
"name": "uppercase network",
|
|
"input": "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiREFURUtFWVM6UVVJQ0tORVQ6VjEiLCJyb3VuZCI6NjY4ODQyMTJ9",
|
|
"error": "ERR_DATEKEY_INVALID"
|
|
},
|
|
{
|
|
"name": "trailing data",
|
|
"input": "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6NjY4ODQyMTJ9eA",
|
|
"error": "ERR_DATEKEY_INVALID"
|
|
},
|
|
{
|
|
"name": "byte order mark",
|
|
"input": "dk1_77u_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6NjY4ODQyMTJ9",
|
|
"error": "ERR_DATEKEY_INVALID"
|
|
},
|
|
{
|
|
"name": "not Base64",
|
|
"input": "dk1_!!!",
|
|
"error": "ERR_DATEKEY_INVALID"
|
|
},
|
|
{
|
|
"name": "missing prefix",
|
|
"input": "eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6NjY4ODQyMTJ9",
|
|
"error": "ERR_DATEKEY_INVALID"
|
|
},
|
|
{
|
|
"name": "uppercase prefix",
|
|
"input": "DK1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6NjY4ODQyMTJ9",
|
|
"error": "ERR_DATEKEY_INVALID"
|
|
},
|
|
{
|
|
"name": "line feed inside the Base64",
|
|
"input": "dk1_eyJ2ZXJz\naW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6NjY4ODQyMTJ9",
|
|
"error": "ERR_DATEKEY_INVALID"
|
|
},
|
|
{
|
|
"name": "carriage return and line feed after the Base64",
|
|
"input": "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6NjY4ODQyMTJ9\r\n",
|
|
"error": "ERR_DATEKEY_INVALID"
|
|
},
|
|
{
|
|
"name": "version 1.0000000000000001: its exact value, not a double",
|
|
"input": "dk1_eyJ2ZXJzaW9uIjoxLjAwMDAwMDAwMDAwMDAwMDEsIm5ldHdvcmsiOiJkYXRla2V5czpxdWlja25ldDp2MSIsInJvdW5kIjo2Njg4NDIxMn0",
|
|
"error": "ERR_DATEKEY_INVALID"
|
|
},
|
|
{
|
|
"name": "invalid UTF-8 in a member a repeated name overwrites",
|
|
"input": "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoi_yIsIm5ldHdvcmsiOiJkYXRla2V5czpxdWlja25ldDp2MSIsInJvdW5kIjo2Njg4NDIxMn0",
|
|
"error": "ERR_DATEKEY_INVALID"
|
|
}
|
|
]
|
|
}
|