Stage 4b: each bit of FLAGS and RESERVED of both frames

A fault that ignored the top bit of FLAGS of a .dkc passed the tests: the
cases had FLAGS of 1, or random bytes with other bits set. The generator
now writes each bit of FLAGS and of RESERVED alone, in the PRELUDE of a
.dkc and in the frame of a .dkk, with the text of Go, and the tests on the
VM and on Node.js try every bit of both frames.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
v0.11
dev 2 days ago
parent 971f01eb59
commit e6f51c61ec

@ -77,8 +77,15 @@ void main() {
'ERR_UNSUPPORTED_VERSION', 'ERR_UNSUPPORTED_VERSION',
); );
} }
// Every bit of FLAGS and of RESERVED, alone.
for (final i in [5, 6, 7]) { for (final i in [5, 6, 7]) {
expect(codeOf(() => parsePrelude(withByte(i, 1))), 'ERR_INVALID_FLAGS'); for (var bit = 1; bit < 256; bit *= 2) {
expect(
codeOf(() => parsePrelude(withByte(i, bit))),
'ERR_INVALID_FLAGS',
reason: 'byte $i, bit $bit',
);
}
} }
Uint8List lengths(int h, int s) { Uint8List lengths(int h, int s) {
final b = Uint8List.fromList(ok.sublist(0, 16)); final b = Uint8List.fromList(ok.sublist(0, 16));
@ -192,11 +199,14 @@ void main() {
'ERR_UNSUPPORTED_VERSION', 'ERR_UNSUPPORTED_VERSION',
); );
for (final i in [5, 6, 7]) { for (final i in [5, 6, 7]) {
for (var bit = 1; bit < 256; bit *= 2) {
expect( expect(
codeOf(() => splitAccessKey(withByte(i, 1))), codeOf(() => splitAccessKey(withByte(i, bit))),
'ERR_INVALID_FLAGS', 'ERR_INVALID_FLAGS',
reason: 'byte $i, bit $bit',
); );
} }
}
for (final n in [0, maxDkkBodyLen + 1]) { for (final n in [0, maxDkkBodyLen + 1]) {
expect( expect(
codeOf(() => splitAccessKey(dkkPreludeBytes(n))), codeOf(() => splitAccessKey(dkkPreludeBytes(n))),

@ -12,6 +12,30 @@
{"hex":"444b43310100000000000079","result":"ERR_INTEGRITY","text":"capsule: truncated prelude: ERR_INTEGRITY"}, {"hex":"444b43310100000000000079","result":"ERR_INTEGRITY","text":"capsule: truncated prelude: ERR_INTEGRITY"},
{"hex":"444b43310100000000000079000001","result":"ERR_INTEGRITY","text":"capsule: truncated prelude: ERR_INTEGRITY"}, {"hex":"444b43310100000000000079000001","result":"ERR_INTEGRITY","text":"capsule: truncated prelude: ERR_INTEGRITY"},
{"hex":"444b4b3101000000000000790000","result":"ERR_INVALID_MAGIC","text":"capsule: ERR_INVALID_MAGIC"}, {"hex":"444b4b3101000000000000790000","result":"ERR_INVALID_MAGIC","text":"capsule: ERR_INVALID_MAGIC"},
{"hex":"444b43310101000000000079000001be","result":"ERR_INVALID_FLAGS","text":"capsule: flags 0x1, reserved 0x0000: ERR_INVALID_FLAGS"},
{"hex":"444b43310102000000000079000001be","result":"ERR_INVALID_FLAGS","text":"capsule: flags 0x2, reserved 0x0000: ERR_INVALID_FLAGS"},
{"hex":"444b43310104000000000079000001be","result":"ERR_INVALID_FLAGS","text":"capsule: flags 0x4, reserved 0x0000: ERR_INVALID_FLAGS"},
{"hex":"444b43310108000000000079000001be","result":"ERR_INVALID_FLAGS","text":"capsule: flags 0x8, reserved 0x0000: ERR_INVALID_FLAGS"},
{"hex":"444b43310110000000000079000001be","result":"ERR_INVALID_FLAGS","text":"capsule: flags 0x10, reserved 0x0000: ERR_INVALID_FLAGS"},
{"hex":"444b43310120000000000079000001be","result":"ERR_INVALID_FLAGS","text":"capsule: flags 0x20, reserved 0x0000: ERR_INVALID_FLAGS"},
{"hex":"444b43310140000000000079000001be","result":"ERR_INVALID_FLAGS","text":"capsule: flags 0x40, reserved 0x0000: ERR_INVALID_FLAGS"},
{"hex":"444b43310180000000000079000001be","result":"ERR_INVALID_FLAGS","text":"capsule: flags 0x80, reserved 0x0000: ERR_INVALID_FLAGS"},
{"hex":"444b43310100010000000079000001be","result":"ERR_INVALID_FLAGS","text":"capsule: flags 0x0, reserved 0x0100: ERR_INVALID_FLAGS"},
{"hex":"444b43310100020000000079000001be","result":"ERR_INVALID_FLAGS","text":"capsule: flags 0x0, reserved 0x0200: ERR_INVALID_FLAGS"},
{"hex":"444b43310100040000000079000001be","result":"ERR_INVALID_FLAGS","text":"capsule: flags 0x0, reserved 0x0400: ERR_INVALID_FLAGS"},
{"hex":"444b43310100080000000079000001be","result":"ERR_INVALID_FLAGS","text":"capsule: flags 0x0, reserved 0x0800: ERR_INVALID_FLAGS"},
{"hex":"444b43310100100000000079000001be","result":"ERR_INVALID_FLAGS","text":"capsule: flags 0x0, reserved 0x1000: ERR_INVALID_FLAGS"},
{"hex":"444b43310100200000000079000001be","result":"ERR_INVALID_FLAGS","text":"capsule: flags 0x0, reserved 0x2000: ERR_INVALID_FLAGS"},
{"hex":"444b43310100400000000079000001be","result":"ERR_INVALID_FLAGS","text":"capsule: flags 0x0, reserved 0x4000: ERR_INVALID_FLAGS"},
{"hex":"444b43310100800000000079000001be","result":"ERR_INVALID_FLAGS","text":"capsule: flags 0x0, reserved 0x8000: ERR_INVALID_FLAGS"},
{"hex":"444b43310100000100000079000001be","result":"ERR_INVALID_FLAGS","text":"capsule: flags 0x0, reserved 0x0001: ERR_INVALID_FLAGS"},
{"hex":"444b43310100000200000079000001be","result":"ERR_INVALID_FLAGS","text":"capsule: flags 0x0, reserved 0x0002: ERR_INVALID_FLAGS"},
{"hex":"444b43310100000400000079000001be","result":"ERR_INVALID_FLAGS","text":"capsule: flags 0x0, reserved 0x0004: ERR_INVALID_FLAGS"},
{"hex":"444b43310100000800000079000001be","result":"ERR_INVALID_FLAGS","text":"capsule: flags 0x0, reserved 0x0008: ERR_INVALID_FLAGS"},
{"hex":"444b43310100001000000079000001be","result":"ERR_INVALID_FLAGS","text":"capsule: flags 0x0, reserved 0x0010: ERR_INVALID_FLAGS"},
{"hex":"444b43310100002000000079000001be","result":"ERR_INVALID_FLAGS","text":"capsule: flags 0x0, reserved 0x0020: ERR_INVALID_FLAGS"},
{"hex":"444b43310100004000000079000001be","result":"ERR_INVALID_FLAGS","text":"capsule: flags 0x0, reserved 0x0040: ERR_INVALID_FLAGS"},
{"hex":"444b43310100008000000079000001be","result":"ERR_INVALID_FLAGS","text":"capsule: flags 0x0, reserved 0x0080: ERR_INVALID_FLAGS"},
{"hex":"444b433104e200e50000000288148415","result":"ERR_UNSUPPORTED_VERSION","text":"capsule: framing version 4: ERR_UNSUPPORTED_VERSION"}, {"hex":"444b433104e200e50000000288148415","result":"ERR_UNSUPPORTED_VERSION","text":"capsule: framing version 4: ERR_UNSUPPORTED_VERSION"},
{"hex":"444b433101005b000000000100000000","result":"ERR_INVALID_FLAGS","text":"capsule: flags 0x0, reserved 0x5b00: ERR_INVALID_FLAGS"}, {"hex":"444b433101005b000000000100000000","result":"ERR_INVALID_FLAGS","text":"capsule: flags 0x0, reserved 0x5b00: ERR_INVALID_FLAGS"},
{"format":3,"hex":"444b4331030000000010000004000000","public_header_len":1048576,"result":"ok","sealed_control_len":67108864}, {"format":3,"hex":"444b4331030000000010000004000000","public_header_len":1048576,"result":"ok","sealed_control_len":67108864},
@ -744,6 +768,30 @@
{"hex":"444b4b31010000000000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b","result":"ERR_INTEGRITY","text":"accesskey: truncated body: ERR_INTEGRITY"}, {"hex":"444b4b31010000000000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b","result":"ERR_INTEGRITY","text":"accesskey: truncated body: ERR_INTEGRITY"},
{"hex":"444b4b31010000000000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b4300","result":"ERR_INTEGRITY","text":"accesskey: data after BODY_CBOR: ERR_INTEGRITY"}, {"hex":"444b4b31010000000000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b4300","result":"ERR_INTEGRITY","text":"accesskey: data after BODY_CBOR: ERR_INTEGRITY"},
{"hex":"444b4b31010000000000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43010203","result":"ERR_INTEGRITY","text":"accesskey: data after BODY_CBOR: ERR_INTEGRITY"}, {"hex":"444b4b31010000000000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43010203","result":"ERR_INTEGRITY","text":"accesskey: data after BODY_CBOR: ERR_INTEGRITY"},
{"hex":"444b4b31010100000000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","result":"ERR_INVALID_FLAGS","text":"accesskey: flags 0x1, reserved 0x000: ERR_INVALID_FLAGS"},
{"hex":"444b4b31010200000000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","result":"ERR_INVALID_FLAGS","text":"accesskey: flags 0x2, reserved 0x000: ERR_INVALID_FLAGS"},
{"hex":"444b4b31010400000000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","result":"ERR_INVALID_FLAGS","text":"accesskey: flags 0x4, reserved 0x000: ERR_INVALID_FLAGS"},
{"hex":"444b4b31010800000000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","result":"ERR_INVALID_FLAGS","text":"accesskey: flags 0x8, reserved 0x000: ERR_INVALID_FLAGS"},
{"hex":"444b4b31011000000000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","result":"ERR_INVALID_FLAGS","text":"accesskey: flags 0x10, reserved 0x000: ERR_INVALID_FLAGS"},
{"hex":"444b4b31012000000000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","result":"ERR_INVALID_FLAGS","text":"accesskey: flags 0x20, reserved 0x000: ERR_INVALID_FLAGS"},
{"hex":"444b4b31014000000000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","result":"ERR_INVALID_FLAGS","text":"accesskey: flags 0x40, reserved 0x000: ERR_INVALID_FLAGS"},
{"hex":"444b4b31018000000000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","result":"ERR_INVALID_FLAGS","text":"accesskey: flags 0x80, reserved 0x000: ERR_INVALID_FLAGS"},
{"hex":"444b4b31010001000000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","result":"ERR_INVALID_FLAGS","text":"accesskey: flags 0x0, reserved 0x100: ERR_INVALID_FLAGS"},
{"hex":"444b4b31010002000000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","result":"ERR_INVALID_FLAGS","text":"accesskey: flags 0x0, reserved 0x200: ERR_INVALID_FLAGS"},
{"hex":"444b4b31010004000000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","result":"ERR_INVALID_FLAGS","text":"accesskey: flags 0x0, reserved 0x400: ERR_INVALID_FLAGS"},
{"hex":"444b4b31010008000000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","result":"ERR_INVALID_FLAGS","text":"accesskey: flags 0x0, reserved 0x800: ERR_INVALID_FLAGS"},
{"hex":"444b4b31010010000000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","result":"ERR_INVALID_FLAGS","text":"accesskey: flags 0x0, reserved 0x1000: ERR_INVALID_FLAGS"},
{"hex":"444b4b31010020000000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","result":"ERR_INVALID_FLAGS","text":"accesskey: flags 0x0, reserved 0x2000: ERR_INVALID_FLAGS"},
{"hex":"444b4b31010040000000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","result":"ERR_INVALID_FLAGS","text":"accesskey: flags 0x0, reserved 0x4000: ERR_INVALID_FLAGS"},
{"hex":"444b4b31010080000000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","result":"ERR_INVALID_FLAGS","text":"accesskey: flags 0x0, reserved 0x8000: ERR_INVALID_FLAGS"},
{"hex":"444b4b31010000010000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","result":"ERR_INVALID_FLAGS","text":"accesskey: flags 0x0, reserved 0x001: ERR_INVALID_FLAGS"},
{"hex":"444b4b31010000020000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","result":"ERR_INVALID_FLAGS","text":"accesskey: flags 0x0, reserved 0x002: ERR_INVALID_FLAGS"},
{"hex":"444b4b31010000040000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","result":"ERR_INVALID_FLAGS","text":"accesskey: flags 0x0, reserved 0x004: ERR_INVALID_FLAGS"},
{"hex":"444b4b31010000080000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","result":"ERR_INVALID_FLAGS","text":"accesskey: flags 0x0, reserved 0x008: ERR_INVALID_FLAGS"},
{"hex":"444b4b31010000100000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","result":"ERR_INVALID_FLAGS","text":"accesskey: flags 0x0, reserved 0x010: ERR_INVALID_FLAGS"},
{"hex":"444b4b31010000200000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","result":"ERR_INVALID_FLAGS","text":"accesskey: flags 0x0, reserved 0x020: ERR_INVALID_FLAGS"},
{"hex":"444b4b31010000400000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","result":"ERR_INVALID_FLAGS","text":"accesskey: flags 0x0, reserved 0x040: ERR_INVALID_FLAGS"},
{"hex":"444b4b31010000800000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","result":"ERR_INVALID_FLAGS","text":"accesskey: flags 0x0, reserved 0x080: ERR_INVALID_FLAGS"},
{"hex":"444b4b31019500000000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","result":"ERR_INVALID_FLAGS","text":"accesskey: flags 0x95, reserved 0x000: ERR_INVALID_FLAGS"}, {"hex":"444b4b31019500000000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","result":"ERR_INVALID_FLAGS","text":"accesskey: flags 0x95, reserved 0x000: ERR_INVALID_FLAGS"},
{"hex":"444b4b310100000000000000a70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","result":"ERR_INTEGRITY","text":"accesskey: BODY_LEN 0 outside 1..16777216: ERR_INTEGRITY"}, {"hex":"444b4b310100000000000000a70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","result":"ERR_INTEGRITY","text":"accesskey: BODY_LEN 0 outside 1..16777216: ERR_INTEGRITY"},
{"hex":"444b4b310100000001000000a70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","result":"ERR_INTEGRITY","text":"accesskey: truncated body: ERR_INTEGRITY"}, {"hex":"444b4b310100000001000000a70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","result":"ERR_INTEGRITY","text":"accesskey: truncated body: ERR_INTEGRITY"},

@ -11,6 +11,9 @@ const formatsFramingJson = r'''
"prelude": [ "prelude": [
{"hex":"","result":"ERR_INVALID_MAGIC","text":"capsule: ERR_INVALID_MAGIC"}, {"hex":"","result":"ERR_INVALID_MAGIC","text":"capsule: ERR_INVALID_MAGIC"},
{"hex":"444b4b3101000000000000790000","result":"ERR_INVALID_MAGIC","text":"capsule: ERR_INVALID_MAGIC"}, {"hex":"444b4b3101000000000000790000","result":"ERR_INVALID_MAGIC","text":"capsule: ERR_INVALID_MAGIC"},
{"hex":"444b43310180000000000079000001be","result":"ERR_INVALID_FLAGS","text":"capsule: flags 0x80, reserved 0x0000: ERR_INVALID_FLAGS"},
{"hex":"444b43310100800000000079000001be","result":"ERR_INVALID_FLAGS","text":"capsule: flags 0x0, reserved 0x8000: ERR_INVALID_FLAGS"},
{"hex":"444b43310100008000000079000001be","result":"ERR_INVALID_FLAGS","text":"capsule: flags 0x0, reserved 0x0080: ERR_INVALID_FLAGS"},
{"hex":"444b433103000000551e1a8a00100001","result":"ERR_INTEGRITY","text":"capsule: PUBLIC_HEADER_LEN 1428036234 outside 1..1048576: ERR_INTEGRITY"}, {"hex":"444b433103000000551e1a8a00100001","result":"ERR_INTEGRITY","text":"capsule: PUBLIC_HEADER_LEN 1428036234 outside 1..1048576: ERR_INTEGRITY"},
{"hex":"444b4331007f0000522449dc80000007","result":"ERR_UNSUPPORTED_VERSION","text":"capsule: framing version 0: ERR_UNSUPPORTED_VERSION"}, {"hex":"444b4331007f0000522449dc80000007","result":"ERR_UNSUPPORTED_VERSION","text":"capsule: framing version 0: ERR_UNSUPPORTED_VERSION"},
{"hex":"444b433101000043c289e71600000079","result":"ERR_INVALID_FLAGS","text":"capsule: flags 0x0, reserved 0x0043: ERR_INVALID_FLAGS"}, {"hex":"444b433101000043c289e71600000079","result":"ERR_INVALID_FLAGS","text":"capsule: flags 0x0, reserved 0x0043: ERR_INVALID_FLAGS"},
@ -106,6 +109,9 @@ const formatsFramingJson = r'''
"dkk": [ "dkk": [
{"capsule_digest":"600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","capsule_id":"fe68d3b3bb59db0c14b7ef57d8d6cb5e","credential_id":"e3c7be83cbf1fbd6b115c96411b3bd01","critical":[],"hex":"444b4b31010000000000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","material":"9c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c3657801","noncritical":[],"result":"ok","type":"x25519"}, {"capsule_digest":"600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","capsule_id":"fe68d3b3bb59db0c14b7ef57d8d6cb5e","credential_id":"e3c7be83cbf1fbd6b115c96411b3bd01","critical":[],"hex":"444b4b31010000000000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","material":"9c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c3657801","noncritical":[],"result":"ok","type":"x25519"},
{"hex":"444b4b","result":"ERR_INVALID_MAGIC","text":"accesskey: ERR_INVALID_MAGIC"}, {"hex":"444b4b","result":"ERR_INVALID_MAGIC","text":"accesskey: ERR_INVALID_MAGIC"},
{"hex":"444b4b31010100000000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","result":"ERR_INVALID_FLAGS","text":"accesskey: flags 0x1, reserved 0x000: ERR_INVALID_FLAGS"},
{"hex":"444b4b31010001000000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","result":"ERR_INVALID_FLAGS","text":"accesskey: flags 0x0, reserved 0x100: ERR_INVALID_FLAGS"},
{"hex":"444b4b31010000010000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","result":"ERR_INVALID_FLAGS","text":"accesskey: flags 0x0, reserved 0x001: ERR_INVALID_FLAGS"},
{"hex":"444b4b31019500000000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","result":"ERR_INVALID_FLAGS","text":"accesskey: flags 0x95, reserved 0x000: ERR_INVALID_FLAGS"}, {"hex":"444b4b31019500000000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","result":"ERR_INVALID_FLAGS","text":"accesskey: flags 0x95, reserved 0x000: ERR_INVALID_FLAGS"},
{"hex":"574b4b31010000000000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","result":"ERR_INVALID_MAGIC","text":"accesskey: ERR_INVALID_MAGIC"}, {"hex":"574b4b31010000000000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","result":"ERR_INVALID_MAGIC","text":"accesskey: ERR_INVALID_MAGIC"},
{"hex":"444b4b41010000000000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","result":"ERR_INVALID_MAGIC","text":"accesskey: ERR_INVALID_MAGIC"}, {"hex":"444b4b41010000000000008ca70073646174656b6579732d6163636573732d6b657901010250e3c7be83cbf1fbd6b115c96411b3bd010350fe68d3b3bb59db0c14b7ef57d8d6cb5e04667832353531390558209c09aeda759a8664a98120435fe0f6bf850000ac5ef0f9853ff46144c365780106a1005820600892659fe4890223e895876275f656995d170fda42b07fb2bec0ca51ce4b43","result":"ERR_INVALID_MAGIC","text":"accesskey: ERR_INVALID_MAGIC"},

@ -418,6 +418,14 @@ func preludeCases() []Case {
add(base[:n]) add(base[:n])
} }
add(unhex("444b4b3101000000000000790000")) add(unhex("444b4b3101000000000000790000"))
// Each bit of FLAGS and of RESERVED alone.
for i := 5; i < 8; i++ {
for bit := range 8 {
b := bytes.Clone(base)
b[i] = 1 << bit
add(b)
}
}
lengths := []uint32{0, 1, 2, 121, 1 << 20, 1<<20 + 1, 64 << 20, 64<<20 + 1, 1<<31 + 7, 0xffffffff} lengths := []uint32{0, 1, 2, 121, 1 << 20, 1<<20 + 1, 64 << 20, 64<<20 + 1, 1<<31 + 7, 0xffffffff}
for range 220 { for range 220 {
b := bytes.Clone(base) b := bytes.Clone(base)
@ -541,6 +549,14 @@ func dkkCases(dkks map[string][]byte) []Case {
} }
add(append(bytes.Clone(base), 0)) add(append(bytes.Clone(base), 0))
add(append(bytes.Clone(base), 1, 2, 3)) add(append(bytes.Clone(base), 1, 2, 3))
// Each bit of FLAGS and of RESERVED alone.
for i := 5; i < 8; i++ {
for bit := range 8 {
b := bytes.Clone(base)
b[i] = 1 << bit
add(b)
}
}
for range 50 { for range 50 {
b := bytes.Clone(base) b := bytes.Clone(base)
switch rng.IntN(5) { switch rng.IntN(5) {

Loading…
Cancel
Save

Powered by TurnKey Linux.