Add the X448() and X448_public_from_private() functions

Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de>
(Merged from https://github.com/openssl/openssl/pull/5105)
This commit is contained in:
Matt Caswell 2017-11-16 11:13:53 +00:00
parent b6e388ba9a
commit ad0a8a5c9d
2 changed files with 21 additions and 0 deletions

View file

@ -0,0 +1,7 @@
#include "curve448utils.h"
int X448(uint8_t out_shared_key[56], const uint8_t private_key[56],
const uint8_t peer_public_value[56]) DECAF_API_VIS;
void X448_public_from_private(uint8_t out_public_value[56],
const uint8_t private_key[56]) DECAF_API_VIS;

View file

@ -18,6 +18,7 @@
#include "point_448.h"
#include "ed448.h"
#include "curve448_lcl.h"
/* Template stuff */
#define API_NS(_id) decaf_448_##_id
@ -1590,3 +1591,16 @@ void API_NS(precomputed_destroy) (
) {
OPENSSL_cleanse(pre, API_NS(sizeof_precomputed_s));
}
int X448(uint8_t out_shared_key[56], const uint8_t private_key[56],
const uint8_t peer_public_value[56])
{
return decaf_x448(out_shared_key, peer_public_value, private_key)
== DECAF_SUCCESS;
}
void X448_public_from_private(uint8_t out_public_value[56],
const uint8_t private_key[56])
{
decaf_x448_derive_public_key(out_public_value, private_key);
}