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 <[email protected]>: > 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 Balaceanu<[email protected]>: >>>> >>>> Module: sip-router >>>> Branch: master >>>> Commit: ff91a65db150210a0c55ce57df9f476a9e0ee25e >>>> URL: >>>> http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=ff91a65db150210a0c55ce57df9f476a9e0ee25e >>>> >>>> Author: lucian balanceanu<[email protected]> >>>> Committer: lucian balanceanu<[email protected]> >>>> 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 >>>> [email protected] >>>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev >>> >>> >>> >> >> >> _______________________________________________ >> sr-dev mailing list >> [email protected] >> 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 > [email protected] > http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev -- Carsten Bock CEO (Geschäftsführer) ng-voice GmbH Schomburgstr. 80 D-22767 Hamburg / Germany http://www.ng-voice.com mailto:[email protected] Office +49 40 34927219 Fax +49 40 34927220 Sitz der Gesellschaft: Hamburg Registergericht: Amtsgericht Hamburg, HRB 120189 Geschäftsführer: Carsten Bock Ust-ID: DE279344284 Hier finden Sie unsere handelsrechtlichen Pflichtangaben: http://www.ng-voice.com/imprint/ _______________________________________________ sr-dev mailing list [email protected] http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
