Hi all,

Just if anybody needs it, this is working:

RSA *rsa = NULL;
    const EVP_CIPHER *enc=NULL;
    unsigned long f4=RSA_F4;
    char outfile[20];
    char passout[10];
    BIO *bio = NULL;
    int num;

    num = 1024;

    memcpy(&passout[0],"teste",5);
    passout[5] = '\0';
    memcpy(&outfile[0],"teste_kpr.pem",13);
    passout[13] = '\0';

    BIGNUM *bn = BN_new();

    bio = BIO_new(BIO_s_file());

    BIO_write_filename(bio,outfile);

    rsa = RSA_new();

    if (rsa == NULL)
        return;
    BN_set_word(bn, f4);

    RSA_generate_key_ex(rsa, num, bn, NULL);


    PW_CB_DATA cb_data;
    cb_data.password = passout;
    cb_data.prompt_info = outfile;

    PEM_write_bio_RSAPrivateKey(bio,rsa,enc,NULL,0,NULL,&cb_data);

    if (bn != NULL)
        BN_free(bn);

    if (rsa != NULL)
        RSA_free(rsa);

    if (bio != NULL)
        BIO_free_all(bio);

The code is for testing, I recommend whom uses it to add some consistence,
as I will.

:)

Leonardo

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to