Start optionally using the SHA implementation from the existing crypto API #44
2 changed files with 45 additions and 1 deletions
|
@ -28,6 +28,26 @@
|
|||
|
||||
#include <limits.h>
|
||||
|
||||
#if (TLS_IMPL == TLS_OPENSSL) || (TLS_IMPL == TLS_LIBRESSL)
|
||||
lda marked this conversation as resolved
Outdated
|
||||
|
||||
#include <openssl/sha.h>
|
||||
|
||||
unsigned char *
|
||||
Sha1(char *str)
|
||||
{
|
||||
unsigned char *digest;
|
||||
if (!str)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
digest = Malloc(20 + 1);
|
||||
SHA1((unsigned char *) str, strlen(str), digest);
|
||||
digest[20] = '\0';
|
||||
return digest;
|
||||
}
|
||||
#else
|
||||
|
||||
#define LOAD32H(x, y) \
|
||||
{ \
|
||||
x = ((uint32_t)((y)[0] & 255) << 24) | \
|
||||
|
@ -264,3 +284,4 @@ Sha1(char *str)
|
|||
|
||||
return out;
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -21,14 +21,36 @@
|
|||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
#include <Sha.h>
|
||||
#include <Memory.h>
|
||||
#include <Sha.h>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <limits.h>
|
||||
|
||||
|
||||
#if (TLS_IMPL == TLS_OPENSSL) || (TLS_IMPL == TLS_LIBRESSL)
|
||||
|
||||
#include <openssl/sha.h>
|
||||
#include <Log.h>
|
||||
|
||||
unsigned char *
|
||||
Sha256(char *str)
|
||||
{
|
||||
unsigned char *digest;
|
||||
if (!str)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
digest = Malloc(32 + 1);
|
||||
SHA256((unsigned char *) str, strlen(str), digest);
|
||||
digest[32] = '\0';
|
||||
return digest;
|
||||
}
|
||||
#else
|
||||
|
||||
#define GET_UINT32(x) \
|
||||
(((uint32_t)(x)[0] << 24) | \
|
||||
((uint32_t)(x)[1] << 16) | \
|
||||
|
@ -230,3 +252,4 @@ Sha256(char *str)
|
|||
|
||||
return out;
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue
If you just say
#if (TLS_IMPL == TLS_OPENSSL)
and get rid of the LibreSSL check, then this will only be applied with OpenSSL, which you verified to work. We can then merge this and add back LibreSSL support later after we verify it is working.