Commit d87e6152 authored by Dr. Stephen Henson's avatar Dr. Stephen Henson
Browse files

Add key derivation support.

parent 92511cff
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -209,6 +209,8 @@ const EVP_PKEY_METHOD dh_pkey_meth =

	0,0,

	0,0,

	pkey_dh_ctrl,
	pkey_dh_ctrl_str

+2 −0
Original line number Diff line number Diff line
@@ -245,6 +245,8 @@ const EVP_PKEY_METHOD dsa_pkey_meth =

	0,0,

	0,0,

	pkey_dsa_ctrl,
	pkey_dsa_ctrl_str

+2 −0
Original line number Diff line number Diff line
@@ -1016,6 +1016,8 @@ void ERR_load_EVP_strings(void);
#define EVP_F_EVP_PKEY_DECRYPT				 104
#define EVP_F_EVP_PKEY_DECRYPT_INIT			 138
#define EVP_F_EVP_PKEY_DECRYPT_OLD			 151
#define EVP_F_EVP_PKEY_DERIVE				 153
#define EVP_F_EVP_PKEY_DERIVE_INIT			 154
#define EVP_F_EVP_PKEY_ENCRYPT				 105
#define EVP_F_EVP_PKEY_ENCRYPT_INIT			 139
#define EVP_F_EVP_PKEY_ENCRYPT_OLD			 152
+2 −0
Original line number Diff line number Diff line
@@ -95,6 +95,8 @@ static ERR_STRING_DATA EVP_str_functs[]=
{ERR_FUNC(EVP_F_EVP_PKEY_DECRYPT),	"EVP_PKEY_decrypt"},
{ERR_FUNC(EVP_F_EVP_PKEY_DECRYPT_INIT),	"EVP_PKEY_decrypt_init"},
{ERR_FUNC(EVP_F_EVP_PKEY_DECRYPT_OLD),	"EVP_PKEY_decrypt_old"},
{ERR_FUNC(EVP_F_EVP_PKEY_DERIVE),	"EVP_PKEY_DERIVE"},
{ERR_FUNC(EVP_F_EVP_PKEY_DERIVE_INIT),	"EVP_PKEY_DERIVE_INIT"},
{ERR_FUNC(EVP_F_EVP_PKEY_ENCRYPT),	"EVP_PKEY_encrypt"},
{ERR_FUNC(EVP_F_EVP_PKEY_ENCRYPT_INIT),	"EVP_PKEY_encrypt_init"},
{ERR_FUNC(EVP_F_EVP_PKEY_ENCRYPT_OLD),	"EVP_PKEY_encrypt_old"},
+5 −0
Original line number Diff line number Diff line
@@ -241,6 +241,8 @@ struct evp_pkey_ctx_st
	const EVP_PKEY_METHOD *pmeth;
	/* Key: may be NULL */
	EVP_PKEY *pkey;
	/* Peer key for key agreement, may be NULL */
	EVP_PKEY *peerkey;
	/* Actual operation */
	int operation;
	/* Algorithm specific data */
@@ -297,6 +299,9 @@ struct evp_pkey_method_st
	int (*decrypt)(EVP_PKEY_CTX *ctx, unsigned char *out, int *outlen,
					const unsigned char *in, int inlen);

	int (*derive_init)(EVP_PKEY_CTX *ctx);
	int (*derive)(EVP_PKEY_CTX *ctx, unsigned char *key, int *keylen);

	int (*ctrl)(EVP_PKEY_CTX *ctx, int type, int p1, void *p2);
	int (*ctrl_str)(EVP_PKEY_CTX *ctx, const char *type, const char *value);

Loading