Your message dated Mon, 22 Jun 2015 10:00:28 +0000
with message-id <[email protected]>
and subject line Bug#764778: fixed in srtp 1.5.2~dfsg-1
has caused the Debian Bug report #764778,
regarding libsrtp0: Symbol conflict with SSL library
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
764778: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=764778
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: libsrtp0
Version: 1.4.5~20130609~dfsg-1
Severity: important
Tags: upstream patch

Hi,

libsrtp defines the following SHA1 functions:

sha1
sha1_init
sha1_update
sha1_final
sha1_core

The first three of these names conflict with symbols exported by polarssl.
This is preventing applications from linking against both libraries, which
for example the current version of Linphone (3.7) needs to do for secure
communication.

Please consider the attached patch which renames the SHA1 functions. This
should not cause a problem for programs using libsrtp because the functions
are only used internally within the library.

Upstream bug: https://github.com/cisco/libsrtp/issues/28
Red Hat bug: https://bugzilla.redhat.com/show_bug.cgi?id=956340

Many thanks,
Si Padmore.

-- System Information:
Debian Release: 7.6
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable')
Description: Rename sha1 symbols that conflict with polarssl
 The names of the functions defined in crypto/hash/sha1.c conflict with
 some library functions exported by polarssl. This patch renames the
 functions in libsrtp.
 The functions are only used internally in libsrtp so this change should
 not cause a problem for programs using this library.
Author: Si Padmore <[email protected]>
Last-Update: 2014-10-10

--- srtp-1.4.5~20130609~dfsg.orig/crypto/include/sha1.h
+++ srtp-1.4.5~20130609~dfsg/crypto/include/sha1.h
@@ -58,43 +58,43 @@ typedef struct {
 } sha1_ctx_t;
 
 /*
- * sha1(&ctx, msg, len, output) hashes the len octets starting at msg
+ * srtp_sha1(&ctx, msg, len, output) hashes the len octets starting at msg
  * into the SHA1 context, then writes the result to the 20 octets at
  * output
  * 
  */
 
 void
-sha1(const uint8_t *message,  int octets_in_msg, uint32_t output[5]);
+srtp_sha1(const uint8_t *message,  int octets_in_msg, uint32_t output[5]);
 
 /*
- * sha1_init(&ctx) initializes the SHA1 context ctx
+ * srtp_sha1_init(&ctx) initializes the SHA1 context ctx
  * 
- * sha1_update(&ctx, msg, len) hashes the len octets starting at msg
+ * srtp_sha1_update(&ctx, msg, len) hashes the len octets starting at msg
  * into the SHA1 context
  * 
- * sha1_final(&ctx, output) performs the final processing of the SHA1
+ * srtp_sha1_final(&ctx, output) performs the final processing of the SHA1
  * context and writes the result to the 20 octets at output
  *
  */
 
 void
-sha1_init(sha1_ctx_t *ctx);
+srtp_sha1_init(sha1_ctx_t *ctx);
 
 void
-sha1_update(sha1_ctx_t *ctx, const uint8_t *M, int octets_in_msg);
+srtp_sha1_update(sha1_ctx_t *ctx, const uint8_t *M, int octets_in_msg);
 
 void
-sha1_final(sha1_ctx_t *ctx, uint32_t output[5]);
+srtp_sha1_final(sha1_ctx_t *ctx, uint32_t output[5]);
 
 /*
- * The sha1_core function is INTERNAL to SHA-1, but it is declared
+ * The srtp_sha1_core function is INTERNAL to SHA-1, but it is declared
  * here because it is also used by the cipher SEAL 3.0 in its key
  * setup algorithm.  
  */
 
 /*
- *  sha1_core(M, H) computes the core sha1 compression function, where M is
+ *  srtp_sha1_core(M, H) computes the core sha1 compression function, where M is
  *  the next part of the message and H is the intermediate state {H0,
  *  H1, ...}
  *
@@ -103,6 +103,6 @@ sha1_final(sha1_ctx_t *ctx, uint32_t out
  */
 
 void
-sha1_core(const uint32_t M[16], uint32_t hash_value[5]);
+srtp_sha1_core(const uint32_t M[16], uint32_t hash_value[5]);
      
 #endif /* SHA1_H */
