[openssl-users] error making Private RSA
Matt Caswell
matt at openssl.org
Thu Mar 2 09:36:55 UTC 2017
On 02/03/17 00:47, william estrada wrote:
> Hello group,
> I am attempting to create a Private RSA structure with the following code:
> BIO*
> PEM = BIO_new_mem_buf( Key, Key_Len );
>
> if( Type == 1 )
> PEM_write_bio_RSAPrivateKey( PEM, RSA, NULL, NULL, 0, NULL, NULL );
> else
> PEM_write_bio_RSAPublicKey( PEM, RSA );
>
> if( RSA_check_key( RSA ) != 1 ) {
> printf( RED "Make %s RSA Failed\n" OFF, Type==1?"Private":"Public" );
> int Error = ERR_get_error();
> char *MSG = ERR_error_string( Error, NULL);
> printf( "%s\n", MSG ); }
>
> and I get this error:
> Make Private RSA Failed
> error:2007507E:lib(32):func(117):reason(126)
> Can anyone tell me what this error is and how to fix it?
>
>
$ openssl errstr 2007507E
error:2007507E:BIO routines:mem_write:write to read only BIO
BIO_new_mem_buf() gives you a read-only BIO. You probably want
BIO_new(BIO_s_mem()) instead.
See:
https://www.openssl.org/docs/man1.1.0/crypto/BIO_s_mem.html
Although, that error is coming from one of the PEM_write_bio_* calls
(which you are not checking the error return code of), so it doesn't
explain why RSA_check_key() fails. You don't show how you generate the
RSA structure to start with, so I guess you're not generating it properly.
Matt
More information about the openssl-users
mailing list