}
SC_ATOMIC_SET(ssl_config.enable_ja3, enable_ja3);
-#ifndef HAVE_NSS
- if (SC_ATOMIC_GET(ssl_config.enable_ja3)) {
- SCLogWarning(SC_WARN_NO_JA3_SUPPORT,
- "no MD5 calculation support built in (LibNSS), disabling JA3");
- SC_ATOMIC_SET(ssl_config.enable_ja3, 0);
- }
-#else
if (RunmodeIsUnittests()) {
SC_ATOMIC_SET(ssl_config.enable_ja3, 1);
}
-#endif
-
} else {
SCLogConfig("Parsed disabled for %s protocol. Protocol detection"
"still on.", proto_name);
*/
void SSLEnableJA3(void)
{
-#ifdef HAVE_NSS
if (ssl_config.disable_ja3) {
return;
}
return;
}
SC_ATOMIC_SET(ssl_config.enable_ja3, 1);
-#endif
}
bool SSLJA3IsEnabled(void)
{
-#ifdef HAVE_NSS
if (SC_ATOMIC_GET(ssl_config.enable_ja3)) {
return true;
}
-#endif
return false;
}
*
*/
-#ifndef HAVE_NSS
-
-static void DetectTlsJa3HashRegisterTests(void)
-{
- /* Don't register any tests */
-}
-
-#else /* HAVE_NSS */
-
/**
* \test Test matching on a simple client hello packet
*/
UtRegisterTest("DetectTlsJa3HashTest01", DetectTlsJa3HashTest01);
UtRegisterTest("DetectTlsJa3HashTest02", DetectTlsJa3HashTest02);
}
-
-#endif /* HAVE_NSS */
*
*/
-#ifndef HAVE_NSS
-
-static void DetectTlsJa3StringRegisterTests(void)
-{
- /* Don't register any tests */
-}
-
-#else /* HAVE_NSS */
-
/**
* \test Test matching on a simple client hello packet
*/
{
UtRegisterTest("DetectTlsJa3StringTest01", DetectTlsJa3StringTest01);
}
-
-#endif /* HAVE_NSS */
*
*/
-#ifndef HAVE_NSS
-
-static void DetectTlsJa3SHashRegisterTests(void)
-{
- /* Don't register any tests */
-}
-
-#else /* HAVE_NSS */
-
/**
* \test Test matching on a JA3S hash from a ServerHello record
*/
{
UtRegisterTest("DetectTlsJa3SHashTest01", DetectTlsJa3SHashTest01);
}
-
-#endif /* HAVE_NSS */
* 02110-1301, USA.
*/
-#ifndef HAVE_NSS
-
-static void DetectTlsJa3SStringRegisterTests(void)
-{
- /* Don't register any tests */
-}
-
-#else /* HAVE_NSS */
-
/**
* \test Test matching on a simple client hello packet
*/
{
UtRegisterTest("DetectTlsJa3SStringTest01", DetectTlsJa3SStringTest01);
}
-
-#endif /* HAVE_NSS */
#include "util-validate.h"
#include "util-ja3.h"
-#ifdef HAVE_NSS
-#include <sechash.h>
-#endif
-
#define MD5_STRING_LENGTH 33
/**
*/
char *Ja3GenerateHash(JA3Buffer *buffer)
{
-
-#ifdef HAVE_NSS
if (buffer == NULL) {
SCLogError(SC_ERR_INVALID_ARGUMENT, "Buffer should not be NULL");
return NULL;
return NULL;
}
- unsigned char md5[MD5_LENGTH];
- HASH_HashBuf(HASH_AlgMD5, md5, (unsigned char *)buffer->data, buffer->used);
+ unsigned char md5[SC_MD5_LEN];
+ SCMd5HashBuffer((unsigned char *)buffer->data, buffer->used, md5, sizeof(md5));
int i, x;
- for (i = 0, x = 0; x < MD5_LENGTH; x++) {
+ for (i = 0, x = 0; x < SC_MD5_LEN; x++) {
i += snprintf(ja3_hash + i, MD5_STRING_LENGTH - i, "%02x", md5[x]);
}
return ja3_hash;
-#else
- return NULL;
-#endif /* HAVE_NSS */
-
}
/**
return 1;
}
-#ifndef HAVE_NSS
- else {
- if (strcmp(type, "rule") != 0) {
- SCLogWarning(SC_WARN_NO_JA3_SUPPORT,
- "no MD5 calculation support built in (LibNSS), skipping %s",
- type);
- }
- return 1;
- }
-#endif /* HAVE_NSS */
-
return 0;
}