--- srtp-1.4.5~20130609~dfsg.orig/crypto/hash/hmac.c
+++ srtp-1.4.5~20130609~dfsg/crypto/hash/hmac.c
@@ -137,10 +137,10 @@ hmac_init(hmac_ctx_t *state, const uint8
   debug_print(mod_hmac, "ipad: %s", octet_string_hex_string(ipad, 64));
   
   /* initialize sha1 context */
-  sha1_init(&state->init_ctx);
+  srtp_sha1_init(&state->init_ctx);
 
   /* hash ipad ^ key */
-  sha1_update(&state->init_ctx, ipad, 64);
+  srtp_sha1_update(&state->init_ctx, ipad, 64);
   memcpy(&state->ctx, &state->init_ctx, sizeof(sha1_ctx_t)); 
 
   return err_status_ok;
@@ -161,7 +161,7 @@ hmac_update(hmac_ctx_t *state, const uin
 	      octet_string_hex_string(message, msg_octets));
   
   /* hash message into sha1 context */
-  sha1_update(&state->ctx, message, msg_octets);
+  srtp_sha1_update(&state->ctx, message, msg_octets);
 
   return err_status_ok;
 }
@@ -179,7 +179,7 @@ hmac_compute(hmac_ctx_t *state, const vo
   
   /* hash message, copy output into H */
   hmac_update(state, (const uint8_t*)message, msg_octets);
-  sha1_final(&state->ctx, H);
+  srtp_sha1_final(&state->ctx, H);
 
   /*
    * note that we don't need to debug_print() the input, since the
@@ -189,16 +189,16 @@ hmac_compute(hmac_ctx_t *state, const vo
 	      octet_string_hex_string((uint8_t *)H, 20));
 
   /* re-initialize hash context */
-  sha1_init(&state->ctx);
+  srtp_sha1_init(&state->ctx);
   
   /* hash opad ^ key  */
-  sha1_update(&state->ctx, (uint8_t *)state->opad, 64);
+  srtp_sha1_update(&state->ctx, (uint8_t *)state->opad, 64);
 
   /* hash the result of the inner hash */
-  sha1_update(&state->ctx, (uint8_t *)H, 20);
+  srtp_sha1_update(&state->ctx, (uint8_t *)H, 20);
   
   /* the result is returned in the array hash_value[] */
-  sha1_final(&state->ctx, hash_value);
+  srtp_sha1_final(&state->ctx, hash_value);
 
   /* copy hash_value to *result */
   for (i=0; i < tag_len; i++)    
--- srtp-1.4.5~20130609~dfsg.orig/crypto/hash/sha1.c
+++ srtp-1.4.5~20130609~dfsg/crypto/hash/sha1.c
@@ -74,17 +74,17 @@ uint32_t SHA_K2 = 0x8F1BBCDC;   /* Kt fo
 uint32_t SHA_K3 = 0xCA62C1D6;   /* Kt for 60 <= t <= 79 */
 
 void
-sha1(const uint8_t *msg,  int octets_in_msg, uint32_t hash_value[5]) {
+srtp_sha1(const uint8_t *msg,  int octets_in_msg, uint32_t hash_value[5]) {
   sha1_ctx_t ctx;
 
-  sha1_init(&ctx);
-  sha1_update(&ctx, msg, octets_in_msg);
-  sha1_final(&ctx, hash_value);
+  srtp_sha1_init(&ctx);
+  srtp_sha1_update(&ctx, msg, octets_in_msg);
+  srtp_sha1_final(&ctx, hash_value);
 
 }
 
 /*
- *  sha1_core(M, H) computes the core compression function, where M is
+ *  srtp_sha1_core(M, H) computes the core compression function, where M is
  *  the next part of the message (in network byte order) and H is the
  *  intermediate state { H0, H1, ...} (in host byte order)
  *
@@ -96,7 +96,7 @@ sha1(const uint8_t *msg,  int octets_in_
  */
 
 void
-sha1_core(const uint32_t M[16], uint32_t hash_value[5]) {
+srtp_sha1_core(const uint32_t M[16], uint32_t hash_value[5]) {
   uint32_t H0;
   uint32_t H1;
   uint32_t H2;
@@ -183,7 +183,7 @@ sha1_core(const uint32_t M[16], uint32_t
 }
 
 void
-sha1_init(sha1_ctx_t *ctx) {
+srtp_sha1_init(sha1_ctx_t *ctx) {
 
   /* initialize state vector */
   ctx->H[0] = 0x67452301;
@@ -201,7 +201,7 @@ sha1_init(sha1_ctx_t *ctx) {
 }
 
 void
-sha1_update(sha1_ctx_t *ctx, const uint8_t *msg, int octets_in_msg) {
+srtp_sha1_update(sha1_ctx_t *ctx, const uint8_t *msg, int octets_in_msg) {
   int i;
   uint8_t *buf = (uint8_t *)ctx->M;
 
@@ -224,13 +224,13 @@ sha1_update(sha1_ctx_t *ctx, const uint8
 
       /* process a whole block */
 
-      debug_print(mod_sha1, "(update) running sha1_core()", NULL);
+      debug_print(mod_sha1, "(update) running srtp_sha1_core()", NULL);
 
-      sha1_core(ctx->M, ctx->H);
+      srtp_sha1_core(ctx->M, ctx->H);
 
     } else {
 
-      debug_print(mod_sha1, "(update) not running sha1_core()", NULL);
+      debug_print(mod_sha1, "(update) not running srtp_sha1_core()", NULL);
 
       for (i=ctx->octets_in_buffer; 
 	   i < (ctx->octets_in_buffer + octets_in_msg); i++)
@@ -244,12 +244,12 @@ sha1_update(sha1_ctx_t *ctx, const uint8
 }
 
 /*
- * sha1_final(ctx, output) computes the result for ctx and copies it
+ * srtp_sha1_final(ctx, output) computes the result for ctx and copies it
  * into the twenty octets located at *output
  */
 
 void
-sha1_final(sha1_ctx_t *ctx, uint32_t *output) {
+srtp_sha1_final(sha1_ctx_t *ctx, uint32_t *output) {
   uint32_t A, B, C, D, E, TEMP;
   uint32_t W[80];  
   int i, t;
@@ -336,11 +336,11 @@ sha1_final(sha1_ctx_t *ctx, uint32_t *ou
 
   }
 
-  debug_print(mod_sha1, "(final) running sha1_core()", NULL);
+  debug_print(mod_sha1, "(final) running srtp_sha1_core()", NULL);
 
   if (ctx->octets_in_buffer >= 56) {
 
-    debug_print(mod_sha1, "(final) running sha1_core() again", NULL);
+    debug_print(mod_sha1, "(final) running srtp_sha1_core() again", NULL);
 
     /* we need to do one final run of the compression algo */
 
--- srtp-1.4.5~20130609~dfsg.orig/crypto/test/sha1_driver.c
+++ srtp-1.4.5~20130609~dfsg/crypto/test/sha1_driver.c
@@ -107,9 +107,9 @@ sha1_test_case_validate(const hash_test_
   if (test_case->data_len > MAX_HASH_DATA_LEN)
     return err_status_bad_param;
 
-  sha1_init(&ctx);
-  sha1_update(&ctx, test_case->data, test_case->data_len);
-  sha1_final(&ctx, hash_value);
+  srtp_sha1_init(&ctx);
+  srtp_sha1_update(&ctx, test_case->data, test_case->data_len);
+  srtp_sha1_final(&ctx, hash_value);
   if (0 == memcmp(test_case->hash, hash_value, 20)) {
 #if VERBOSE
     printf("PASSED: reference value: %s\n", 

--- End Message ---
--- Begin Message ---
Source: srtp
Source-Version: 1.5.2~dfsg-1

We believe that the bug you reported is fixed in the latest version of
srtp, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Jonas Smedegaard <[email protected]> (supplier of updated srtp package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.8
Date: Tue, 02 Jun 2015 23:31:26 +0200
Source: srtp
Binary: libsrtp-dev libsrtp1 libsrtp1-dbg srtp-docs srtp-utils
Architecture: source amd64 all
Version: 1.5.2~dfsg-1
Distribution: experimental
Urgency: medium
Maintainer: Jonas Smedegaard <[email protected]>
Changed-By: Jonas Smedegaard <[email protected]>
Description:
 libsrtp-dev - Secure RTP (SRTP) and UST Reference Implementations - development
 libsrtp1   - Secure RTP (SRTP) and UST Reference Implementations - shared libr
 libsrtp1-dbg - Secure RTP (SRTP) and UST Reference Implementations - debugging 
s
 srtp-docs  - Secure RTP (SRTP) and UST Reference Implementations - documentati
 srtp-utils - Secure RTP (SRTP) and UST Reference Implementations - utilities
Closes: 628559 764778 765173
Changes:
 srtp (1.5.2~dfsg-1) experimental; urgency=medium
 .
   [ upstream ]
   * New release(s).
 .
   [ Daniel Pocock ]
   * Add myself to uploaders.
 .
   [ Jonas Smedegaard ]
   * Acknowledge NMU, with a few adjustments:
     + Fix revert accidental change to .gitignore.
     + Refresh patch 2002 with shortening quilt options.
     Closes: bug##752970. Thanks to Jonathan Wiltshire.
   * Declare compliance with Debian Policy 3.9.6.
   * Fix use canonical URL in Vcs-Git.
   * Update Vcs-Browser URL to use cgit web frontend.
   * Update copyright info:
     + Extend coverage for main upstream author.
     + Extend coverage for myself to include current year.
     + Use License-Grant and License-Reference fields.
       Thanks to Ben Finney.
     + Drop accidental duplicate License section for GAP~configure.
   * Update hints so get-orig-source target fetches released tarballs.
   * Modernize git-buildpackage config: Drop "git-" prefix.
   * Bump debhelper compatibility level to 9.
   * Add lintian override regarding license in License-Reference field.
     See bug#786450.
   * Provide unversioned libsrtp-dev package (not versioned + virtual).
   * Install pkgconfig file.
     Build-depend on, and have -dev package depend on, pkg-config.
   * Include rtp_decoder in -utils package.
     Build-depend on, and have -dev package depend on, libpcap-dev.
   * Drop patches 1001 1002 1008 applied upstream.
     Unfuzz remaining patches.
   * Add patch cherry-picked upstream renaming SHA1 functions to avoid
     conflicts with e.g. polarssl.
     Closes: bug#764778. Thanks to Si Padmore.
   * Make library package multi-arch aware.
     Closes: bug#765173. Thanks to Michał Mirosław.
   * Drop fallback-build-dependencies for doxygen-latex: Unneeded even in
     oldstable.
   * Fix declare arch-indep build-dependency on doxygen-latex as such.
     Closes: Bug#628559. Thanks to George Danchev.
   * Add -dbg package.
   * Stop use or build-depend on obsolete hardening-includes.
Checksums-Sha1:
 bb4a4cc4024551e855f1f03ac17d046f2bf54f0a 2216 srtp_1.5.2~dfsg-1.dsc
 995bc4a94416b2de341c9625d68c7b1c1c79e382 278074 srtp_1.5.2~dfsg.orig.tar.gz
 26b663a3c23a03b6a221b68f11279477de9da7ec 16556 srtp_1.5.2~dfsg-1.debian.tar.xz
 7c9866439b3ac5388d1c42d81cc7b899a1444954 98634 
libsrtp-dev_1.5.2~dfsg-1_amd64.deb
 ccf0d1e324c02c3a35a64d16a3c432339c3fd8ab 428388 
libsrtp1-dbg_1.5.2~dfsg-1_amd64.deb
 461641b6863974152e9f119f41ab8f7cb46a3c42 68214 libsrtp1_1.5.2~dfsg-1_amd64.deb
 fbd74c2b6bf7d8f2095445049c66bbb4e79792e3 267174 srtp-docs_1.5.2~dfsg-1_all.deb
 d7d0ae1e00a3d4a2c59fe92ce529f01c5c246212 110780 
srtp-utils_1.5.2~dfsg-1_amd64.deb
Checksums-Sha256:
 b29a169dd4d9028fd428bfde895ed61ac0388977d6d2eba906124f46676d0304 2216 
srtp_1.5.2~dfsg-1.dsc
 7eaaa1f7f1f5687e83816c9747af9920532d63eb6a6e66a915dd00063e28bca8 278074 
srtp_1.5.2~dfsg.orig.tar.gz
 133b26515391b174e3b3e2a1d3fbc66e932e5af7093ffd44122f5c9ab4ab07b4 16556 
srtp_1.5.2~dfsg-1.debian.tar.xz
 6f66cb2fa43c5c203666da8197803e3504f7911da4184ee6723de5459efe58a4 98634 
libsrtp-dev_1.5.2~dfsg-1_amd64.deb
 f81e5075c877d75ada901faec08e1a8a9a37e35d2a33e9caadf4759fa8ac2846 428388 
libsrtp1-dbg_1.5.2~dfsg-1_amd64.deb
 0ec9a2ec267b32ab15a0a383e712884b8a38aaaacbf6e82ddf848ea07a88cd6e 68214 
libsrtp1_1.5.2~dfsg-1_amd64.deb
 c5c205a7586773d5615e4f5edbe825030f157f0c6fc86baa1f14f2f141998993 267174 
srtp-docs_1.5.2~dfsg-1_all.deb
 09ea2240d40a6fdc7451e923175009781a1bb9b7784affd63c87f656648d1201 110780 
srtp-utils_1.5.2~dfsg-1_amd64.deb
Files:
 1c09c6acbb26c276cd5ebefd8db3502c 2216 libs optional srtp_1.5.2~dfsg-1.dsc
 fd15bf658c1f5df13fa780e804770f0b 278074 libs optional 
srtp_1.5.2~dfsg.orig.tar.gz
 1ea9caf7df18453fcaccc72f5ff0c2c5 16556 libs optional 
srtp_1.5.2~dfsg-1.debian.tar.xz
 a1ccee547a22467d3f198464cb22b67d 98634 libdevel optional 
libsrtp-dev_1.5.2~dfsg-1_amd64.deb
 71fa61a22751750e558126d12153b155 428388 debug extra 
libsrtp1-dbg_1.5.2~dfsg-1_amd64.deb
 a19760504b38110c16f91b3f2221fe14 68214 libs optional 
libsrtp1_1.5.2~dfsg-1_amd64.deb
 97789ee3f2989723f8db450b63ac3df2 267174 doc optional 
srtp-docs_1.5.2~dfsg-1_all.deb
 4dcb1e43201e5eeaf0af226f356a2483 110780 libs optional 
srtp-utils_1.5.2~dfsg-1_amd64.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQIcBAEBAgAGBQJVbiNqAAoJECx8MUbBoAEhsXUP+wa2f4nHNefuw4x37NDenUXM
xS6JQcj0wU+rnXrDllin7j13gDpdW/cFZtKDYKzhGjFpk7Jk11UZLdoVHlWxULsr
agyQdq/YtFk+m8fKmaiXgCAK8Bu05ppkI52Du+kuWnTXqrpKGpSKA3sfpQZAOhxA
/bMuSjrL0Ady4N+RK2VPWZ1mrgp50wOrc7A+nunFKgpgZOsfRc/CBOT/0uLaK26d
xGnVgRTJTusicUPBjCeDmyIBfOQq/ibFTYO01WG8gyPLnLxL9LVsVFP7JMCO+32O
neaH3JP8Oyj9GoZKrnZpQUhSqFQJaCa+FbDauK1r5nNDUZJDGBaj4lASJBpANQWq
IdTS6BZ3+/e0TMEzxTB9fGB+I3eNNZ2ZMoJq+jyFuUDueBI5cRKVzx2XgDphLlrm
IWH/RFyhAPgVi4874e+VZlIgOPklKpJq62xpA4B4PSXMOH9Lz6hzjMs/f2DY4pWn
wYRyECaUJ/3gscZY8X/zin/FOZYGcbk7YK9d1Li5n0S7RDKysWgsIyyAEexwUOvk
K3/p87UbyVJZffQ8QaA62Kx6mYIjIRTUYw8KE9YailLL+OMLmBHD6k5bl6fAVetu
r895v11wvQKQRqJ6w15JEQ/zJgn8HFv+Nyvz/nYAQRX9ogHG+TJoXrL4n8EE3qHI
3zKmR0gudPB9ff/eHu/g
=bnlx
-----END PGP SIGNATURE-----

--- End Message ---

Reply via email to