Streamlining of secret and _verify

The secret key API is now streamlined.

Also, all verify-type functions are
now returning boolean() values.
This makes the API consistent.
This commit is contained in:
Jesper Louis Andersen
2020-02-06 11:12:32 +01:00
parent 1cb2c3a2a2
commit 7999d08e9d
5 changed files with 18 additions and 20 deletions
+8 -8
View File
@@ -91,7 +91,7 @@ ERL_NIF_TERM enacl_crypto_secretbox(ErlNifEnv *env, int argc,
}
if (!enif_alloc_binary(padded_msg.size, &padded_ciphertext)) {
return enacl_error_tuple(env, "alloc_failed");
return enacl_internal_error(env);
}
crypto_secretbox(padded_ciphertext.data, padded_msg.data, padded_msg.size,
@@ -120,7 +120,7 @@ ERL_NIF_TERM enacl_crypto_secretbox_open(ErlNifEnv *env, int argc,
}
if (!enif_alloc_binary(padded_ciphertext.size, &padded_msg)) {
return enacl_error_tuple(env, "alloc_failed");
return enacl_internal_error(env);
}
if (crypto_secretbox_open(padded_msg.data, padded_ciphertext.data,
@@ -152,7 +152,7 @@ ERL_NIF_TERM enacl_crypto_stream_chacha20(ErlNifEnv *env, int argc,
}
if (!enif_alloc_binary(clen, &c)) {
return enacl_error_tuple(env, "alloc_failed");
return enacl_internal_error(env);
}
crypto_stream_chacha20(c.data, c.size, n.data, k.data);
@@ -177,7 +177,7 @@ enacl_crypto_stream_chacha20_xor(ErlNifEnv *env, int argc,
}
if (!enif_alloc_binary(m.size, &c)) {
return enacl_error_tuple(env, "alloc_failed");
return enacl_internal_error(env);
}
crypto_stream_chacha20_xor(c.data, m.data, m.size, n.data, k.data);
@@ -202,7 +202,7 @@ ERL_NIF_TERM enacl_crypto_stream(ErlNifEnv *env, int argc,
}
if (!enif_alloc_binary(clen, &c)) {
return enacl_error_tuple(env, "alloc_failed");
return enacl_internal_error(env);
}
crypto_stream(c.data, c.size, n.data, k.data);
@@ -226,7 +226,7 @@ ERL_NIF_TERM enacl_crypto_stream_xor(ErlNifEnv *env, int argc,
}
if (!enif_alloc_binary(m.size, &c)) {
return enacl_error_tuple(env, "alloc_failed");
return enacl_internal_error(env);
}
crypto_stream_xor(c.data, m.data, m.size, n.data, k.data);
@@ -248,7 +248,7 @@ ERL_NIF_TERM enacl_crypto_auth(ErlNifEnv *env, int argc,
}
if (!enif_alloc_binary(crypto_auth_BYTES, &a)) {
return enacl_error_tuple(env, "alloc_failed");
return enacl_internal_error(env);
}
crypto_auth(a.data, m.data, m.size, k.data);
@@ -291,7 +291,7 @@ ERL_NIF_TERM enacl_crypto_onetimeauth(ErlNifEnv *env, int argc,
}
if (!enif_alloc_binary(crypto_onetimeauth_BYTES, &a)) {
return enacl_error_tuple(env, "alloc_failed");
return enacl_internal_error(env);
}
crypto_onetimeauth(a.data, m.data, m.size, k.data);
+2 -2
View File
@@ -215,9 +215,9 @@ ERL_NIF_TERM enacl_crypto_sign_final_verify(ErlNifEnv *env, int argc,
}
if (0 == crypto_sign_final_verify(obj->state, sig.data, pk.data)) {
ret = enif_make_atom(env, ATOM_OK);
ret = enif_make_atom(env, "true");
} else {
ret = enacl_error_tuple(env, "failed_verification");
ret = enif_make_atom(env, "false");
}
// Mark as done
goto cleanup;