“…QUIC messages exchange APIs and functions (continued)1 function get_iv(H, κ) * κc = Client key, ivc = Client initialization vector, ivs = Server initialization vector */ → (κc, κs, ivc, ivs); → src, s → dst; → src, c → dst; 11 /* sqn is packet sequence number */ →(cid, sqn);13 return (iv dst , sqn);14 function pak(k, sqn, m)15 κ → (kc, ks,ivc, ivs); → src and s → dst;18 else → src and c → dst; IPsrc, IP dst , portsrc, port dst ) → pkt_info;21 (cid, sqn)→ H;22 get_iv(H, κ) → iv; 23 return (pkt_info, E(k dst ,iv,H, (1 m))); 24 function process_packets(κ, p 1 , p 2 ....pv) 25 κ → (kc, ks, ivc, ivs); 26 if is_client then 27 c → src and s → dst; 28 else → src and c → dst; 30 for each γ ∈ [v] : 31 pγ → (Hγ , cγ ); 32 get_iv(Hγ , κ) → ivγ ; (ksrc, ivγ , Hγ , cγ ) → mγ; m 2 , .... mv); 37 function s_hello(m 3 , ik, sqn ) 38 ik → (ikc, iks, ivc, ivs); − → xs, b xs → ys, (b, a, ys) → p ubs; 40 (cid, sqn)→ H; (ikc, (ivc, sqn), H, (0 (p ubs, stk))) → e; 42 return (ips,ipc,ports,portc, H, e); 43 function get_key_s(m) 44 y xs c →pms; 45 return extract_expand(pms, nonc, cid, m, 40, 0); 46 function get_key_c(m) →(IPs,IPc,ports, portc, cid, sqn, e); 48 if D(ikc,(ivc, sqn),(cid,sqn),e) = ⊥ then 49 return extract_expand(pms, nonc, cid, m, 40, 0);…”