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
