Loading CHANGES +4 −0 Original line number Diff line number Diff line Loading @@ -794,6 +794,10 @@ Changes between 0.9.7g and 0.9.7h [XX xxx XXXX] *) Add support for smime-type MIME parameter in S/MIME messages which some clients need. [Steve Henson] *) New function BN_MONT_CTX_set_locked() to set montgomery parameters in a threadsafe manner. Modify rsa code to use new function and add calls to dsa and dh code (which had race conditions before). Loading crypto/pkcs7/pk7_mime.c +22 −2 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ * project. */ /* ==================================================================== * Copyright (c) 1999-2003 The OpenSSL Project. All rights reserved. * Copyright (c) 1999-2005 The OpenSSL Project. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions Loading Loading @@ -150,11 +150,12 @@ int SMIME_write_PKCS7(BIO *bio, PKCS7 *p7, BIO *data, int flags) { char bound[33], c; int i; char *mime_prefix, *mime_eol; char *mime_prefix, *mime_eol, *msg_type=NULL; if (flags & PKCS7_NOOLDMIMETYPE) mime_prefix = "application/pkcs7-"; else mime_prefix = "application/x-pkcs7-"; if (flags & PKCS7_CRLFEOL) mime_eol = "\r\n"; else Loading Loading @@ -196,11 +197,30 @@ int SMIME_write_PKCS7(BIO *bio, PKCS7 *p7, BIO *data, int flags) mime_eol, mime_eol); return 1; } /* Determine smime-type header */ if (PKCS7_type_is_enveloped(p7)) msg_type = "enveloped-data"; else if (PKCS7_type_is_signed(p7)) { /* If we have any signers it is signed-data othewise * certs-only. */ STACK_OF(PKCS7_SIGNER_INFO) *sinfos; sinfos = PKCS7_get_signer_info(p7); if (sk_PKCS7_SIGNER_INFO_num(sinfos) > 0) msg_type = "signed-data"; else msg_type = "certs-only"; } /* MIME headers */ BIO_printf(bio, "MIME-Version: 1.0%s", mime_eol); BIO_printf(bio, "Content-Disposition: attachment;"); BIO_printf(bio, " filename=\"smime.p7m\"%s", mime_eol); BIO_printf(bio, "Content-Type: %smime;", mime_prefix); if (msg_type) BIO_printf(bio, " smime-type=%s;", msg_type); BIO_printf(bio, " name=\"smime.p7m\"%s", mime_eol); BIO_printf(bio, "Content-Transfer-Encoding: base64%s%s", mime_eol, mime_eol); Loading Loading
CHANGES +4 −0 Original line number Diff line number Diff line Loading @@ -794,6 +794,10 @@ Changes between 0.9.7g and 0.9.7h [XX xxx XXXX] *) Add support for smime-type MIME parameter in S/MIME messages which some clients need. [Steve Henson] *) New function BN_MONT_CTX_set_locked() to set montgomery parameters in a threadsafe manner. Modify rsa code to use new function and add calls to dsa and dh code (which had race conditions before). Loading
crypto/pkcs7/pk7_mime.c +22 −2 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ * project. */ /* ==================================================================== * Copyright (c) 1999-2003 The OpenSSL Project. All rights reserved. * Copyright (c) 1999-2005 The OpenSSL Project. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions Loading Loading @@ -150,11 +150,12 @@ int SMIME_write_PKCS7(BIO *bio, PKCS7 *p7, BIO *data, int flags) { char bound[33], c; int i; char *mime_prefix, *mime_eol; char *mime_prefix, *mime_eol, *msg_type=NULL; if (flags & PKCS7_NOOLDMIMETYPE) mime_prefix = "application/pkcs7-"; else mime_prefix = "application/x-pkcs7-"; if (flags & PKCS7_CRLFEOL) mime_eol = "\r\n"; else Loading Loading @@ -196,11 +197,30 @@ int SMIME_write_PKCS7(BIO *bio, PKCS7 *p7, BIO *data, int flags) mime_eol, mime_eol); return 1; } /* Determine smime-type header */ if (PKCS7_type_is_enveloped(p7)) msg_type = "enveloped-data"; else if (PKCS7_type_is_signed(p7)) { /* If we have any signers it is signed-data othewise * certs-only. */ STACK_OF(PKCS7_SIGNER_INFO) *sinfos; sinfos = PKCS7_get_signer_info(p7); if (sk_PKCS7_SIGNER_INFO_num(sinfos) > 0) msg_type = "signed-data"; else msg_type = "certs-only"; } /* MIME headers */ BIO_printf(bio, "MIME-Version: 1.0%s", mime_eol); BIO_printf(bio, "Content-Disposition: attachment;"); BIO_printf(bio, " filename=\"smime.p7m\"%s", mime_eol); BIO_printf(bio, "Content-Type: %smime;", mime_prefix); if (msg_type) BIO_printf(bio, " smime-type=%s;", msg_type); BIO_printf(bio, " name=\"smime.p7m\"%s", mime_eol); BIO_printf(bio, "Content-Transfer-Encoding: base64%s%s", mime_eol, mime_eol); Loading