Hey I'm want to verify a S/MIME I stored in a INI file. I acces this ini file
using QSettings, reading the PKCS7 isn't a problem. I checked the smime with
dumpasn1 and their where no problem. I tested the verifiy code using boost
libraries and generated a S/MIME with the same certificate I used for the
S/MIME stored in the ini file and then the S/MIME is verified.
Why can't I verify a stored S/MIME ?
This is the code I use :
//***************** Check if signing is verified ****************
std::string
license_key(iniFile.value("license/LicenseKey").toString().toAscii());
if (!(rootStore = create_store()))
{
KILL_STORE(rootStore);
return false;
}
if (!(in = BIO_new(BIO_s_mem())) ||
!(BIO_puts(in, license_key.c_str())))
{
KILL_BIO(in);
KILL_STORE(rootStore);
return false;
}
//used to set mem bio react like file bio
BIO_set_mem_eof_return(in, 0);
if (!(pkcs7 = SMIME_read_PKCS7(in, &pkcs7_bio)))
{
KILL_BIO(in);
KILL_BIO(pkcs7_bio);
KILL_STORE(rootStore);
return false;
}
BIO *content_bio = BIO_new(BIO_s_mem());
cout << "validate allmowts everything" << endl;
if (PKCS7_verify(pkcs7, NULL, rootStore, pkcs7_bio,
content_bio, 0) != 1)
{
}