Skip to content

Commit

Permalink
Fix build when not using OpenSSL.
Browse files Browse the repository at this point in the history
Apply some fixes to the alternative crypto solutions so they work again
with the new MD5 and SHA1 fallback code in the library.
  • Loading branch information
Marco van Wieringen committed Oct 11, 2014
1 parent a0ae398 commit 9bb6880
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 54 deletions.
25 changes: 8 additions & 17 deletions src/lib/crypto_gnutls.c
Expand Up @@ -62,7 +62,7 @@ DIGEST *crypto_digest_new(JCR *jcr, crypto_digest_t type)

switch (type) {
case CRYPTO_DIGEST_MD5:
MD5Init(&digest->md5);
MD5_Init(&digest->md5);
break;
case CRYPTO_DIGEST_SHA1:
SHA1Init(&digest->sha1);
Expand All @@ -81,17 +81,12 @@ bool crypto_digest_update(DIGEST *digest, const uint8_t *data, uint32_t length)
switch (digest->type) {
case CRYPTO_DIGEST_MD5:
/* Doesn't return anything ... */
MD5Update(&digest->md5, (unsigned char *) data, length);
MD5_Update(&digest->md5, (unsigned char *) data, length);
return true;
case CRYPTO_DIGEST_SHA1:
int ret;
if ((ret = SHA1Update(&digest->sha1, (const u_int8_t *) data, length)) == shaSuccess) {
return true;
} else {
Jmsg1(NULL, M_ERROR, 0, _("SHA1Update() returned an error: %d\n"), ret);
return false;
}
break;
/* Doesn't return anything ... */
SHA1Update(&digest->sha1, (const u_int8_t *) data, (unsigned int)length);
return true;
default:
return false;
}
Expand All @@ -106,19 +101,15 @@ bool crypto_digest_finalize(DIGEST *digest, uint8_t *dest, uint32_t *length)
assert(*length >= CRYPTO_DIGEST_MD5_SIZE);
*length = CRYPTO_DIGEST_MD5_SIZE;
/* Doesn't return anything ... */
MD5Final((unsigned char *)dest, &digest->md5);
MD5_Final((unsigned char *)dest, &digest->md5);
return true;
case CRYPTO_DIGEST_SHA1:
/* Guard against programmer error by either the API client or
* an out-of-sync CRYPTO_DIGEST_MAX_SIZE */
assert(*length >= CRYPTO_DIGEST_SHA1_SIZE);
*length = CRYPTO_DIGEST_SHA1_SIZE;
if (SHA1Final(&digest->sha1, (u_int8_t *) dest) == shaSuccess) {
return true;
} else {
return false;
}
break;
SHA1Final((u_int8_t *) dest, &digest->sha1);
return true;
default:
return false;
}
Expand Down
25 changes: 8 additions & 17 deletions src/lib/crypto_none.c
Expand Up @@ -56,7 +56,7 @@ DIGEST *crypto_digest_new(JCR *jcr, crypto_digest_t type)

switch (type) {
case CRYPTO_DIGEST_MD5:
MD5Init(&digest->md5);
MD5_Init(&digest->md5);
break;
case CRYPTO_DIGEST_SHA1:
SHA1Init(&digest->sha1);
Expand All @@ -75,17 +75,12 @@ bool crypto_digest_update(DIGEST *digest, const uint8_t *data, uint32_t length)
switch (digest->type) {
case CRYPTO_DIGEST_MD5:
/* Doesn't return anything ... */
MD5Update(&digest->md5, (unsigned char *) data, length);
MD5_Update(&digest->md5, (unsigned char *) data, length);
return true;
case CRYPTO_DIGEST_SHA1:
int ret;
if ((ret = SHA1Update(&digest->sha1, (const u_int8_t *) data, length)) == shaSuccess) {
return true;
} else {
Jmsg1(NULL, M_ERROR, 0, _("SHA1Update() returned an error: %d\n"), ret);
return false;
}
break;
/* Doesn't return anything ... */
SHA1Update(&digest->sha1, (const u_int8_t *) data, (unsigned int)length);
return true;
default:
return false;
}
Expand All @@ -100,19 +95,15 @@ bool crypto_digest_finalize(DIGEST *digest, uint8_t *dest, uint32_t *length)
assert(*length >= CRYPTO_DIGEST_MD5_SIZE);
*length = CRYPTO_DIGEST_MD5_SIZE;
/* Doesn't return anything ... */
MD5Final((unsigned char *)dest, &digest->md5);
MD5_Final((unsigned char *)dest, &digest->md5);
return true;
case CRYPTO_DIGEST_SHA1:
/* Guard against programmer error by either the API client or
* an out-of-sync CRYPTO_DIGEST_MAX_SIZE */
assert(*length >= CRYPTO_DIGEST_SHA1_SIZE);
*length = CRYPTO_DIGEST_SHA1_SIZE;
if (SHA1Final(&digest->sha1, (u_int8_t *) dest) == shaSuccess) {
return true;
} else {
return false;
}
break;
SHA1Final((u_int8_t *) dest, &digest->sha1);
return true;
default:
return false;
}
Expand Down
25 changes: 8 additions & 17 deletions src/lib/crypto_nss.c
Expand Up @@ -58,7 +58,7 @@ DIGEST *crypto_digest_new(JCR *jcr, crypto_digest_t type)

