Hello,
I guess libkcore has to be linked against libsrutils, as I could spot quickly dependencies based on latest commit from Lucian.
Look in lib/presence/Makefile, there is an example of adding local lib dependency to another lib.
Cheers, Daniel
On 19/03/14 16:21, Carsten Bock wrote:
Hi Daniel,
i'd have to update a whole bunch of modules, if that's the solution. "PV"-module was only the first in a list... (all modules, who were using the kcore-lib).
Kind regards, Carsten
2014-03-19 15:16 GMT+01:00 Daniel-Constantin Mierla miconda@gmail.com:
Hello,
maybe the lib where you moved the sha files is not in linked by the module -- you have to add it in modules/pv/Makefile.
Cheers, Daniel
On 19/03/14 14:47, Lucian Balaceanu wrote:
Hi Carsten,
Just a short mail to tell you I am looking into this issue.
Thank you
On 03/19/2014 12:35 PM, Carsten Bock wrote:
Hi Lucian,
with your commit i get the following errors, when running latest trunk:
loading modules under
/usr/lib64/kamailio/modules_k/:/usr/lib64/kamailio/modules/:/usr/lib/kamailio/modules_k/:/usr/lib/kamailio/modules/ 0(874033) ERROR:<core> [sr_module.c:599]: load_module(): ERROR: load_module: could not open module </usr/lib64/kamailio/modules/pv.so>: /usr/lib64/kamailio/libkcore.so.1: undefined symbol: SHA384_Init 0(874033) :<core> [cfg.y:3408]: yyerror_at(): parse error in config file /etc/kamailio/kamailio.cfg, line 162, column 12-15: failed to load module [...]
I am running a nightly build on Debian Master to build standard debian packages.
As soon as i revert your change in my local build, everythings fine again.
The kcore library has no longer any reference to the SHA384 functions... can you please check?
Thanks, Carsten
2014-03-18 16:28 GMT+01:00 Lucian Balaceanulucian.balaceanu@1and1.ro:
Module: sip-router Branch: master Commit: ff91a65db150210a0c55ce57df9f476a9e0ee25e URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=ff91a65d...
Author: lucian balanceanulucian.balanceanu@1and1.ro Committer: lucian balanceanulucian.balanceanu@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 */
sr-dev mailing list sr-dev@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
sr-dev mailing list sr-dev@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
-- Daniel-Constantin Mierla - http://www.asipto.com http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda Kamailio World Conference - April 2-4, 2014, Berlin, Germany http://www.kamailioworld.com
sr-dev mailing list sr-dev@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev