Hi, I'm trying to use SMIME for signing, but I can not verify my signed data successfully since there seem to be newlines were they should not be! It seems to have something to do with the flags because when I only set PKCS7_TEXT, it verifies ok.
Here my code: PKCS7 *pkcs7 = NULL; BIO *data = NULL; BIO *out = NULL; data = BIO_new( BIO_s_mem()); BIO_puts( data, "Hello World!!!\n"); out = BIO_new_fp(stdout, BIO_NOCLOSE); int flags = PKCS7_DETACHED | PKCS7_TEXT | PKCS7_STREAM; // int flags = PKCS7_TEXT | PKCS7_DETACHED; pkcs7 = PKCS7_sign( x509, key, NULL, data, flags); if( SMIME_write_PKCS7( out, pkcs7, data, flags) < 1) cout << "SMIME_write failed" << endl; cout << "pkcs7_vrfy gave " << PKCS7_verify( pkcs7, NULL, cert_ctx, NULL, data, flags) << endl; And the output: MIME-Version: 1.0 Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg=sha1; boundary="----B5AA672462CF11D13C195B1453095AB8" This is an S/MIME signed message ------B5AA672462CF11D13C195B1453095AB8 Content-Type: text/plain Hello World!!! ------B5AA672462CF11D13C195B1453095AB8 Content-Type: application/x-pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" MIIEEAYJKoZIhvcNAQcCoIIEATCCA/0CAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3 DQEHAaCCAmAwggJcMIIBxaADAgECAgEEMA0GCSqGSIb3DQEBBQUAMFYxCzAJBgNV BAYTAmRlMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX aWRnaXRzIFB0eSBMdGQxDzANBgNVBAMTBlZvSUdPUjAeFw0wOTA1MjExMzQ5NDRa Fw0xMDA1MjExMzQ5NDRaMFwxCzAJBgNVBAYTAmRlMRMwEQYDVQQIEwpTb21lLVN0 YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxFTATBgNVBAMU DG1lYnVoQHZvaWdvcjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABIz1uu85oD3y AoZAcVDnU/04qPVjA6kdNSS7G8XujYia+F1i31UDOzrhF86EvKcx+UxFr6o7qU3l 8Aiz1q6ONJyjezB5MAkGA1UdEwQCMAAwLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wg R2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBS7BjRyvyjCw/V7qnLHlA1I Vjo9SDAfBgNVHSMEGDAWgBRpgqq7d5+l5PN9iD7UHIvYb4RQ9jANBgkqhkiG9w0B AQUFAAOBgQBwyK68j/vBB3EqVHu77uttrurcRFFTT+2xd7moDCMuXaMIm6skJ3ua eLMm9KOE+Td0EgOKFMbg0hFKxM90BxUX6KO9kPuAHrIgPOrRU5zzpU13gvvIvubV PXSzLufm+sOVTat3dK+ZH44Oaam38ZZ3NXUDztI6SU9IGrNnS8x0jTGCAXgwggF0 AgEBMFswVjELMAkGA1UEBhMCZGUxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNV BAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEPMA0GA1UEAxMGVm9JR09SAgEE MAkGBSsOAwIaBQCggbEwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG 9w0BCQUxDxcNMDkwNTIxMTYyNTA1WjAjBgkqhkiG9w0BCQQxFgQUA/HW/kOEKRNA O6EQd69nBv2GX+0wUgYJKoZIhvcNAQkPMUUwQzAKBggqhkiG9w0DBzAOBggqhkiG 9w0DAgICAIAwDQYIKoZIhvcNAwICAUAwBwYFKw4DAgcwDQYIKoZIhvcNAwICASgw CwYHKoZIzj0EAQUABEYwRAIgWTuDHxVhiy9hKQ5evSAsktahTh1XjHwx5ZvZXIwW /RYCIFdwRkEa24m9ibbPBsmh5BGvVJsRhbUGptxE3mOnPIIf ------B5AA672462CF11D13C195B1453095AB8-- pkcs7_vrfy gave 0 Thank you, Markus
smime.p7s
Description: S/MIME Cryptographic Signature