example.pba (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
protocol proto_circe
mtu 1472
version 1 {
header {
u8[64] tunnel_id;
}
message open_tunnel {
clear {
u8[32] ecdh_fragment
u8[1184] mlkem_pubkey
}
digest sha512
}
message ack_open (u8[32] k_hs_e) {
clear {
u8[32] ecdh_fragment
u8[1088] mlkem_encaps
}
cc20_p1305 (nonce:0, key:@k_hs_e, aad:$preceding) {
u8[64] identity
u8[2420] signature
}
digest sha512
}
message identify (u8[32] k_hs_p) {
cc20_p1305 (nonce:0, key:@k_hs_p, aad:$preceding) {
u8[64] identity
u8[2420] signature
}
digest sha512
}
message data (u8[32] k_d) {
clear {
u64 sequence_number
}
cc20_p1305 (nonce:@sequence_number, key:@k_d, aad:$preceding) {
u8 n_random_bytes
u8[] payload
u8[@n_random_bytes] padding
}
}
message close_tunnel (u8[32] k_d) {
clear {
u64 sequence_number
}
cc20_p1305 (nonce:@sequence_number, key:@k_d, aad:$preceding) {
u8[64] identity
u8[2420] signature
}
}
message path_challenge (u8[32] k_d) {
clear {
u64 sequence_number
}
cc20_p1305 (nonce:@sequence_number, key:@k_d, aad:$preceding) {
u8[64] identity
u8[2420] signature
}
}
}
|