@@ -188,8 +188,13 @@ char *getkey(apr_pool_t *mp) {
188188 *
189189 * \retval hex_digest The MAC
190190 */
191+ #ifdef __NetBSD__
192+ char * mschmac (modsec_rec * msr , const char * key , int key_len ,
193+ unsigned char * msg , int msglen ) {
194+ #else
191195char * hmac (modsec_rec * msr , const char * key , int key_len ,
192196 unsigned char * msg , int msglen ) {
197+ #endif
193198 apr_sha1_ctx_t ctx ;
194199 unsigned char digest [APR_SHA1_DIGESTSIZE ];
195200 unsigned char hmac_ipad [HMAC_PAD_SIZE ], hmac_opad [HMAC_PAD_SIZE ];
@@ -1260,8 +1265,11 @@ char *do_hash_link(modsec_rec *msr, char *link, int type) {
12601265 }
12611266
12621267 if (msr -> txcfg -> crypto_key_add == HASH_KEYONLY )
1268+ #ifdef __NetBSD__
1269+ hash_value = mschmac (msr , msr -> txcfg -> crypto_key , msr -> txcfg -> crypto_key_len , (unsigned char * ) path_chunk + 1 , strlen ((char * )path_chunk )- 1 );
1270+ #else
12631271 hash_value = hmac (msr , msr -> txcfg -> crypto_key , msr -> txcfg -> crypto_key_len , (unsigned char * ) path_chunk + 1 , strlen ((char * )path_chunk )- 1 );
1264-
1272+ #endif
12651273 if (msr -> txcfg -> crypto_key_add == HASH_SESSIONID ) {
12661274 if (msr -> sessionid == NULL || strlen (msr -> sessionid ) == 0 ) {
12671275#if AP_SERVER_MAJORVERSION_NUMBER > 1 && AP_SERVER_MINORVERSION_NUMBER > 2
@@ -1272,13 +1280,21 @@ char *do_hash_link(modsec_rec *msr, char *link, int type) {
12721280 if (msr -> txcfg -> debuglog_level >= 4 )
12731281 msr_log (msr , 4 , "Session id is empty. Using REMOTE_IP" );
12741282 msr -> txcfg -> crypto_key_len = strlen (new_pwd );
1283+ #ifdef __NetBSD__
1284+ hash_value = mschmac (msr , new_pwd , msr -> txcfg -> crypto_key_len , (unsigned char * ) path_chunk + 1 , strlen ((char * )path_chunk )- 1 );
1285+ #else
12751286 hash_value = hmac (msr , new_pwd , msr -> txcfg -> crypto_key_len , (unsigned char * ) path_chunk + 1 , strlen ((char * )path_chunk )- 1 );
1287+ #endif
12761288 } else {
12771289 const char * new_pwd = apr_psprintf (msr -> mp ,"%s%s" , msr -> txcfg -> crypto_key , msr -> sessionid );
12781290 if (msr -> txcfg -> debuglog_level >= 4 )
12791291 msr_log (msr , 4 , "Using session id [%s]" , msr -> sessionid );
12801292 msr -> txcfg -> crypto_key_len = strlen (new_pwd );
1293+ #ifdef __NetBSD__
1294+ hash_value = mschmac (msr , new_pwd , msr -> txcfg -> crypto_key_len , (unsigned char * ) path_chunk + 1 , strlen ((char * )path_chunk )- 1 );
1295+ #else
12811296 hash_value = hmac (msr , new_pwd , msr -> txcfg -> crypto_key_len , (unsigned char * ) path_chunk + 1 , strlen ((char * )path_chunk )- 1 );
1297+ #endif
12821298 }
12831299 }
12841300
@@ -1289,7 +1305,11 @@ char *do_hash_link(modsec_rec *msr, char *link, int type) {
12891305 const char * new_pwd = apr_psprintf (msr -> mp ,"%s%s" , msr -> txcfg -> crypto_key , msr -> r -> connection -> remote_ip );
12901306#endif
12911307 msr -> txcfg -> crypto_key_len = strlen (new_pwd );
1308+ #ifdef __NetBSD__
1309+ hash_value = mschmac (msr , new_pwd , msr -> txcfg -> crypto_key_len , (unsigned char * ) path_chunk + 1 , strlen ((char * )path_chunk )- 1 );
1310+ #else
12921311 hash_value = hmac (msr , new_pwd , msr -> txcfg -> crypto_key_len , (unsigned char * ) path_chunk + 1 , strlen ((char * )path_chunk )- 1 );
1312+ #endif
12931313 }
12941314 } else {
12951315 return NULL ;
@@ -1303,8 +1323,11 @@ char *do_hash_link(modsec_rec *msr, char *link, int type) {
13031323 }
13041324
13051325 if (msr -> txcfg -> crypto_key_add == HASH_KEYONLY )
1326+ #ifdef __NetBSD__
1327+ hash_value = mschmac (msr , msr -> txcfg -> crypto_key , msr -> txcfg -> crypto_key_len , (unsigned char * ) path_chunk + 1 , strlen ((char * )path_chunk )- 1 );
1328+ #else
13061329 hash_value = hmac (msr , msr -> txcfg -> crypto_key , msr -> txcfg -> crypto_key_len , (unsigned char * ) path_chunk + 1 , strlen ((char * )path_chunk )- 1 );
1307-
1330+ #endif
13081331 if (msr -> txcfg -> crypto_key_add == HASH_SESSIONID ) {
13091332 if (msr -> sessionid == NULL || strlen (msr -> sessionid ) == 0 ) {
13101333#if AP_SERVER_MAJORVERSION_NUMBER > 1 && AP_SERVER_MINORVERSION_NUMBER > 2
@@ -1315,13 +1338,21 @@ char *do_hash_link(modsec_rec *msr, char *link, int type) {
13151338 if (msr -> txcfg -> debuglog_level >= 4 )
13161339 msr_log (msr , 4 , "Session id is empty. Using REMOTE_IP" );
13171340 msr -> txcfg -> crypto_key_len = strlen (new_pwd );
1341+ #ifdef __NetBSD__
1342+ hash_value = mschmac (msr , new_pwd , msr -> txcfg -> crypto_key_len , (unsigned char * ) path_chunk + 1 , strlen ((char * )path_chunk )- 1 );
1343+ #else
13181344 hash_value = hmac (msr , new_pwd , msr -> txcfg -> crypto_key_len , (unsigned char * ) path_chunk + 1 , strlen ((char * )path_chunk )- 1 );
1345+ #endif
13191346 } else {
13201347 const char * new_pwd = apr_psprintf (msr -> mp ,"%s%s" , msr -> txcfg -> crypto_key , msr -> sessionid );
13211348 if (msr -> txcfg -> debuglog_level >= 4 )
13221349 msr_log (msr , 4 , "Using session id [%s]" , msr -> sessionid );
13231350 msr -> txcfg -> crypto_key_len = strlen (new_pwd );
1351+ #ifdef __NetBSD__
1352+ hash_value = mschmac (msr , new_pwd , msr -> txcfg -> crypto_key_len , (unsigned char * ) path_chunk + 1 , strlen ((char * )path_chunk )- 1 );
1353+ #else
13241354 hash_value = hmac (msr , new_pwd , msr -> txcfg -> crypto_key_len , (unsigned char * ) path_chunk + 1 , strlen ((char * )path_chunk )- 1 );
1355+ #endif
13251356 }
13261357 }
13271358
@@ -1332,7 +1363,11 @@ char *do_hash_link(modsec_rec *msr, char *link, int type) {
13321363 const char * new_pwd = apr_psprintf (msr -> mp ,"%s%s" , msr -> txcfg -> crypto_key , msr -> r -> connection -> remote_ip );
13331364#endif
13341365 msr -> txcfg -> crypto_key_len = strlen (new_pwd );
1366+ #ifdef __NetBSD__
1367+ hash_value = mschmac (msr , new_pwd , msr -> txcfg -> crypto_key_len , (unsigned char * ) path_chunk + 1 , strlen ((char * )path_chunk )- 1 );
1368+ #else
13351369 hash_value = hmac (msr , new_pwd , msr -> txcfg -> crypto_key_len , (unsigned char * ) path_chunk + 1 , strlen ((char * )path_chunk )- 1 );
1370+ #endif
13361371 }
13371372 } else {
13381373 return NULL ;
@@ -1344,8 +1379,11 @@ char *do_hash_link(modsec_rec *msr, char *link, int type) {
13441379 }
13451380
13461381 if (msr -> txcfg -> crypto_key_add == HASH_KEYONLY )
1382+ #ifdef __NetBSD__
1383+ hash_value = mschmac (msr , msr -> txcfg -> crypto_key , msr -> txcfg -> crypto_key_len , (unsigned char * ) link + 1 , strlen ((char * )link )- 1 );
1384+ #else
13471385 hash_value = hmac (msr , msr -> txcfg -> crypto_key , msr -> txcfg -> crypto_key_len , (unsigned char * ) link + 1 , strlen ((char * )link )- 1 );
1348-
1386+ #endif
13491387 if (msr -> txcfg -> crypto_key_add == HASH_SESSIONID ) {
13501388 if (msr -> sessionid == NULL || strlen (msr -> sessionid ) == 0 ) {
13511389#if AP_SERVER_MAJORVERSION_NUMBER > 1 && AP_SERVER_MINORVERSION_NUMBER > 2
@@ -1356,13 +1394,21 @@ char *do_hash_link(modsec_rec *msr, char *link, int type) {
13561394 if (msr -> txcfg -> debuglog_level >= 4 )
13571395 msr_log (msr , 4 , "Session id is empty. Using REMOTE_IP" );
13581396 msr -> txcfg -> crypto_key_len = strlen (new_pwd );
1397+ #ifdef __NetBSD__
1398+ hash_value = mschmac (msr , new_pwd , msr -> txcfg -> crypto_key_len , (unsigned char * ) link + 1 , strlen ((char * )link )- 1 );
1399+ #else
13591400 hash_value = hmac (msr , new_pwd , msr -> txcfg -> crypto_key_len , (unsigned char * ) link + 1 , strlen ((char * )link )- 1 );
1401+ #endif
13601402 } else {
13611403 const char * new_pwd = apr_psprintf (msr -> mp ,"%s%s" , msr -> txcfg -> crypto_key , msr -> sessionid );
13621404 if (msr -> txcfg -> debuglog_level >= 4 )
13631405 msr_log (msr , 4 , "Using session id [%s]" , msr -> sessionid );
13641406 msr -> txcfg -> crypto_key_len = strlen (new_pwd );
1407+ #ifdef __NetBSD__
1408+ hash_value = mschmac (msr , new_pwd , msr -> txcfg -> crypto_key_len , (unsigned char * ) link + 1 , strlen ((char * )link )- 1 );
1409+ #else
13651410 hash_value = hmac (msr , new_pwd , msr -> txcfg -> crypto_key_len , (unsigned char * ) link + 1 , strlen ((char * )link )- 1 );
1411+ #endif
13661412 }
13671413 }
13681414
@@ -1373,7 +1419,11 @@ char *do_hash_link(modsec_rec *msr, char *link, int type) {
13731419 const char * new_pwd = apr_psprintf (msr -> mp ,"%s%s" , msr -> txcfg -> crypto_key , msr -> r -> connection -> remote_ip );
13741420#endif
13751421 msr -> txcfg -> crypto_key_len = strlen (new_pwd );
1422+ #ifdef __NetBSD__
1423+ hash_value = mschmac (msr , new_pwd , msr -> txcfg -> crypto_key_len , (unsigned char * ) link + 1 , strlen ((char * )link )- 1 );
1424+ #else
13761425 hash_value = hmac (msr , new_pwd , msr -> txcfg -> crypto_key_len , (unsigned char * ) link + 1 , strlen ((char * )link )- 1 );
1426+ #endif
13771427 }
13781428
13791429 }
@@ -1398,7 +1448,11 @@ char *do_hash_link(modsec_rec *msr, char *link, int type) {
13981448 }
13991449
14001450 if (msr -> txcfg -> crypto_key_add == HASH_KEYONLY )
1451+ #ifdef __NetBSD__
1452+ hash_value = mschmac (msr , msr -> txcfg -> crypto_key , msr -> txcfg -> crypto_key_len , (unsigned char * ) relative_link , strlen ((char * )relative_link ));
1453+ #else
14011454 hash_value = hmac (msr , msr -> txcfg -> crypto_key , msr -> txcfg -> crypto_key_len , (unsigned char * ) relative_link , strlen ((char * )relative_link ));
1455+ #endif
14021456
14031457 if (msr -> txcfg -> crypto_key_add == HASH_SESSIONID ) {
14041458 if (msr -> sessionid == NULL || strlen (msr -> sessionid ) == 0 ) {
@@ -1410,13 +1464,21 @@ char *do_hash_link(modsec_rec *msr, char *link, int type) {
14101464 if (msr -> txcfg -> debuglog_level >= 4 )
14111465 msr_log (msr , 4 , "Session id is empty. Using REMOTE_IP" );
14121466 msr -> txcfg -> crypto_key_len = strlen (new_pwd );
1467+ #ifdef __NetBSD__
1468+ hash_value = mschmac (msr , new_pwd , msr -> txcfg -> crypto_key_len , (unsigned char * ) relative_link , strlen ((char * )relative_link ));
1469+ #else
14131470 hash_value = hmac (msr , new_pwd , msr -> txcfg -> crypto_key_len , (unsigned char * ) relative_link , strlen ((char * )relative_link ));
1471+ #endif
14141472 } else {
14151473 const char * new_pwd = apr_psprintf (msr -> mp ,"%s%s" , msr -> txcfg -> crypto_key , msr -> sessionid );
14161474 if (msr -> txcfg -> debuglog_level >= 4 )
14171475 msr_log (msr , 4 , "Using session id [%s]" , msr -> sessionid );
14181476 msr -> txcfg -> crypto_key_len = strlen (new_pwd );
1477+ #ifdef __NetBSD__
1478+ hash_value = mschmac (msr , new_pwd , msr -> txcfg -> crypto_key_len , (unsigned char * ) relative_link , strlen ((char * )relative_link ));
1479+ #else
14191480 hash_value = hmac (msr , new_pwd , msr -> txcfg -> crypto_key_len , (unsigned char * ) relative_link , strlen ((char * )relative_link ));
1481+ #endif
14201482 }
14211483 }
14221484
@@ -1427,7 +1489,11 @@ char *do_hash_link(modsec_rec *msr, char *link, int type) {
14271489 const char * new_pwd = apr_psprintf (msr -> mp ,"%s%s" , msr -> txcfg -> crypto_key , msr -> r -> connection -> remote_ip );
14281490#endif
14291491 msr -> txcfg -> crypto_key_len = strlen (new_pwd );
1492+ #ifdef __NetBSD__
1493+ hash_value = mschmac (msr , new_pwd , msr -> txcfg -> crypto_key_len , (unsigned char * ) relative_link , strlen ((char * )relative_link ));
1494+ #else
14301495 hash_value = hmac (msr , new_pwd , msr -> txcfg -> crypto_key_len , (unsigned char * ) relative_link , strlen ((char * )relative_link ));
1496+ #endif
14311497 }
14321498
14331499 link = relative_uri ;
0 commit comments