protocol: add generated bindings and conformance fixtures

This commit is contained in:
sechmachine
2026-07-21 23:43:04 +07:00
parent 2d69357052
commit 6abbc26dc4
22 changed files with 5031 additions and 0 deletions
+11
View File
@@ -0,0 +1,11 @@
id version kind input expected
version-current 1 version 1 valid
version-n-minus-1 0 version 0 valid
version-n-minus-2 -1 version -1 valid
version-unsupported 2 version 2 invalid:unsupported_version
page-valid 1 page limit=20;cursor=opaque valid
page-limit-high 1 page limit=101 invalid:invalid_limit
manifest-valid 1 manifest version=1;gateway_id=g-1;grant=opaque-one-time-grant-value-with-at-least-43-bytes;audience=versevdi-gateway;purpose=launch;protocol=verse-gateway-v1;expires_at=2099-01-01T00:00:00Z valid
manifest-provider-field 1 manifest gateway_id=g-1;grant=g-1;audience=versevdi-gateway;purpose=launch;provider_url=https://provider.invalid invalid:forbidden_field
clipboard-text-valid 1 clipboard encoding=utf-8;text=hello%20world valid
clipboard-file 1 clipboard encoding=octet-stream;file=/tmp/a invalid:unsupported_clipboard
1 id version kind input expected
2 version-current 1 version 1 valid
3 version-n-minus-1 0 version 0 valid
4 version-n-minus-2 -1 version -1 valid
5 version-unsupported 2 version 2 invalid:unsupported_version
6 page-valid 1 page limit=20;cursor=opaque valid
7 page-limit-high 1 page limit=101 invalid:invalid_limit
8 manifest-valid 1 manifest version=1;gateway_id=g-1;grant=opaque-one-time-grant-value-with-at-least-43-bytes;audience=versevdi-gateway;purpose=launch;protocol=verse-gateway-v1;expires_at=2099-01-01T00:00:00Z valid
9 manifest-provider-field 1 manifest gateway_id=g-1;grant=g-1;audience=versevdi-gateway;purpose=launch;provider_url=https://provider.invalid invalid:forbidden_field
10 clipboard-text-valid 1 clipboard encoding=utf-8;text=hello%20world valid
11 clipboard-file 1 clipboard encoding=octet-stream;file=/tmp/a invalid:unsupported_clipboard
+6
View File
@@ -0,0 +1,6 @@
id version kind input expected
valid-empty-control 1 datagram hex=564401010000000000000000000000000000010000 valid
invalid-short 1 datagram hex=564401 invalid:truncated
invalid-version 1 datagram hex=564402010000000000000000000000000000010000 invalid:unsupported_version
invalid-channel 1 datagram hex=564401990000000000000000000000000000010000 invalid:unknown_channel
invalid-length 1 datagram hex=564401010000000000000000000000000000010001 invalid:length_mismatch
1 id version kind input expected
2 valid-empty-control 1 datagram hex=564401010000000000000000000000000000010000 valid
3 invalid-short 1 datagram hex=564401 invalid:truncated
4 invalid-version 1 datagram hex=564402010000000000000000000000000000010000 invalid:unsupported_version
5 invalid-channel 1 datagram hex=564401990000000000000000000000000000010000 invalid:unknown_channel
6 invalid-length 1 datagram hex=564401010000000000000000000000000000010001 invalid:length_mismatch
+6
View File
@@ -0,0 +1,6 @@
id version kind input expected
event-valid 1 event version=1;sequence=42;correlation_id=corr-1;payload_bytes=128 valid
event-missing-correlation 1 event version=1;sequence=42;payload_bytes=128 invalid:required
event-gap 1 event version=1;sequence=42;correlation_id=corr-1;after=1;earliest=5;payload_bytes=128 invalid:gap
event-oversized 1 event version=1;sequence=42;correlation_id=corr-1;payload_bytes=16385 invalid:payload_limit
event-unsupported-version 1 event version=2;sequence=42;correlation_id=corr-1;payload_bytes=128 invalid:unsupported_version
1 id version kind input expected
2 event-valid 1 event version=1;sequence=42;correlation_id=corr-1;payload_bytes=128 valid
3 event-missing-correlation 1 event version=1;sequence=42;payload_bytes=128 invalid:required
4 event-gap 1 event version=1;sequence=42;correlation_id=corr-1;after=1;earliest=5;payload_bytes=128 invalid:gap
5 event-oversized 1 event version=1;sequence=42;correlation_id=corr-1;payload_bytes=16385 invalid:payload_limit
6 event-unsupported-version 1 event version=2;sequence=42;correlation_id=corr-1;payload_bytes=128 invalid:unsupported_version
+6
View File
@@ -0,0 +1,6 @@
id version kind input expected
tunnel-current 1 tunnel offered=1;feature=control.v1 valid
tunnel-n-minus-1 0 tunnel offered=0;feature=control.v1 valid
tunnel-n-minus-2 -1 tunnel offered=-1;feature=control.v1 valid
tunnel-unsupported 1 tunnel offered=2;feature=control.v1 invalid:unsupported_version
tunnel-no-control 1 tunnel offered=1;feature=media.video invalid:unsupported_feature
1 id version kind input expected
2 tunnel-current 1 tunnel offered=1;feature=control.v1 valid
3 tunnel-n-minus-1 0 tunnel offered=0;feature=control.v1 valid
4 tunnel-n-minus-2 -1 tunnel offered=-1;feature=control.v1 valid
5 tunnel-unsupported 1 tunnel offered=2;feature=control.v1 invalid:unsupported_version
6 tunnel-no-control 1 tunnel offered=1;feature=media.video invalid:unsupported_feature
@@ -0,0 +1,30 @@
{
"version": "1",
"purpose": "launch",
"session_id": "session-1",
"reconnect_sequence": 0,
"gateway": {
"id": "gateway-1",
"addresses": ["gateway.control.test:443"],
"public_identity": "gateway-1"
},
"tunnel": {
"versions": ["verse-gateway-v1/1"],
"features": ["control.v1"]
},
"profile": {
"id": "standard",
"bounds": {
"minimum_kbps": 1000,
"target_kbps": 5000,
"maximum_kbps": 10000
}
},
"grant": {
"opaque_value": "opaque-one-time-grant-value-with-at-least-43-bytes",
"expires_at": "2099-01-01T00:00:00Z",
"audience": "versevdi-gateway"
},
"correlation_id": "correlation-1",
"provider_url": "https://provider.invalid"
}
+10
View File
@@ -0,0 +1,10 @@
{
"algorithm": "sha256(path\\0bytes\\0 sorted by path)",
"files": [
"fixtures/conformance/control-v1.tsv",
"fixtures/conformance/datagram-v1.tsv",
"fixtures/conformance/events-v1.tsv",
"fixtures/conformance/tunnel-v1.tsv"
],
"corpus_sha256": "c91a512dc67aa9912b31b21144be2adfeacf0dc80dd8515bd3b4a8f52977e761"
}
+29
View File
@@ -0,0 +1,29 @@
{
"version": "1",
"purpose": "launch",
"session_id": "session-1",
"reconnect_sequence": 0,
"gateway": {
"id": "gateway-1",
"addresses": ["gateway.control.test:443"],
"public_identity": "gateway-1"
},
"tunnel": {
"versions": ["verse-gateway-v1/1"],
"features": ["control.v1", "clipboard.text"]
},
"profile": {
"id": "standard",
"bounds": {
"minimum_kbps": 1000,
"target_kbps": 5000,
"maximum_kbps": 10000
}
},
"grant": {
"opaque_value": "opaque-one-time-grant-value-with-at-least-43-bytes",
"expires_at": "2099-01-01T00:00:00Z",
"audience": "versevdi-gateway"
},
"correlation_id": "correlation-1"
}