switch (type) {
case CRYPTO_DIGEST_MD5:
MD5Init(&digest->md5);
MD5_Init(&digest->md5);
break;
case CRYPTO_DIGEST_SHA1:
SHA1Init(&digest->sha1);
Expand All @@ -77,17 +77,12 @@ bool crypto_digest_update(DIGEST *digest, const uint8_t *data, uint32_t length)
switch (digest->type) {
case CRYPTO_DIGEST_MD5:
/* Doesn't return anything ... */
MD5Update(&digest->md5, (unsigned char *) data, length);
MD5_Update(&digest->md5, (unsigned char *) data, length);
return true;
case CRYPTO_DIGEST_SHA1:
int ret;
if ((ret = SHA1Update(&digest->sha1, (const u_int8_t *) data, length)) == shaSuccess) {
return true;
} else {
Jmsg1(NULL, M_ERROR, 0, _("SHA1Update() returned an error: %d\n"), ret);
return false;
}
break;
/* Doesn't return anything ... */
SHA1Update(&digest->sha1, (const u_int8_t *) data, (unsigned int)length);
return true;
default:
return false;
}
Expand All @@ -102,19 +97,15 @@ bool crypto_digest_finalize(DIGEST *digest, uint8_t *dest, uint32_t *length)
assert(*length >= CRYPTO_DIGEST_MD5_SIZE);
*length = CRYPTO_DIGEST_MD5_SIZE;
/* Doesn't return anything ... */
MD5Final((unsigned char *)dest, &digest->md5);
MD5_Final((unsigned char *)dest, &digest->md5);
return true;
case CRYPTO_DIGEST_SHA1:
/* Guard against programmer error by either the API client or
* an out-of-sync CRYPTO_DIGEST_MAX_SIZE */
assert(*length >= CRYPTO_DIGEST_SHA1_SIZE);
*length = CRYPTO_DIGEST_SHA1_SIZE;
if (SHA1Final(&digest->sha1, (u_int8_t *) dest) == shaSuccess) {
return true;
} else {
return false;
}
break;
SHA1Final((u_int8_t *) dest, &digest->sha1);
return true;
default:
return false;
}
Expand Down
6 changes: 3 additions & 3 deletions src/lib/sha1.c
Expand Up @@ -24,7 +24,7 @@ A million repetitions of "a"

#include "sha1.h"

void SHA1Transform(u_int32_t state[5], u_int8_t buffer[64]);
void SHA1Transform(u_int32_t state[5], const u_int8_t buffer[64]);

#define rol(value, bits) (((value) << (bits)) | ((value) >> (32 - (bits))))

Expand All @@ -49,7 +49,7 @@ void SHA1Transform(u_int32_t state[5], u_int8_t buffer[64]);

/* Hash a single 512-bit block. This is the core of the algorithm. */

void SHA1Transform(u_int32_t state[5], u_int8_t buffer[64])
void SHA1Transform(u_int32_t state[5], const u_int8_t buffer[64])
{
u_int32_t a, b, c, d, e;
typedef union {
Expand Down Expand Up @@ -118,7 +118,7 @@ void SHA1Init(SHA1_CTX* context)

/* Run your data through this. */

void SHA1Update(SHA1_CTX* context, u_int8_t* data, unsigned int len)
void SHA1Update(SHA1_CTX* context, const u_int8_t* data, unsigned int len)
{
unsigned int i, j;

Expand Down

0 comments on commit 9bb6880

Please sign in to comment.