summaryrefslogtreecommitdiff
path: root/Cryptlib/OpenSSL/crypto/evp/m_wp.c
diff options
context:
space:
mode:
authorMathieu Trudel-Lapierre <mathieu.trudel-lapierre@canonical.com>2016-07-26 12:02:18 -0400
committerMathieu Trudel-Lapierre <mathieu.trudel-lapierre@canonical.com>2016-07-26 12:02:18 -0400
commitd3819813b8e0a64400ddf3ce033bae7c3f245508 (patch)
tree79ea54361f1b1fa10749101827391726a3f4bcef /Cryptlib/OpenSSL/crypto/evp/m_wp.c
parenta14921c5944c340056312f2f5b1728d698f628b1 (diff)
downloadefi-boot-shim-d3819813b8e0a64400ddf3ce033bae7c3f245508.tar.gz
efi-boot-shim-d3819813b8e0a64400ddf3ce033bae7c3f245508.zip
Import upstream version 0.9+1465500757.14a5905
Diffstat (limited to 'Cryptlib/OpenSSL/crypto/evp/m_wp.c')
-rw-r--r--Cryptlib/OpenSSL/crypto/evp/m_wp.c48
1 files changed, 48 insertions, 0 deletions
diff --git a/Cryptlib/OpenSSL/crypto/evp/m_wp.c b/Cryptlib/OpenSSL/crypto/evp/m_wp.c
new file mode 100644
index 00000000..a890939e
--- /dev/null
+++ b/Cryptlib/OpenSSL/crypto/evp/m_wp.c
@@ -0,0 +1,48 @@
+/* crypto/evp/m_wp.c */
+
+#include <stdio.h>
+#include "cryptlib.h"
+
+#ifndef OPENSSL_NO_WHIRLPOOL
+
+# include <openssl/evp.h>
+# include <openssl/objects.h>
+# include <openssl/x509.h>
+# include <openssl/whrlpool.h>
+# include "evp_locl.h"
+
+static int init(EVP_MD_CTX *ctx)
+{
+ return WHIRLPOOL_Init(ctx->md_data);
+}
+
+static int update(EVP_MD_CTX *ctx, const void *data, size_t count)
+{
+ return WHIRLPOOL_Update(ctx->md_data, data, count);
+}
+
+static int final(EVP_MD_CTX *ctx, unsigned char *md)
+{
+ return WHIRLPOOL_Final(md, ctx->md_data);
+}
+
+static const EVP_MD whirlpool_md = {
+ NID_whirlpool,
+ 0,
+ WHIRLPOOL_DIGEST_LENGTH,
+ 0,
+ init,
+ update,
+ final,
+ NULL,
+ NULL,
+ EVP_PKEY_NULL_method,
+ WHIRLPOOL_BBLOCK / 8,
+ sizeof(EVP_MD *) + sizeof(WHIRLPOOL_CTX),
+};
+
+const EVP_MD *EVP_whirlpool(void)
+{
+ return (&whirlpool_md);
+}
+#endif