~ubuntu-branches/ubuntu/trusty/openssl/trusty

« back to all changes in this revision

Viewing changes to .pc/CVE-2013-0169.patch/ssl/ssl_algs.c

  • Committer: Package Import Robot
  • Author(s): Marc Deslauriers
  • Date: 2013-05-21 16:31:47 UTC
  • mfrom: (11.1.41 sid)
  • Revision ID: package-import@ubuntu.com-20130521163147-96isrq0asz929zm6
Tags: 1.0.1e-2ubuntu1
* Resynchronise with Debian unstable.  Remaining changes:
  - debian/libssl1.0.0.postinst:
    + Display a system restart required notification on libssl1.0.0
      upgrade on servers.
    + Use a different priority for libssl1.0.0/restart-services depending
      on whether a desktop, or server dist-upgrade is being performed.
  - debian/{libssl1.0.0-udeb.dirs, control, rules}: Create
    libssl1.0.0-udeb, for the benefit of wget-udeb (no wget-udeb package
    in Debian).
  - debian/{libcrypto1.0.0-udeb.dirs, libssl1.0.0.dirs, libssl1.0.0.files,
    rules}: Move runtime libraries to /lib, for the benefit of
    wpasupplicant.
  - debian/patches/perlpath-quilt.patch: Don't change perl #! paths under
    .pc.
  - debian/rules:
    + Don't run 'make test' when cross-building.
    + Use host compiler when cross-building.  Patch from Neil Williams.
    + Don't build for processors no longer supported: i586 (on i386)
    + Fix Makefile to properly clean up libs/ dirs in clean target.
    + Replace duplicate files in the doc directory with symlinks.
  - Unapply patch c_rehash-multi and comment it out in the series as it
    breaks parsing of certificates with CRLF line endings and other cases
    (see Debian #642314 for discussion), it also changes the semantics of
    c_rehash directories by requiring applications to parse hash link
    targets as files containing potentially *multiple* certificates rather
    than exactly one.
  - debian/patches/tls12_workarounds.patch: Workaround large client hello
    issues when TLS 1.1 and lower is in use
  - debian/control: Mark Debian Vcs-* as XS-Debian-Vcs-*
  - debian/patches/ubuntu_deb676533_arm_asm.patch: Enable arm assembly
    code.
  - debian/patches/arm64-support: Add basic arm64 support (no assembler)
  - debian/rules: Enable optimized 64bit elliptic curve code contributed
    by Google.
* debian/patches/tls12_workarounds.patch: updated to also disable TLS 1.2
  in test suite since we disable it in the client.
* Dropped changes:
  - debian/patches/CVE-2013-0169.patch: upstream.
  - debian/patches/fix_key_decoding_deadlock.patch: upstream.
  - debian/patches/CVE-2013-0166.patch: upstream.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* ssl/ssl_algs.c */
2
 
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3
 
 * All rights reserved.
4
 
 *
5
 
 * This package is an SSL implementation written
6
 
 * by Eric Young (eay@cryptsoft.com).
7
 
 * The implementation was written so as to conform with Netscapes SSL.
8
 
 * 
9
 
 * This library is free for commercial and non-commercial use as long as
10
 
 * the following conditions are aheared to.  The following conditions
11
 
 * apply to all code found in this distribution, be it the RC4, RSA,
12
 
 * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
13
 
 * included with this distribution is covered by the same copyright terms
14
 
 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15
 
 * 
16
 
 * Copyright remains Eric Young's, and as such any Copyright notices in
17
 
 * the code are not to be removed.
18
 
 * If this package is used in a product, Eric Young should be given attribution
19
 
 * as the author of the parts of the library used.
20
 
 * This can be in the form of a textual message at program startup or
21
 
 * in documentation (online or textual) provided with the package.
22
 
 * 
23
 
 * Redistribution and use in source and binary forms, with or without
24
 
 * modification, are permitted provided that the following conditions
25
 
 * are met:
26
 
 * 1. Redistributions of source code must retain the copyright
27
 
 *    notice, this list of conditions and the following disclaimer.
28
 
 * 2. Redistributions in binary form must reproduce the above copyright
29
 
 *    notice, this list of conditions and the following disclaimer in the
30
 
 *    documentation and/or other materials provided with the distribution.
31
 
 * 3. All advertising materials mentioning features or use of this software
32
 
 *    must display the following acknowledgement:
33
 
 *    "This product includes cryptographic software written by
34
 
 *     Eric Young (eay@cryptsoft.com)"
35
 
 *    The word 'cryptographic' can be left out if the rouines from the library
36
 
 *    being used are not cryptographic related :-).
37
 
 * 4. If you include any Windows specific code (or a derivative thereof) from 
38
 
 *    the apps directory (application code) you must include an acknowledgement:
39
 
 *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40
 
 * 
41
 
 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42
 
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43
 
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44
 
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45
 
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46
 
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47
 
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48
 
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49
 
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50
 
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51
 
 * SUCH DAMAGE.
52
 
 * 
53
 
 * The licence and distribution terms for any publically available version or
