mirror of
https://github.com/guanzhi/GmSSL.git
synced 2026-08-11 16:33:40 +08:00
update
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
@@ -53,8 +53,10 @@
|
||||
*
|
||||
*/
|
||||
|
||||
/* NB: This file contains deprecated functions (compatibility wrappers to the
|
||||
* "new" versions). */
|
||||
/*
|
||||
* NB: This file contains deprecated functions (compatibility wrappers to the
|
||||
* "new" versions).
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <time.h>
|
||||
@@ -64,38 +66,42 @@
|
||||
|
||||
#ifdef OPENSSL_NO_DEPRECATED
|
||||
|
||||
static void *dummy=&dummy;
|
||||
static void *dummy = &dummy;
|
||||
|
||||
#else
|
||||
|
||||
RSA *RSA_generate_key(int bits, unsigned long e_value,
|
||||
void (*callback)(int,int,void *), void *cb_arg)
|
||||
{
|
||||
BN_GENCB cb;
|
||||
int i;
|
||||
RSA *rsa = RSA_new();
|
||||
BIGNUM *e = BN_new();
|
||||
void (*callback) (int, int, void *), void *cb_arg)
|
||||
{
|
||||
BN_GENCB cb;
|
||||
int i;
|
||||
RSA *rsa = RSA_new();
|
||||
BIGNUM *e = BN_new();
|
||||
|
||||
if(!rsa || !e) goto err;
|
||||
if (!rsa || !e)
|
||||
goto err;
|
||||
|
||||
/* The problem is when building with 8, 16, or 32 BN_ULONG,
|
||||
* unsigned long can be larger */
|
||||
for (i=0; i<(int)sizeof(unsigned long)*8; i++)
|
||||
{
|
||||
if (e_value & (1UL<<i))
|
||||
if (BN_set_bit(e,i) == 0)
|
||||
goto err;
|
||||
}
|
||||
/*
|
||||
* The problem is when building with 8, 16, or 32 BN_ULONG, unsigned long
|
||||
* can be larger
|
||||
*/
|
||||
for (i = 0; i < (int)sizeof(unsigned long) * 8; i++) {
|
||||
if (e_value & (1UL << i))
|
||||
if (BN_set_bit(e, i) == 0)
|
||||
goto err;
|
||||
}
|
||||
|
||||
BN_GENCB_set_old(&cb, callback, cb_arg);
|
||||
BN_GENCB_set_old(&cb, callback, cb_arg);
|
||||
|
||||
if(RSA_generate_key_ex(rsa, bits, e, &cb)) {
|
||||
BN_free(e);
|
||||
return rsa;
|
||||
}
|
||||
err:
|
||||
if(e) BN_free(e);
|
||||
if(rsa) RSA_free(rsa);
|
||||
return 0;
|
||||
}
|
||||
if (RSA_generate_key_ex(rsa, bits, e, &cb)) {
|
||||
BN_free(e);
|
||||
return rsa;
|
||||
}
|
||||
err:
|
||||
if (e)
|
||||
BN_free(e);
|
||||
if (rsa)
|
||||
RSA_free(rsa);
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user