From 3e8ee4753c78556a83b7bc08d522c08f0d8808c1 Mon Sep 17 00:00:00 2001 From: "Dr. Stephen Henson" Date: Mon, 1 Feb 2016 18:22:35 +0000 Subject: [PATCH] Add custom_data field for EC_POINT, EC_KEY. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In some cases the EC_POINT and EC_KEY BIGNUM components are suboptimal or inappropriate. Add an "custom_data" field which curves can populate with a custom structure to suit their needs. Reviewed-by: Rich Salz Reviewed-by: Emilia Käsper --- crypto/ec/ec_lcl.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/crypto/ec/ec_lcl.h b/crypto/ec/ec_lcl.h index e3b1c5d525..742e90a13b 100644 --- a/crypto/ec/ec_lcl.h +++ b/crypto/ec/ec_lcl.h @@ -297,6 +297,12 @@ struct ec_key_st { EC_GROUP *group; EC_POINT *pub_key; BIGNUM *priv_key; + /* + * Arbitrary extra data. + * For example in X25519 this contains the raw private key in a 32 byte + * buffer. + */ + void *custom_data; unsigned int enc_flag; point_conversion_form_t conv_form; int references; @@ -316,6 +322,11 @@ struct ec_point_st { * Z) represents (X/Z^2, Y/Z^3) if Z != 0 */ int Z_is_one; /* enable optimized point arithmetics for * special case */ + /* + * Arbitrary extra data. + * For example in X25519 this contains the public key in a 32 byte buffer. + */ + void *custom_data; } /* EC_POINT */ ; NISTP224_PRE_COMP *EC_nistp224_pre_comp_dup(NISTP224_PRE_COMP *); -- GitLab