Loading CHANGES +4 −0 Original line number Original line Diff line number Diff line Loading @@ -794,6 +794,10 @@ Changes between 0.9.7g and 0.9.7h [XX xxx XXXX] 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 *) 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 a threadsafe manner. Modify rsa code to use new function and add calls to dsa and dh code (which had race conditions before). to dsa and dh code (which had race conditions before). Loading crypto/pkcs7/pk7_mime.c +22 −2 Original line number Original line Diff line number Diff line Loading @@ -3,7 +3,7 @@ * project. * 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 * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * 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; char bound[33], c; int i; int i; char *mime_prefix, *mime_eol; char *mime_prefix, *mime_eol, *msg_type=NULL; if (flags & PKCS7_NOOLDMIMETYPE) if (flags & PKCS7_NOOLDMIMETYPE) mime_prefix = "application/pkcs7-"; mime_prefix = "application/pkcs7-"; else else mime_prefix = "application/x-pkcs7-"; mime_prefix = "application/x-pkcs7-"; if (flags & PKCS7_CRLFEOL) if (flags & PKCS7_CRLFEOL) mime_eol = "\r\n"; mime_eol = "\r\n"; else else Loading Loading @@ -196,11 +197,30 @@ int SMIME_write_PKCS7(BIO *bio, PKCS7 *p7, BIO *data, int flags) mime_eol, mime_eol); mime_eol, mime_eol); return 1; 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 */ /* MIME headers */ BIO_printf(bio, "MIME-Version: 1.0%s", mime_eol); BIO_printf(bio, "MIME-Version: 1.0%s", mime_eol); BIO_printf(bio, "Content-Disposition: attachment;"); BIO_printf(bio, "Content-Disposition: attachment;"); BIO_printf(bio, " filename=\"smime.p7m\"%s", mime_eol); BIO_printf(bio, " filename=\"smime.p7m\"%s", mime_eol); BIO_printf(bio, "Content-Type: %smime;", mime_prefix); 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, " name=\"smime.p7m\"%s", mime_eol); BIO_printf(bio, "Content-Transfer-Encoding: base64%s%s", BIO_printf(bio, "Content-Transfer-Encoding: base64%s%s", mime_eol, mime_eol); mime_eol, mime_eol); Loading Loading
CHANGES +4 −0 Original line number Original line Diff line number Diff line Loading @@ -794,6 +794,10 @@ Changes between 0.9.7g and 0.9.7h [XX xxx XXXX] 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 *) 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 a threadsafe manner. Modify rsa code to use new function and add calls to dsa and dh code (which had race conditions before). to dsa and dh code (which had race conditions before). Loading
crypto/pkcs7/pk7_mime.c +22 −2 Original line number Original line Diff line number Diff line Loading @@ -3,7 +3,7 @@ * project. * 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 * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * 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; char bound[33], c; int i; int i; char *mime_prefix, *mime_eol; char *mime_prefix, *mime_eol, *msg_type=NULL; if (flags & PKCS7_NOOLDMIMETYPE) if (flags & PKCS7_NOOLDMIMETYPE) mime_prefix = "application/pkcs7-"; mime_prefix = "application/pkcs7-"; else else mime_prefix = "application/x-pkcs7-"; mime_prefix = "application/x-pkcs7-"; if (flags & PKCS7_CRLFEOL) if (flags & PKCS7_CRLFEOL) mime_eol = "\r\n"; mime_eol = "\r\n"; else else Loading Loading @@ -196,11 +197,30 @@ int SMIME_write_PKCS7(BIO *bio, PKCS7 *p7, BIO *data, int flags) mime_eol, mime_eol); mime_eol, mime_eol); return 1; 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 */ /* MIME headers */ BIO_printf(bio, "MIME-Version: 1.0%s", mime_eol); BIO_printf(bio, "MIME-Version: 1.0%s", mime_eol); BIO_printf(bio, "Content-Disposition: attachment;"); BIO_printf(bio, "Content-Disposition: attachment;"); BIO_printf(bio, " filename=\"smime.p7m\"%s", mime_eol); BIO_printf(bio, " filename=\"smime.p7m\"%s", mime_eol); BIO_printf(bio, "Content-Type: %smime;", mime_prefix); 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, " name=\"smime.p7m\"%s", mime_eol); BIO_printf(bio, "Content-Transfer-Encoding: base64%s%s", BIO_printf(bio, "Content-Transfer-Encoding: base64%s%s", mime_eol, mime_eol); mime_eol, mime_eol); Loading