aboutsummaryrefslogtreecommitdiffstats
path: root/lib/crypto/c_src/crypto.c
diff options
context:
space:
mode:
authorDoug Hogan <[email protected]>2018-12-20 02:05:43 -0800
committerDoug Hogan <[email protected]>2018-12-20 02:30:48 -0800
commit1abc5cac5dcd40349001ce2bf2530a02ab5ec918 (patch)
tree346f0667b08054c25a7f45f83299f12b24ecd9d5 /lib/crypto/c_src/crypto.c
parentc0e453b05f85a06a155decef4de7d2407a8d9cff (diff)
downloadotp-1abc5cac5dcd40349001ce2bf2530a02ab5ec918.tar.gz
otp-1abc5cac5dcd40349001ce2bf2530a02ab5ec918.tar.bz2
otp-1abc5cac5dcd40349001ce2bf2530a02ab5ec918.zip
Move EDDSA functionality to a new file
Diffstat (limited to 'lib/crypto/c_src/crypto.c')
-rw-r--r--lib/crypto/c_src/crypto.c31
1 files changed, 1 insertions, 30 deletions
diff --git a/lib/crypto/c_src/crypto.c b/lib/crypto/c_src/crypto.c
index 98197fa3fb..3d0c8a63b6 100644
--- a/lib/crypto/c_src/crypto.c
+++ b/lib/crypto/c_src/crypto.c
@@ -30,6 +30,7 @@
#include "cmac.h"
#include "dh.h"
#include "digest.h"
+#include "eddsa.h"
#include "engine.h"
#include "hash.h"
#include "hmac.h"
@@ -1512,36 +1513,6 @@ static ERL_NIF_TERM do_exor(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[])
return ret;
}
-#ifdef HAVE_EDDSA
- static int get_eddsa_key(ErlNifEnv* env, int public, ERL_NIF_TERM key, EVP_PKEY **pkey)
-{
- /* key=[K] */
- ERL_NIF_TERM head, tail, tail2, algo;
- ErlNifBinary bin;
- int type;
-
- if (!enif_get_list_cell(env, key, &head, &tail)
- || !enif_inspect_binary(env, head, &bin)
- || !enif_get_list_cell(env, tail, &algo, &tail2)
- || !enif_is_empty_list(env, tail2)) {
- return 0;
- }
- if (algo == atom_ed25519) type = EVP_PKEY_ED25519;
- else if (algo == atom_ed448) type = EVP_PKEY_ED448;
- else
- return 0;
-
- if (public)
- *pkey = EVP_PKEY_new_raw_public_key(type, NULL, bin.data, bin.size);
- else
- *pkey = EVP_PKEY_new_raw_private_key(type, NULL, bin.data, bin.size);
-
- if (!pkey)
- return 0;
- return 1;
-}
-#endif
-
static int get_dss_private_key(ErlNifEnv* env, ERL_NIF_TERM key, DSA *dsa)
{
/* key=[P,Q,G,KEY] */