{ "spec": "0.14", "description": "The release object, the content of a .dkr file (spec v0.15, §47.1), and drand's JSON as the input of the caller, each checked against the pinned Quicknet profile and the round of a DateKey as step 10 of spec §63 checks a release that the caller supplies; and the lookups of a local release archive (spec v0.15, §50). See testdata/README.md.", "profile": "datekeys:quicknet:v1", "objects": [ { "name": "round 1000", "encoding": "a50070646174656b6579732d72656c65617365010102582052db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971031903e8045830b44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e39", "round": 1000, "release": { "round": 1000, "signature": "b44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e39", "chain_hash": "52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971" }, "result": "ok" }, { "name": "round 1001", "encoding": "a50070646174656b6579732d72656c65617365010102582052db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971031903e9045830b33bf3667cbd5a82de3a24b4e0e9fe5513cc1a0e840368c6e31f5fcfa79bea03f73896b25883abf2853d10337fb8fa41", "round": 1001, "release": { "round": 1001, "signature": "b33bf3667cbd5a82de3a24b4e0e9fe5513cc1a0e840368c6e31f5fcfa79bea03f73896b25883abf2853d10337fb8fa41", "chain_hash": "52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971" }, "result": "ok" }, { "name": "round 1004", "encoding": "a50070646174656b6579732d72656c65617365010102582052db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971031903ec045830a40658b820c0f8c10207524179a2031ba9537688a0d04e4851b58026be9a341fee3b96fb48ffad28483d84b40a5864aa", "round": 1004, "release": { "round": 1004, "signature": "a40658b820c0f8c10207524179a2031ba9537688a0d04e4851b58026be9a341fee3b96fb48ffad28483d84b40a5864aa", "chain_hash": "52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971" }, "result": "ok" }, { "name": "round 2000", "encoding": "a50070646174656b6579732d72656c65617365010102582052db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971031907d0045830b6cb8f482a0b15d45936a4c4ea08e98a087e71787caee3f4d07a8a9843b1bc5423c6b3c22f446488b3137eaca799c77e", "round": 2000, "release": { "round": 2000, "signature": "b6cb8f482a0b15d45936a4c4ea08e98a087e71787caee3f4d07a8a9843b1bc5423c6b3c22f446488b3137eaca799c77e", "chain_hash": "52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971" }, "result": "ok" }, { "name": "no byte", "round": 1000, "result": "ERR_NON_CANONICAL_CBOR", "text": "provider: release object of 0 bytes, outside 1..1024: ERR_NON_CANONICAL_CBOR" }, { "name": "1025 bytes: the object of round 1000 followed by zeros", "encoding": "a50070646174656b6579732d72656c65617365010102582052db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971031903e8045830b44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e390000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "round": 1000, "result": "ERR_NON_CANONICAL_CBOR", "text": "provider: release object of 1025 bytes, outside 1..1024: ERR_NON_CANONICAL_CBOR" }, { "name": "1025 bytes of an object of version 2: the size first", "encoding": "a20070646174656b6579732d72656c6561736501020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "round": 1000, "result": "ERR_NON_CANONICAL_CBOR", "text": "provider: release object of 1025 bytes, outside 1..1024: ERR_NON_CANONICAL_CBOR" }, { "name": "type tag of the Provider Profile, version 2", "encoding": "a5007819646174656b6579732d70726f76696465722d70726f66696c65010202582052db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971031903e8045830b44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e39", "round": 1000, "result": "ERR_NON_CANONICAL_CBOR", "text": "provider: release object: codec: type \"datekeys-provider-profile\", want \"datekeys-release\": ERR_NON_CANONICAL_CBOR" }, { "name": "type tag in upper case", "encoding": "a50070444154454b4559532d52454c45415345010102582052db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971031903e8045830b44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e39", "round": 1000, "result": "ERR_NON_CANONICAL_CBOR", "text": "provider: release object: codec: type \"DATEKEYS-RELEASE\", want \"datekeys-release\": ERR_NON_CANONICAL_CBOR" }, { "name": "version 2", "encoding": "a50070646174656b6579732d72656c65617365010202582052db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971031903e8045830b44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e39", "round": 1000, "result": "ERR_UNSUPPORTED_VERSION", "text": "provider: release object: codec: datekeys-release schema version 2, want 1: ERR_UNSUPPORTED_VERSION" }, { "name": "version 2, an unknown key and another chain", "encoding": "a60070646174656b6579732d72656c65617365010202582052db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e970031903e8045830b44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e390500", "round": 1000, "result": "ERR_UNSUPPORTED_VERSION", "text": "provider: release object: codec: datekeys-release schema version 2, want 1: ERR_UNSUPPORTED_VERSION" }, { "name": "version 0", "encoding": "a50070646174656b6579732d72656c65617365010002582052db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971031903e8045830b44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e39", "round": 1000, "result": "ERR_UNSUPPORTED_VERSION", "text": "provider: release object: codec: datekeys-release schema version 0, want 1: ERR_UNSUPPORTED_VERSION" }, { "name": "keys 0 and 1 swapped", "encoding": "a501010070646174656b6579732d72656c6561736502582052db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971031903e8045830b44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e39", "round": 1000, "result": "ERR_NON_CANONICAL_CBOR", "text": "provider: release object: codec: offset 2: map key 1 where key 0 was expected: ERR_NON_CANONICAL_CBOR" }, { "name": "a byte after the object", "encoding": "a50070646174656b6579732d72656c65617365010102582052db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971031903e8045830b44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e3900", "round": 1000, "result": "ERR_NON_CANONICAL_CBOR", "text": "provider: release object: codec: offset 111: 1 trailing bytes: ERR_NON_CANONICAL_CBOR" }, { "name": "without the signature", "encoding": "a40070646174656b6579732d72656c65617365010102582052db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971031903e8", "round": 1000, "result": "ERR_NON_CANONICAL_CBOR", "text": "provider: release object: 4 keys, want all 5: ERR_NON_CANONICAL_CBOR" }, { "name": "a key 5", "encoding": "a60070646174656b6579732d72656c65617365010102582052db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971031903e8045830b44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e390500", "round": 1000, "result": "ERR_NON_CANONICAL_CBOR", "text": "provider: release object: codec: offset 1: map of 6 entries, at most 5: ERR_NON_CANONICAL_CBOR" }, { "name": "chain hash of 31 bytes", "encoding": "a50070646174656b6579732d72656c65617365010102581f52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e9031903e8045830b44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e39", "round": 1000, "result": "ERR_NON_CANONICAL_CBOR", "text": "provider: release object: key 2: codec: offset 24: a byte string of 31 bytes outside 32..32: ERR_NON_CANONICAL_CBOR" }, { "name": "chain hash as text", "encoding": "a50070646174656b6579732d72656c65617365010102784035326462396261373065306363306636656166373830336464303734343761316635343737373335666433663636313739326261393436303063383465393731031903e8045830b44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e39", "round": 1000, "result": "ERR_NON_CANONICAL_CBOR", "text": "provider: release object: key 2: codec: offset 22: a text string where a byte string was expected: ERR_NON_CANONICAL_CBOR" }, { "name": "round 0", "encoding": "a50070646174656b6579732d72656c65617365010102582052db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e9710300045830b44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e39", "round": 1000, "result": "ERR_NON_CANONICAL_CBOR", "text": "provider: release object: key 3: round 0: ERR_NON_CANONICAL_CBOR" }, { "name": "round 2^53", "encoding": "a50070646174656b6579732d72656c65617365010102582052db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971031b0020000000000000045830b44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e39", "round": 1000, "result": "ERR_NON_CANONICAL_CBOR", "text": "provider: release object: key 3: codec: offset 66: unsigned integer 9007199254740992 above 9007199254740991: ERR_NON_CANONICAL_CBOR" }, { "name": "round 1000 in four bytes", "encoding": "a50070646174656b6579732d72656c65617365010102582052db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971031a000003e8045830b44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e39", "round": 1000, "result": "ERR_NON_CANONICAL_CBOR", "text": "provider: release object: key 3: codec: offset 57: 1000 is not in its shortest form (initial byte 0x1a): ERR_NON_CANONICAL_CBOR" }, { "name": "signature of no byte", "encoding": "a50070646174656b6579732d72656c65617365010102582052db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971031903e80440", "round": 1000, "result": "ERR_NON_CANONICAL_CBOR", "text": "provider: release object: key 4: codec: offset 62: a byte string of 0 bytes outside 1..96: ERR_NON_CANONICAL_CBOR" }, { "name": "signature of 97 bytes", "encoding": "a50070646174656b6579732d72656c65617365010102582052db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971031903e8045861b44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e39b44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e3900", "round": 1000, "result": "ERR_NON_CANONICAL_CBOR", "text": "provider: release object: key 4: codec: offset 63: a byte string of 97 bytes outside 1..96: ERR_NON_CANONICAL_CBOR" }, { "name": "map of indefinite length", "encoding": "bf0070646174656b6579732d72656c65617365010102582052db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971031903e8045830b44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e39ff", "round": 1000, "result": "ERR_NON_CANONICAL_CBOR", "text": "provider: release object: codec: offset 0: indefinite length (initial byte 0xbf): ERR_NON_CANONICAL_CBOR" }, { "name": "another chain", "encoding": "a50070646174656b6579732d72656c65617365010102582052db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e970031903e8045830b44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e39", "round": 1000, "release": { "round": 1000, "signature": "b44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e39", "chain_hash": "52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e970" }, "result": "ERR_PROFILE_MISMATCH", "text": "provider: release of chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e970, the pinned profile datekeys:quicknet:v1 is chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971: ERR_PROFILE_MISMATCH" }, { "name": "another chain, another round and a signature of no point", "encoding": "a50070646174656b6579732d72656c65617365010102582052db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e970031903e9045830000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "round": 1000, "release": { "round": 1001, "signature": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "chain_hash": "52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e970" }, "result": "ERR_PROFILE_MISMATCH", "text": "provider: release of chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e970, the pinned profile datekeys:quicknet:v1 is chain 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971: ERR_PROFILE_MISMATCH" }, { "name": "round 1001 for a DateKey of round 1000", "encoding": "a50070646174656b6579732d72656c65617365010102582052db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971031903e9045830b33bf3667cbd5a82de3a24b4e0e9fe5513cc1a0e840368c6e31f5fcfa79bea03f73896b25883abf2853d10337fb8fa41", "round": 1000, "release": { "round": 1001, "signature": "b33bf3667cbd5a82de3a24b4e0e9fe5513cc1a0e840368c6e31f5fcfa79bea03f73896b25883abf2853d10337fb8fa41", "chain_hash": "52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971" }, "result": "ERR_ROUND_MISMATCH", "text": "provider: release for round 1001, expected 1000: ERR_ROUND_MISMATCH" }, { "name": "another round and a signature of 47 bytes", "encoding": "a50070646174656b6579732d72656c65617365010102582052db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971031903e904582fb33bf3667cbd5a82de3a24b4e0e9fe5513cc1a0e840368c6e31f5fcfa79bea03f73896b25883abf2853d10337fb8fa", "round": 1000, "release": { "round": 1001, "signature": "b33bf3667cbd5a82de3a24b4e0e9fe5513cc1a0e840368c6e31f5fcfa79bea03f73896b25883abf2853d10337fb8fa", "chain_hash": "52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971" }, "result": "ERR_ROUND_MISMATCH", "text": "provider: release for round 1001, expected 1000: ERR_ROUND_MISMATCH" }, { "name": "the signature of round 1001 as round 1000", "encoding": "a50070646174656b6579732d72656c65617365010102582052db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971031903e8045830b33bf3667cbd5a82de3a24b4e0e9fe5513cc1a0e840368c6e31f5fcfa79bea03f73896b25883abf2853d10337fb8fa41", "round": 1000, "release": { "round": 1000, "signature": "b33bf3667cbd5a82de3a24b4e0e9fe5513cc1a0e840368c6e31f5fcfa79bea03f73896b25883abf2853d10337fb8fa41", "chain_hash": "52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971" }, "result": "ERR_RELEASE_INVALID", "text": "provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1000 under datekeys:quicknet:v1: ERR_RELEASE_INVALID" }, { "name": "signature of 47 bytes", "encoding": "a50070646174656b6579732d72656c65617365010102582052db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971031903e804582fb44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e", "round": 1000, "release": { "round": 1000, "signature": "b44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e", "chain_hash": "52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971" }, "result": "ERR_RELEASE_INVALID", "text": "provider: signature is 47 bytes, bls-unchained-g1-rfc9380 uses 48: ERR_RELEASE_INVALID" }, { "name": "signature of 96 bytes, the size of G2", "encoding": "a50070646174656b6579732d72656c65617365010102582052db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971031903e8045860b44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e39b44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e39", "round": 1000, "release": { "round": 1000, "signature": "b44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e39b44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e39", "chain_hash": "52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971" }, "result": "ERR_RELEASE_INVALID", "text": "provider: signature is 96 bytes, bls-unchained-g1-rfc9380 uses 48: ERR_RELEASE_INVALID" }, { "name": "signature of zeros", "encoding": "a50070646174656b6579732d72656c65617365010102582052db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971031903e8045830000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "round": 1000, "release": { "round": 1000, "signature": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "chain_hash": "52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971" }, "result": "ERR_RELEASE_INVALID", "text": "provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1000 under datekeys:quicknet:v1: ERR_RELEASE_INVALID" }, { "name": "signature the point at infinity", "encoding": "a50070646174656b6579732d72656c65617365010102582052db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971031903e8045830c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "round": 1000, "release": { "round": 1000, "signature": "c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "chain_hash": "52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971" }, "result": "ERR_RELEASE_INVALID", "text": "provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1000 under datekeys:quicknet:v1: ERR_RELEASE_INVALID" }, { "name": "signature with the infinity flag and a payload", "encoding": "a50070646174656b6579732d72656c65617365010102582052db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971031903e8045830d44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e39", "round": 1000, "release": { "round": 1000, "signature": "d44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e39", "chain_hash": "52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971" }, "result": "ERR_RELEASE_INVALID", "text": "provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1000 under datekeys:quicknet:v1: ERR_RELEASE_INVALID" }, { "name": "signature negated", "encoding": "a50070646174656b6579732d72656c65617365010102582052db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971031903e8045830944679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e39", "round": 1000, "release": { "round": 1000, "signature": "944679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e39", "chain_hash": "52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971" }, "result": "ERR_RELEASE_INVALID", "text": "provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1000 under datekeys:quicknet:v1: ERR_RELEASE_INVALID" }, { "name": "signature of round 1004 with x + p", "encoding": "a50070646174656b6579732d72656c65617365010102582052db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971031903ec045830be076aa25a40df5b4d22f9f7bcedaff30dcac20d94556107b8e652c7b54b2a440ce796f9fa53ad28023c84b40a580f55", "round": 1004, "release": { "round": 1004, "signature": "be076aa25a40df5b4d22f9f7bcedaff30dcac20d94556107b8e652c7b54b2a440ce796f9fa53ad28023c84b40a580f55", "chain_hash": "52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971" }, "result": "ERR_RELEASE_INVALID", "text": "provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1004 under datekeys:quicknet:v1: ERR_RELEASE_INVALID" } ], "json": [ { "name": "the answer of a relay, API v2", "input": "{\"round\":1000,\"signature\":\"b44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e39\"}", "round": 1000, "release": { "round": 1000, "signature": "b44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e39" }, "result": "ok" }, { "name": "with randomness, API v1", "input": "{\"round\":1000,\"randomness\":\"fe290beca10872ef2fb164d2aa4442de4566183ec51c56ff3cd603d930e54fdd\",\"signature\":\"b44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e39\"}", "round": 1000, "release": { "round": 1000, "signature": "b44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e39" }, "result": "ok" }, { "name": "spaces and a line feed before and after", "input": " \n{\"round\": 1000, \"signature\": \"B44679B9A59AF2EC876B1A6B1AD52EA9B1615FC3982B19576350F93447CB1125E342B73A8DD2BACBE47E4B6B63ED5E39\"}\n", "round": 1000, "release": { "round": 1000, "signature": "b44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e39" }, "result": "ok" }, { "name": "randomness of another signature", "input": "{\"round\":1000,\"randomness\":\"b0a591ad1b9002cfc372ac6e30abd3da8d3088d4caae026961743474fb94235f\",\"signature\":\"b44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e39\"}", "round": 1000, "result": "ERR_RELEASE_INVALID", "text": "provider: drand JSON: randomness does not match the signature: ERR_RELEASE_INVALID" }, { "name": "without signature", "input": "{\"round\":1000}", "round": 1000, "result": "ERR_RELEASE_INVALID", "text": "provider: drand JSON: malformed, or without round or signature: ERR_RELEASE_INVALID" }, { "name": "without round", "input": "{\"signature\":\"b44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e39\"}", "round": 1000, "result": "ERR_RELEASE_INVALID", "text": "provider: drand JSON: malformed, or without round or signature: ERR_RELEASE_INVALID" }, { "name": "signature not in hexadecimal", "input": "{\"round\":1000,\"signature\":\"b44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5ezz\"}", "round": 1000, "result": "ERR_RELEASE_INVALID", "text": "provider: drand JSON: signature is not hex: ERR_RELEASE_INVALID" }, { "name": "round as a string", "input": "{\"round\":\"1000\",\"signature\":\"b44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e39\"}", "round": 1000, "result": "ERR_RELEASE_INVALID", "text": "provider: drand JSON: malformed, or without round or signature: ERR_RELEASE_INVALID" }, { "name": "not JSON", "input": "{\"round\":1000,", "round": 1000, "result": "ERR_RELEASE_INVALID", "text": "provider: drand JSON: malformed, or without round or signature: ERR_RELEASE_INVALID" }, { "name": "8193 bytes", "input": "{\"round\":1000,\"signature\":\"b44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e39\"} ", "round": 1000, "result": "ERR_RELEASE_INVALID", "text": "provider: drand JSON of 8193 bytes, larger than 8192: ERR_RELEASE_INVALID" }, { "name": "round 1001 for a DateKey of round 1000", "input": "{\"round\":1001,\"signature\":\"b33bf3667cbd5a82de3a24b4e0e9fe5513cc1a0e840368c6e31f5fcfa79bea03f73896b25883abf2853d10337fb8fa41\"}", "round": 1000, "release": { "round": 1001, "signature": "b33bf3667cbd5a82de3a24b4e0e9fe5513cc1a0e840368c6e31f5fcfa79bea03f73896b25883abf2853d10337fb8fa41" }, "result": "ERR_ROUND_MISMATCH", "text": "provider: release for round 1001, expected 1000: ERR_ROUND_MISMATCH" }, { "name": "the signature of round 1001 as round 1000", "input": "{\"round\":1000,\"signature\":\"b33bf3667cbd5a82de3a24b4e0e9fe5513cc1a0e840368c6e31f5fcfa79bea03f73896b25883abf2853d10337fb8fa41\"}", "round": 1000, "release": { "round": 1000, "signature": "b33bf3667cbd5a82de3a24b4e0e9fe5513cc1a0e840368c6e31f5fcfa79bea03f73896b25883abf2853d10337fb8fa41" }, "result": "ERR_RELEASE_INVALID", "text": "provider: the signature is not a canonical point encoding, or does not verify as the BLS signature of round 1000 under datekeys:quicknet:v1: ERR_RELEASE_INVALID" } ], "archive": { "file": "releases/archive_1000_1004.bin", "header": "a5007818646174656b6579732d72656c656173652d61726368697665010102582052db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971031903e80405", "lookups": [ { "round": 999, "result": "ERR_RELEASE_UNAVAILABLE" }, { "round": 1000, "encoding": "a50070646174656b6579732d72656c65617365010102582052db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971031903e8045830b44679b9a59af2ec876b1a6b1ad52ea9b1615fc3982b19576350f93447cb1125e342b73a8dd2bacbe47e4b6b63ed5e39", "result": "ok" }, { "round": 1001, "encoding": "a50070646174656b6579732d72656c65617365010102582052db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971031903e9045830b33bf3667cbd5a82de3a24b4e0e9fe5513cc1a0e840368c6e31f5fcfa79bea03f73896b25883abf2853d10337fb8fa41", "result": "ok" }, { "round": 1002, "result": "ERR_RELEASE_UNAVAILABLE" }, { "round": 1003, "result": "ERR_RELEASE_UNAVAILABLE" }, { "round": 1004, "encoding": "a50070646174656b6579732d72656c65617365010102582052db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971031903ec045830a40658b820c0f8c10207524179a2031ba9537688a0d04e4851b58026be9a341fee3b96fb48ffad28483d84b40a5864aa", "result": "ok" }, { "round": 1005, "result": "ERR_RELEASE_UNAVAILABLE" } ] } }