Hi!

I'm trying to create a certificate using openssl library. Here is the code --

void main () {
    SSL_library_init();
    SSL_load_error_strings();
    OpenSSL_add_all_algorithms();
    char err[1000];
    RSA* keypair = RSA_new();
    BIGNUM *e = BN_new();
    X509 *certificate = X509_new();
    EVP_PKEY *certkeypair = EVP_PKEY_new();

    BN_set_word(e, 65537);
    if (!RSA_generate_key_ex(keypair, 1024, e, NULL))
        printf ("key generation failed");
    BN_free(e);
    e = NULL;

    EVP_PKEY_assign_RSA(certkeypair,keypair);

    X509_set_version (certificate  , 3);
    ASN1_INTEGER_set(X509_get_serialNumber(certificate), 1);

    X509_NAME * certnames;
    certnames = X509_get_subject_name(certificate);
X509_NAME_add_entry_by_txt(certnames, "C", MBSTRING_ASC, (unsigned char *)"global", -1, -1, 0); X509_NAME_add_entry_by_txt(certnames, "O", MBSTRING_ASC, (unsigned char *)"BIGcoin", -1, -1, 0); X509_NAME_add_entry_by_txt(certnames, "CN", MBSTRING_ASC, (unsigned char *)"My IP", -1, -1, 0);

    X509_set_issuer_name(certificate,certnames);

    X509_gmtime_adj(X509_get_notBefore(certificate), -(24*60*60));
    X509_gmtime_adj(X509_get_notAfter(certificate), (366*24*60*60));

    X509_sign(certificate, certkeypair, EVP_sha512());

    const SSL_METHOD* meth;
    meth = TLSv1_method();
    SSL_CTX* ctx;
    ctx = SSL_CTX_new(meth);

    SSL_CTX_use_certificate (ctx, certificate);
    SSL_CTX_use_PrivateKey (ctx, certkeypair);

    if (!SSL_CTX_check_private_key (ctx))
        printf ("Signature could not be verified\n");

    ERR_error_string(ERR_peek_last_error(), err);
        printf ("Error is %s\n", err);
}

I cant get the created certificate to be verified. It always results in --

error:140A80B1:SSL routines:SSL_CTX_check_private_key:no certificate assigned
_______________________________________________
openssl-users mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-users

Reply via email to