|
|
@ -1040,7 +1040,7 @@ static bool onetime_tls_mod_blob(int profile_n, int fake_n, uint32_t fake_tls_mo |
|
|
|
size_t extlen; |
|
|
|
|
|
|
|
modcache->extlen_offset = modcache->padlen_offset = 0; |
|
|
|
if (fake_tls_mod & (FAKE_TLS_MOD_RND_SNI|FAKE_TLS_MOD_SNI)) |
|
|
|
if (fake_tls_mod & (FAKE_TLS_MOD_RND_SNI|FAKE_TLS_MOD_SNI|FAKE_TLS_MOD_PADENCAP)) |
|
|
|
{ |
|
|
|
if (!TLSFindExtLen(fake_tls,*fake_tls_size,&modcache->extlen_offset)) |
|
|
|
{ |
|
|
@ -1048,6 +1048,8 @@ static bool onetime_tls_mod_blob(int profile_n, int fake_n, uint32_t fake_tls_mo |
|
|
|
return false; |
|
|
|
} |
|
|
|
DLOG("profile %d fake[%d] tls extensions length offset : %zu\n", profile_n, fake_n, modcache->extlen_offset); |
|
|
|
if (fake_tls_mod & (FAKE_TLS_MOD_RND_SNI|FAKE_TLS_MOD_SNI)) |
|
|
|
{ |
|
|
|
size_t slen; |
|
|
|
if (!TLSFindExt(fake_tls,*fake_tls_size,0,&ext,&extlen,false)) |
|
|
|
{ |
|
|
@ -1061,7 +1063,6 @@ static bool onetime_tls_mod_blob(int profile_n, int fake_n, uint32_t fake_tls_mo |
|
|
|
return false; |
|
|
|
} |
|
|
|
uint8_t *sni = fake_tls + (ext - fake_tls); |
|
|
|
|
|
|
|
if (fake_tls_mod & FAKE_TLS_MOD_SNI) |
|
|
|
{ |
|
|
|
size_t slen_new = strlen(fake_tls_sni); |
|
|
@ -1083,7 +1084,7 @@ static bool onetime_tls_mod_blob(int profile_n, int fake_n, uint32_t fake_tls_mo |
|
|
|
*fake_tls_size+=slen_delta; |
|
|
|
slen = slen_new; |
|
|
|
} |
|
|
|
DLOG_ERR("profile %d fake[%d] change sni to %s size_delta=%zd\n", profile_n, fake_n, fake_tls_sni,slen_delta); |
|
|
|
DLOG("profile %d fake[%d] change sni to %s size_delta=%zd\n", profile_n, fake_n, fake_tls_sni,slen_delta); |
|
|
|
memcpy(sni,fake_tls_sni,slen_new); |
|
|
|
} |
|
|
|
if (fake_tls_mod & FAKE_TLS_MOD_RND_SNI) |
|
|
@ -1124,6 +1125,7 @@ static bool onetime_tls_mod_blob(int profile_n, int fake_n, uint32_t fake_tls_mo |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
if (fake_tls_mod & FAKE_TLS_MOD_PADENCAP) |
|
|
|
{ |
|
|
|
if (TLSFindExt(fake_tls,*fake_tls_size,21,&ext,&extlen,false)) |
|
|
|