diff options
author | kyrol <fci1908@gmail.com> | 2018-11-09 14:53:33 +0100 |
---|---|---|
committer | kyrol <fci1908@gmail.com> | 2018-11-09 14:53:33 +0100 |
commit | 6d929bf4cc48d54db91678a24ef0afb2e20382d7 (patch) | |
tree | 5412e029d205992abfaaff72d2a17c135c6913cd /src/lib/protocols/ssl.c | |
parent | de9b2b202e77ef6a2a4442b293859009f005458c (diff) | |
parent | b31337db4a8fadc90ef6e45d761696d1d0d50182 (diff) |
Merge branch 'dev' of https://github.com/ntop/nDPI into dev
Diffstat (limited to 'src/lib/protocols/ssl.c')
-rw-r--r-- | src/lib/protocols/ssl.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/lib/protocols/ssl.c b/src/lib/protocols/ssl.c index 533bc69aa..9f1390d49 100644 --- a/src/lib/protocols/ssl.c +++ b/src/lib/protocols/ssl.c @@ -284,9 +284,18 @@ int getSSLcertificate(struct ndpi_detection_module_struct *ndpi_struct, #endif if(extension_id == 0) { - u_int begin = 0,len; +#if 1 + u_int16_t len; + + len = (packet->payload[offset+extension_offset+3] << 8) + packet->payload[offset+extension_offset+4]; + len = (u_int)ndpi_min(len, buffer_len-1); + strncpy(buffer, (char*)&packet->payload[offset+extension_offset+5], len); + buffer[len] = '\0'; +#else + /* old code */ + u_int begin = 0; char *server_name = (char*)&packet->payload[offset+extension_offset]; - + while(begin < extension_len) { if((!ndpi_isprint(server_name[begin])) || ndpi_ispunct(server_name[begin]) @@ -299,6 +308,8 @@ int getSSLcertificate(struct ndpi_detection_module_struct *ndpi_struct, len = (u_int)ndpi_min(extension_len-begin, buffer_len-1); strncpy(buffer, &server_name[begin], len); buffer[len] = '\0'; +#endif + stripCertificateTrailer(buffer, buffer_len); if(!ndpi_struct->disable_metadata_export) { |