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)
                {
                }

Reply via email to