From 69fa341d9ba5e5d4a2ca23b69a2faba2a2e2f641 Mon Sep 17 00:00:00 2001 From: Benjamin Barenblat Date: Mon, 15 Jun 2015 14:47:24 -0400 Subject: Add SHA-2 support --- src/hash.ur | 5 +++++ src/hash.urs | 5 +++++ src/hashFFI.cc | 20 ++++++++++++++++++++ src/hashFFI.h | 6 ++++++ src/hashFFI.urs | 5 +++++ 5 files changed, 41 insertions(+) diff --git a/src/hash.ur b/src/hash.ur index cca79d7..7dcb1f2 100644 --- a/src/hash.ur +++ b/src/hash.ur @@ -16,3 +16,8 @@ type digest = string val md5 = HashFFI.md5 val sha1 = HashFFI.sha1 + +val sha224 = HashFFI.sha224 +val sha256 = HashFFI.sha256 +val sha384 = HashFFI.sha384 +val sha512 = HashFFI.sha512 diff --git a/src/hash.urs b/src/hash.urs index b0bfb69..d7bd62b 100644 --- a/src/hash.urs +++ b/src/hash.urs @@ -21,3 +21,8 @@ val sql_maxable_digest : sql_maxable digest val md5 : blob -> digest val sha1 : blob -> digest + +val sha224 : blob -> digest +val sha256 : blob -> digest +val sha384 : blob -> digest +val sha512 : blob -> digest diff --git a/src/hashFFI.cc b/src/hashFFI.cc index dcc7375..2e7596e 100644 --- a/src/hashFFI.cc +++ b/src/hashFFI.cc @@ -87,3 +87,23 @@ uw_Basis_string uw_HashFFI_sha1(uw_context* const context, const uw_Basis_blob input) { return Hash(context, input, SHA1); } + +uw_Basis_string uw_HashFFI_sha224(uw_context* const context, + const uw_Basis_blob input) { + return Hash(context, input, SHA224); +} + +uw_Basis_string uw_HashFFI_sha256(uw_context* const context, + const uw_Basis_blob input) { + return Hash(context, input, SHA256); +} + +uw_Basis_string uw_HashFFI_sha384(uw_context* const context, + const uw_Basis_blob input) { + return Hash(context, input, SHA384); +} + +uw_Basis_string uw_HashFFI_sha512(uw_context* const context, + const uw_Basis_blob input) { + return Hash(context, input, SHA512); +} diff --git a/src/hashFFI.h b/src/hashFFI.h index a454b99..500a5e7 100644 --- a/src/hashFFI.h +++ b/src/hashFFI.h @@ -22,8 +22,14 @@ extern "C" { #include uw_Basis_string uw_HashFFI_md5(struct uw_context*, const uw_Basis_blob); + uw_Basis_string uw_HashFFI_sha1(struct uw_context*, const uw_Basis_blob); +uw_Basis_string uw_HashFFI_sha224(struct uw_context*, const uw_Basis_blob); +uw_Basis_string uw_HashFFI_sha256(struct uw_context*, const uw_Basis_blob); +uw_Basis_string uw_HashFFI_sha384(struct uw_context*, const uw_Basis_blob); +uw_Basis_string uw_HashFFI_sha512(struct uw_context*, const uw_Basis_blob); + #ifdef __cplusplus } #endif diff --git a/src/hashFFI.urs b/src/hashFFI.urs index f9c6ba5..63d01f6 100644 --- a/src/hashFFI.urs +++ b/src/hashFFI.urs @@ -14,3 +14,8 @@ specific language governing permissions and limitations under the License. *) val md5 : blob -> string val sha1 : blob -> string + +val sha224 : blob -> string +val sha256 : blob -> string +val sha384 : blob -> string +val sha512 : blob -> string \ No newline at end of file -- cgit v1.2.3