Module: sip-router
Branch: master
Commit: ff91a65db150210a0c55ce57df9f476a9e0ee25e
URL:
http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=ff91a65…
Author: lucian balanceanu <lucian.balanceanu(a)1and1.ro>
Committer: lucian balanceanu <lucian.balanceanu(a)1and1.ro>
Date: Tue Mar 18 17:20:36 2014 +0200
pv: changes to SHA string transformations
- addressed memset faulty usage, changed location of sha256 files,
removed sha2utils.h as we can use defines in sha256.h, removed
redundant code
---
lib/kcore/strcommon.c | 12 +++---------
lib/kcore/strcommon.h | 2 +-
sha256.c => lib/srutils/sha256.c | 14 +++++++-------
sha256.h => lib/srutils/sha256.h | 0
modules/pv/pv_trans.c | 13 ++++++-------
sha2utils.h | 17 -----------------
6 files changed, 17 insertions(+), 41 deletions(-)
diff --git a/lib/kcore/strcommon.c b/lib/kcore/strcommon.c
index 9401457..8e57e93 100644
--- a/lib/kcore/strcommon.c
+++ b/lib/kcore/strcommon.c
@@ -125,33 +125,27 @@ void compute_md5(char *dst, char *src, int src_len)
void compute_sha256(char *dst, u_int8_t *src, int src_len)
{
SHA256_CTX ctx256;
- char buf[64];
SHA256_Init(&ctx256);
SHA256_Update(&ctx256, src, src_len);
- SHA256_End(&ctx256, buf);
- strncpy(dst, buf, 64);
+ SHA256_End(&ctx256, dst);
}
/*! \brief Compute SHA384 checksum */
void compute_sha384(char *dst, u_int8_t *src, int src_len)
{
SHA384_CTX ctx384;
- char buf[96];
SHA384_Init(&ctx384);
SHA384_Update(&ctx384, src, src_len);
- SHA384_End(&ctx384, buf);
- strncpy(dst, buf, 96);
+ SHA384_End(&ctx384, dst);
}
/*! \brief Compute SHA512 checksum */
void compute_sha512(char *dst, u_int8_t *src, int src_len)
{
SHA512_CTX ctx512;
- char buf[128];
SHA512_Init(&ctx512);
SHA512_Update(&ctx512, src, src_len);
- SHA512_End(&ctx512, buf);
- strncpy(dst, buf, 128);
+ SHA512_End(&ctx512, dst);
}
/*! \brief Unscape all printable ASCII characters */
diff --git a/lib/kcore/strcommon.h b/lib/kcore/strcommon.h
index 5864ef0..9e81455 100644
--- a/lib/kcore/strcommon.h
+++ b/lib/kcore/strcommon.h
@@ -30,7 +30,7 @@
#include "../../str.h"
#include "../../md5.h"
-#include "../../sha256.h"
+#include "../srutils/sha256.h"
/*
* add backslashes to special characters
diff --git a/sha256.c b/lib/srutils/sha256.c
similarity index 98%
rename from sha256.c
rename to lib/srutils/sha256.c
index 187d11d..087736d 100644
--- a/sha256.c
+++ b/lib/srutils/sha256.c
@@ -12,7 +12,7 @@
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
+ * documentation and/or other materials provided w627ith the distribution.
* 3. Neither the name of the copyright holder nor the names of contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
@@ -624,7 +624,7 @@ void SHA256_Final(sha2_byte digest[], SHA256_CTX* context) {
}
/* Clean up state data: */
- MEMSET_BZERO(context, sizeof(context));
+ MEMSET_BZERO(context, sizeof(*context));
usedspace = 0;
}
@@ -645,7 +645,7 @@ char *SHA256_End(SHA256_CTX* context, char buffer[]) {
}
*buffer = (char)0;
} else {
- MEMSET_BZERO(context, sizeof(context));
+ MEMSET_BZERO(context, sizeof(*context));
}
MEMSET_BZERO(digest, SHA256_DIGEST_LENGTH);
return buffer;
@@ -954,7 +954,7 @@ void SHA512_Final(sha2_byte digest[], SHA512_CTX* context) {
}
/* Zero out state data */
- MEMSET_BZERO(context, sizeof(context));
+ MEMSET_BZERO(context, sizeof(*context));
}
char *SHA512_End(SHA512_CTX* context, char buffer[]) {
@@ -974,7 +974,7 @@ char *SHA512_End(SHA512_CTX* context, char buffer[]) {
}
*buffer = (char)0;
} else {
- MEMSET_BZERO(context, sizeof(context));
+ MEMSET_BZERO(context, sizeof(*context));
}
MEMSET_BZERO(digest, SHA512_DIGEST_LENGTH);
return buffer;
@@ -1029,7 +1029,7 @@ void SHA384_Final(sha2_byte digest[], SHA384_CTX* context) {
}
/* Zero out state data */
- MEMSET_BZERO(context, sizeof(context));
+ MEMSET_BZERO(context, sizeof(*context));
}
char *SHA384_End(SHA384_CTX* context, char buffer[]) {
@@ -1049,7 +1049,7 @@ char *SHA384_End(SHA384_CTX* context, char buffer[]) {
}
*buffer = (char)0;
} else {
- MEMSET_BZERO(context, sizeof(context));
+ MEMSET_BZERO(context, sizeof(*context));
}
MEMSET_BZERO(digest, SHA384_DIGEST_LENGTH);
return buffer;
diff --git a/sha256.h b/lib/srutils/sha256.h
similarity index 100%
rename from sha256.h
rename to lib/srutils/sha256.h
diff --git a/modules/pv/pv_trans.c b/modules/pv/pv_trans.c
index 5250920..868123e 100644
--- a/modules/pv/pv_trans.c
+++ b/modules/pv/pv_trans.c
@@ -47,7 +47,6 @@
#include "../../parser/parse_nameaddr.h"
#include "../../lib/kcore/strcommon.h"
-#include "../../sha2utils.h"
#include "pv_trans.h"
@@ -240,31 +239,31 @@ int tr_eval_string(struct sip_msg *msg, tr_param_t *tp, int
subtype,
if(!(val->flags&PV_VAL_STR))
val->rs.s = int2str(val->ri, &val->rs.len);
compute_sha256(_tr_buffer, (u_int8_t*)val->rs.s, val->rs.len);
- _tr_buffer[SHA256_LEN] = '\0';
+ _tr_buffer[SHA256_DIGEST_STRING_LENGTH -1] = '\0';
val->flags = PV_VAL_STR;
val->ri = 0;
val->rs.s = _tr_buffer;
- val->rs.len = SHA256_LEN;
+ val->rs.len = SHA256_DIGEST_STRING_LENGTH -1 ;
break;
case TR_S_SHA384:
if(!(val->flags&PV_VAL_STR))
val->rs.s = int2str(val->ri, &val->rs.len);
compute_sha384(_tr_buffer, (u_int8_t*)val->rs.s, val->rs.len);
- _tr_buffer[SHA384_LEN] = '\0';
+ _tr_buffer[SHA384_DIGEST_STRING_LENGTH -1] = '\0';
val->flags = PV_VAL_STR;
val->ri = 0;
val->rs.s = _tr_buffer;
- val->rs.len = SHA384_LEN;
+ val->rs.len = SHA384_DIGEST_STRING_LENGTH -1;
break;
case TR_S_SHA512:
if(!(val->flags&PV_VAL_STR))
val->rs.s = int2str(val->ri, &val->rs.len);
compute_sha512(_tr_buffer, (u_int8_t*)val->rs.s, val->rs.len);
- _tr_buffer[SHA512_LEN] = '\0';
+ _tr_buffer[SHA512_DIGEST_STRING_LENGTH -1] = '\0';
val->flags = PV_VAL_STR;
val->ri = 0;
val->rs.s = _tr_buffer;
- val->rs.len = SHA512_LEN;
+ val->rs.len = SHA512_DIGEST_STRING_LENGTH -1;
break;
case TR_S_ENCODEHEXA:
if(!(val->flags&PV_VAL_STR))
diff --git a/sha2utils.h b/sha2utils.h
deleted file mode 100644
index b3c5c96..0000000
--- a/sha2utils.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/*!
- * \file
- * \brief SIP-router core :: sha2 hash support
- * \ingroup core
- * Module: \ref core
- */
-
-#ifndef _SHA2UTILS_H
-#define _SHA2UTILS_H
-
-#include "str.h"
-
-#define SHA256_LEN 64
-#define SHA384_LEN 96
-#define SHA512_LEN 128
-
-#endif /* _SHA2UTILS_H */