[EMAIL PROTECTED] wrote:
> 
> Hi friends,
> 
> RSA_check_key() cores.

RSA_check_key() expects a private key => the RSA structure
must contain valid rsa->p and rsa->q entries otherwise 
RSA_check_key() will always produce a core dump
( without p and q you can not verify that a RSA key is valid,
but of course it would be better if RSA_check_key() returns
a error message instead of a core :) .

> The following is what I did ...
[...]
>    RSA_Keys->n=BN_new();
>    BN_init(RSA_Keys->n);

BN_init() is unnecessary, because BN_new() initialize 
the BIGNUM structure.

[...]
> else if( !(RSA_Keys->n->d = (BN_ULONG *)malloc((ModBinLen+1)
> *BN_BITS2))) {
>       printf("RSA_Keys->n->d is NULL\n");
>       exit(1);
>    }

1. use OPENSSL_malloc()
2. set the BIGNUM->dmax value to ModBinLen+1
3. 1. and 2. are unnecessary because the BN functions automatically 
   allocate the required memory. 

[...]
> 
> what am I doing wrong that is causing this problem. Basically what I am
> trying in this program is
> to create a RSA structure using the public key modulus and exponent in
> Base64 format.
> 
> Any help would be greatly appreciated.
> 
> Also is there any function that does this for me in OPENSSL?

AFAIK there are only functions to read/write a PEM encoded 
PKCS#1 RSA public key (PEM_[read|write]_bio_RSAPublicKey).
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to