From b08766c8e46956daba010044b00c97f78b598780 Mon Sep 17 00:00:00 2001
From: Michael Santos <michael.santos@gmail.com>
Date: Sun, 24 May 2015 10:55:02 -0400
Subject: [PATCH] Namespace SHA functions
Fix statically linking against libstrophe by renaming the internal SHA
https://github.com/strophe/libstrophe/issues/40
Although the same function names are used by libstrophe and OpenSSL,
the signatures and contexts of the SHA functions differ, resulting in
a segfault if the OpenSSL versions are substituted.
[Upstream commit: https://github.com/msantos/libstrophe/commit/b08766c8e46956daba010044b00c97f78b598780]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
src/scram.c | 22 +++++++++++-----------
src/sha1.c | 30 +++++++++++++++---------------
4 files changed, 33 insertions(+), 33 deletions(-)
diff --git a/src/auth.c b/src/auth.c
index b06f18c..3506977 100644
@@ -1187,10 +1187,10 @@ int _handle_component_auth(xmpp_conn_t * const conn)
/* Feed the session id and passphrase to the algorithm.
* We need to compute SHA1(session_id + passphrase)
- SHA1_Update(&mdctx, (uint8_t*)conn->stream_id, strlen(conn->stream_id));
- SHA1_Update(&mdctx, (uint8_t*)conn->pass, strlen(conn->pass));
- SHA1_Final(&mdctx, md_value);
+ xmpp_SHA1_Init(&mdctx);
+ xmpp_SHA1_Update(&mdctx, (uint8_t*)conn->stream_id, strlen(conn->stream_id));
+ xmpp_SHA1_Update(&mdctx, (uint8_t*)conn->pass, strlen(conn->pass));
+ xmpp_SHA1_Final(&mdctx, md_value);
digest = xmpp_alloc(conn->ctx, 2*sizeof(md_value)+1);
diff --git a/src/scram.c b/src/scram.c
index 5cce168..6e420e1 100644
@@ -37,9 +37,9 @@ static void SHA1(const uint8_t* data, size_t len,
uint8_t digest[SHA1_DIGEST_SIZE])
- SHA1_Update(&ctx, data, len);
- SHA1_Final(&ctx, digest);
+ xmpp_SHA1_Update(&ctx, data, len);
+ xmpp_SHA1_Final(&ctx, digest);
static void HMAC_SHA1(const uint8_t *key, size_t key_len,
@@ -66,15 +66,15 @@ static void HMAC_SHA1(const uint8_t *key, size_t key_len,
key_opad[i] = key_pad[i] ^ opad;