Hi,
I am trying to create a pkcs7 file containing
- public key.
- signer info (this signer info contains a signature from another
piece of data calculated previously).
This pkcs7 is of type pkcs7-signedData and the (non existent) data is
of type pkcs7-data. In (the simplest broken code):
evp_key = rsa private key
cert = x509 cert
sign = RSA-SHA1 signature from some info retrieved elsewhere
PKCS7* pkcs = PKCS7_new();
PKCS7_set_type(pkcs, NID_pkcs7_signed);
PKCS7_SIGNER_INFO* pk_signer = PKCS7_add_signature(pkcs, cert,
evp_key, EVP_sha1());
ASN1_OCTET_STRING* hash_octect = ASN1_OCTET_STRING_new();
ASN1_OCTET_STRING_set(hash_octect, sign, sign_len);
pk_signer->enc_digest = hash_octect;
PKCS7_add_certificate(pkcs, cert);
PKCS7_final(pkcs, NULL, 0);
I am pretty sure that is not the way to set the enc_digest on the signer info.
When I inspect the Asn1 created (openssl asn1parse) I see that:
- No "pkcs7-data" object was generated
- An "itu-t" (is that the pkcs7-data)
- No messageDigest object was included (the one from the signer info)
I am trying to get the rsa block file created while signing a JAR file
in the Java platform in case you were wondering.
Does anyone know how to tweak this in order to get the proper pkcs7?
Thanks for your help,
Federico
______________________________________________________________________
OpenSSL Project http://www.openssl.org
User Support Mailing List [email protected]
Automated List Manager [email protected]