Initial functions for RSA EVP_PKEY_METHOD.
Update dependencies.
This commit is contained in:
parent
d1aa0d38c5
commit
07e970c7e6
@ -389,15 +389,13 @@ asn_pack.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
asn_pack.o: ../../include/openssl/symhacks.h ../cryptlib.h asn_pack.c
|
||||
d2i_pr.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
d2i_pr.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
|
||||
d2i_pr.o: ../../include/openssl/crypto.h ../../include/openssl/dsa.h
|
||||
d2i_pr.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
|
||||
d2i_pr.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
|
||||
d2i_pr.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
d2i_pr.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
d2i_pr.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
d2i_pr.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
d2i_pr.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
d2i_pr.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
d2i_pr.o: ../cryptlib.h d2i_pr.c
|
||||
d2i_pr.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
d2i_pr.o: ../../include/openssl/symhacks.h ../cryptlib.h asn1_locl.h d2i_pr.c
|
||||
d2i_pu.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
d2i_pu.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
|
||||
d2i_pu.o: ../../include/openssl/crypto.h ../../include/openssl/dsa.h
|
||||
@ -440,16 +438,14 @@ f_string.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
f_string.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
f_string.o: ../../include/openssl/symhacks.h ../cryptlib.h f_string.c
|
||||
i2d_pr.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
i2d_pr.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
|
||||
i2d_pr.o: ../../include/openssl/crypto.h ../../include/openssl/dsa.h
|
||||
i2d_pr.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
|
||||
i2d_pr.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
i2d_pr.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
i2d_pr.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
i2d_pr.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
i2d_pr.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
i2d_pr.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
i2d_pr.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
i2d_pr.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
|
||||
i2d_pr.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
i2d_pr.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
i2d_pr.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
|
||||
i2d_pr.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
i2d_pr.o: ../cryptlib.h i2d_pr.c
|
||||
i2d_pr.o: ../cryptlib.h asn1_locl.h i2d_pr.c
|
||||
i2d_pu.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
i2d_pu.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
|
||||
i2d_pu.o: ../../include/openssl/crypto.h ../../include/openssl/dsa.h
|
||||
|
@ -648,3 +648,24 @@ p_verify.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
|
||||
p_verify.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
p_verify.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
p_verify.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p_verify.c
|
||||
pmeth_fn.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
pmeth_fn.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
pmeth_fn.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
|
||||
pmeth_fn.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
pmeth_fn.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
pmeth_fn.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
pmeth_fn.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
pmeth_fn.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
pmeth_fn.o: ../../include/openssl/symhacks.h ../cryptlib.h evp_locl.h
|
||||
pmeth_fn.o: pmeth_fn.c
|
||||
pmeth_lib.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
pmeth_lib.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
pmeth_lib.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
|
||||
pmeth_lib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
pmeth_lib.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
pmeth_lib.o: ../../include/openssl/objects.h
|
||||
pmeth_lib.o: ../../include/openssl/opensslconf.h
|
||||
pmeth_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
pmeth_lib.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
pmeth_lib.o: ../../include/openssl/symhacks.h ../asn1/asn1_locl.h ../cryptlib.h
|
||||
pmeth_lib.o: evp_locl.h pmeth_lib.c
|
||||
|
@ -252,7 +252,9 @@ struct evp_pkey_method_st
|
||||
{
|
||||
int pkey_id;
|
||||
int flags;
|
||||
|
||||
int (*init)(EVP_PKEY_CTX *ctx);
|
||||
void (*cleanup)(EVP_PKEY_CTX *ctx);
|
||||
|
||||
int (*paramgen_init)(EVP_PKEY_CTX *ctx);
|
||||
int (*paramgen)(EVP_PKEY_CTX *ctx);
|
||||
@ -292,6 +294,5 @@ struct evp_pkey_method_st
|
||||
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);
|
||||
|
||||
void (*cleanup)(EVP_PKEY_CTX *ctx);
|
||||
|
||||
} /* EVP_PKEY_METHOD */;
|
||||
|
@ -136,7 +136,7 @@ pem_lib.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
pem_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
pem_lib.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
|
||||
pem_lib.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
pem_lib.o: ../cryptlib.h pem_lib.c
|
||||
pem_lib.o: ../asn1/asn1_locl.h ../cryptlib.h pem_lib.c
|
||||
pem_oth.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
pem_oth.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
pem_oth.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
|
||||
@ -180,7 +180,8 @@ pem_pkey.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
|
||||
pem_pkey.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
|
||||
pem_pkey.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
pem_pkey.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
pem_pkey.o: ../../include/openssl/x509_vfy.h ../cryptlib.h pem_pkey.c
|
||||
pem_pkey.o: ../../include/openssl/x509_vfy.h ../asn1/asn1_locl.h ../cryptlib.h
|
||||
pem_pkey.o: pem_pkey.c
|
||||
pem_seal.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
pem_seal.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
pem_seal.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
|
||||
|
@ -196,6 +196,21 @@ rsa_pk1.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
rsa_pk1.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
|
||||
rsa_pk1.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
rsa_pk1.o: ../../include/openssl/symhacks.h ../cryptlib.h rsa_pk1.c
|
||||
rsa_pmeth.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
rsa_pmeth.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
|
||||
rsa_pmeth.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
rsa_pmeth.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
|
||||
rsa_pmeth.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
|
||||
rsa_pmeth.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
rsa_pmeth.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
|
||||
rsa_pmeth.o: ../../include/openssl/objects.h
|
||||
rsa_pmeth.o: ../../include/openssl/opensslconf.h
|
||||
rsa_pmeth.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
rsa_pmeth.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
|
||||
rsa_pmeth.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
rsa_pmeth.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
rsa_pmeth.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
rsa_pmeth.o: ../cryptlib.h ../evp/evp_locl.h rsa_pmeth.c
|
||||
rsa_prn.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
rsa_prn.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
rsa_prn.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
|
||||
|
@ -60,10 +60,89 @@
|
||||
#include <openssl/asn1t.h>
|
||||
#include <openssl/x509.h>
|
||||
#include <openssl/rsa.h>
|
||||
#include "asn1_locl.h"
|
||||
#include "evp_locl.h"
|
||||
|
||||
/* RSA pkey context structure */
|
||||
|
||||
typedef struct
|
||||
{
|
||||
/* Key gen parameters */
|
||||
int nbits;
|
||||
BIGNUM *pub_exp;
|
||||
/* RSA padding mode */
|
||||
int pad_mode;
|
||||
} RSA_PKEY_CTX;
|
||||
|
||||
static int pkey_rsa_init(EVP_PKEY_CTX *ctx)
|
||||
{
|
||||
RSA_PKEY_CTX *rctx;
|
||||
rctx = OPENSSL_malloc(sizeof(RSA_PKEY_CTX));
|
||||
if (!rctx)
|
||||
return 0;
|
||||
rctx->nbits = 1024;
|
||||
rctx->pub_exp = NULL;
|
||||
rctx->pad_mode = RSA_PKCS1_PADDING;
|
||||
ctx->data = rctx;
|
||||
return 1;
|
||||
}
|
||||
|
||||
static void pkey_rsa_cleanup(EVP_PKEY_CTX *ctx)
|
||||
{
|
||||
RSA_PKEY_CTX *rctx = ctx->data;
|
||||
if (rctx)
|
||||
{
|
||||
if (rctx->pub_exp)
|
||||
BN_free(rctx->pub_exp);
|
||||
}
|
||||
OPENSSL_free(rctx);
|
||||
}
|
||||
|
||||
static int pkey_rsa_sign(EVP_PKEY_CTX *ctx, unsigned char *sig, int *siglen,
|
||||
unsigned char *tbs, int tbslen)
|
||||
{
|
||||
int ret;
|
||||
RSA_PKEY_CTX *rctx = ctx->data;
|
||||
ret = RSA_private_encrypt(tbslen, tbs, sig, ctx->pkey->pkey.rsa,
|
||||
rctx->pad_mode);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
*siglen = ret;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
static int pkey_rsa_verifyrecover(EVP_PKEY_CTX *ctx,
|
||||
unsigned char *sig, int *siglen,
|
||||
unsigned char *tbs, int tbslen)
|
||||
{
|
||||
int ret;
|
||||
RSA_PKEY_CTX *rctx = ctx->data;
|
||||
ret = RSA_public_decrypt(tbslen, tbs, sig, ctx->pkey->pkey.rsa,
|
||||
rctx->pad_mode);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
*siglen = ret;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
const EVP_PKEY_METHOD rsa_pkey_meth =
|
||||
{
|
||||
EVP_PKEY_RSA,
|
||||
0,
|
||||
pkey_rsa_init,
|
||||
pkey_rsa_cleanup,
|
||||
|
||||
0,0,
|
||||
|
||||
0,0,
|
||||
|
||||
0,
|
||||
pkey_rsa_sign,
|
||||
|
||||
0,0,
|
||||
|
||||
0,
|
||||
pkey_rsa_verifyrecover
|
||||
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user