summaryrefslogtreecommitdiffstats
path: root/crypto/ec/curve448/eddsa.c
diff options
context:
space:
mode:
authorMatt Caswell <matt@openssl.org>2017-11-27 11:32:03 +0000
committerMatt Caswell <matt@openssl.org>2018-02-20 12:59:30 +0000
commit4ea41daa073af5fb45dacc7e380248e3a108c63d (patch)
tree01cc75971ebb642b4dfe4134497aa4a5519390ea /crypto/ec/curve448/eddsa.c
parent6207b1398327720a94d706e6e35bd7dc7eb8351a (diff)
Add Ed448 tests
Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> (Merged from https://github.com/openssl/openssl/pull/5105)
Diffstat (limited to 'crypto/ec/curve448/eddsa.c')
-rw-r--r--crypto/ec/curve448/eddsa.c50
1 files changed, 50 insertions, 0 deletions
diff --git a/crypto/ec/curve448/eddsa.c b/crypto/ec/curve448/eddsa.c
index 7d44e2362b..fe47857995 100644
--- a/crypto/ec/curve448/eddsa.c
+++ b/crypto/ec/curve448/eddsa.c
@@ -14,6 +14,7 @@
*/
#include <openssl/crypto.h>
+#include "curve448_lcl.h"
#include "word.h"
#include "ed448.h"
#include "shake.h"
@@ -326,3 +327,52 @@ decaf_error_t decaf_ed448_verify_prehash (
return ret;
}
+
+int ED448_sign(uint8_t *out_sig, const uint8_t *message, size_t message_len,
+ const uint8_t public_key[56], const uint8_t private_key[56],
+ const uint8_t *context, size_t context_len) {
+
+ decaf_ed448_sign(out_sig, private_key, public_key, message, message_len, 0,
+ context, context_len);
+
+ return 1;
+}
+
+
+int ED448_verify(const uint8_t *message, size_t message_len,
+ const uint8_t signature[112], const uint8_t public_key[56],
+ const uint8_t *context, size_t context_len) {
+ return decaf_ed448_verify(signature, public_key, message, message_len, 0,
+ context, context_len) == DECAF_SUCCESS;
+}
+
+int ED448ph_sign(uint8_t *out_sig, const uint8_t *message, size_t message_len,
+ const uint8_t public_key[56], const uint8_t private_key[56],
+ const uint8_t *context, size_t context_len) {
+ (void)out_sig;
+ (void)message;
+ (void)message_len;
+ (void)public_key;
+ (void)private_key;
+ (void)context;
+ (void)context_len;
+ return 0;
+}
+
+
+int ED448ph_verify(const uint8_t *message, size_t message_len,
+ const uint8_t signature[112], const uint8_t public_key[56],
+ const uint8_t *context, size_t context_len) {
+ (void)message;
+ (void)message_len;
+ (void)signature;
+ (void)public_key;
+ (void)context;
+ (void)context_len;
+ return 0;
+}
+
+void ED448_public_from_private(uint8_t out_public_key[56],
+ const uint8_t private_key[56]) {
+ decaf_ed448_derive_public_key(out_public_key, private_key);
+}