Hello all,
I am developing a library
that uses an HSM, and I need to create a CSR to send to the CA. I have
some examples using the X509_REQ to set the public key and attributes. I
've also seen examples of signing the CSR, which finds the req_info
that is needed to sign the CSR:
EVP_PKEY_assign_RSA( pkey , rsa );
X509_REQ_set_pubkey(req, pkey);
subj=X509_REQ_get_subject_name(req);
X509_NAME_add_entry_by_txt(subj,"C",
MBSTRING_ASC, (unsigned char *)"SK", -1, -1, 0);
X509_NAME_add_entry_by_txt(subj,"CN",
MBSTRING_ASC, (unsigned char *)"Test", -1, -1, 0);
int datasig_len;
unsigned char *tobesigned;
datasig_len = i2d_X509_REQ_INFO( req->req_info, NULL );
When I compile the last line, I get the error: error: 'invalid use of incomplete type ‘X509_REQ {aka struct X509_req_st}'
I
have discovered that the header x509.h obfuscates the type 'req_info',
and upon further research, I also found that this type was eliminated
since v1.1.0 of OpenSSL.
Does anyone know of an alternative to accessing the 'req_info' element, or another way I can access the info I need to sign?
Thanks for your help.