New pkey functions for keygen callbacks and retrieving operation type.
authorDr. Stephen Henson <steve@openssl.org>
Wed, 31 May 2006 17:34:14 +0000 (17:34 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Wed, 31 May 2006 17:34:14 +0000 (17:34 +0000)
crypto/evp/evp.h
crypto/evp/pmeth_gn.c
crypto/evp/pmeth_lib.c

index 417842391033fade78feecb19f0935abf7441ef2..064e2772e7a329df72531cd14a7adcc3e8de2d67 100644 (file)
@@ -969,6 +969,9 @@ int EVP_PKEY_CTX_ctrl(EVP_PKEY_CTX *ctx, int keytype, int optype,
 int EVP_PKEY_CTX_ctrl_str(EVP_PKEY_CTX *ctx, const char *type,
                                                const char *value);
 
+int EVP_PKEY_CTX_get_operation(EVP_PKEY_CTX *ctx);
+void EVP_PKEY_CTX_set0_keygen_info(EVP_PKEY_CTX *ctx, int *dat, int datlen);
+
 void EVP_PKEY_CTX_set_data(EVP_PKEY_CTX *ctx, void *data);
 void *EVP_PKEY_CTX_get_data(EVP_PKEY_CTX *ctx);
 EVP_PKEY *EVP_PKEY_CTX_get0_pkey(EVP_PKEY_CTX *ctx);
@@ -1009,6 +1012,8 @@ int EVP_PKEY_keygen_init(EVP_PKEY_CTX *ctx);
 int EVP_PKEY_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey);
 
 void EVP_PKEY_CTX_set_cb(EVP_PKEY_CTX *ctx, EVP_PKEY_gen_cb *cb);
+EVP_PKEY_gen_cb *EVP_PKEY_CTX_get_cb(EVP_PKEY_CTX *ctx);
+
 int EVP_PKEY_CTX_get_keygen_info(EVP_PKEY_CTX *ctx, int idx);
 
 void EVP_PKEY_meth_set_init(EVP_PKEY_METHOD *pmeth,
index da7d800f53629768e85c73018978da779453425a..eb81d521348e9bd3aec28eb29194054fc399ec7f 100644 (file)
@@ -166,6 +166,11 @@ void EVP_PKEY_CTX_set_cb(EVP_PKEY_CTX *ctx, EVP_PKEY_gen_cb *cb)
        ctx->pkey_gencb = cb;
        }
 
+EVP_PKEY_gen_cb *EVP_PKEY_CTX_get_cb(EVP_PKEY_CTX *ctx)
+       {
+       return ctx->pkey_gencb;
+       }
+
 /* "translation callback" to call EVP_PKEY_CTX callbacks using BN_GENCB
  * style callbacks.
  */
index 069cdaf3ffb9602d294ee82606e97b210a030858..fb07c00d897ae86b16ce87008c87933c5fd6c3df 100644 (file)
@@ -310,6 +310,17 @@ int EVP_PKEY_CTX_ctrl_str(EVP_PKEY_CTX *ctx,
        return ctx->pmeth->ctrl_str(ctx, name, value);
        }
 
+int EVP_PKEY_CTX_get_operation(EVP_PKEY_CTX *ctx)
+       {
+       return ctx->operation;
+       }
+
+void EVP_PKEY_CTX_set0_keygen_info(EVP_PKEY_CTX *ctx, int *dat, int datlen)
+       {
+       ctx->keygen_info = dat;
+       ctx->keygen_info_count = datlen;
+       }
+
 void EVP_PKEY_CTX_set_data(EVP_PKEY_CTX *ctx, void *data)
        {
        ctx->data = data;