diff --git a/src/Sha/Sha1.c b/src/Sha/Sha1.c index 9e12d56..0b0d327 100644 --- a/src/Sha/Sha1.c +++ b/src/Sha/Sha1.c @@ -28,6 +28,27 @@ #include +/* TODO: Verify LibreSSL support later */ +#if TLS_IMPL == TLS_OPENSSL + +#include + +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 +285,4 @@ Sha1(char *str) return out; } +#endif diff --git a/src/Sha/Sha256.c b/src/Sha/Sha256.c index 2563246..5a1e08c 100644 --- a/src/Sha/Sha256.c +++ b/src/Sha/Sha256.c @@ -21,14 +21,36 @@ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -#include #include +#include #include #include #include + +/* TODO: Verify LibreSSL support later */ +#if TLS_IMPL == TLS_OPENSSL + +#include + +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