54
 
 * derivative of this code cannot be changed.  i.e. this code cannot simply be
55
 
 * copied and put under another distribution licence
56
 
 * [including the GNU Public Licence.]
57
 
 */
58
 
 
59
 
#include <stdio.h>
60
 
#include <openssl/objects.h>
61
 
#include <openssl/lhash.h>
62
 
#include "ssl_locl.h"
63
 
 
64
 
int SSL_library_init(void)
65
 
        {
66
 
 
67
 
#ifndef OPENSSL_NO_DES
68
 
        EVP_add_cipher(EVP_des_cbc());
69
 
        EVP_add_cipher(EVP_des_ede3_cbc());
70
 
#endif
71
 
#ifndef OPENSSL_NO_IDEA
72
 
        EVP_add_cipher(EVP_idea_cbc());
73
 
#endif
74
 
#ifndef OPENSSL_NO_RC4
75
 
        EVP_add_cipher(EVP_rc4());
76
 
#if !defined(OPENSSL_NO_MD5) && (defined(__x86_64) || defined(__x86_64__))
77
 
        EVP_add_cipher(EVP_rc4_hmac_md5());
78
 
#endif
79
 
#endif  
80
 
#ifndef OPENSSL_NO_RC2
81
 
        EVP_add_cipher(EVP_rc2_cbc());
82
 
        /* Not actually used for SSL/TLS but this makes PKCS#12 work
83
 
         * if an application only calls SSL_library_init().
84
 
         */
85
 
        EVP_add_cipher(EVP_rc2_40_cbc());
86
 
#endif
87
 
#ifndef OPENSSL_NO_AES
88
 
        EVP_add_cipher(EVP_aes_128_cbc());
89
 
        EVP_add_cipher(EVP_aes_192_cbc());
90
 
        EVP_add_cipher(EVP_aes_256_cbc());
91
 
        EVP_add_cipher(EVP_aes_128_gcm());
92
 
        EVP_add_cipher(EVP_aes_256_gcm());
93
 
#if !defined(OPENSSL_NO_SHA) && !defined(OPENSSL_NO_SHA1)
94
 
        EVP_add_cipher(EVP_aes_128_cbc_hmac_sha1());
95
 
        EVP_add_cipher(EVP_aes_256_cbc_hmac_sha1());
96
 
#endif
97
 
#endif
98
 
#ifndef OPENSSL_NO_CAMELLIA
99
 
        EVP_add_cipher(EVP_camellia_128_cbc());
100
 
        EVP_add_cipher(EVP_camellia_256_cbc());
101
 
#endif
102
 
 
103
 
#ifndef OPENSSL_NO_SEED
104
 
        EVP_add_cipher(EVP_seed_cbc());
105
 
#endif
106
 
  
107
 
#ifndef OPENSSL_NO_MD5
108
 
        EVP_add_digest(EVP_md5());
109
 
        EVP_add_digest_alias(SN_md5,"ssl2-md5");
110
 
        EVP_add_digest_alias(SN_md5,"ssl3-md5");
111
 
#endif
112
 
#ifndef OPENSSL_NO_SHA
113
 
        EVP_add_digest(EVP_sha1()); /* RSA with sha1 */
114
 
        EVP_add_digest_alias(SN_sha1,"ssl3-sha1");
115
 
        EVP_add_digest_alias(SN_sha1WithRSAEncryption,SN_sha1WithRSA);
116
 
#endif
117
 
#ifndef OPENSSL_NO_SHA256
118
 
        EVP_add_digest(EVP_sha224());
119
 
        EVP_add_digest(EVP_sha256());
120
 
#endif
121
 
#ifndef OPENSSL_NO_SHA512
122
 
        EVP_add_digest(EVP_sha384());
123
 
        EVP_add_digest(EVP_sha512());
124
 
#endif
125
 
#if !defined(OPENSSL_NO_SHA) && !defined(OPENSSL_NO_DSA)
126
 
        EVP_add_digest(EVP_dss1()); /* DSA with sha1 */
127
 
        EVP_add_digest_alias(SN_dsaWithSHA1,SN_dsaWithSHA1_2);
128
 
        EVP_add_digest_alias(SN_dsaWithSHA1,"DSS1");
129
 
        EVP_add_digest_alias(SN_dsaWithSHA1,"dss1");
130
 
#endif
131
 
#ifndef OPENSSL_NO_ECDSA
132
 
        EVP_add_digest(EVP_ecdsa());
133
 
#endif
134
 
        /* If you want support for phased out ciphers, add the following */
135
 
#if 0
136
 
        EVP_add_digest(EVP_sha());
137
 
        EVP_add_digest(EVP_dss());
138
 
#endif
139
 
#ifndef OPENSSL_NO_COMP
140
 
        /* This will initialise the built-in compression algorithms.
141
 
           The value returned is a STACK_OF(SSL_COMP), but that can
142
 
           be discarded safely */
143
 
        (void)SSL_COMP_get_compression_methods();
144
 
#endif
145
 
        /* initialize cipher/digest methods table */
146
 
        ssl_load_ciphers();
147
 
        return(1);
148
 
        }
149