From e33f9b48ce0129261444f791b6aef74bf238e58d Mon Sep 17 00:00:00 2001 From: liuxueli Date: Thu, 26 Aug 2021 13:19:01 +0800 Subject: [PATCH] =?UTF-8?q?TSG-7556:=20=E6=94=AF=E6=8C=81=E8=A7=A3?= =?UTF-8?q?=E6=9E=90quic=20RFC9000=E5=8A=A0=E5=AF=86SNI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/parser-quic.cpp | 23 ++++++++++++++++++++++- test/pcap/2-ietf-rfc9000.pcap | Bin 0 -> 18421 bytes test/quic_result.json | 9 ++++++++- 3 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 test/pcap/2-ietf-rfc9000.pcap diff --git a/src/parser-quic.cpp b/src/parser-quic.cpp index cc90787..c28bf7c 100644 --- a/src/parser-quic.cpp +++ b/src/parser-quic.cpp @@ -573,6 +573,10 @@ static gboolean quic_derive_initial_secrets(const quic_cid_t *cid, guint8 client 0xaf, 0xbf, 0xec, 0x28, 0x99, 0x93, 0xd2, 0x4c, 0x9e, 0x97, 0x86, 0xf1, 0x9c, 0x61, 0x11, 0xe0, 0x43, 0x90, 0xa8, 0x99 }; + static const guint8 handshake_salt_v1[20] = { + 0x38, 0x76, 0x2c, 0xf7, 0xf5, 0x59, 0x34, 0xb3, 0x4d, 0x17, + 0x9a, 0xe6, 0xa4, 0xc8, 0x0c, 0xad, 0xcc, 0xbb, 0x7f, 0x0a + }; static const guint8 hanshake_salt_draft_q50[20] = { 0x50, 0x45, 0x74, 0xEF, 0xD0, 0x66, 0xFE, 0x2F, 0x9D, 0x94, 0x5C, 0xFC, 0xDB, 0xD3, 0xA7, 0xF0, 0xD3, 0xB5, 0x6B, 0x45 @@ -590,17 +594,34 @@ static gboolean quic_derive_initial_secrets(const quic_cid_t *cid, guint8 client guint8 secret[HASH_SHA2_256_LENGTH]; if (version == 0x51303530) + { err = hkdf_extract(GCRY_MD_SHA256, hanshake_salt_draft_q50, sizeof(hanshake_salt_draft_q50), cid->cid, cid->len, secret); + } else if (version == 0x54303530) + { err = hkdf_extract(GCRY_MD_SHA256, hanshake_salt_draft_t50, sizeof(hanshake_salt_draft_t50), cid->cid, cid->len, secret); + } else if (version == 0x54303531) + { err = hkdf_extract(GCRY_MD_SHA256, hanshake_salt_draft_t51, sizeof(hanshake_salt_draft_t51), cid->cid, cid->len, secret); + } else if (is_quic_draft_max(version, 22)) + { err = hkdf_extract(GCRY_MD_SHA256, handshake_salt_draft_22, sizeof(handshake_salt_draft_22), cid->cid, cid->len, secret); + } else if (is_quic_draft_max(version, 28)) + { err = hkdf_extract(GCRY_MD_SHA256, handshake_salt_draft_23, sizeof(handshake_salt_draft_23), cid->cid, cid->len, secret); - else + } + else if (is_quic_draft_max(version, 32)) + { err = hkdf_extract(GCRY_MD_SHA256, handshake_salt_draft_29, sizeof(handshake_salt_draft_29), cid->cid, cid->len, secret); + } + else + { + err = hkdf_extract(GCRY_MD_SHA256, handshake_salt_v1, sizeof(handshake_salt_v1), cid->cid, cid->len, secret); + } + if (err) { //printf("Failed to extract secrets: %s\n", gcry_strerror(err)); *error = "Failed to extract secrets"; diff --git a/test/pcap/2-ietf-rfc9000.pcap b/test/pcap/2-ietf-rfc9000.pcap new file mode 100644 index 0000000000000000000000000000000000000000..84097c8e1982496900721b335d7067c78cdcd148 GIT binary patch literal 18421 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%0D8$C~E`1^LiP1x+KU%~us z>>#Zp~s zd%CddgZ%kiT&wJF<4I)`F{&A)^S!a*uy5K>*ur0!OKBCOGM}E*rDYJuq63w{Z_(Uh zmSH$N*S8iy+oHM}BJw$_WuH0mHCJJfcErQyjp!AjV&um~tWCis_;y~f&oL(zbxm8J zx)eusqK%U+rChb@Jws2&(U3WB%&VG`^p&aG$1uY}S5AIDpUsGFv)US`ed)_T2XP@r z-;;~YnG|8YOxE^bb8P#;$R`x&iFZs;Yz zPe+T8(qz+4SEoUU+RNK*Hb_*%cT`EVqv|51Lgf#8N<7d(522zkxnl{O|9ves|M}|Z z*QpxK1{%(x?@=Y;UXP?Mo7Ge*(B@Sv*C^w?1Ii`l!~rrRFIJSg!v}%*uCkY4gGnE? zDte<~xS~w^fNC4=8PznMy(J1yyyJ;N_9JE_BtEMKqwF_|gMmmHkRsfDAn{OZ@ChT3 z8f{=DsMaBcEU3q;Ff9lL$AuzO(u)m`zM$ZTsvBtOXNGrY@y)T@{P?)HynoWL@ef=- z^>-QqO8!AZ6QO^lAt0grO+}3@HA0c$Plx?^8xNMlr6|x;p?ekG4C-ygt%*Zl!I|kQ z$Qf}|?3~j2yZZgIV-Lxg{X~%4dZX0-EiYlmuFoj-VRy>=w0CY`Ly}_}9+^5Aq92DF zYu&%RgNNont;;j{+73eqRG?$oBM(NMrbJa% zfX!2n+Oj{rZ~td+@4vk1{@r`vK=_~DSb<(97fXIcme?Niwf^bf1)Q`5dcW^Ib$)uU zz5I`-#OMFvO}Xr?@K0~Xxmf!>u4uC9J@&M+6`^Ip(7^c2TqM0u>skN;K=#k+_|$)# z5`G!qzpSbMEp6)Bga0}u-$E!CM);647j=ZdzlK-9t%Y-*7({+e6%FzJW4=uNk74}( z7|O4InbZ86Ii=#sf7Lr2uuRc#N6$Y`+5_0}2VGL9ls3?4->mLt;dMDh(JihkIf4j|NkD$&P zh8Quj2%;)x35Iu-#f&pP0C4PNba1)z10;MDKuMyD>>kZyd#!6_HA z_t9^i^Wkm;wc<+*;*ij488CAuler3XExRitPB{?E960e`|k~<%$j2O6F->D zMNKa6RKJ5PL3gM9v{{?^#z{o5E5ooAbN!8HZp_lr>GTm{U;YiO++Ts#6?yN>!ng$a z`qJecA*s=#Y@W$E_z5F2@&Mgk&5lLbBJXD~@!R{)mcjn)|Fd@&g{L1$^H^fwaCFi2 zzcnK1`%dsq*!QOVx4)(D+Vnf-ic_zwHi!?J`@Z&6>;u+?lhl@5INC(WC{C9<8J%gg zc~RXh$8Sf~xoRWVZP$9>UtBiFS|eZLRLLaPZ4=vf%=dHUtz9g}^n_U}10PO%cr8STrz`G!&m-+gq4Q;9h0=@ig;VFuIr@T$ z;_Lx=mv6N9?M%7hp;fk5R^#}(`c<9QR>couzj!(Ic2vLVddVfM<{s%kYx5z_ ziFcKog&ULZcHL%*=KobD_n))9&hwhsDdRU=);lb`er_vsi%-PLgE1EjJa|t!J(S;- z8`GcZ(*zt)se>N-r@nqWFb%u4>^XR9h?rK`4SLGDb9-61^Uirh7qq}w6G?jU+ zMRw5!m6Z?5;OfKZt8L?UKjh*!7Ni^>XoN8CU*oFKt}&^VFY&&ad#4dBQ64.233.164.84.443", + "VERSION": "IETF QUIC RFC9000", + "SNI": "accounts.google.com", + "name": "QUIC_RESULT_2" + } +]