Commit Graph

3158 Commits

Author SHA1 Message Date
christos
78327f041b merge conflicts 2018-04-06 23:04:43 +00:00
christos
5306042184 *) Constructed ASN.1 types with a recursive definition could exceed the stack
Constructed ASN.1 types with a recursive definition (such as can be found
     in PKCS7) could eventually exceed the stack given malicious input with
     excessive recursion. This could result in a Denial Of Service attack. There
     are no such structures used within SSL/TLS that come from untrusted sources
     so this is considered safe.

     This issue was reported to OpenSSL on 4th January 2018 by the OSS-fuzz
     project.
     (CVE-2018-0739)
     [Matt Caswell]

  *) Incorrect CRYPTO_memcmp on HP-UX PA-RISC

     Because of an implementation bug the PA-RISC CRYPTO_memcmp function is
     effectively reduced to only comparing the least significant bit of each
     byte. This allows an attacker to forge messages that would be considered as
     authenticated in an amount of tries lower than that guaranteed by the
     security claims of the scheme. The module can only be compiled by the
     HP-UX assembler, so that only HP-UX PA-RISC targets are affected.

     This issue was reported to OpenSSL on 2nd March 2018 by Peter Waltenberg
     (IBM).
     (CVE-2018-0733)
     [Andy Polyakov]

  *) Add a build target 'build_all_generated', to build all generated files
     and only that.  This can be used to prepare everything that requires
     things like perl for a system that lacks perl and then move everything
     to that system and do the rest of the build there.
     [Richard Levitte]

  *) Backport SSL_OP_NO_RENGOTIATION

     OpenSSL 1.0.2 and below had the ability to disable renegotiation using the
     (undocumented) SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS flag. Due to the opacity
     changes this is no longer possible in 1.1.0. Therefore the new
     SSL_OP_NO_RENEGOTIATION option from 1.1.1-dev has been backported to
     1.1.0 to provide equivalent functionality.

     Note that if an application built against 1.1.0h headers (or above) is run
     using an older version of 1.1.0 (prior to 1.1.0h) then the option will be
     accepted but nothing will happen, i.e. renegotiation will not be prevented.
     [Matt Caswell]

  *) Removed the OS390-Unix config target.  It relied on a script that doesn't
     exist.
     [Rich Salz]

  *) rsaz_1024_mul_avx2 overflow bug on x86_64

     There is an overflow bug in the AVX2 Montgomery multiplication procedure
     used in exponentiation with 1024-bit moduli. No EC algorithms are affected.
     Analysis suggests that attacks against RSA and DSA as a result of this
     defect would be very difficult to perform and are not believed likely.
     Attacks against DH1024 are considered just feasible, because most of the
     work necessary to deduce information about a private key may be performed
     offline. The amount of resources required for such an attack would be
     significant. However, for an attack on TLS to be meaningful, the server
     would have to share the DH1024 private key among multiple clients, which is
     no longer an option since CVE-2016-0701.

     This only affects processors that support the AVX2 but not ADX extensions
     like Intel Haswell (4th generation).

     This issue was reported to OpenSSL by David Benjamin (Google). The issue
     was originally found via the OSS-Fuzz project.
     (CVE-2017-3738)
     [Andy Polyakov]
2018-04-06 22:49:06 +00:00
christos
db50f7682d - use c99 initializers
- add kdc offset functions
2018-04-06 19:57:03 +00:00
christos
2e9ba29a65 don't forget to initialize the kdc_offset (it was random before) 2018-04-06 19:56:43 +00:00
christos
ffae97bbe8 merge conflicts 2018-04-06 18:58:59 +00:00
christos
ad340bdf0b OpenSSH 7.7 was released on 2018-04-02. It is available from the
mirrors listed at http://www.openssh.com/ shortly.

OpenSSH is a 100% complete SSH protocol 2.0 implementation and
includes sftp client and server support.

Once again, we would like to thank the OpenSSH community for their
continued support of the project, especially those who contributed
code or patches, reported bugs, tested snapshots or donated to the
project. More information on donations may be found at:
http://www.openssh.com/donations.html

Potentially-incompatible changes
================================

This release includes a number of changes that may affect existing
configurations:

 * ssh(1)/sshd(8): Drop compatibility support for some very old SSH
   implementations, including ssh.com <=2.* and OpenSSH <= 3.*. These
   versions were all released in or before 2001 and predate the final
   SSH RFCs. The support in question isn't necessary for RFC-compliant
   SSH implementations.

Changes since OpenSSH 7.6
=========================

This is primarily a bugfix release.

New Features
------------

 * All: Add experimental support for PQC XMSS keys (Extended Hash-
   Based Signatures) based on the algorithm described in
   https://tools.ietf.org/html/draft-irtf-cfrg-xmss-hash-based-signatures-12
   The XMSS signature code is experimental and not compiled in by
   default.

 * sshd(8): Add a "rdomain" criteria for the sshd_config Match keyword
   to allow conditional configuration that depends on which routing
   domain a connection was received on (currently supported on OpenBSD
   and Linux).

 * sshd_config(5): Add an optional rdomain qualifier to the
   ListenAddress directive to allow listening on different routing
   domains. This is supported only on OpenBSD and Linux at present.

 * sshd_config(5): Add RDomain directive to allow the authenticated
   session to be placed in an explicit routing domain. This is only
   supported on OpenBSD at present.

 * sshd(8): Add "expiry-time" option for authorized_keys files to
   allow for expiring keys.

 * ssh(1): Add a BindInterface option to allow binding the outgoing
   connection to an interface's address (basically a more usable
   BindAddress)

 * ssh(1): Expose device allocated for tun/tap forwarding via a new
   %T expansion for LocalCommand. This allows LocalCommand to be used
   to prepare the interface.

 * sshd(8): Expose the device allocated for tun/tap forwarding via a
   new SSH_TUNNEL environment variable. This allows automatic setup of
   the interface and surrounding network configuration automatically on
   the server.

 * ssh(1)/scp(1)/sftp(1): Add URI support to ssh, sftp and scp, e.g.
   ssh://user@host or sftp://user@host/path.  Additional connection
   parameters described in draft-ietf-secsh-scp-sftp-ssh-uri-04 are not
   implemented since the ssh fingerprint format in the draft uses the
   deprecated MD5 hash with no way to specify the any other algorithm.

 * ssh-keygen(1): Allow certificate validity intervals that specify
   only a start or stop time (instead of both or neither).

 * sftp(1): Allow "cd" and "lcd" commands with no explicit path
   argument. lcd will change to the local user's home directory as
   usual. cd will change to the starting directory for session (because
   the protocol offers no way to obtain the remote user's home
   directory). bz#2760

 * sshd(8): When doing a config test with sshd -T, only require the
   attributes that are actually used in Match criteria rather than (an
   incomplete list of) all criteria.

Bugfixes
--------

 * ssh(1)/sshd(8): More strictly check signature types during key
   exchange against what was negotiated. Prevents downgrade of RSA
   signatures made with SHA-256/512 to SHA-1.

 * sshd(8): Fix support for client that advertise a protocol version
   of "1.99" (indicating that they are prepared to accept both SSHv1 and
   SSHv2). This was broken in OpenSSH 7.6 during the removal of SSHv1
   support. bz#2810

 * ssh(1): Warn when the agent returns a ssh-rsa (SHA1) signature when
   a rsa-sha2-256/512 signature was requested. This condition is possible
   when an old or non-OpenSSH agent is in use. bz#2799

 * ssh-agent(1): Fix regression introduced in 7.6 that caused ssh-agent
   to fatally exit if presented an invalid signature request message.

 * sshd_config(5): Accept yes/no flag options case-insensitively, as
   has been the case in ssh_config(5) for a long time. bz#2664

 * ssh(1): Improve error reporting for failures during connection.
   Under some circumstances misleading errors were being shown. bz#2814

 * ssh-keyscan(1): Add -D option to allow printing of results directly
   in SSHFP format. bz#2821

 * regress tests: fix PuTTY interop test broken in last release's SSHv1
   removal. bz#2823

 * ssh(1): Compatibility fix for some servers that erroneously drop the
   connection when the IUTF8 (RFC8160) option is sent.

 * scp(1): Disable RemoteCommand and RequestTTY in the ssh session
   started by scp (sftp was already doing this.)

 * ssh-keygen(1): Refuse to create a certificate with an unusable
   number of principals.

 * ssh-keygen(1): Fatally exit if ssh-keygen is unable to write all the
   public key during key generation. Previously it would silently
   ignore errors writing the comment and terminating newline.

 * ssh(1): Do not modify hostname arguments that are addresses by
   automatically forcing them to lower-case. Instead canonicalise them
   to resolve ambiguities (e.g. ::0001 => ::1) before they are matched
   against known_hosts. bz#2763

 * ssh(1): Don't accept junk after "yes" or "no" responses to hostkey
   prompts. bz#2803

 * sftp(1): Have sftp print a warning about shell cleanliness when
   decoding the first packet fails, which is usually caused by shells
   polluting stdout of non-interactive startups. bz#2800

 * ssh(1)/sshd(8): Switch timers in packet code from using wall-clock
   time to monotonic time, allowing the packet layer to better function
   over a clock step and avoiding possible integer overflows during
   steps.

 * Numerous manual page fixes and improvements.

Portability
-----------

 * sshd(8): Correctly detect MIPS ABI in use at configure time. Fixes
   sandbox violations on some environments.

 * sshd(8): Remove UNICOS support. The hardware and software are literal
   museum pieces and support in sshd is too intrusive to justify
   maintaining.

 * All: Build and link with "retpoline" flags when available to mitigate
   the "branch target injection" style (variant 2) of the Spectre
   branch-prediction vulnerability.

 * All: Add auto-generated dependency information to Makefile.

 * Numerous fixed to the RPM spec files.

Checksums:
==========

- SHA1 (openssh-7.7.tar.gz) = 24812e05fa233014c847c7775748316e7f8a836c
- SHA256 (openssh-7.7.tar.gz) = T4ua1L/vgAYqwB0muRahvnm5ZUr3PLY9nPljaG8egvo=

- SHA1 (openssh-7.7p1.tar.gz) = 446fe9ed171f289f0d62197dffdbfdaaf21c49f2
- SHA256 (openssh-7.7p1.tar.gz) = 1zvn5oTpnvzQJL4Vowv/y+QbASsvezyQhK7WIXdea48=

Please note that the SHA256 signatures are base64 encoded and not
hexadecimal (which is the default for most checksum tools). The PGP
key used to sign the releases is available as RELEASE_KEY.asc from
the mirror sites.

Reporting Bugs:
===============

- Please read http://www.openssh.com/report.html
  Security bugs should be reported directly to openssh@openssh.com
2018-04-06 18:56:07 +00:00
ryo
04e2d8f4a5 when CPPFLAGS include a parameter that has any spaces (e.g. CPPFLAGS="-DBN_LLONG=\"long long\""),
$CPP $CPPFLAGS fails. (aarch64--netbsd-clang: error: no such file or directory: 'long"')

advice to use "eval" by soda@. thanks.
2018-04-06 15:47:08 +00:00
sevan
f1fc57f92c Drop superfluous zero prefix for single digit number days.
heads up by wiz
2018-04-04 21:39:35 +00:00
sevan
9835dc7a54 Some further changes from PR bin/48395. 2018-04-03 21:57:14 +00:00
sevan
7119252bd3 Revert previous change as the typedef should now work as intended.
Thanks christos, martin
2018-04-02 10:30:06 +00:00
christos
f92f386dca remove unused struct tag. 2018-04-01 23:38:02 +00:00
sevan
189f355498 netpgp_t is a structure 2018-04-01 23:25:27 +00:00
christos
e24b32683b Avoid double frees (thanks asan) 2018-04-01 22:59:57 +00:00
christos
7b335de413 make debugrm compile again. 2018-04-01 22:35:22 +00:00
christos
222f47901a use the OpenSSL version of des_modes.7 since it is newer. 2018-03-15 18:40:16 +00:00
mrg
6e029617f0 add *template.x to CLEANFILES. 2018-03-13 03:06:51 +00:00
mrg
76e973d086 match opening ( with closing ) instead of closing }.
fixes mips builds... partly.
2018-03-09 21:49:55 +00:00
christos
419bfd3d3e use the proper match pattern 2018-03-09 12:40:23 +00:00
christos
b84f7f92e0 Disable assembly stubs for the big endian variants of mips (could be more
precise? are all of them broken?)
2018-03-09 12:39:30 +00:00
christos
97b4576f10 Add the rest of the earm flavors; madness. 2018-03-09 01:34:30 +00:00
christos
c9896dce02 Don't define the v8 functions for v7! 2018-03-09 01:33:57 +00:00
christos
a10a55c9e9 oops forgot to commit this. 2018-03-08 13:38:02 +00:00
christos
4be809cba5 need CRYPTO_memcmp() 2018-03-08 03:15:08 +00:00
christos
49ec5300d6 add size directives. 2018-03-08 03:14:31 +00:00
christos
128142209e remove the SHA256_Init man page; we are using ours from libc. 2018-03-07 22:40:26 +00:00
christos
884443877d fix build on non-earm 2018-03-07 20:38:39 +00:00
christos
82641d7407 only use the 64 bit abi if specified on the command line. 2018-03-07 19:44:31 +00:00
christos
020c64a4e7 HACK around aarch64 having "long long" "__int64_t" 2018-03-07 16:06:57 +00:00
christos
bf6a9fb3d4 Enable AES_ASM explicitly not by just looking at the processor, like we
do for other archs!
2018-03-07 16:06:29 +00:00
christos
1aaa4bda28 regen; some assembly files don't work so disable for now. 2018-03-07 16:05:44 +00:00
mlelstv
847d546cb0 Use local ELF labels and avoid an unsupported 16bit relocation. 2018-03-07 06:55:01 +00:00
christos
cf226b6835 need CRYPTO_memcmp 2018-03-06 19:32:16 +00:00
christos
33c1542bb7 need CRYPTO_memequal 2018-03-06 19:30:56 +00:00
christos
c79601bd37 fix v8 PMULL detection (Robert Swindells) 2018-03-06 18:36:09 +00:00
christos
ac465b1fa5 For mips64:
Avoid branch delay spot warnings: Warning: macro instruction expanded into
multiple instructions in a branch delay slot
2018-03-06 18:32:37 +00:00
christos
1e125808a4 Avoid branch delay spot warnings: Warning: macro instruction expanded into
multiple instructions in a branch delay slot
XXX: Manually need to fix in auto-generation.
2018-03-06 13:47:25 +00:00
christos
30f7db8025 Add a case for 7, remove arm64crypto.S 2018-03-06 13:37:43 +00:00
christos
6410c86794 Handle mips64 properly. 2018-03-05 16:43:50 +00:00
christos
7e8fa9f58b need CRYPTO_memcmp. 2018-03-05 01:00:12 +00:00
christos
496e722b68 make the key functions public, and provide function type and size attributes. 2018-03-05 00:59:43 +00:00
christos
2ac7033a22 regen 2018-03-04 16:45:12 +00:00
christos
3f6efeccf9 hack for lint 2018-03-04 04:09:03 +00:00
christos
1847e6b0e8 Alpha Stuff 2018-03-04 04:00:45 +00:00
christos
e7039be786 regen. 2018-03-04 03:25:18 +00:00
christos
76c4f34245 regen 2018-03-04 00:59:44 +00:00
christos
48c10bd910 remove useless grep 2018-03-04 00:24:21 +00:00
christos
dffa37b04e provide CRYPTO_memcmp for the have-nots. 2018-03-03 04:32:46 +00:00
christos
edeef4718e Regen for OpenSSL-1.1
XXX: we could add the new assembly files to speed-up things but now we
are only using the assembly stubs that 1.0 used.
2018-03-03 00:20:57 +00:00
christos
3eb848e5fb Remove unused part of the Makefile (Muhammed.Shameem) 2018-03-02 13:26:40 +00:00
christos
8083c34295 make this link again:
- we don't want to define the reference impl flag because there is no
  complete c reference impl for nistz256
- we want to define an empty OPENSSL_cpuid_setup() because we don't want
  to use the v9 one... this function is called from 2 places:
  1. in the sparccpuid.S assembly, which we need for the CRYPTO_mem*
     functions -- but we could get rid of the v9 stuff with
     #ifdef __sparc_v9__ for size and we don't bother
  2. crypto/init.c
2018-02-26 01:33:05 +00:00
mrg
2e19323388 add LIBKRB5_LDADD/LIBKRB5_DPADD and their static counterparts
to bsd.prog.mk.  use them instead of hard coding various lists
of libraries for krb5.

this fixes static builds.
2018-02-25 00:16:48 +00:00
christos
1bfb3e3818 dedup 2018-02-24 21:51:22 +00:00
christos
34c1b54ff7 we don't yet have __atomic_is_lock_free 2018-02-24 21:47:34 +00:00
christos
6462075721 fix sparc. 2018-02-24 21:45:57 +00:00
christos
96c8300010 add the right assembler flags for the two new files. 2018-02-24 20:23:58 +00:00
martin
031637411f Backout my over-eager backout - we need this for sparc64 building netbsd32
compat libs, but still lots of #ifdef's missing to make this ready for
usage by sparc.
2018-02-20 13:14:02 +00:00
martin
9d80f6b600 Backout previous "regen" - the regen target in this directory is bogus,
there is no "sparcv9" nor any "vis" in the default CPU targets for
NetBSD/sparc.
2018-02-20 12:48:46 +00:00
christos
e1e22576fa Avoid ssp error on sparc64 2018-02-18 23:41:44 +00:00
christos
1c6734b209 Regen. 2018-02-18 23:38:47 +00:00
christos
82081465bf Provide SHAR384 flavors: The OpenSSL SHA512_Final implementation is re-used
to implement SHA384_Final, but does the right thing by checking the internally
kept digest size. The NetBSD libc implementation provides two entry points
that write a different size digest, so if we use the SHA512_Final from here
we end up overwriting memory.
2018-02-13 22:35:47 +00:00
christos
0f39d79ef1 Provide the means to use the libc sha2 internally instead of the openssl
implementation; this does not really matter since their structs are larger
than ours, but it helps when we want to verify that we are not using any
of the openssl code.
2018-02-13 22:32:10 +00:00
christos
ba6745c33a Add a (void *) cast to make things compile with our own sha2 header 2018-02-13 22:29:14 +00:00
christos
ab7c594717 add missing test files added in the vendor branch. 2018-02-13 17:39:38 +00:00
martin
24e4f9aca2 Fix copy & pasto (dsa code vs. rsa code) in previous, fixes PR lib/53012
and recentish sshfs test failures.
2018-02-13 09:51:33 +00:00
christos
8ceb60ceb8 we need variables to be signed here. 2018-02-12 02:15:31 +00:00
christos
e83bfb8257 fix pasto 2018-02-10 16:16:28 +00:00
nakayama
fe7c136ffd Restore pic and sse2 enabled code to make libcrypto works as before. 2018-02-10 13:29:55 +00:00
christos
4f511e6924 fix typo 2018-02-10 06:22:22 +00:00
christos
9d3e52666a Fix TEXTREL's 2018-02-10 05:51:06 +00:00
christos
e155b97cb7 fix BN_to_integer to get rid of __UNCONST. Trick question:
How many BN_to_integer implementations does Heimdal contain (I only fixed 2).
2018-02-09 23:22:12 +00:00
christos
f5725ffc1d Use the magic FILESBUILD variable so that it builds with BUILD/UPDATE unset.
Why again FILESBUILD is not the default and needs to be set?
2018-02-09 22:46:19 +00:00
christos
0a6da94db6 add reset, needed by nsd. 2018-02-09 17:11:14 +00:00
christos
f8cfffe1e3 XXX: use /dev/stdout because OpenSSL changed the params for i386!!?!? 2018-02-09 16:06:59 +00:00
christos
89869e261c more file 2018-02-09 13:37:16 +00:00
christos
b8fabe00c3 i386 provides "partial words" assembly support. 2018-02-09 13:35:45 +00:00
christos
455943d417 new script does not know -D, regen 2018-02-09 13:25:41 +00:00
christos
329127fb83 only set the compat version for OpenSSL-1.0 2018-02-09 01:54:46 +00:00
christos
db213f8f02 adjust to renamed file 2018-02-08 23:32:38 +00:00
christos
8df8164852 need openssl/dh.h 2018-02-08 23:04:13 +00:00
christos
4e65a86b8b use the right map file 2018-02-08 22:51:06 +00:00
christos
704db68e2d Add a linker script 2018-02-08 22:49:14 +00:00
christos
975583d54a fix the man pages, add a linker script 2018-02-08 22:48:55 +00:00
christos
b8b3c5f24b update build glue 2018-02-08 21:57:23 +00:00
christos
5af5305085 merged conflicts 2018-02-08 21:51:22 +00:00
christos
c7da899b45 Changes between 1.1.0f and 1.1.0g [2 Nov 2017]
*) bn_sqrx8x_internal carry bug on x86_64

     There is a carry propagating bug in the x86_64 Montgomery squaring
     procedure. No EC algorithms are affected. Analysis suggests that attacks
     against RSA and DSA as a result of this defect would be very difficult to
     perform and are not believed likely. Attacks against DH are considered just
     feasible (although very difficult) because most of the work necessary to
     deduce information about a private key may be performed offline. The amount
     of resources required for such an attack would be very significant and
     likely only accessible to a limited number of attackers. An attacker would
     additionally need online access to an unpatched system using the target
     private key in a scenario with persistent DH parameters and a private
     key that is shared between multiple clients.

     This only affects processors that support the BMI1, BMI2 and ADX extensions
     like Intel Broadwell (5th generation) and later or AMD Ryzen.

     This issue was reported to OpenSSL by the OSS-Fuzz project.
     (CVE-2017-3736)
     [Andy Polyakov]

  *) Malformed X.509 IPAddressFamily could cause OOB read

     If an X.509 certificate has a malformed IPAddressFamily extension,
     OpenSSL could do a one-byte buffer overread. The most likely result
     would be an erroneous display of the certificate in text format.

     This issue was reported to OpenSSL by the OSS-Fuzz project.
     (CVE-2017-3735)
     [Rich Salz]

  *) Ignore the '-named_curve auto' value for compatibility of applications
     with OpenSSL 1.0.2.
     [Tomas Mraz <tmraz@fedoraproject.org>]

  *) Support for SSL_OP_NO_ENCRYPT_THEN_MAC in SSL_CONF_cmd.
     [Emilia Käsper]

 Changes between 1.1.0e and 1.1.0f [25 May 2017]

  *) Have 'config' recognise 64-bit mingw and choose 'mingw64' as the target
     platform rather than 'mingw'.
     [Richard Levitte]

  *) Remove the VMS-specific reimplementation of gmtime from crypto/o_times.c.
     VMS C's RTL has a fully up to date gmtime() and gmtime_r() since V7.1,
     which is the minimum version we support.
     [Richard Levitte]

 Changes between 1.1.0d and 1.1.0e [16 Feb 2017]

  *) Encrypt-Then-Mac renegotiation crash

     During a renegotiation handshake if the Encrypt-Then-Mac extension is
     negotiated where it was not in the original handshake (or vice-versa) then
     this can cause OpenSSL to crash (dependant on ciphersuite). Both clients
     and servers are affected.

     This issue was reported to OpenSSL by Joe Orton (Red Hat).
     (CVE-2017-3733)
     [Matt Caswell]

 Changes between 1.1.0c and 1.1.0d [26 Jan 2017]

  *) Truncated packet could crash via OOB read

     If one side of an SSL/TLS path is running on a 32-bit host and a specific
     cipher is being used, then a truncated packet can cause that host to
     perform an out-of-bounds read, usually resulting in a crash.

     This issue was reported to OpenSSL by Robert Święcki of Google.
     (CVE-2017-3731)
     [Andy Polyakov]

  *) Bad (EC)DHE parameters cause a client crash

     If a malicious server supplies bad parameters for a DHE or ECDHE key
     exchange then this can result in the client attempting to dereference a
     NULL pointer leading to a client crash. This could be exploited in a Denial
     of Service attack.

     This issue was reported to OpenSSL by Guido Vranken.
     (CVE-2017-3730)
     [Matt Caswell]

  *) BN_mod_exp may produce incorrect results on x86_64

     There is a carry propagating bug in the x86_64 Montgomery squaring
     procedure. No EC algorithms are affected. Analysis suggests that attacks
     against RSA and DSA as a result of this defect would be very difficult to
     perform and are not believed likely. Attacks against DH are considered just
     feasible (although very difficult) because most of the work necessary to
     deduce information about a private key may be performed offline. The amount
     of resources required for such an attack would be very significant and
     likely only accessible to a limited number of attackers. An attacker would
     additionally need online access to an unpatched system using the target
     private key in a scenario with persistent DH parameters and a private
     key that is shared between multiple clients. For example this can occur by
     default in OpenSSL DHE based SSL/TLS ciphersuites. Note: This issue is very
     similar to CVE-2015-3193 but must be treated as a separate problem.

     This issue was reported to OpenSSL by the OSS-Fuzz project.
     (CVE-2017-3732)
     [Andy Polyakov]

 Changes between 1.1.0b and 1.1.0c [10 Nov 2016]

  *) ChaCha20/Poly1305 heap-buffer-overflow

     TLS connections using *-CHACHA20-POLY1305 ciphersuites are susceptible to
     a DoS attack by corrupting larger payloads. This can result in an OpenSSL
     crash. This issue is not considered to be exploitable beyond a DoS.

     This issue was reported to OpenSSL by Robert Święcki (Google Security Team)
     (CVE-2016-7054)
     [Richard Levitte]

  *) CMS Null dereference

     Applications parsing invalid CMS structures can crash with a NULL pointer
     dereference. This is caused by a bug in the handling of the ASN.1 CHOICE
     type in OpenSSL 1.1.0 which can result in a NULL value being passed to the
     structure callback if an attempt is made to free certain invalid encodings.
     Only CHOICE structures using a callback which do not handle NULL value are
     affected.

     This issue was reported to OpenSSL by Tyler Nighswander of ForAllSecure.
     (CVE-2016-7053)
     [Stephen Henson]

  *) Montgomery multiplication may produce incorrect results

     There is a carry propagating bug in the Broadwell-specific Montgomery
     multiplication procedure that handles input lengths divisible by, but
     longer than 256 bits. Analysis suggests that attacks against RSA, DSA
     and DH private keys are impossible. This is because the subroutine in
     question is not used in operations with the private key itself and an input
     of the attacker's direct choice. Otherwise the bug can manifest itself as
     transient authentication and key negotiation failures or reproducible
     erroneous outcome of public-key operations with specially crafted input.
     Among EC algorithms only Brainpool P-512 curves are affected and one
     presumably can attack ECDH key negotiation. Impact was not analyzed in
     detail, because pre-requisites for attack are considered unlikely. Namely
     multiple clients have to choose the curve in question and the server has to
     share the private key among them, neither of which is default behaviour.
     Even then only clients that chose the curve will be affected.

     This issue was publicly reported as transient failures and was not
     initially recognized as a security issue. Thanks to Richard Morgan for
     providing reproducible case.
     (CVE-2016-7055)
     [Andy Polyakov]

  *) OpenSSL now fails if it receives an unrecognised record type in TLS1.0
     or TLS1.1. Previously this only happened in SSLv3 and TLS1.2. This is to
     prevent issues where no progress is being made and the peer continually
     sends unrecognised record types, using up resources processing them.
     [Matt Caswell]

  *) Removed automatic addition of RPATH in shared libraries and executables,
     as this was a remainder from OpenSSL 1.0.x and isn't needed any more.
     [Richard Levitte]

 Changes between 1.1.0a and 1.1.0b [26 Sep 2016]

  *) Fix Use After Free for large message sizes

     The patch applied to address CVE-2016-6307 resulted in an issue where if a
     message larger than approx 16k is received then the underlying buffer to
     store the incoming message is reallocated and moved. Unfortunately a
     dangling pointer to the old location is left which results in an attempt to
     write to the previously freed location. This is likely to result in a
     crash, however it could potentially lead to execution of arbitrary code.

     This issue only affects OpenSSL 1.1.0a.

     This issue was reported to OpenSSL by Robert Święcki.
     (CVE-2016-6309)
     [Matt Caswell]

 Changes between 1.1.0 and 1.1.0a [22 Sep 2016]

  *) OCSP Status Request extension unbounded memory growth

     A malicious client can send an excessively large OCSP Status Request
     extension. If that client continually requests renegotiation, sending a
     large OCSP Status Request extension each time, then there will be unbounded
     memory growth on the server. This will eventually lead to a Denial Of
     Service attack through memory exhaustion. Servers with a default
     configuration are vulnerable even if they do not support OCSP. Builds using
     the "no-ocsp" build time option are not affected.

     This issue was reported to OpenSSL by Shi Lei (Gear Team, Qihoo 360 Inc.)
     (CVE-2016-6304)
     [Matt Caswell]

  *) SSL_peek() hang on empty record

     OpenSSL 1.1.0 SSL/TLS will hang during a call to SSL_peek() if the peer
     sends an empty record. This could be exploited by a malicious peer in a
     Denial Of Service attack.

     This issue was reported to OpenSSL by Alex Gaynor.
     (CVE-2016-6305)
     [Matt Caswell]

  *) Excessive allocation of memory in tls_get_message_header() and
     dtls1_preprocess_fragment()

     A (D)TLS message includes 3 bytes for its length in the header for the
     message. This would allow for messages up to 16Mb in length. Messages of
     this length are excessive and OpenSSL includes a check to ensure that a
     peer is sending reasonably sized messages in order to avoid too much memory
     being consumed to service a connection. A flaw in the logic of version
     1.1.0 means that memory for the message is allocated too early, prior to
     the excessive message length check. Due to way memory is allocated in
     OpenSSL this could mean an attacker could force up to 21Mb to be allocated
     to service a connection. This could lead to a Denial of Service through
     memory exhaustion. However, the excessive message length check still takes
     place, and this would cause the connection to immediately fail. Assuming
     that the application calls SSL_free() on the failed connection in a timely
     manner then the 21Mb of allocated memory will then be immediately freed
     again. Therefore the excessive memory allocation will be transitory in
     nature. This then means that there is only a security impact if:

     1) The application does not call SSL_free() in a timely manner in the event
     that the connection fails
     or
     2) The application is working in a constrained environment where there is
     very little free memory
     or
     3) The attacker initiates multiple connection attempts such that there are
     multiple connections in a state where memory has been allocated for the
     connection; SSL_free() has not yet been called; and there is insufficient
     memory to service the multiple requests.

     Except in the instance of (1) above any Denial Of Service is likely to be
     transitory because as soon as the connection fails the memory is
     subsequently freed again in the SSL_free() call. However there is an
     increased risk during this period of application crashes due to the lack of
     memory - which would then mean a more serious Denial of Service.

     This issue was reported to OpenSSL by Shi Lei (Gear Team, Qihoo 360 Inc.)
     (CVE-2016-6307 and CVE-2016-6308)
     [Matt Caswell]

  *) solaris-x86-cc, i.e. 32-bit configuration with vendor compiler,
     had to be removed. Primary reason is that vendor assembler can't
     assemble our modules with -KPIC flag. As result it, assembly
     support, was not even available as option. But its lack means
     lack of side-channel resistant code, which is incompatible with
     security by todays standards. Fortunately gcc is readily available
     prepackaged option, which we firmly point at...
     [Andy Polyakov]

 Changes between 1.0.2h and 1.1.0  [25 Aug 2016]

  *) Windows command-line tool supports UTF-8 opt-in option for arguments
     and console input. Setting OPENSSL_WIN32_UTF8 environment variable
     (to any value) allows Windows user to access PKCS#12 file generated
     with Windows CryptoAPI and protected with non-ASCII password, as well
     as files generated under UTF-8 locale on Linux also protected with
     non-ASCII password.
     [Andy Polyakov]

  *) To mitigate the SWEET32 attack (CVE-2016-2183), 3DES cipher suites
     have been disabled by default and removed from DEFAULT, just like RC4.
     See the RC4 item below to re-enable both.
     [Rich Salz]

  *) The method for finding the storage location for the Windows RAND seed file
     has changed. First we check %RANDFILE%. If that is not set then we check
     the directories %HOME%, %USERPROFILE% and %SYSTEMROOT% in that order. If
     all else fails we fall back to C:\.
     [Matt Caswell]

  *) The EVP_EncryptUpdate() function has had its return type changed from void
     to int. A return of 0 indicates and error while a return of 1 indicates
     success.
     [Matt Caswell]

  *) The flags RSA_FLAG_NO_CONSTTIME, DSA_FLAG_NO_EXP_CONSTTIME and
     DH_FLAG_NO_EXP_CONSTTIME which previously provided the ability to switch
     off the constant time implementation for RSA, DSA and DH have been made
     no-ops and deprecated.
     [Matt Caswell]

  *) Windows RAND implementation was simplified to only get entropy by
     calling CryptGenRandom(). Various other RAND-related tickets
     were also closed.
     [Joseph Wylie Yandle, Rich Salz]

  *) The stack and lhash API's were renamed to start with OPENSSL_SK_
     and OPENSSL_LH_, respectively.  The old names are available
     with API compatibility.  They new names are now completely documented.
     [Rich Salz]

  *) Unify TYPE_up_ref(obj) methods signature.
     SSL_CTX_up_ref(), SSL_up_ref(), X509_up_ref(), EVP_PKEY_up_ref(),
     X509_CRL_up_ref(), X509_OBJECT_up_ref_count() methods are now returning an
     int (instead of void) like all others TYPE_up_ref() methods.
     So now these methods also check the return value of CRYPTO_atomic_add(),
     and the validity of object reference counter.
     [fdasilvayy@gmail.com]

  *) With Windows Visual Studio builds, the .pdb files are installed
     alongside the installed libraries and executables.  For a static
     library installation, ossl_static.pdb is the associate compiler
     generated .pdb file to be used when linking programs.
     [Richard Levitte]

  *) Remove openssl.spec.  Packaging files belong with the packagers.
     [Richard Levitte]

  *) Automatic Darwin/OSX configuration has had a refresh, it will now
     recognise x86_64 architectures automatically.  You can still decide
     to build for a different bitness with the environment variable
     KERNEL_BITS (can be 32 or 64), for example:

         KERNEL_BITS=32 ./config

     [Richard Levitte]

  *) Change default algorithms in pkcs8 utility to use PKCS#5 v2.0,
     256 bit AES and HMAC with SHA256.
     [Steve Henson]

  *) Remove support for MIPS o32 ABI on IRIX (and IRIX only).
     [Andy Polyakov]

  *) Triple-DES ciphers have been moved from HIGH to MEDIUM.
     [Rich Salz]

  *) To enable users to have their own config files and build file templates,
     Configure looks in the directory indicated by the environment variable
     OPENSSL_LOCAL_CONFIG_DIR as well as the in-source Configurations/
     directory.  On VMS, OPENSSL_LOCAL_CONFIG_DIR is expected to be a logical
     name and is used as is.
     [Richard Levitte]

  *) The following datatypes were made opaque: X509_OBJECT, X509_STORE_CTX,
     X509_STORE, X509_LOOKUP, and X509_LOOKUP_METHOD.  The unused type
     X509_CERT_FILE_CTX was removed.
     [Rich Salz]

  *) "shared" builds are now the default. To create only static libraries use
     the "no-shared" Configure option.
     [Matt Caswell]

  *) Remove the no-aes, no-hmac, no-rsa, no-sha and no-md5 Configure options.
     All of these option have not worked for some while and are fundamental
     algorithms.
     [Matt Caswell]

  *) Make various cleanup routines no-ops and mark them as deprecated. Most
     global cleanup functions are no longer required because they are handled
     via auto-deinit (see OPENSSL_init_crypto and OPENSSL_init_ssl man pages).
     Explicitly de-initing can cause problems (e.g. where a library that uses
     OpenSSL de-inits, but an application is still using it). The affected
     functions are CONF_modules_free(), ENGINE_cleanup(), OBJ_cleanup(),
     EVP_cleanup(), BIO_sock_cleanup(), CRYPTO_cleanup_all_ex_data(),
     RAND_cleanup(), SSL_COMP_free_compression_methods(), ERR_free_strings() and
     COMP_zlib_cleanup().
     [Matt Caswell]

  *) --strict-warnings no longer enables runtime debugging options
     such as REF_DEBUG. Instead, debug options are automatically
     enabled with '--debug' builds.
     [Andy Polyakov, Emilia Käsper]

  *) Made DH and DH_METHOD opaque. The structures for managing DH objects
     have been moved out of the public header files. New functions for managing
     these have been added.
     [Matt Caswell]

  *) Made RSA and RSA_METHOD opaque. The structures for managing RSA
     objects have been moved out of the public header files. New
     functions for managing these have been added.
     [Richard Levitte]

  *) Made DSA and DSA_METHOD opaque. The structures for managing DSA objects
     have been moved out of the public header files. New functions for managing
     these have been added.
     [Matt Caswell]

  *) Made BIO and BIO_METHOD opaque. The structures for managing BIOs have been
     moved out of the public header files. New functions for managing these
     have been added.
     [Matt Caswell]

  *) Removed no-rijndael as a config option. Rijndael is an old name for AES.
     [Matt Caswell]

  *) Removed the mk1mf build scripts.
     [Richard Levitte]

  *) Headers are now wrapped, if necessary, with OPENSSL_NO_xxx, so
     it is always safe to #include a header now.
     [Rich Salz]

  *) Removed the aged BC-32 config and all its supporting scripts
     [Richard Levitte]

  *) Removed support for Ultrix, Netware, and OS/2.
     [Rich Salz]

  *) Add support for HKDF.
     [Alessandro Ghedini]

  *) Add support for blake2b and blake2s
     [Bill Cox]

  *) Added support for "pipelining". Ciphers that have the
     EVP_CIPH_FLAG_PIPELINE flag set have a capability to process multiple
     encryptions/decryptions simultaneously. There are currently no built-in
     ciphers with this property but the expectation is that engines will be able
     to offer it to significantly improve throughput. Support has been extended
     into libssl so that multiple records for a single connection can be
     processed in one go (for >=TLS 1.1).
     [Matt Caswell]

  *) Added the AFALG engine. This is an async capable engine which is able to
     offload work to the Linux kernel. In this initial version it only supports
     AES128-CBC. The kernel must be version 4.1.0 or greater.
     [Catriona Lucey]

  *) OpenSSL now uses a new threading API. It is no longer necessary to
     set locking callbacks to use OpenSSL in a multi-threaded environment. There
     are two supported threading models: pthreads and windows threads. It is
     also possible to configure OpenSSL at compile time for "no-threads". The
     old threading API should no longer be used. The functions have been
     replaced with "no-op" compatibility macros.
     [Alessandro Ghedini, Matt Caswell]

  *) Modify behavior of ALPN to invoke callback after SNI/servername
     callback, such that updates to the SSL_CTX affect ALPN.
     [Todd Short]

  *) Add SSL_CIPHER queries for authentication and key-exchange.
     [Todd Short]

  *) Changes to the DEFAULT cipherlist:
       - Prefer (EC)DHE handshakes over plain RSA.
       - Prefer AEAD ciphers over legacy ciphers.
       - Prefer ECDSA over RSA when both certificates are available.
       - Prefer TLSv1.2 ciphers/PRF.
       - Remove DSS, SEED, IDEA, CAMELLIA, and AES-CCM from the
         default cipherlist.
     [Emilia Käsper]

  *) Change the ECC default curve list to be this, in order: x25519,
     secp256r1, secp521r1, secp384r1.
     [Rich Salz]

  *) RC4 based libssl ciphersuites are now classed as "weak" ciphers and are
     disabled by default. They can be re-enabled using the
     enable-weak-ssl-ciphers option to Configure.
     [Matt Caswell]

  *) If the server has ALPN configured, but supports no protocols that the
     client advertises, send a fatal "no_application_protocol" alert.
     This behaviour is SHALL in RFC 7301, though it isn't universally
     implemented by other servers.
     [Emilia Käsper]

  *) Add X25519 support.
     Add ASN.1 and EVP_PKEY methods for X25519. This includes support
     for public and private key encoding using the format documented in
     draft-ietf-curdle-pkix-02. The corresponding EVP_PKEY method supports
     key generation and key derivation.

     TLS support complies with draft-ietf-tls-rfc4492bis-08 and uses
     X25519(29).
     [Steve Henson]

  *) Deprecate SRP_VBASE_get_by_user.
     SRP_VBASE_get_by_user had inconsistent memory management behaviour.
     In order to fix an unavoidable memory leak (CVE-2016-0798),
     SRP_VBASE_get_by_user was changed to ignore the "fake user" SRP
     seed, even if the seed is configured.

     Users should use SRP_VBASE_get1_by_user instead. Note that in
     SRP_VBASE_get1_by_user, caller must free the returned value. Note
     also that even though configuring the SRP seed attempts to hide
     invalid usernames by continuing the handshake with fake
     credentials, this behaviour is not constant time and no strong
     guarantees are made that the handshake is indistinguishable from
     that of a valid user.
     [Emilia Käsper]

  *) Configuration change; it's now possible to build dynamic engines
     without having to build shared libraries and vice versa.  This
     only applies to the engines in engines/, those in crypto/engine/
     will always be built into libcrypto (i.e. "static").

     Building dynamic engines is enabled by default; to disable, use
     the configuration option "disable-dynamic-engine".

     The only requirements for building dynamic engines are the
     presence of the DSO module and building with position independent
     code, so they will also automatically be disabled if configuring
     with "disable-dso" or "disable-pic".

     The macros OPENSSL_NO_STATIC_ENGINE and OPENSSL_NO_DYNAMIC_ENGINE
     are also taken away from openssl/opensslconf.h, as they are
     irrelevant.
     [Richard Levitte]

  *) Configuration change; if there is a known flag to compile
     position independent code, it will always be applied on the
     libcrypto and libssl object files, and never on the application
     object files.  This means other libraries that use routines from
     libcrypto / libssl can be made into shared libraries regardless
     of how OpenSSL was configured.

     If this isn't desirable, the configuration options "disable-pic"
     or "no-pic" can be used to disable the use of PIC.  This will
     also disable building shared libraries and dynamic engines.
     [Richard Levitte]

  *) Removed JPAKE code.  It was experimental and has no wide use.
     [Rich Salz]

  *) The INSTALL_PREFIX Makefile variable has been renamed to
     DESTDIR.  That makes for less confusion on what this variable
     is for.  Also, the configuration option --install_prefix is
     removed.
     [Richard Levitte]

  *) Heartbeat for TLS has been removed and is disabled by default
     for DTLS; configure with enable-heartbeats.  Code that uses the
     old #define's might need to be updated.
     [Emilia Käsper, Rich Salz]

  *) Rename REF_CHECK to REF_DEBUG.
     [Rich Salz]

  *) New "unified" build system

     The "unified" build system is aimed to be a common system for all
     platforms we support.  With it comes new support for VMS.

     This system builds supports building in a different directory tree
     than the source tree.  It produces one Makefile (for unix family
     or lookalikes), or one descrip.mms (for VMS).

     The source of information to make the Makefile / descrip.mms is
     small files called 'build.info', holding the necessary
     information for each directory with source to compile, and a
     template in Configurations, like unix-Makefile.tmpl or
     descrip.mms.tmpl.

     With this change, the library names were also renamed on Windows
     and on VMS.  They now have names that are closer to the standard
     on Unix, and include the major version number, and in certain
     cases, the architecture they are built for.  See "Notes on shared
     libraries" in INSTALL.

     We rely heavily on the perl module Text::Template.
     [Richard Levitte]

  *) Added support for auto-initialisation and de-initialisation of the library.
     OpenSSL no longer requires explicit init or deinit routines to be called,
     except in certain circumstances. See the OPENSSL_init_crypto() and
     OPENSSL_init_ssl() man pages for further information.
     [Matt Caswell]

  *) The arguments to the DTLSv1_listen function have changed. Specifically the
     "peer" argument is now expected to be a BIO_ADDR object.

  *) Rewrite of BIO networking library. The BIO library lacked consistent
     support of IPv6, and adding it required some more extensive
     modifications.  This introduces the BIO_ADDR and BIO_ADDRINFO types,
     which hold all types of addresses and chains of address information.
     It also introduces a new API, with functions like BIO_socket,
     BIO_connect, BIO_listen, BIO_lookup and a rewrite of BIO_accept.
     The source/sink BIOs BIO_s_connect, BIO_s_accept and BIO_s_datagram
     have been adapted accordingly.
     [Richard Levitte]

  *) RSA_padding_check_PKCS1_type_1 now accepts inputs with and without
     the leading 0-byte.
     [Emilia Käsper]

  *) CRIME protection: disable compression by default, even if OpenSSL is
     compiled with zlib enabled. Applications can still enable compression
     by calling SSL_CTX_clear_options(ctx, SSL_OP_NO_COMPRESSION), or by
     using the SSL_CONF library to configure compression.
     [Emilia Käsper]

  *) The signature of the session callback configured with
     SSL_CTX_sess_set_get_cb was changed. The read-only input buffer
     was explicitly marked as 'const unsigned char*' instead of
     'unsigned char*'.
     [Emilia Käsper]

  *) Always DPURIFY. Remove the use of uninitialized memory in the
     RNG, and other conditional uses of DPURIFY. This makes -DPURIFY a no-op.
     [Emilia Käsper]

  *) Removed many obsolete configuration items, including
        DES_PTR, DES_RISC1, DES_RISC2, DES_INT
        MD2_CHAR, MD2_INT, MD2_LONG
        BF_PTR, BF_PTR2
        IDEA_SHORT, IDEA_LONG
        RC2_SHORT, RC2_LONG, RC4_LONG, RC4_CHUNK, RC4_INDEX
     [Rich Salz, with advice from Andy Polyakov]

  *) Many BN internals have been moved to an internal header file.
     [Rich Salz with help from Andy Polyakov]

  *) Configuration and writing out the results from it has changed.
     Files such as Makefile include/openssl/opensslconf.h and are now
     produced through general templates, such as Makefile.in and
     crypto/opensslconf.h.in and some help from the perl module
     Text::Template.

     Also, the center of configuration information is no longer
     Makefile.  Instead, Configure produces a perl module in
     configdata.pm which holds most of the config data (in the hash
     table %config), the target data that comes from the target
     configuration in one of the Configurations/*.conf files (in
     %target).
     [Richard Levitte]

  *) To clarify their intended purposes, the Configure options
     --prefix and --openssldir change their semantics, and become more
     straightforward and less interdependent.

     --prefix shall be used exclusively to give the location INSTALLTOP
     where programs, scripts, libraries, include files and manuals are
     going to be installed.  The default is now /usr/local.

     --openssldir shall be used exclusively to give the default
     location OPENSSLDIR where certificates, private keys, CRLs are
     managed.  This is also where the default openssl.cnf gets
     installed.
     If the directory given with this option is a relative path, the
     values of both the --prefix value and the --openssldir value will
     be combined to become OPENSSLDIR.
     The default for --openssldir is INSTALLTOP/ssl.

     Anyone who uses --openssldir to specify where OpenSSL is to be
     installed MUST change to use --prefix instead.
     [Richard Levitte]

  *) The GOST engine was out of date and therefore it has been removed. An up
     to date GOST engine is now being maintained in an external repository.
     See: https://wiki.openssl.org/index.php/Binaries. Libssl still retains
     support for GOST ciphersuites (these are only activated if a GOST engine
     is present).
     [Matt Caswell]

  *) EGD is no longer supported by default; use enable-egd when
     configuring.
     [Ben Kaduk and Rich Salz]

  *) The distribution now has Makefile.in files, which are used to
     create Makefile's when Configure is run.  *Configure must be run
     before trying to build now.*
     [Rich Salz]

  *) The return value for SSL_CIPHER_description() for error conditions
     has changed.
     [Rich Salz]

  *) Support for RFC6698/RFC7671 DANE TLSA peer authentication.

     Obtaining and performing DNSSEC validation of TLSA records is
     the application's responsibility.  The application provides
     the TLSA records of its choice to OpenSSL, and these are then
     used to authenticate the peer.

     The TLSA records need not even come from DNS.  They can, for
     example, be used to implement local end-entity certificate or
     trust-anchor "pinning", where the "pin" data takes the form
     of TLSA records, which can augment or replace verification
     based on the usual WebPKI public certification authorities.
     [Viktor Dukhovni]

  *) Revert default OPENSSL_NO_DEPRECATED setting.  Instead OpenSSL
     continues to support deprecated interfaces in default builds.
     However, applications are strongly advised to compile their
     source files with -DOPENSSL_API_COMPAT=0x10100000L, which hides
     the declarations of all interfaces deprecated in 0.9.8, 1.0.0
     or the 1.1.0 releases.

     In environments in which all applications have been ported to
     not use any deprecated interfaces OpenSSL's Configure script
     should be used with the --api=1.1.0 option to entirely remove
     support for the deprecated features from the library and
     unconditionally disable them in the installed headers.
     Essentially the same effect can be achieved with the "no-deprecated"
     argument to Configure, except that this will always restrict
     the build to just the latest API, rather than a fixed API
     version.

     As applications are ported to future revisions of the API,
     they should update their compile-time OPENSSL_API_COMPAT define
     accordingly, but in most cases should be able to continue to
     compile with later releases.

     The OPENSSL_API_COMPAT versions for 1.0.0, and 0.9.8 are
     0x10000000L and 0x00908000L, respectively.  However those
     versions did not support the OPENSSL_API_COMPAT feature, and
     so applications are not typically tested for explicit support
     of just the undeprecated features of either release.
     [Viktor Dukhovni]

  *) Add support for setting the minimum and maximum supported protocol.
     It can bet set via the SSL_set_min_proto_version() and
     SSL_set_max_proto_version(), or via the SSL_CONF's MinProtocol and
     MaxProtcol.  It's recommended to use the new APIs to disable
     protocols instead of disabling individual protocols using
     SSL_set_options() or SSL_CONF's Protocol.  This change also
     removes support for disabling TLS 1.2 in the OpenSSL TLS
     client at compile time by defining OPENSSL_NO_TLS1_2_CLIENT.
     [Kurt Roeckx]

  *) Support for ChaCha20 and Poly1305 added to libcrypto and libssl.
     [Andy Polyakov]

  *) New EC_KEY_METHOD, this replaces the older ECDSA_METHOD and ECDH_METHOD
     and integrates ECDSA and ECDH functionality into EC. Implementations can
     now redirect key generation and no longer need to convert to or from
     ECDSA_SIG format.

     Note: the ecdsa.h and ecdh.h headers are now no longer needed and just
     include the ec.h header file instead.
     [Steve Henson]

  *) Remove support for all 40 and 56 bit ciphers.  This includes all the export
     ciphers who are no longer supported and drops support the ephemeral RSA key
     exchange. The LOW ciphers currently doesn't have any ciphers in it.
     [Kurt Roeckx]

  *) Made EVP_MD_CTX, EVP_MD, EVP_CIPHER_CTX, EVP_CIPHER and HMAC_CTX
     opaque.  For HMAC_CTX, the following constructors and destructors
     were added:

        HMAC_CTX *HMAC_CTX_new(void);
        void HMAC_CTX_free(HMAC_CTX *ctx);

     For EVP_MD and EVP_CIPHER, complete APIs to create, fill and
     destroy such methods has been added.  See EVP_MD_meth_new(3) and
     EVP_CIPHER_meth_new(3) for documentation.

     Additional changes:
     1) EVP_MD_CTX_cleanup(), EVP_CIPHER_CTX_cleanup() and
        HMAC_CTX_cleanup() were removed.  HMAC_CTX_reset() and
        EVP_MD_CTX_reset() should be called instead to reinitialise
        an already created structure.
     2) For consistency with the majority of our object creators and
        destructors, EVP_MD_CTX_(create|destroy) were renamed to
        EVP_MD_CTX_(new|free).  The old names are retained as macros
        for deprecated builds.
     [Richard Levitte]

  *) Added ASYNC support. Libcrypto now includes the async sub-library to enable
     cryptographic operations to be performed asynchronously as long as an
     asynchronous capable engine is used. See the ASYNC_start_job() man page for
     further details. Libssl has also had this capability integrated with the
     introduction of the new mode SSL_MODE_ASYNC and associated error
     SSL_ERROR_WANT_ASYNC. See the SSL_CTX_set_mode() and SSL_get_error() man
     pages. This work was developed in partnership with Intel Corp.
     [Matt Caswell]

  *) SSL_{CTX_}set_ecdh_auto() has been removed and ECDH is support is
     always enabled now.  If you want to disable the support you should
     exclude it using the list of supported ciphers. This also means that the
     "-no_ecdhe" option has been removed from s_server.
     [Kurt Roeckx]

  *) SSL_{CTX}_set_tmp_ecdh() which can set 1 EC curve now internally calls
     SSL_{CTX_}set1_curves() which can set a list.
     [Kurt Roeckx]

  *) Remove support for SSL_{CTX_}set_tmp_ecdh_callback().  You should set the
     curve you want to support using SSL_{CTX_}set1_curves().
     [Kurt Roeckx]

  *) State machine rewrite. The state machine code has been significantly
     refactored in order to remove much duplication of code and solve issues
     with the old code (see ssl/statem/README for further details). This change
     does have some associated API changes. Notably the SSL_state() function
     has been removed and replaced by SSL_get_state which now returns an
     "OSSL_HANDSHAKE_STATE" instead of an int. SSL_set_state() has been removed
     altogether. The previous handshake states defined in ssl.h and ssl3.h have
     also been removed.
     [Matt Caswell]

  *) All instances of the string "ssleay" in the public API were replaced
     with OpenSSL (case-matching; e.g., OPENSSL_VERSION for #define's)
     Some error codes related to internal RSA_eay API's were renamed.
     [Rich Salz]

  *) The demo files in crypto/threads were moved to demo/threads.
     [Rich Salz]

  *) Removed obsolete engines: 4758cca, aep, atalla, cswift, nuron, gmp,
     sureware and ubsec.
     [Matt Caswell, Rich Salz]

  *) New ASN.1 embed macro.

     New ASN.1 macro ASN1_EMBED. This is the same as ASN1_SIMPLE except the
     structure is not allocated: it is part of the parent. That is instead of

     FOO *x;

     it must be:

     FOO x;

     This reduces memory fragmentation and make it impossible to accidentally
     set a mandatory field to NULL.

     This currently only works for some fields specifically a SEQUENCE, CHOICE,
     or ASN1_STRING type which is part of a parent SEQUENCE. Since it is
     equivalent to ASN1_SIMPLE it cannot be tagged, OPTIONAL, SET OF or
     SEQUENCE OF.
     [Steve Henson]

  *) Remove EVP_CHECK_DES_KEY, a compile-time option that never compiled.
     [Emilia Käsper]

  *) Removed DES and RC4 ciphersuites from DEFAULT. Also removed RC2 although
     in 1.0.2 EXPORT was already removed and the only RC2 ciphersuite is also
     an EXPORT one. COMPLEMENTOFDEFAULT has been updated accordingly to add
     DES and RC4 ciphersuites.
     [Matt Caswell]

  *) Rewrite EVP_DecodeUpdate (base64 decoding) to fix several bugs.
     This changes the decoding behaviour for some invalid messages,
     though the change is mostly in the more lenient direction, and
     legacy behaviour is preserved as much as possible.
     [Emilia Käsper]

  *) Fix no-stdio build.
    [ David Woodhouse <David.Woodhouse@intel.com> and also
      Ivan Nestlerode <ivan.nestlerode@sonos.com> ]

  *) New testing framework
     The testing framework has been largely rewritten and is now using
     perl and the perl modules Test::Harness and an extended variant of
     Test::More called OpenSSL::Test to do its work.  All test scripts in
     test/ have been rewritten into test recipes, and all direct calls to
     executables in test/Makefile have become individual recipes using the
     simplified testing OpenSSL::Test::Simple.

     For documentation on our testing modules, do:

        perldoc test/testlib/OpenSSL/Test/Simple.pm
        perldoc test/testlib/OpenSSL/Test.pm

     [Richard Levitte]

  *) Revamped memory debug; only -DCRYPTO_MDEBUG and -DCRYPTO_MDEBUG_ABORT
     are used; the latter aborts on memory leaks (usually checked on exit).
     Some undocumented "set malloc, etc., hooks" functions were removed
     and others were changed.  All are now documented.
     [Rich Salz]

  *) In DSA_generate_parameters_ex, if the provided seed is too short,
     return an error
     [Rich Salz and Ismo Puustinen <ismo.puustinen@intel.com>]

  *) Rewrite PSK to support ECDHE_PSK, DHE_PSK and RSA_PSK. Add ciphersuites
     from RFC4279, RFC4785, RFC5487, RFC5489.

     Thanks to Christian J. Dietrich and Giuseppe D'Angelo for the
     original RSA_PSK patch.
     [Steve Henson]

  *) Dropped support for the SSL3_FLAGS_DELAY_CLIENT_FINISHED flag. This SSLeay
     era flag was never set throughout the codebase (only read). Also removed
     SSL3_FLAGS_POP_BUFFER which was only used if
     SSL3_FLAGS_DELAY_CLIENT_FINISHED was also set.
     [Matt Caswell]

  *) Changed the default name options in the "ca", "crl", "req" and "x509"
     to be "oneline" instead of "compat".
     [Richard Levitte]

  *) Remove SSL_OP_TLS_BLOCK_PADDING_BUG. This is SSLeay legacy, we're
     not aware of clients that still exhibit this bug, and the workaround
     hasn't been working properly for a while.
     [Emilia Käsper]

  *) The return type of BIO_number_read() and BIO_number_written() as well as
     the corresponding num_read and num_write members in the BIO structure has
     changed from unsigned long to uint64_t. On platforms where an unsigned
     long is 32 bits (e.g. Windows) these counters could overflow if >4Gb is
     transferred.
     [Matt Caswell]

  *) Given the pervasive nature of TLS extensions it is inadvisable to run
     OpenSSL without support for them. It also means that maintaining
     the OPENSSL_NO_TLSEXT option within the code is very invasive (and probably
     not well tested). Therefore the OPENSSL_NO_TLSEXT option has been removed.
     [Matt Caswell]

  *) Removed support for the two export grade static DH ciphersuites
     EXP-DH-RSA-DES-CBC-SHA and EXP-DH-DSS-DES-CBC-SHA. These two ciphersuites
     were newly added (along with a number of other static DH ciphersuites) to
     1.0.2. However the two export ones have *never* worked since they were
     introduced. It seems strange in any case to be adding new export
     ciphersuites, and given "logjam" it also does not seem correct to fix them.
     [Matt Caswell]

  *) Version negotiation has been rewritten. In particular SSLv23_method(),
     SSLv23_client_method() and SSLv23_server_method() have been deprecated,
     and turned into macros which simply call the new preferred function names
     TLS_method(), TLS_client_method() and TLS_server_method(). All new code
     should use the new names instead. Also as part of this change the ssl23.h
     header file has been removed.
     [Matt Caswell]

  *) Support for Kerberos ciphersuites in TLS (RFC2712) has been removed. This
     code and the associated standard is no longer considered fit-for-purpose.
     [Matt Caswell]

  *) RT2547 was closed.  When generating a private key, try to make the
     output file readable only by the owner.  This behavior change might
     be noticeable when interacting with other software.

  *) Documented all exdata functions.  Added CRYPTO_free_ex_index.
     Added a test.
     [Rich Salz]

  *) Added HTTP GET support to the ocsp command.
     [Rich Salz]

  *) Changed default digest for the dgst and enc commands from MD5 to
     sha256
     [Rich Salz]

  *) RAND_pseudo_bytes has been deprecated. Users should use RAND_bytes instead.
     [Matt Caswell]

  *) Added support for TLS extended master secret from
     draft-ietf-tls-session-hash-03.txt. Thanks for Alfredo Pironti for an
     initial patch which was a great help during development.
     [Steve Henson]

  *) All libssl internal structures have been removed from the public header
     files, and the OPENSSL_NO_SSL_INTERN option has been removed (since it is
     now redundant). Users should not attempt to access internal structures
     directly. Instead they should use the provided API functions.
     [Matt Caswell]

  *) config has been changed so that by default OPENSSL_NO_DEPRECATED is used.
     Access to deprecated functions can be re-enabled by running config with
     "enable-deprecated". In addition applications wishing to use deprecated
     functions must define OPENSSL_USE_DEPRECATED. Note that this new behaviour
     will, by default, disable some transitive includes that previously existed
     in the header files (e.g. ec.h will no longer, by default, include bn.h)
     [Matt Caswell]

  *) Added support for OCB mode. OpenSSL has been granted a patent license
     compatible with the OpenSSL license for use of OCB. Details are available
     at https://www.openssl.org/source/OCB-patent-grant-OpenSSL.pdf. Support
     for OCB can be removed by calling config with no-ocb.
     [Matt Caswell]

  *) SSLv2 support has been removed.  It still supports receiving a SSLv2
     compatible client hello.
     [Kurt Roeckx]

  *) Increased the minimal RSA keysize from 256 to 512 bits [Rich Salz],
     done while fixing the error code for the key-too-small case.
     [Annie Yousar <a.yousar@informatik.hu-berlin.de>]

  *) CA.sh has been removed; use CA.pl instead.
     [Rich Salz]

  *) Removed old DES API.
     [Rich Salz]

  *) Remove various unsupported platforms:
        Sony NEWS4
        BEOS and BEOS_R5
        NeXT
        SUNOS
        MPE/iX
        Sinix/ReliantUNIX RM400
        DGUX
        NCR
        Tandem
        Cray
        16-bit platforms such as WIN16
     [Rich Salz]

  *) Clean up OPENSSL_NO_xxx #define's
        Use setbuf() and remove OPENSSL_NO_SETVBUF_IONBF
        Rename OPENSSL_SYSNAME_xxx to OPENSSL_SYS_xxx
        OPENSSL_NO_EC{DH,DSA} merged into OPENSSL_NO_EC
        OPENSSL_NO_RIPEMD160, OPENSSL_NO_RIPEMD merged into OPENSSL_NO_RMD160
        OPENSSL_NO_FP_API merged into OPENSSL_NO_STDIO
        Remove OPENSSL_NO_BIO OPENSSL_NO_BUFFER OPENSSL_NO_CHAIN_VERIFY
        OPENSSL_NO_EVP OPENSSL_NO_FIPS_ERR OPENSSL_NO_HASH_COMP
        OPENSSL_NO_LHASH OPENSSL_NO_OBJECT OPENSSL_NO_SPEED OPENSSL_NO_STACK
        OPENSSL_NO_X509 OPENSSL_NO_X509_VERIFY
        Remove MS_STATIC; it's a relic from platforms <32 bits.
     [Rich Salz]

  *) Cleaned up dead code
        Remove all but one '#ifdef undef' which is to be looked at.
     [Rich Salz]

  *) Clean up calling of xxx_free routines.
        Just like free(), fix most of the xxx_free routines to accept
        NULL.  Remove the non-null checks from callers.  Save much code.
     [Rich Salz]

  *) Add secure heap for storage of private keys (when possible).
     Add BIO_s_secmem(), CBIGNUM, etc.
     Contributed by Akamai Technologies under our Corporate CLA.
     [Rich Salz]

  *) Experimental support for a new, fast, unbiased prime candidate generator,
     bn_probable_prime_dh_coprime(). Not currently used by any prime generator.
     [Felix Laurie von Massenbach <felix@erbridge.co.uk>]

  *) New output format NSS in the sess_id command line tool. This allows
     exporting the session id and the master key in NSS keylog format.
     [Martin Kaiser <martin@kaiser.cx>]

  *) Harmonize version and its documentation. -f flag is used to display
     compilation flags.
     [mancha <mancha1@zoho.com>]

  *) Fix eckey_priv_encode so it immediately returns an error upon a failure
     in i2d_ECPrivateKey.  Thanks to Ted Unangst for feedback on this issue.
     [mancha <mancha1@zoho.com>]

  *) Fix some double frees. These are not thought to be exploitable.
     [mancha <mancha1@zoho.com>]

  *) A missing bounds check in the handling of the TLS heartbeat extension
     can be used to reveal up to 64k of memory to a connected client or
     server.

     Thanks for Neel Mehta of Google Security for discovering this bug and to
     Adam Langley <agl@chromium.org> and Bodo Moeller <bmoeller@acm.org> for
     preparing the fix (CVE-2014-0160)
     [Adam Langley, Bodo Moeller]

  *) Fix for the attack described in the paper "Recovering OpenSSL
     ECDSA Nonces Using the FLUSH+RELOAD Cache Side-channel Attack"
     by Yuval Yarom and Naomi Benger. Details can be obtained from:
     http://eprint.iacr.org/2014/140

     Thanks to Yuval Yarom and Naomi Benger for discovering this
     flaw and to Yuval Yarom for supplying a fix (CVE-2014-0076)
     [Yuval Yarom and Naomi Benger]

  *) Use algorithm specific chains in SSL_CTX_use_certificate_chain_file():
     this fixes a limitation in previous versions of OpenSSL.
     [Steve Henson]

  *) Experimental encrypt-then-mac support.

     Experimental support for encrypt then mac from
     draft-gutmann-tls-encrypt-then-mac-02.txt

     To enable it set the appropriate extension number (0x42 for the test
     server) using e.g. -DTLSEXT_TYPE_encrypt_then_mac=0x42

     For non-compliant peers (i.e. just about everything) this should have no
     effect.

     WARNING: EXPERIMENTAL, SUBJECT TO CHANGE.

     [Steve Henson]

  *) Add EVP support for key wrapping algorithms, to avoid problems with
     existing code the flag EVP_CIPHER_CTX_WRAP_ALLOW has to be set in
     the EVP_CIPHER_CTX or an error is returned. Add AES and DES3 wrap
     algorithms and include tests cases.
     [Steve Henson]

  *) Extend CMS code to support RSA-PSS signatures and RSA-OAEP for
     enveloped data.
     [Steve Henson]

  *) Extended RSA OAEP support via EVP_PKEY API. Options to specify digest,
     MGF1 digest and OAEP label.
     [Steve Henson]

  *) Make openssl verify return errors.
     [Chris Palmer <palmer@google.com> and Ben Laurie]

  *) New function ASN1_TIME_diff to calculate the difference between two
     ASN1_TIME structures or one structure and the current time.
     [Steve Henson]

  *) Update fips_test_suite to support multiple command line options. New
     test to induce all self test errors in sequence and check expected
     failures.
     [Steve Henson]

  *) Add FIPS_{rsa,dsa,ecdsa}_{sign,verify} functions which digest and
     sign or verify all in one operation.
     [Steve Henson]

  *) Add fips_algvs: a multicall fips utility incorporating all the algorithm
     test programs and fips_test_suite. Includes functionality to parse
     the minimal script output of fipsalgest.pl directly.
     [Steve Henson]

  *) Add authorisation parameter to FIPS_module_mode_set().
     [Steve Henson]

  *) Add FIPS selftest for ECDH algorithm using P-224 and B-233 curves.
     [Steve Henson]

  *) Use separate DRBG fields for internal and external flags. New function
     FIPS_drbg_health_check() to perform on demand health checking. Add
     generation tests to fips_test_suite with reduced health check interval to
     demonstrate periodic health checking. Add "nodh" option to
     fips_test_suite to skip very slow DH test.
     [Steve Henson]

  *) New function FIPS_get_cipherbynid() to lookup FIPS supported ciphers
     based on NID.
     [Steve Henson]

  *) More extensive health check for DRBG checking many more failure modes.
     New function FIPS_selftest_drbg_all() to handle every possible DRBG
     combination: call this in fips_test_suite.
     [Steve Henson]

  *) Add support for canonical generation of DSA parameter 'g'. See
     FIPS 186-3 A.2.3.

  *) Add support for HMAC DRBG from SP800-90. Update DRBG algorithm test and
     POST to handle HMAC cases.
     [Steve Henson]

  *) Add functions FIPS_module_version() and FIPS_module_version_text()
     to return numerical and string versions of the FIPS module number.
     [Steve Henson]

  *) Rename FIPS_mode_set and FIPS_mode to FIPS_module_mode_set and
     FIPS_module_mode. FIPS_mode and FIPS_mode_set will be implemented
     outside the validated module in the FIPS capable OpenSSL.
     [Steve Henson]

  *) Minor change to DRBG entropy callback semantics. In some cases
     there is no multiple of the block length between min_len and
     max_len. Allow the callback to return more than max_len bytes
     of entropy but discard any extra: it is the callback's responsibility
     to ensure that the extra data discarded does not impact the
     requested amount of entropy.
     [Steve Henson]

  *) Add PRNG security strength checks to RSA, DSA and ECDSA using
     information in FIPS186-3, SP800-57 and SP800-131A.
     [Steve Henson]

  *) CCM support via EVP. Interface is very similar to GCM case except we
     must supply all data in one chunk (i.e. no update, final) and the
     message length must be supplied if AAD is used. Add algorithm test
     support.
     [Steve Henson]

  *) Initial version of POST overhaul. Add POST callback to allow the status
     of POST to be monitored and/or failures induced. Modify fips_test_suite
     to use callback. Always run all selftests even if one fails.
     [Steve Henson]

  *) XTS support including algorithm test driver in the fips_gcmtest program.
     Note: this does increase the maximum key length from 32 to 64 bytes but
     there should be no binary compatibility issues as existing applications
     will never use XTS mode.
     [Steve Henson]

  *) Extensive reorganisation of FIPS PRNG behaviour. Remove all dependencies
     to OpenSSL RAND code and replace with a tiny FIPS RAND API which also
     performs algorithm blocking for unapproved PRNG types. Also do not
     set PRNG type in FIPS_mode_set(): leave this to the application.
     Add default OpenSSL DRBG handling: sets up FIPS PRNG and seeds with
     the standard OpenSSL PRNG: set additional data to a date time vector.
     [Steve Henson]

  *) Rename old X9.31 PRNG functions of the form FIPS_rand* to FIPS_x931*.
     This shouldn't present any incompatibility problems because applications
     shouldn't be using these directly and any that are will need to rethink
     anyway as the X9.31 PRNG is now deprecated by FIPS 140-2
     [Steve Henson]

  *) Extensive self tests and health checking required by SP800-90 DRBG.
     Remove strength parameter from FIPS_drbg_instantiate and always
     instantiate at maximum supported strength.
     [Steve Henson]

  *) Add ECDH code to fips module and fips_ecdhvs for primitives only testing.
     [Steve Henson]

  *) New algorithm test program fips_dhvs to handle DH primitives only testing.
     [Steve Henson]

  *) New function DH_compute_key_padded() to compute a DH key and pad with
     leading zeroes if needed: this complies with SP800-56A et al.
     [Steve Henson]

  *) Initial implementation of SP800-90 DRBGs for Hash and CTR. Not used by
     anything, incomplete, subject to change and largely untested at present.
     [Steve Henson]

  *) Modify fipscanisteronly build option to only build the necessary object
     files by filtering FIPS_EX_OBJ through a perl script in crypto/Makefile.
     [Steve Henson]

  *) Add experimental option FIPSSYMS to give all symbols in
     fipscanister.o and FIPS or fips prefix. This will avoid
     conflicts with future versions of OpenSSL. Add perl script
     util/fipsas.pl to preprocess assembly language source files
     and rename any affected symbols.
     [Steve Henson]

  *) Add selftest checks and algorithm block of non-fips algorithms in
     FIPS mode. Remove DES2 from selftests.
     [Steve Henson]

  *) Add ECDSA code to fips module. Add tiny fips_ecdsa_check to just
     return internal method without any ENGINE dependencies. Add new
     tiny fips sign and verify functions.
     [Steve Henson]

  *) New build option no-ec2m to disable characteristic 2 code.
     [Steve Henson]

  *) New build option "fipscanisteronly". This only builds fipscanister.o
     and (currently) associated fips utilities. Uses the file Makefile.fips
     instead of Makefile.org as the prototype.
     [Steve Henson]

  *) Add some FIPS mode restrictions to GCM. Add internal IV generator.
     Update fips_gcmtest to use IV generator.
     [Steve Henson]

  *) Initial, experimental EVP support for AES-GCM. AAD can be input by
     setting output buffer to NULL. The *Final function must be
     called although it will not retrieve any additional data. The tag
     can be set or retrieved with a ctrl. The IV length is by default 12
     bytes (96 bits) but can be set to an alternative value. If the IV
     length exceeds the maximum IV length (currently 16 bytes) it cannot be
     set before the key.
     [Steve Henson]

  *) New flag in ciphers: EVP_CIPH_FLAG_CUSTOM_CIPHER. This means the
     underlying do_cipher function handles all cipher semantics itself
     including padding and finalisation. This is useful if (for example)
     an ENGINE cipher handles block padding itself. The behaviour of
     do_cipher is subtly changed if this flag is set: the return value
     is the number of characters written to the output buffer (zero is
     no longer an error code) or a negative error code. Also if the
     input buffer is NULL and length 0 finalisation should be performed.
     [Steve Henson]

  *) If a candidate issuer certificate is already part of the constructed
     path ignore it: new debug notification X509_V_ERR_PATH_LOOP for this case.
     [Steve Henson]

  *) Improve forward-security support: add functions

       void SSL_CTX_set_not_resumable_session_callback(SSL_CTX *ctx, int (*cb)(SSL *ssl, int is_forward_secure))
       void SSL_set_not_resumable_session_callback(SSL *ssl, int (*cb)(SSL *ssl, int is_forward_secure))

     for use by SSL/TLS servers; the callback function will be called whenever a
     new session is created, and gets to decide whether the session may be
     cached to make it resumable (return 0) or not (return 1).  (As by the
     SSL/TLS protocol specifications, the session_id sent by the server will be
     empty to indicate that the session is not resumable; also, the server will
     not generate RFC 4507 (RFC 5077) session tickets.)

     A simple reasonable callback implementation is to return is_forward_secure.
     This parameter will be set to 1 or 0 depending on the ciphersuite selected
     by the SSL/TLS server library, indicating whether it can provide forward
     security.
     [Emilia Käsper <emilia.kasper@esat.kuleuven.be> (Google)]

  *) New -verify_name option in command line utilities to set verification
     parameters by name.
     [Steve Henson]

  *) Initial CMAC implementation. WARNING: EXPERIMENTAL, API MAY CHANGE.
     Add CMAC pkey methods.
     [Steve Henson]

  *) Experimental renegotiation in s_server -www mode. If the client
     browses /reneg connection is renegotiated. If /renegcert it is
     renegotiated requesting a certificate.
     [Steve Henson]

  *) Add an "external" session cache for debugging purposes to s_server. This
     should help trace issues which normally are only apparent in deployed
     multi-process servers.
     [Steve Henson]

  *) Extensive audit of libcrypto with DEBUG_UNUSED. Fix many cases where
     return value is ignored. NB. The functions RAND_add(), RAND_seed(),
     BIO_set_cipher() and some obscure PEM functions were changed so they
     can now return an error. The RAND changes required a change to the
     RAND_METHOD structure.
     [Steve Henson]

  *) New macro __owur for "OpenSSL Warn Unused Result". This makes use of
     a gcc attribute to warn if the result of a function is ignored. This
     is enable if DEBUG_UNUSED is set. Add to several functions in evp.h
     whose return value is often ignored.
     [Steve Henson]

  *) New -noct, -requestct, -requirect and -ctlogfile options for s_client.
     These allow SCTs (signed certificate timestamps) to be requested and
     validated when establishing a connection.
     [Rob Percival <robpercival@google.com>]
2018-02-08 20:56:44 +00:00
jakllsch
1a36d4f74e Add ASN1_STRING_get0_data() glue for OPENSSL_API_COMPAT >= 0x10100000L 2018-02-08 20:18:03 +00:00
christos
ef13887e8f add set0_key needed by racoon 2018-02-07 13:16:25 +00:00
christos
5ff0fb825b Welcome to the 21st century Buck Rogers: OpenSSL-1.1 2018-02-07 03:59:03 +00:00
christos
e7129348cf use OPENSSL_API_COMPAT 2018-02-06 20:10:05 +00:00
christos
c7748118b4 use OPENSSL_API_COMPAT instead of hacking the version 2018-02-06 19:58:29 +00:00
christos
b9a7f31f0e added 1.1 api 2018-02-06 19:51:25 +00:00
maya
acc548e0b3 style: remove spurious {} added in 1.12 2018-02-06 10:56:35 +00:00
christos
7effb09732 adjust for openssl 1.1 2018-02-06 04:21:24 +00:00
christos
c9d078dc6b centralize the conversion functions and make this work with both
openssl-1.0 and 1.1
2018-02-05 23:56:01 +00:00
maya
2272657d65 Match new openssl HMAC_CTX_new better and zero out all the fields. 2018-02-05 21:12:14 +00:00
christos
bb64310352 add DSA_bits() 2018-02-05 20:27:06 +00:00
christos
600234d2b4 fix inline 2018-02-05 20:23:47 +00:00
christos
651d2a0c85 more openssl-1.1 compat. 2018-02-05 16:12:52 +00:00
christos
934378087f add more functions that heimdal uses. 2018-02-05 16:09:09 +00:00
christos
6680b65dc2 port to openssl-1.1 2018-02-05 16:00:52 +00:00
christos
6fec6006f2 pretend we have openssl-1.1 2018-02-05 11:57:28 +00:00
christos
00a8c5d883 #if not #ifdef 2018-02-05 11:55:46 +00:00
christos
a888e01c4e protect the inline functions with the OPENSSL_VERSION_NUMBER 2018-02-05 11:52:32 +00:00
christos
5097134740 provide compatibility for libradius 2018-02-05 00:42:46 +00:00
christos
b400d00712 patch for OpenSSL-1.1 2018-02-05 00:13:50 +00:00
christos
9ed083bc65 add enough of the 1.1 API to compile openssh 2018-02-05 00:11:33 +00:00
christos
dba98a8a16 Fix typo (thanks Martin) 2018-02-04 16:22:48 +00:00
christos
0c048d5af5 switch everyone to openssl.old 2018-02-04 03:19:51 +00:00
christos
c9496f6b60 Import the HEAD of OpenSSL 1.0 to prepare for importing 1.1 2018-02-03 22:43:37 +00:00
shm
bfb29ad1d2 Fixed memory leak (CID: 977744) 2018-01-30 15:28:39 +00:00
shm
442208c9a6 Fixed potential NULL pointer dereference (CID: 978477) 2018-01-30 13:11:28 +00:00
maya
ad64aeb5f5 Move spammy debug message to debug2.
Similarly spammy messages exist in this debug level.

Requested by gson in PR bin/52898:
ssh -v prints debug message on every keystroke
2018-01-15 05:04:58 +00:00
knakahara
cbf21dcddc fix typo. (does not affect actual operation, but confuses reader...)
The function is called when racoon receives SADB_X_MIGRATE pfkey message,
however the message is not used now. It was compatible code for KAME.
2017-11-09 08:34:50 +00:00
snj
dd44830ed1 no more ssh1 code in openssh, so no use defining WITH_SSH1 2017-11-06 10:26:13 +00:00
christos
d11ce9f101 PR/52604: Tatoku Ogaito: Fix x11 session forwarding. 2017-10-09 12:07:03 +00:00
joerg
030d2353db Mark do_ca_sign as dead. 2017-10-08 20:19:05 +00:00
christos
26b9f775ff define recallocarray locally. 2017-10-07 21:14:59 +00:00
christos
7a183406d0 merge conflicts. 2017-10-07 19:39:19 +00:00
christos
9340b371cb Potentially-incompatible changes
================================

This release includes a number of changes that may affect existing
configurations:

 * ssh(1): delete SSH protocol version 1 support, associated
   configuration options and documentation.

 * ssh(1)/sshd(8): remove support for the hmac-ripemd160 MAC.

 * ssh(1)/sshd(8): remove support for the arcfour, blowfish and CAST
   ciphers.

 * Refuse RSA keys <1024 bits in length and improve reporting for keys
   that do not meet this requirement.

 * ssh(1): do not offer CBC ciphers by default.

Changes since OpenSSH 7.5
=========================

This is primarily a bugfix release. It also contains substantial
internal refactoring.

Security
--------

 * sftp-server(8): in read-only mode, sftp-server was incorrectly
   permitting creation of zero-length files. Reported by Michal
   Zalewski.

New Features
------------

 * ssh(1): add RemoteCommand option to specify a command in the ssh
   config file instead of giving it on the client's command line. This
   allows the configuration file to specify the command that will be
   executed on the remote host.

 * sshd(8): add ExposeAuthInfo option that enables writing details of
   the authentication methods used (including public keys where
   applicable) to a file that is exposed via a $SSH_USER_AUTH
   environment variable in the subsequent session.

 * ssh(1): add support for reverse dynamic forwarding. In this mode,
   ssh will act as a SOCKS4/5 proxy and forward connections
   to destinations requested by the remote SOCKS client. This mode
   is requested using extended syntax for the -R and RemoteForward
   options and, because it is implemented solely at the client,
   does not require the server be updated to be supported.

 * sshd(8): allow LogLevel directive in sshd_config Match blocks;
   bz#2717

 * ssh-keygen(1): allow inclusion of arbitrary string or flag
   certificate extensions and critical options.

 * ssh-keygen(1): allow ssh-keygen to use a key held in ssh-agent as
   a CA when signing certificates. bz#2377

 * ssh(1)/sshd(8): allow IPQoS=none in ssh/sshd to not set an explicit
   ToS/DSCP value and just use the operating system default.

 * ssh-add(1): added -q option to make ssh-add quiet on success.

 * ssh(1): expand the StrictHostKeyChecking option with two new
   settings. The first "accept-new" will automatically accept
   hitherto-unseen keys but will refuse connections for changed or
   invalid hostkeys. This is a safer subset of the current behaviour
   of StrictHostKeyChecking=no. The second setting "off", is a synonym
   for the current behaviour of StrictHostKeyChecking=no: accept new
   host keys, and continue connection for hosts with incorrect
   hostkeys. A future release will change the meaning of
   StrictHostKeyChecking=no to the behaviour of "accept-new". bz#2400

 * ssh(1): add SyslogFacility option to ssh(1) matching the equivalent
   option in sshd(8). bz#2705

Bugfixes
--------

 * ssh(1): use HostKeyAlias if specified instead of hostname for
   matching host certificate principal names; bz#2728

 * sftp(1): implement sorting for globbed ls; bz#2649

 * ssh(1): add a user@host prefix to client's "Permission denied"
   messages, useful in particular when using "stacked" connections
   (e.g. ssh -J) where it's not clear which host is denying. bz#2720

 * ssh(1): accept unknown EXT_INFO extension values that contain \0
   characters. These are legal, but would previously cause fatal
   connection errors if received.

 * ssh(1)/sshd(8): repair compression statistics printed at
   connection exit

 * sftp(1): print '?' instead of incorrect link count (that the
   protocol doesn't provide) for remote listings. bz#2710

 * ssh(1): return failure rather than fatal() for more cases during
   session multiplexing negotiations. Causes the session to fall back
   to a non-mux connection if they occur. bz#2707

 * ssh(1): mention that the server may send debug messages to explain
   public key authentication problems under some circumstances; bz#2709

 * Translate OpenSSL error codes to better report incorrect passphrase
   errors when loading private keys; bz#2699

 * sshd(8): adjust compatibility patterns for WinSCP to correctly
   identify versions that implement only the legacy DH group exchange
   scheme. bz#2748

 * ssh(1): print the "Killed by signal 1" message only at LogLevel
   verbose so that it is not shown at the default level; prevents it
   from appearing during ssh -J and equivalent ProxyCommand configs.
   bz#1906, bz#2744

 * ssh-keygen(1): when generating all hostkeys (ssh-keygen -A), clobber
   existing keys if they exist but are zero length. zero-length keys
   could previously be made if ssh-keygen failed or was interrupted part
   way through generating them. bz#2561

 * ssh(1): fix pledge(2) violation in the escape sequence "~&" used to
   place the current session in the background.

 * ssh-keyscan(1): avoid double-close() on file descriptors; bz#2734

 * sshd(8): avoid reliance on shared use of pointers shared between
   monitor and child sshd processes. bz#2704

 * sshd_config(8): document available AuthenticationMethods; bz#2453

 * ssh(1): avoid truncation in some login prompts; bz#2768

 * sshd(8): Fix various compilations failures, inc bz#2767

 * ssh(1): make "--" before the hostname terminate argument processing
   after the hostname too.

 * ssh-keygen(1): switch from aes256-cbc to aes256-ctr for encrypting
   new-style private keys. Fixes problems related to private key
   handling for no-OpenSSL builds. bz#2754

 * ssh(1): warn and do not attempt to use keys when the public and
   private halves do not match. bz#2737

 * sftp(1): don't print verbose error message when ssh disconnects
   from under sftp. bz#2750

 * sshd(8): fix keepalive scheduling problem: activity on a forwarded
   port from preventing the keepalive from being sent; bz#2756

 * sshd(8): when started without root privileges, don't require the
   privilege separation user or path to exist. Makes running the
   regression tests easier without touching the filesystem.

 * Make integrity.sh regression tests more robust against timeouts.
   bz#2658

 * ssh(1)/sshd(8): correctness fix for channels implementation: accept
   channel IDs greater than 0x7FFFFFFF.

Portability
-----------

 * sshd(9): drop two more privileges in the Solaris sandbox:
   PRIV_DAX_ACCESS and PRIV_SYS_IB_INFO; bz#2723

 * sshd(8): expose list of completed authentication methods to PAM
   via the SSH_AUTH_INFO_0 PAM environment variable. bz#2408

 * ssh(1)/sshd(8): fix several problems in the tun/tap forwarding code,
   mostly to do with host/network byte order confusion. bz#2735

 * Add --with-cflags-after and --with-ldflags-after configure flags to
   allow setting CFLAGS/LDFLAGS after configure has completed. These
   are useful for setting sanitiser/fuzzing options that may interfere
   with configure's operation.

 * sshd(8): avoid Linux seccomp violations on ppc64le over the
   socketcall syscall.

 * Fix use of ldns when using ldns-config; bz#2697

 * configure: set cache variables when cross-compiling. The cross-
   compiling fallback message was saying it assumed the test passed,
   but it wasn't actually set the cache variables and this would
   cause later tests to fail.

 * Add clang libFuzzer harnesses for public key parsing and signature
   verification.
2017-10-07 19:36:11 +00:00
christos
d93fc8b9c8 fix lint build. 2017-10-05 18:01:00 +00:00
christos
4c1cde0e1e Use getpwuid_r instead of getpwuid, so that we don't trash getpw*() internal
buffers.

kde does (kdm/client/backend.c):
    p = getpwnam();
    pam_setcred() (which calls getpwuid in pam_afslog);
    setusercontext(...,p,p->pw_uid,...) (now with trashed p data...)

XXX: pullups.
2017-09-08 15:29:43 +00:00
christos
26bfd76729 This is why we have libroken... 2017-09-08 14:57:44 +00:00
christos
2be7a369ef always use rk_getpwnam_r... 2017-09-08 14:52:50 +00:00
christos
afbc9755de PR/51682: Antoine Beaupré: Simplify and comment previous patch.
XXX: pullup-8
2017-07-23 05:40:27 +00:00
christos
3bf0a26b79 fix typo. 2017-07-11 21:52:54 +00:00
christos
5dd54c880f https://orpheus-lyre.info/design/index.html
6dd3eb836b

In _krb5_extract_ticket() the KDC-REP service name must be obtained from
encrypted version stored in 'enc_part' instead of the unencrypted version
stored in 'ticket'.  Use of the unecrypted version provides an
opportunity for successful server impersonation and other attacks.

Identified by Jeffrey Altman, Viktor Duchovni and Nico Williams.

XXX: pullup 6, 7, 8.
2017-07-11 17:45:31 +00:00
ozaki-r
a607076325 Add update command for testing
Updating an SA (SADB_UPDATE) requires that a process issuing
SADB_UPDATE is the same as a process issued SADB_ADD (or SADB_GETSPI).
This means that update command must be used with add command in a
configuration of setkey. This usage is normally meaningless but
useful for testing (and debugging) purposes.
2017-07-05 01:22:40 +00:00
christos
fc0e1a5a51 If we've authenticated, we are already in the child and we don't need the
socket anymore.
XXX: pullup-7, pullup-8
2017-06-26 17:10:39 +00:00
christos
8277ddc197 PR/52292: Shinichi Doyashiki: Fix reversed comments. 2017-06-11 22:12:56 +00:00
riastradh
ef315f7931 Remove MKCRYPTO option.
Originally, MKCRYPTO was introduced because the United States
classified cryptography as a munition and restricted its export.  The
export controls were substantially relaxed fifteen years ago, and are
essentially irrelevant for software with published source code.

In the intervening time, nobody bothered to remove the option after
its motivation -- the US export restriction -- was eliminated.  I'm
not aware of any other operating system that has a similar option; I
expect it is mainly out of apathy for churn that we still have it.
Today, cryptography is an essential part of modern computing -- you
can't use the internet responsibly without cryptography.

The position of the TNF board of directors is that TNF makes no
representation that MKCRYPTO=no satisfies any country's cryptography
regulations.

My personal position is that the availability of cryptography is a
basic human right; that any local laws restricting it to a privileged
few are fundamentally immoral; and that it is wrong for developers to
spend effort crippling cryptography to work around such laws.

As proposed on tech-crypto, tech-security, and tech-userlevel to no
objections:

https://mail-index.netbsd.org/tech-crypto/2017/05/06/msg000719.html
https://mail-index.netbsd.org/tech-security/2017/05/06/msg000928.html
https://mail-index.netbsd.org/tech-userlevel/2017/05/06/msg010547.html

P.S.  Reviewing all the uses of MKCRYPTO in src revealed a lot of
*bad* crypto that was conditional on it, e.g. DES in telnet...  That
should probably be removed too, but on the grounds that it is bad,
not on the grounds that it is (nominally) crypto.
2017-05-21 15:28:36 +00:00
riastradh
1fa400f7fa Remove some vestiges of MKCRYPTO_IDEA/MKCRYPTO_MDC2. 2017-05-21 14:24:05 +00:00
riastradh
09956316a6 Remove MKCRYPTO_RC5. Unconditionally include RC5 in libcrypto.so.
This option existed only because RC5 is covered by patents that, twenty
years ago, we had reason to suspect the patent holder, RSA, Inc., might
litigate.  The two US patents in question are 5,724,428 and 5,835,600.

According to the USPTO Patent Term Calculator web site at
<https://www.uspto.gov/patent/laws-and-regulations/patent-term-calculator#heading-5>
(retrieved 2017-05-21), patents filed after 1995-06-07 expire twenty
years after the filing date.

number          filing date
5,724,428       1995-11-01
5,835,600       1997-04-21

Thus, these patents appear to be expired.

As proposed on tech-crypto and tech-security:

https://mail-index.netbsd.org/tech-crypto/2017/05/05/msg000718.html
https://mail-index.netbsd.org/tech-security/2017/05/05/msg000927.html
2017-05-21 14:20:44 +00:00
ozaki-r
6aaeb7bc8b Print protocol number as well as its name
ex.) before: "reserved" -> after: "255(reserved)"

The original author is hsuenaga@IIJ
2017-04-26 03:19:49 +00:00
ozaki-r
2ea60f03d0 Correct the length of the SADB_EXT header in debug outputs
The length is shifted 3 bits in PF_KEY protocol.

Originally fixed by hsuenaga@IIJ
2017-04-26 03:16:06 +00:00
joerg
fd4865e977 GC multistate_privsep. 2017-04-20 13:22:59 +00:00
christos
b397962d38 fix conflict. 2017-04-19 15:34:25 +00:00
christos
62b22b0671 bump 2017-04-18 18:41:59 +00:00
christos
41768fc151 merge conflicts 2017-04-18 18:41:46 +00:00
agc
932ce0ffe2 libnetpgpverify major bump to 5 2017-04-17 23:38:51 +00:00
agc
32d959bfe0 Update netpgpverify sources in base from 20160617 to 20170201 (i.e. bring
over changes from master sources in pkgsrc/security/netpgpverify, version 20170201):

Changes:

Update netpgpverify (and libnetpgpverify) to 20160614
	+ handle signatures created by gpg with "--no-emit-version", don't assume
	there will always be a version string.
	+ add a test for above
	Fixes security PR  51240.
	Thanks to xnox@ubuntu.com for reporting the error

Update netpgpverify and libnetpgpverify to 20160615:
	Simplify the method of finding the end of the versioning information
	in the signature - back up to the "\n" character at the end of the
	signature start:

		"-----BEGIN PGP SIGNATURE-----\n"

	and then find the "\n\n" character sequence to denote the start of the
	signature itself. The previous version worked, but this is more efficient.

Update netpgpverify and libnetpgpverify to 20160616
	+ bring over joerg's printflike change from the netpgpverify
	version in src/crypto
	+ add a test for cleartext signatures with version information
	to complement the one with no version information

Update netpgpverify and libnetpgpverify to 20160622 during freeze to fix PR  51262
	+ take a bit of a step backwards, and don't use stdbool.h, just to appease
	Solaris 10 compiler

Update netpgpverify and libnetpgpverify to 20160623
	+ remove use of asprintf and vasprintf from libverify. Inspired
	by work from Dimitri John Ledkov. Should allow building on Linux
	without superfluous definitions.
	+ also free the BIGNUM struct in PGPV_BN_clear() - from Dimitri
	John Ledkov

Update netpgpverify and libnetpgpverify to 20160626
	+ make the pgpv_t and pgpv_cursor_t structures opaque
	+ add new accessor functions for fields in the pgpv_cursor_t struct
	+ add new creation functions for the pgpv_t and pgpv_cursor_t structs

Update netpgpverify and libnetpgpverify to 20160704
	+ get rid of redundant PGPV_ARRAY definition in libverify.c, brought in when
	the definitions moved from verify.h
	+ fix obuf_add_mem() to use a const void *, as any struct can be
	dumped using it
	+ remove redundant NO_SUBKEYS definition - unused
	+ add an (unused as yet) ARRAY_FREE() macro

Update netpgpverify and libnetpgpverify to 20160705
	External API changes
	====================
	+ add a pgpv_cursor_close() function to free resources associated with
	a cursor
	Better memory management
	========================
	+ restructure the way dynamic arrays are used, to avoid memory
	corruption issues and memory leaks - keep all dynamic arrays in the global
	data structure, and use indices in the other data structures to index them.
	Means lack of data localisation, but avoids stale pointers, and leaks.
	+ make signer field of signature a uint8_t array, rather than a pointer
	+ use our own version of strdup(3) - don't depend on it being
	available in standard library
	+ keep track of whether litdata filenames and userid were allocated or not,
	and free memory in pgpv_close() if it was allocated
	+ free up allocated resources which were allocated in pgpv_close()

Update netpgpverify and libnetpgpverify to 20160706
	+ 20160705 introduced a bug whereby a key subid would match and verify
	fine, but, if formatted, would not display the correct subkey
	information.  Fix to show the correct information in this case.

Update netpgpverify and libnetpgpverify to 20160707 to fix some
	unusual build errors shown by old gcc versions (works fine for
	gcc-5.2.1 on ubuntu and gcc-5.3.0 on NetBSD 7.99.32)
	+ use ULL suffix on unsigned 64bit constants, not UL
	+ don't typedef the public structs twice - second time just define it
	without the typedef
	Fixes PR   51327

Update netpgpverify and libnetpgpverify to 20160708
	+ clear and free bignums properly - helps immensely with plugging
	memory leaks

Update netpgpverify and libnetpgpverify to 20160828
	+ bring over change from christos in src/crypto to check for
	the end of an ASCII-armored signature
	+ no need for namespace protection in array.h any more, now
	that netpgp/verify.h now contains opaque structures
	+ minor typo clean-up in a definition (benign, ignored by compiler)

update netpgpverify and libnetpgpverify to 20170201
	+ make sure howmany() macro is defined
	pointed out by cube - thanks!
2017-04-17 19:50:27 +00:00
ozaki-r
e27c60ccce Fix parsing ah without a key 2017-04-13 01:19:17 +00:00
roy
fcede00eff Use RO_MSGFILTER. 2017-04-12 16:47:39 +00:00
khorben
020e2e0f6f No longer hard-code the suffix length
This will avoid a buffer overflow if the suffix changes; it is currently
hard-coded as either "asc" or "sig".

Submitted on tech-pkg@ as:
[PATCH 10/11] No longer hard-code the suffix length
2017-04-09 23:03:50 +00:00
khorben
a4f591eb0f Output signatures to the standard output for "-"
This is to reflect the behaviour documented in netpgp(1).

Submitted on tech-pkg@ as:
[PATCH 09/11] Output signatures to the standard output for "-"

Only modified for consistency with the coding style.
2017-04-09 22:48:39 +00:00
khorben
f263734bc2 Avoid a type cast
No functional change intended.
2017-04-09 22:44:34 +00:00
khorben
fde99a469a Also document alternate option "--detach"
Submitted on tech-pkg@ as:
[PATCH 08/11] Also document alternate option "--detach"
2017-03-27 21:34:32 +00:00
khorben
b73233e927 Correct option "--armor"
Submitted on tech-pkg@ as:
[PATCH 07/11] Correct option "--armor"
2017-03-27 21:30:23 +00:00
khorben
93af107a65 Do not ask for a passphrase when empty
Submitted on tech-pkg@ as:
[PATCH 06/11] Do not ask for a passphrase when empty

Only modified for consistency with the coding style.
2017-03-27 21:19:12 +00:00
khorben
0a8cffecb2 Expect a FILE * for pgp_decrypt_seckey()
Submitted on tech-pkg@ as:
[PATCH 05/11] Expect a FILE * for pgp_decrypt_seckey()

No functional change intended.
2017-03-27 21:06:50 +00:00
khorben
dc6efa23ca Do not use random data for pass-phrases on EOF
Submitted on tech-pkg@ as:
[PATCH 04/11] Do not use random data for pass-phrases on EOF

Only modified for consistency with the coding style.
2017-03-27 21:00:43 +00:00
khorben
e1d90c495a Avoid some type casts
Submitted on tech-pkg@ as:
[PATCH 03/11] Avoid some type casts

No functional change intended.
2017-03-27 20:55:13 +00:00
khorben
5a96e50edf Do not truncate pass-phrases without a newline character
This also fixes a crash when the pass-phrase entered is empty.

Submitted on tech-pkg@ as:
[PATCH 02/11] Do not truncate pass-phrases without a newline character

Only modified for consistency with the coding style.
2017-03-27 20:50:19 +00:00
khorben
a3d226ca02 Revert "Remove a useless loop around getpass()"
getpass(3) may return NULL upon failures on Linux, and netpgp should remain
portable to other systems.
2017-02-24 01:26:17 +00:00
christos
6f030214f7 reproduced also on the regular (not -m32) build. 2017-02-21 16:07:17 +00:00
khorben
b4c0f63794 Remove a useless loop around getpass()
According to getpass(3), this library function cannot return NULL.
Verified with a source code inspection.
2017-02-20 01:38:28 +00:00
khorben
b07e8011d2 Remove a useless loop around getpass()
According to getpass(3), this library function cannot return NULL.
Verified with a source code inspection.
2017-02-20 01:33:28 +00:00
khorben
86dea4ede5 Do not crash when listing keys without a keyring
To test: (with an empty ~/.gnupg)
$ netpgpkeys --import-key /dev/null

Submitted on tech-pkg@ as:
[PATCH 01/11] Do not crash when listing keys without a keyring

Different patch for the same issue.
2017-02-20 00:51:08 +00:00
christos
0ac6b0daad PR/51973: Use proper fd for AuthorizedKeysCommand 2017-02-16 17:56:07 +00:00
rin
72128ffa3a also compile poly1305.c with -O0 on vax to address ssh login failure from/to
some hosts
2017-02-14 09:59:16 +00:00
rin
79ef876622 add hack for libssh on vax 2017-02-14 09:00:03 +00:00
christos
22e79776ca Add hack for profiling bimodal label generation with -m32 on sparc64 2017-02-11 04:56:37 +00:00
rin
484854fa22 Do not use the assembler version of AES routines for m68000; they contain
instructions available for 68020 and later.

Fix sun2 build.
2017-02-08 21:43:53 +00:00
isaki
52c6bd173d Implement m68k assembly version of AES.
It's approx 1.4 times faster than the original one.
2017-02-07 11:18:43 +00:00
christos
f64047ef62 match the man page, and explain why. 2017-02-01 14:27:37 +00:00
christos
55d6e6bdc5 regen 2017-02-01 14:24:13 +00:00
sevan
cc576e1d8e Update supporting files for components which rely on autoconf to allow systems
introducing since release of software to be recognised. This should hopefully
allow the builds to progress a littles further on systems such as the POWER8
which features a little endian 64-bit PowerPC CPU identified as ppc64le.
2017-02-01 09:26:39 +00:00
christos
54028cfbaf minimize changes with branch 2017-01-30 20:27:58 +00:00
christos
9223e31834 fix deleted line. 2017-01-30 18:59:04 +00:00
jakllsch
55e4d28c1e Fix host tools build for asn1_compile, compile_et, and slc. 2017-01-30 02:38:50 +00:00
christos
f2a053e7b1 fix printf args 2017-01-30 00:25:15 +00:00
christos
80da7e788f need libutil for pidfile 2017-01-29 22:09:06 +00:00
christos
0fa98a8a57 this is not needed anymore 2017-01-29 19:38:38 +00:00
christos
c60105bcf7 include roken-common.h directly. 2017-01-29 19:38:00 +00:00
christos
85f3803ad8 prefer some local include files for tools build 2017-01-29 19:23:28 +00:00
christos
dc85ac27ab missing quote 2017-01-29 18:58:08 +00:00
christos
06363001a6 fix printf format 2017-01-29 18:57:06 +00:00
christos
edf4b9ea7e Include sqlite3 to the dependent libraries 2017-01-29 15:42:58 +00:00
christos
553b9f4b06 handle our basename. 2017-01-29 01:46:37 +00:00
christos
624dfe6a19 override arc4* for tools build. 2017-01-29 01:46:16 +00:00
christos
61b2320621 krb5 needs sqlite3 now 2017-01-28 23:38:48 +00:00
christos
45f67fc24b Use ${TOOL_SED} and resolve paths properly. 2017-01-28 22:25:44 +00:00
christos
d3273b5b76 merge conflicts, adjust the build. 2017-01-28 21:31:43 +00:00
christos
b9d004c6cc Release Notes - Heimdal - Version Heimdal 7.1
Security

 - kx509 realm-chopping security bug
 - non-authorization of alias additions/removals in kadmind
   (CVE-2016-2400)

 Feature

 - iprop has been revamped to fix a number of race conditions that could
   lead to inconsistent replication
 - Hierarchical capath support
 - AES Encryption with HMAC-SHA2 for Kerberos 5
   draft-ietf-kitten-aes-cts-hmac-sha2-11
 - hcrypto is now thread safe on all platforms
 - libhcrypto has new backends: CNG (Windows), PKCS#11 (mainly for
   Solaris), and OpenSSL.  OpenSSL is now a first-class libhcrypto backend.
   OpenSSL 1.0.x and 1.1 are both supported. AES-NI used when supported by
   backend
 - HDB now supports LMDB
 - Thread support on Windows
 - RFC 6113  Generalized Framework for Kerberos Pre-Authentication (FAST)
 - New GSS APIs:
   . gss_localname
 - Allow setting what encryption types a principal should have with
   [kadmin] default_key_rules, see krb5.conf manpage for more info
 - Unify libhcrypto with LTC (libtomcrypto)
 - asn1_compile 64-bit INTEGER functionality
 - HDB key history support including --keepold kadmin password option
 - Improved cross-realm key rollover safety
 - New krb5_kuserok() and krb5_aname_to_localname() plug-in interfaces
 - Improved MIT compatibility
   . kadm5 API
   . Migration from MIT KDB via "mitdb" HDB backend
   . Capable of writing the HDB in MIT dump format
 - Improved Active Directory interoperability
   . Enctype selection issues for PAC and other authz-data signatures
   . Cross realm key rollover (kvno 0)
 - New [kdc] enctype negotiation configuration:
   . tgt-use-strongest-session-key
   . svc-use-strongest-session-key
   . preauth-use-strongest-session-key
   . use-strongest-server-key
 - The KDC process now uses a multi-process model improving
   resiliency and performance
 - Allow batch-mode kinit with password file
 - SIGINFO support added to kinit cmd
 - New kx509 configuration options:
   . kx509_ca
   . kca_service
   . kx509_include_pkinit_san
   . kx509_template
 - Improved Heimdal library/plugin version safety
 - Name canonicalization
   . DNS resolver searchlist
   . Improved referral support
   . Support host:port host-based services
 - Pluggable libheimbase interface for DBs
 - Improve IPv6 Support
 - LDAP
   . Bind DN and password
   . Start TLS
 - klist --json
 - DIR credential cache type
 - Updated upstream SQLite and libedit
 - Removed legacy applications: ftp, kx, login, popper, push, rcp, rsh,
   telnet, xnlock
 - Completely remove RAND_egd support
 - Moved kadmin and ktutil to /usr/bin
 - Stricter fcache checks (see fcache_strict_checking krb5.conf setting)
    . use O_NOFOLLOW
    . don't follow symlinks
    . require cache files to be owned by the user
    . require sensible permissions (not group/other readable)
 - Implemented gss_store_cred()
 - Many more

 Bug fixes
 - iprop has been revamped to fix a number of race conditions that could
   lead to data loss
 - Include non-loopback addresses assigned to loopback interfaces
   when requesting tickets with addresses
 - KDC 1DES session key selection (for AFS rxkad-k5 compatibility)
 - Keytab file descriptor and lock leak
 - Credential cache corruption bugs
   (NOTE: The FILE ccache is still not entirely safe due to the
   fundamentally unsafe design of POSIX file locking)
 - gss_pseudo_random() interop bug
 - Plugins are now preferentially loaded from the run-time install tree
 - Reauthentication after password change in init_creds_password
 - Memory leak in the client kadmin library
 - TGS client requests renewable/forwardable/proxiable when possible
 - Locking issues in DB1 and DB3 HDB backends
 - Master HDB can remain locked while waiting for network I/O
 - Renewal/refresh logic when kinit is provided with a command
 - KDC handling of enterprise principals
 - Use correct bit for anon-pkinit
 - Many more

 Acknowledgements

 This release of Heimdal includes contributions from:

    Abhinav Upadhyay        Heath Kehoe             Nico Williams
    Andreas Schneider       Henry Jacques           Patrik Lundin
    Andrew Bartlett         Howard Chu              Philip Boulain
    Andrew Tridgell         Igor Sobrado            Ragnar Sundblad
    Antoine Jacoutot        Ingo Schwarze           Remi Ferrand
    Arran Cudbard-Bell      Jakub Čajka             Rod Widdowson
    Arvid Requate           James Le Cuirot         Rok Papež
    Asanka Herath           James Lee               Roland C. Dowdeswell
    Ben Kaduk               Jeffrey Altman          Ross L Richardson
    Benjamin Kaduk          Jeffrey Clark           Russ Allbery
    Bernard Spil            Jeffrey Hutzelman       Samuel Cabrero
    Brian May               Jelmer Vernooij         Samuel Thibault
    Chas Williams           Ken Dreyer              Santosh Kumar Pradhan
    Chaskiel Grundman       Kiran S J               Sean Davis
    Dana Koch               Kumar Thangavelu        Sergio Gelato
    Daniel Schepler         Landon Fuller           Simon Wilkinson
    David Mulder            Linus Nordberg          Stef Walter
    Douglas Bagnall         Love Hörnquist Åstrand  Stefan Metzmacher
    Ed Maste                Luke Howard             Steffen Jaeckel
    Eray Aslan              Magnus Ahltorp          Timothy Pearson
    Florian Best            Marc Balmer             Tollef Fog Heen
    Fredrik Pettai          Marcin Cieślak          Tony Acero
    Greg Hudson             Marco Molteni           Uri Simchoni
    Gustavo Zacarias        Matthieu Hautreux       Viktor Dukhovni
    Günther Deschner        Michael Meffie          Volker Lendecke
    Harald Barth            Moritz Lenz
2017-01-28 20:46:41 +00:00
spz
b367ed3864 merge for OpenSSL 1.0.2k 2017-01-27 23:16:20 +00:00
spz
fc2ef7411d updated man pages & the x86_64 mont* asm fix for the new openssl.
Expect at least one more commit until the tree builds again.
2017-01-27 23:00:46 +00:00
spz
34505c60e1 import of OpenSSL 1.0.2k
Upstream changelog:
Changes between 1.0.2j and 1.0.2k [26 Jan 2017]

 *) Truncated packet could crash via OOB read

    If one side of an SSL/TLS path is running on a 32-bit host and a specific
    cipher is being used, then a truncated packet can cause that host to
    perform an out-of-bounds read, usually resulting in a crash.

    This issue was reported to OpenSSL by Robert Święcki of Google.
    (CVE-2017-3731)
    [Andy Polyakov]

 *) BN_mod_exp may produce incorrect results on x86_64

    There is a carry propagating bug in the x86_64 Montgomery squaring
    procedure. No EC algorithms are affected. Analysis suggests that attacks
    against RSA and DSA as a result of this defect would be very difficult to
    perform and are not believed likely. Attacks against DH are considered just
    feasible (although very difficult) because most of the work necessary to
    deduce information about a private key may be performed offline. The amount
    of resources required for such an attack would be very significant and
    likely only accessible to a limited number of attackers. An attacker would
    additionally need online access to an unpatched system using the target
    private key in a scenario with persistent DH parameters and a private
    key that is shared between multiple clients. For example this can occur by
    default in OpenSSL DHE based SSL/TLS ciphersuites. Note: This issue is very
    similar to CVE-2015-3193 but must be treated as a separate problem.

    This issue was reported to OpenSSL by the OSS-Fuzz project.
    (CVE-2017-3732)
    [Andy Polyakov]

 *) Montgomery multiplication may produce incorrect results

    There is a carry propagating bug in the Broadwell-specific Montgomery
    multiplication procedure that handles input lengths divisible by, but
    longer than 256 bits. Analysis suggests that attacks against RSA, DSA
    and DH private keys are impossible. This is because the subroutine in
    question is not used in operations with the private key itself and an input
    of the attacker's direct choice. Otherwise the bug can manifest itself as
    transient authentication and key negotiation failures or reproducible
    erroneous outcome of public-key operations with specially crafted input.
    Among EC algorithms only Brainpool P-512 curves are affected and one
    presumably can attack ECDH key negotiation. Impact was not analyzed in
    detail, because pre-requisites for attack are considered unlikely. Namely
    multiple clients have to choose the curve in question and the server has to
    share the private key among them, neither of which is default behaviour.
    Even then only clients that chose the curve will be affected.

    This issue was publicly reported as transient failures and was not
    initially recognized as a security issue. Thanks to Richard Morgan for
    providing reproducible case.
    (CVE-2016-7055)
    [Andy Polyakov]

 *) OpenSSL now fails if it receives an unrecognised record type in TLS1.0
    or TLS1.1. Previously this only happened in SSLv3 and TLS1.2. This is to
    prevent issues where no progress is being made and the peer continually
    sends unrecognised record types, using up resources processing them.
    [Matt Caswell]
2017-01-27 22:53:49 +00:00
christos
adbaca4132 Strip first otherwise we end up with __RCSID("NetBSD") 2017-01-27 18:02:09 +00:00
christos
7e9937c7a6 PR/51682: Avoid DoS with fragment out of order insertion; keep fragments
sorted in the list.
2017-01-24 19:23:31 +00:00
hauke
5dbf5ec614 Add missing <sys/stat.h> for open(2) flags. 2017-01-13 08:41:46 +00:00
christos
1ce2d3c329 remove re-definition 2017-01-13 01:39:04 +00:00
christos
29c143f657 include <unistd.h> for close, pipe, dup2 etc. 2017-01-10 13:53:26 +00:00
gson
098a2efc00 regen (actually, hand-edited, but the changes should be identical) 2017-01-09 17:41:03 +00:00
gson
902c0a0d74 Revert last two revisions; local changes should no longer be needed
now that the root cause of PR lib/51569 is fixed by revision 1.11 of
src/crypto/external/bsd/openssl/lib/libcrypto/arch/x86_64/Makefile.
2017-01-09 17:36:24 +00:00
christos
c1fd63d8fb regen 2017-01-08 21:36:24 +00:00
christos
5d2f54cc55 Switch to eax 2017-01-08 21:36:04 +00:00
christos
a9c6ebd868 Remove pasto, thanks wiz@ 2017-01-08 17:12:21 +00:00
christos
631c5ab455 regen 2017-01-08 01:59:43 +00:00
christos
5a016eb166 remove some local hacks. 2017-01-08 01:56:31 +00:00
christos
438e49ab2a PR/51569: Andreas Gustafsson: Check the right bit for pclmulqdq:
Perform a Carry-Less Multiplication of Quadword instruction
(accelerator for GCM)
2017-01-08 01:55:49 +00:00
christos
ee85abc417 merge conflicts 2016-12-25 00:07:46 +00:00
christos
210ad7912c Import OpenSSH-7.4
OpenSSH 7.4 has just been released. It will be available from the
mirrors listed at http://www.openssh.com/ shortly.

OpenSSH is a 100% complete SSH protocol 2.0 implementation and
includes sftp client and server support. OpenSSH also includes
transitional support for the legacy SSH 1.3 and 1.5 protocols
that may be enabled at compile-time.

Once again, we would like to thank the OpenSSH community for their
continued support of the project, especially those who contributed
code or patches, reported bugs, tested snapshots or donated to the
project. More information on donations may be found at:
http://www.openssh.com/donations.html

Future deprecation notice
=========================

We plan on retiring more legacy cryptography in future releases,
specifically:

 * In approximately August 2017, removing remaining support for the
   SSH v.1 protocol (client-only and currently compile-time disabled).

 * In the same release, removing support for Blowfish and RC4 ciphers
   and the RIPE-MD160 HMAC. (These are currently run-time disabled).

 * Refusing all RSA keys smaller than 1024 bits (the current minimum
   is 768 bits)

 * The next release of OpenSSH will remove support for running sshd(8)
   with privilege separation disabled.

 * The next release of portable OpenSSH will remove support for
   OpenSSL version prior to 1.0.1.

This list reflects our current intentions, but please check the final
release notes for future releases.

Potentially-incompatible changes
================================

This release includes a number of changes that may affect existing
configurations:

 * This release removes server support for the SSH v.1 protocol.

 * ssh(1): Remove 3des-cbc from the client's default proposal. 64-bit
   block ciphers are not safe in 2016 and we don't want to wait until
   attacks like SWEET32 are extended to SSH. As 3des-cbc was the
   only mandatory cipher in the SSH RFCs, this may cause problems
   connecting to older devices using the default configuration,
   but it's highly likely that such devices already need explicit
   configuration for key exchange and hostkey algorithms already
   anyway.

 * sshd(8): Remove support for pre-authentication compression.
   Doing compression early in the protocol probably seemed reasonable
   in the 1990s, but today it's clearly a bad idea in terms of both
   cryptography (cf. multiple compression oracle attacks in TLS) and
   attack surface. Pre-auth compression support has been disabled by
   default for >10 years. Support remains in the client.

 * ssh-agent will refuse to load PKCS#11 modules outside a whitelist
   of trusted paths by default. The path whitelist may be specified
   at run-time.

 * sshd(8): When a forced-command appears in both a certificate and
   an authorized keys/principals command= restriction, sshd will now
   refuse to accept the certificate unless they are identical.
   The previous (documented) behaviour of having the certificate
   forced-command override the other could be a bit confusing and
   error-prone.

 * sshd(8): Remove the UseLogin configuration directive and support
   for having /bin/login manage login sessions.
2016-12-25 00:00:13 +00:00
joerg
e887dd50b2 Mark the new SPARCv9-in-32bit-mode modules as needing V9. 2016-11-03 22:18:29 +00:00
christos
c03ab36ba4 conditionalize bits 2016-10-19 00:11:03 +00:00
joerg
e9e26132dd Add basic glue for AArch64, including not-yet-used assembler files. 2016-10-17 00:24:13 +00:00
joerg
11ff370a53 Make assembler modules optional for ARM architectures. 2016-10-17 00:23:47 +00:00
christos
a419901429 Adapt from powerpc(32) 2016-10-15 12:19:02 +00:00
spz
31b855a025 merge for openssl 1.0.2j 2016-10-14 16:23:17 +00:00
spz
cff8db61e4 periphereal updates and generated files for the new openssl.
Expect at least one more commit until the tree builds again.
2016-10-14 16:09:43 +00:00
spz
a6054fbf77 Import of OpenSSL 1.0.2j.
The 1.0.2 branch of OpenSSL is the current long term support branch.

Differences between 1.0.1 and 1.0.2:
      o Suite B support for TLS 1.2 and DTLS 1.2
      o Support for DTLS 1.2
      o TLS automatic EC curve selection.
      o API to set TLS supported signature algorithms and curves
      o SSL_CONF configuration API.
      o TLS Brainpool support.
      o ALPN support.
      o CMS support for RSA-PSS, RSA-OAEP, ECDH and X9.42 DH.

Security fixes from the previous version (1.0.1t) in NetBSD:
      o OCSP Status Request extension unbounded memory growth (CVE-2016-6304)
      o SWEET32 Mitigation (CVE-2016-2183)
      o OOB write in MDC2_Update() (CVE-2016-6303)
      o Malformed SHA512 ticket DoS (CVE-2016-6302)
      o OOB write in BN_bn2dec() (CVE-2016-2182)
      o OOB read in TS_OBJ_print_bio() (CVE-2016-2180)
      o Pointer arithmetic undefined behaviour (CVE-2016-2177)
      o Constant time flag not preserved in DSA signing (CVE-2016-2178)
      o DTLS buffered message DoS (CVE-2016-2179)
      o DTLS replay protection DoS (CVE-2016-2181)
      o Certificate message OOB reads (CVE-2016-6306)
2016-10-14 16:02:36 +00:00
spz
218f7bfcf1 Import of OpenSSL 1.0.2j.
The 1.0.2 branch of OpenSSL is the current long term support branch.

Differences between 1.0.1 and 1.0.2:
      o Suite B support for TLS 1.2 and DTLS 1.2
      o Support for DTLS 1.2
      o TLS automatic EC curve selection.
      o API to set TLS supported signature algorithms and curves
      o SSL_CONF configuration API.
      o TLS Brainpool support.
      o ALPN support.
      o CMS support for RSA-PSS, RSA-OAEP, ECDH and X9.42 DH.

Security fixes from the previous version (1.0.1t) in NetBSD:
      o OCSP Status Request extension unbounded memory growth (CVE-2016-6304)
      o SWEET32 Mitigation (CVE-2016-2183)
      o OOB write in MDC2_Update() (CVE-2016-6303)
      o Malformed SHA512 ticket DoS (CVE-2016-6302)
      o OOB write in BN_bn2dec() (CVE-2016-2182)
      o OOB read in TS_OBJ_print_bio() (CVE-2016-2180)
      o Pointer arithmetic undefined behaviour (CVE-2016-2177)
      o Constant time flag not preserved in DSA signing (CVE-2016-2178)
      o DTLS buffered message DoS (CVE-2016-2179)
      o DTLS replay protection DoS (CVE-2016-2181)
      o Certificate message OOB reads (CVE-2016-6306)
2016-10-14 16:01:16 +00:00
christos
de2aa956c1 PR/51543: Henning Petersen: replace , with ; 2016-10-09 15:01:49 +00:00
bouyer
ba1fe8e391 Remove, should have been added on netbsd-6-0 2016-10-05 10:30:19 +00:00
bouyer
2b8667ab73 src/doc/3RDPARTY patch
src/distrib/sets/lists/comp/mi						patch
src/crypto/external/bsd/openssl/dist/CHANGES				patch
src/crypto/external/bsd/openssl/dist/CONTRIBUTING			patch
src/crypto/external/bsd/openssl/dist/Configure				patch
src/crypto/external/bsd/openssl/dist/Makefile				patch
src/crypto/external/bsd/openssl/dist/NEWS				patch
src/crypto/external/bsd/openssl/dist/README				patch
src/crypto/external/bsd/openssl/dist/openssl.spec			patch
src/crypto/external/bsd/openssl/dist/apps/apps.c			patch
src/crypto/external/bsd/openssl/dist/apps/enc.c				patch
src/crypto/external/bsd/openssl/dist/apps/passwd.c			patch
src/crypto/external/bsd/openssl/dist/apps/s_server.c			patch
src/crypto/external/bsd/openssl/dist/apps/x509.c			patch
src/crypto/external/bsd/openssl/dist/crypto/md32_common.h		patch
src/crypto/external/bsd/openssl/dist/crypto/opensslv.h			patch
src/crypto/external/bsd/openssl/dist/crypto/asn1/a_bytes.c		patch
src/crypto/external/bsd/openssl/dist/crypto/asn1/a_object.c		patch
src/crypto/external/bsd/openssl/dist/crypto/asn1/a_set.c		patch
src/crypto/external/bsd/openssl/dist/crypto/asn1/asn1_lib.c		patch
src/crypto/external/bsd/openssl/dist/crypto/asn1/asn_mime.c		patch
src/crypto/external/bsd/openssl/dist/crypto/asn1/d2i_pr.c		patch
src/crypto/external/bsd/openssl/dist/crypto/asn1/f_enum.c		patch
src/crypto/external/bsd/openssl/dist/crypto/asn1/f_int.c		patch
src/crypto/external/bsd/openssl/dist/crypto/asn1/f_string.c		patch
src/crypto/external/bsd/openssl/dist/crypto/asn1/p5_pbe.c		patch
src/crypto/external/bsd/openssl/dist/crypto/asn1/p5_pbev2.c		patch
src/crypto/external/bsd/openssl/dist/crypto/asn1/tasn_enc.c		patch
src/crypto/external/bsd/openssl/dist/crypto/asn1/tasn_prn.c		patch
src/crypto/external/bsd/openssl/dist/crypto/asn1/x_name.c		patch
src/crypto/external/bsd/openssl/dist/crypto/bio/bf_nbio.c		patch
src/crypto/external/bsd/openssl/dist/crypto/bn/bn_lib.c			patch
src/crypto/external/bsd/openssl/dist/crypto/bn/bn_print.c		patch
src/crypto/external/bsd/openssl/dist/crypto/bn/bn_rand.c		patch
src/crypto/external/bsd/openssl/dist/crypto/cms/cms_enc.c		patch
src/crypto/external/bsd/openssl/dist/crypto/cms/cms_ess.c		patch
src/crypto/external/bsd/openssl/dist/crypto/cms/cms_pwri.c		patch
src/crypto/external/bsd/openssl/dist/crypto/des/des.c			patch
src/crypto/external/bsd/openssl/dist/crypto/des/enc_writ.c		patch
src/crypto/external/bsd/openssl/dist/crypto/dsa/dsa_gen.c		patch
src/crypto/external/bsd/openssl/dist/crypto/dsa/dsa_ossl.c		patch
src/crypto/external/bsd/openssl/dist/crypto/evp/bio_ok.c		patch
src/crypto/external/bsd/openssl/dist/crypto/evp/digest.c		patch
src/crypto/external/bsd/openssl/dist/crypto/evp/e_seed.c		patch
src/crypto/external/bsd/openssl/dist/crypto/md2/md2_dgst.c		patch
src/crypto/external/bsd/openssl/dist/crypto/mdc2/mdc2dgst.c		patch
src/crypto/external/bsd/openssl/dist/crypto/ocsp/ocsp_ext.c		patch
src/crypto/external/bsd/openssl/dist/crypto/pem/pem.h			patch
src/crypto/external/bsd/openssl/dist/crypto/pem/pem_err.c		patch
src/crypto/external/bsd/openssl/dist/crypto/pem/pem_lib.c		patch
src/crypto/external/bsd/openssl/dist/crypto/pem/pvkfmt.c		patch
src/crypto/external/bsd/openssl/dist/crypto/pkcs12/p12_mutl.c		patch
src/crypto/external/bsd/openssl/dist/crypto/pkcs12/p12_npas.c		patch
src/crypto/external/bsd/openssl/dist/crypto/pkcs12/p12_utl.c		patch
src/crypto/external/bsd/openssl/dist/crypto/pkcs12/pkcs12.h		patch
src/crypto/external/bsd/openssl/dist/crypto/pkcs7/pk7_doit.c		patch
src/crypto/external/bsd/openssl/dist/crypto/rand/rand_unix.c		patch
src/crypto/external/bsd/openssl/dist/crypto/srp/srp_lib.c		patch
src/crypto/external/bsd/openssl/dist/crypto/srp/srp_vfy.c		patch
src/crypto/external/bsd/openssl/dist/crypto/ts/ts_lib.c			patch
src/crypto/external/bsd/openssl/dist/crypto/whrlpool/wp_dgst.c		patch
src/crypto/external/bsd/openssl/dist/crypto/x509/x509.h			patch
src/crypto/external/bsd/openssl/dist/crypto/x509/x509_err.c		patch
src/crypto/external/bsd/openssl/dist/crypto/x509/x509_txt.c		patch
src/crypto/external/bsd/openssl/dist/crypto/x509/x509_vfy.c		patch
src/crypto/external/bsd/openssl/dist/crypto/x509/x509_vfy.h		patch
src/crypto/external/bsd/openssl/dist/crypto/x509v3/v3_addr.c		patch
src/crypto/external/bsd/openssl/dist/doc/apps/cms.pod			patch
src/crypto/external/bsd/openssl/dist/doc/apps/smime.pod			patch
src/crypto/external/bsd/openssl/dist/doc/apps/verify.pod		patch
src/crypto/external/bsd/openssl/dist/doc/crypto/X509_verify_cert.pod	patch
src/crypto/external/bsd/openssl/dist/doc/crypto/d2i_PrivateKey.pod	patch
src/crypto/external/bsd/openssl/dist/ssl/d1_both.c			patch
src/crypto/external/bsd/openssl/dist/ssl/d1_clnt.c			patch
src/crypto/external/bsd/openssl/dist/ssl/d1_lib.c			patch
src/crypto/external/bsd/openssl/dist/ssl/d1_pkt.c			patch
src/crypto/external/bsd/openssl/dist/ssl/d1_srvr.c			patch
src/crypto/external/bsd/openssl/dist/ssl/s23_clnt.c			patch
src/crypto/external/bsd/openssl/dist/ssl/s2_clnt.c			patch
src/crypto/external/bsd/openssl/dist/ssl/s2_srvr.c			patch
src/crypto/external/bsd/openssl/dist/ssl/s3_both.c			patch
src/crypto/external/bsd/openssl/dist/ssl/s3_clnt.c			patch
src/crypto/external/bsd/openssl/dist/ssl/s3_lib.c			patch
src/crypto/external/bsd/openssl/dist/ssl/s3_srvr.c			patch
src/crypto/external/bsd/openssl/dist/ssl/ssl.h				patch
src/crypto/external/bsd/openssl/dist/ssl/ssl_err.c			patch
src/crypto/external/bsd/openssl/dist/ssl/ssl_lib.c			patch
src/crypto/external/bsd/openssl/dist/ssl/ssl_locl.h			patch
src/crypto/external/bsd/openssl/dist/ssl/ssl_sess.c			patch
src/crypto/external/bsd/openssl/dist/ssl/t1_lib.c			patch
src/crypto/external/bsd/openssl/dist/test/smime-certs/smdsa1.pem	patch
src/crypto/external/bsd/openssl/dist/test/smime-certs/smdsa2.pem	patch
src/crypto/external/bsd/openssl/dist/test/smime-certs/smdsa3.pem	patch
src/crypto/external/bsd/openssl/dist/test/smime-certs/smroot.pem	patch
src/crypto/external/bsd/openssl/dist/test/smime-certs/smrsa1.pem	patch
src/crypto/external/bsd/openssl/dist/test/smime-certs/smrsa2.pem	patch
src/crypto/external/bsd/openssl/dist/test/smime-certs/smrsa3.pem	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man.inc			patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/ASN1_OBJECT_new.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/ASN1_STRING_length.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/ASN1_STRING_new.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/ASN1_STRING_print_ex.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/ASN1_generate_nconf.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/BIO_ctrl.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/BIO_f_base64.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/BIO_f_buffer.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/BIO_f_cipher.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/BIO_f_md.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/BIO_f_null.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/BIO_f_ssl.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/BIO_find_type.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/BIO_new.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/BIO_new_CMS.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/BIO_push.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/BIO_read.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/BIO_s_accept.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/BIO_s_bio.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/BIO_s_connect.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/BIO_s_fd.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/BIO_s_file.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/BIO_s_mem.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/BIO_s_null.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/BIO_s_socket.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/BIO_set_callback.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/BIO_should_retry.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/BN_BLINDING_new.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/BN_CTX_new.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/BN_CTX_start.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/BN_add.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/BN_add_word.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/BN_bn2bin.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/BN_cmp.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/BN_copy.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/BN_generate_prime.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/BN_mod_inverse.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/BN_mod_mul_montgomery.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/BN_mod_mul_reciprocal.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/BN_new.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/BN_num_bytes.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/BN_rand.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/BN_set_bit.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/BN_swap.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/BN_zero.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/CMS_add0_cert.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/CMS_add1_recipient_cert.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/CMS_add1_signer.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/CMS_compress.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/CMS_decrypt.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/CMS_encrypt.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/CMS_final.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/CMS_get0_RecipientInfos.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/CMS_get0_SignerInfos.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/CMS_get0_type.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/CMS_get1_ReceiptRequest.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/CMS_sign.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/CMS_sign_receipt.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/CMS_uncompress.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/CMS_verify.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/CMS_verify_receipt.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/CONF_modules_free.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/CONF_modules_load_file.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/CRYPTO_set_ex_data.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/DH_generate_key.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/DH_generate_parameters.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/DH_get_ex_new_index.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/DH_new.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/DH_set_method.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/DH_size.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/DSA_SIG_new.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/DSA_do_sign.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/DSA_dup_DH.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/DSA_generate_key.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/DSA_generate_parameters.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/DSA_get_ex_new_index.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/DSA_new.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/DSA_set_method.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/DSA_sign.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/DSA_size.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/ERR_GET_LIB.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/ERR_clear_error.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/ERR_error_string.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/ERR_get_error.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/ERR_load_crypto_strings.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/ERR_load_strings.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/ERR_print_errors.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/ERR_put_error.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/ERR_remove_state.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/ERR_set_mark.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/EVP_BytesToKey.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/EVP_DigestInit.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/EVP_DigestSignInit.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/EVP_DigestVerifyInit.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/EVP_EncodeInit.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/EVP_EncryptInit.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/EVP_OpenInit.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/EVP_PKEY_CTX_ctrl.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/EVP_PKEY_CTX_new.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/EVP_PKEY_cmp.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/EVP_PKEY_decrypt.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/EVP_PKEY_derive.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/EVP_PKEY_encrypt.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/EVP_PKEY_get_default_digest.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/EVP_PKEY_keygen.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/EVP_PKEY_new.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/EVP_PKEY_print_private.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/EVP_PKEY_set1_RSA.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/EVP_PKEY_sign.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/EVP_PKEY_verify.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/EVP_PKEY_verify_recover.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/EVP_SealInit.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/EVP_SignInit.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/EVP_VerifyInit.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/OBJ_nid2obj.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/OPENSSL_Applink.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/OPENSSL_VERSION_NUMBER.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/OPENSSL_config.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/OPENSSL_ia32cap.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/OPENSSL_load_builtin_modules.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/OpenSSL_add_all_algorithms.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/PEM_write_bio_CMS_stream.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/PEM_write_bio_PKCS7_stream.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/PKCS12_create.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/PKCS12_parse.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/PKCS7_decrypt.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/PKCS7_encrypt.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/PKCS7_sign.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/PKCS7_sign_add_signer.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/PKCS7_verify.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/RAND_add.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/RAND_bytes.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/RAND_cleanup.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/RAND_egd.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/RAND_load_file.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/RAND_set_rand_method.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/RSA_blinding_on.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/RSA_check_key.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/RSA_generate_key.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/RSA_get_ex_new_index.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/RSA_new.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/RSA_padding_add_PKCS1_type_1.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/RSA_print.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/RSA_private_encrypt.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/RSA_public_encrypt.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/RSA_set_method.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/RSA_sign.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/RSA_sign_ASN1_OCTET_STRING.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/RSA_size.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SMIME_read_CMS.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SMIME_read_PKCS7.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SMIME_write_CMS.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SMIME_write_PKCS7.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_CIPHER_get_name.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_COMP_add_compression_method.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_CTX_add_extra_chain_cert.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_CTX_add_session.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_CTX_ctrl.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_CTX_flush_sessions.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_CTX_free.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_CTX_get_ex_new_index.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_CTX_get_verify_mode.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_CTX_load_verify_locations.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_CTX_new.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_CTX_sess_number.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_CTX_sess_set_cache_size.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_CTX_sess_set_get_cb.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_CTX_sessions.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_CTX_set_cert_store.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_CTX_set_cert_verify_callback.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_CTX_set_cipher_list.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_CTX_set_client_CA_list.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_CTX_set_client_cert_cb.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_CTX_set_default_passwd_cb.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_CTX_set_generate_session_id.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_CTX_set_info_callback.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_CTX_set_max_cert_list.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_CTX_set_mode.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_CTX_set_msg_callback.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_CTX_set_options.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_CTX_set_psk_client_callback.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_CTX_set_quiet_shutdown.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_CTX_set_read_ahead.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_CTX_set_session_cache_mode.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_CTX_set_session_id_context.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_CTX_set_ssl_version.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_CTX_set_timeout.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_CTX_set_tlsext_status_cb.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_CTX_set_tlsext_ticket_key_cb.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_CTX_set_tmp_dh_callback.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_CTX_set_tmp_rsa_callback.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_CTX_set_verify.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_CTX_use_certificate.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_CTX_use_psk_identity_hint.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_SESSION_free.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_SESSION_get_ex_new_index.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_SESSION_get_time.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_accept.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_alert_type_string.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_clear.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_connect.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_do_handshake.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_free.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_get_SSL_CTX.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_get_ciphers.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_get_client_CA_list.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_get_current_cipher.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_get_default_timeout.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_get_error.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_get_ex_data_X509_STORE_CTX_idx.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_get_ex_new_index.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_get_fd.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_get_peer_cert_chain.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_get_peer_certificate.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_get_psk_identity.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_get_rbio.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_get_session.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_get_verify_result.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_get_version.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_library_init.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_load_client_CA_file.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_new.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_pending.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_read.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_rstate_string.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_session_reused.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_set_bio.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_set_connect_state.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_set_fd.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_set_session.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_set_shutdown.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_set_verify_result.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_shutdown.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_state_string.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_want.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/SSL_write.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/X509_NAME_ENTRY_get_object.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/X509_NAME_add_entry_by_txt.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/X509_NAME_get_index_by_NID.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/X509_NAME_print_ex.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/X509_STORE_CTX_get_error.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/X509_STORE_CTX_get_ex_new_index.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/X509_STORE_CTX_new.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/X509_STORE_CTX_set_verify_cb.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/X509_STORE_set_verify_cb_func.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/X509_VERIFY_PARAM_set_flags.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/X509_new.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/X509_verify_cert.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/crypto.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/d2i_ASN1_OBJECT.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/d2i_CMS_ContentInfo.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/d2i_DHparams.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/d2i_DSAPublicKey.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/d2i_ECPrivateKey.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/d2i_PKCS8PrivateKey.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/d2i_PrivateKey.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/d2i_RSAPublicKey.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/d2i_SSL_SESSION.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/d2i_X509.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/d2i_X509_ALGOR.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/d2i_X509_CRL.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/d2i_X509_NAME.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/d2i_X509_REQ.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/d2i_X509_SIG.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/des_modes.7		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/i2d_CMS_bio_stream.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/i2d_PKCS7_bio_stream.3 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/lh_stats.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl.1		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl.cnf.5		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_CA.pl.1	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_asn1parse.1	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_bio.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_blowfish.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_bn.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_bn_internal.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_buffer.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_c_rehash.1	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_ca.1		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_ciphers.1	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_cms.1		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_crl.1		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_crl2pkcs7.1	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_des.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_dgst.1	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_dh.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_dhparam.1	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_dsa.1		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_dsa.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_dsaparam.1	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_ec.1		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_ecdsa.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_ecparam.1	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_enc.1		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_engine.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_err.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_errstr.1	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_evp.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_gendsa.1	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_genpkey.1	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_genrsa.1	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_hmac.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_lhash.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_md5.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_mdc2.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_nseq.1	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_ocsp.1	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_passwd.1	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_pem.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_pkcs12.1	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_pkcs7.1	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_pkcs8.1	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_pkey.1	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_pkeyparam.1	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_pkeyutl.1	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_rand.1	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_rand.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_rc4.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_req.1		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_ripemd.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_rsa.1		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_rsa.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_rsautl.1	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_s_client.1	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_s_server.1	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_s_time.1	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_sess_id.1	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_sha.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_smime.1	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_speed.1	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_spkac.1	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_threads.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_ts.1		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_tsget.1	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_ui.3		patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_ui_compat.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_verify.1	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_version.1	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_x509.1	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_x509.3	patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/openssl_x509v3_config.1 patch
src/crypto/external/bsd/openssl/lib/libcrypto/man/ssl.3			patch

	Update OpenSSL to 1.0.1u.
	Major changes between OpenSSL 1.0.1t and OpenSSL 1.0.1u [22 Sep 2016]

	    o OCSP Status Request extension unbounded memory growth (CVE-2016-6304)
	    o SWEET32 Mitigation (CVE-2016-2183)
	    o OOB write in MDC2_Update() (CVE-2016-6303)
	    o Malformed SHA512 ticket DoS (CVE-2016-6302)
	    o OOB write in BN_bn2dec() (CVE-2016-2182)
	    o OOB read in TS_OBJ_print_bio() (CVE-2016-2180)
	    o Pointer arithmetic undefined behaviour (CVE-2016-2177)
	    o Constant time flag not preserved in DSA signing (CVE-2016-2178)
	    o DTLS buffered message DoS (CVE-2016-2179)
	    o DTLS replay protection DoS (CVE-2016-2181)
	    o Certificate message OOB reads (CVE-2016-6306)
	[spz, ticket 1409]
2016-10-05 10:23:17 +00:00
abhinav
269b3adc7a Add section number to the Xrefs
Remove a blank space at the end of the line 130 (makes mandoc -Tlint happy)
2016-09-12 16:54:31 +00:00
christos
968a6448d4 Fix the error handling so that we print the earliest error message. 2016-09-03 09:31:22 +00:00
christos
328016aa2a Avoid segv when the end signature is not found! 2016-08-28 15:52:22 +00:00
jakllsch
a392713e10 Add some missing __attribute__((format(printf annotations. 2016-08-03 15:24:28 +00:00
christos
efdc9ac20d remove unused code 2016-08-02 13:53:44 +00:00
christos
5101d40313 merge conflicts. 2016-08-02 13:45:12 +00:00
christos
92af1b7ef2 OpenSSH 7.3 has just been released. It will be available from the
mirrors listed at http://www.openssh.com/ shortly.

OpenSSH is a 100% complete SSH protocol 2.0 implementation and
includes sftp client and server support. OpenSSH also includes
transitional support for the legacy SSH 1.3 and 1.5 protocols
that may be enabled at compile-time.

Once again, we would like to thank the OpenSSH community for their
continued support of the project, especially those who contributed
code or patches, reported bugs, tested snapshots or donated to the
project. More information on donations may be found at:
http://www.openssh.com/donations.html

Future deprecation notice
=========================

We plan on retiring more legacy cryptography in a near-future
release, specifically:

 * Refusing all RSA keys smaller than 1024 bits (the current minimum
   is 768 bits)
 * Removing server-side support for the SSH v.1 protocol (currently
   compile-time disabled).
 * In approximately 1 year, removing all support for the SSH v.1
   protocol (currently compile-time disabled).

This list reflects our current intentions, but please check the final
release notes for future releases.

Changes since OpenSSH 7.2
=========================

This is primarily a bugfix release.

Security
--------

 * sshd(8): Mitigate a potential denial-of-service attack against
   the system's crypt(3) function via sshd(8). An attacker could
   send very long passwords that would cause excessive CPU use in
   crypt(3). sshd(8) now refuses to accept password authentication
   requests of length greater than 1024 characters. Independently
   reported by Tomas Kuthan (Oracle), Andres Rojas and Javier Nieto.

 * sshd(8): Mitigate timing differences in password authentication
   that could be used to discern valid from invalid account names
   when long passwords were sent and particular password hashing
   algorithms are in use on the server. CVE-2016-6210, reported by
   EddieEzra.Harari at verint.com

 * ssh(1), sshd(8): Fix observable timing weakness in the CBC padding
   oracle countermeasures. Reported by Jean Paul Degabriele, Kenny
   Paterson, Torben Hansen and Martin Albrecht. Note that CBC ciphers
   are disabled by default and only included for legacy compatibility.

 * ssh(1), sshd(8): Improve operation ordering of MAC verification for
   Encrypt-then-MAC (EtM) mode transport MAC algorithms to verify the
   MAC before decrypting any ciphertext. This removes the possibility
   of timing differences leaking facts about the plaintext, though no
   such leakage has been observed.  Reported by Jean Paul Degabriele,
   Kenny Paterson, Torben Hansen and Martin Albrecht.

 * sshd(8): (portable only) Ignore PAM environment vars when
   UseLogin=yes. If PAM is configured to read user-specified
   environment variables and UseLogin=yes in sshd_config, then a
   hostile local user may attack /bin/login via LD_PRELOAD or
   similar environment variables set via PAM. CVE-2015-8325,
   found by Shayan Sadigh.

New Features
------------

 * ssh(1): Add a ProxyJump option and corresponding -J command-line
   flag to allow simplified indirection through a one or more SSH
   bastions or "jump hosts".

 * ssh(1): Add an IdentityAgent option to allow specifying specific
   agent sockets instead of accepting one from the environment.

 * ssh(1): Allow ExitOnForwardFailure and ClearAllForwardings to be
   optionally overridden when using ssh -W. bz#2577

 * ssh(1), sshd(8): Implement support for the IUTF8 terminal mode as
   per draft-sgtatham-secsh-iutf8-00.

 * ssh(1), sshd(8): Add support for additional fixed Diffie-Hellman
   2K, 4K and 8K groups from draft-ietf-curdle-ssh-kex-sha2-03.

 * ssh-keygen(1), ssh(1), sshd(8): support SHA256 and SHA512 RSA
   signatures in certificates;

 * ssh(1): Add an Include directive for ssh_config(5) files.

 * ssh(1): Permit UTF-8 characters in pre-authentication banners sent
   from the server. bz#2058

Bugfixes
--------

 * ssh(1), sshd(8): Reduce the syslog level of some relatively common
   protocol events from LOG_CRIT. bz#2585

 * sshd(8): Refuse AuthenticationMethods="" in configurations and
   accept AuthenticationMethods=any for the default behaviour of not
   requiring multiple authentication. bz#2398

 * sshd(8): Remove obsolete and misleading "POSSIBLE BREAK-IN
   ATTEMPT!" message when forward and reverse DNS don't match. bz#2585

 * ssh(1): Close ControlPersist background process stderr except
   in debug mode or when logging to syslog. bz#1988

 * misc: Make PROTOCOL description for direct-streamlocal@openssh.com
   channel open messages match deployed code. bz#2529

 * ssh(1): Deduplicate LocalForward and RemoteForward entries to fix
   failures when both ExitOnForwardFailure and hostname
   canonicalisation are enabled. bz#2562

 * sshd(8): Remove fallback from moduli to obsolete "primes" file
   that was deprecated in 2001. bz#2559.

 * sshd_config(5): Correct description of UseDNS: it affects ssh
   hostname processing for authorized_keys, not known_hosts; bz#2554

 * ssh(1): Fix authentication using lone certificate keys in an agent
   without corresponding private keys on the filesystem. bz#2550

 * sshd(8): Send ClientAliveInterval pings when a time-based
   RekeyLimit is set; previously keepalive packets were not being
   sent. bz#2252

Portability
-----------

 * ssh(1), sshd(8): Fix compilation by automatically disabling ciphers
   not supported by OpenSSL. bz#2466

 * misc: Fix compilation failures on some versions of AIX's compiler
   related to the definition of the VA_COPY macro. bz#2589

 * sshd(8): Whitelist more architectures to enable the seccomp-bpf
   sandbox. bz#2590

 * ssh-agent(1), sftp-server(8): Disable process tracing on Solaris
   using setpflags(__PROC_PROTECT, ...). bz#2584

 * sshd(8): On Solaris, don't call Solaris setproject() with
   UsePAM=yes it's PAM's responsibility. bz#2425

Checksums:
==========

 - SHA1 (openssh-7.3.tar.gz) = b1641e5265d9ec68a9a19decc3a7edd1203cbd33
 - SHA256 (openssh-7.3.tar.gz) = vS0X35qrX9OOPBkyDMYhOje/DBwHBVEV7nv5rkzw4vM=

 - SHA1 (openssh-7.3p1.tar.gz) = bfade84283fcba885e2084343ab19a08c7d123a5
 - SHA256 (openssh-7.3p1.tar.gz) = P/uYmm3KppWUw7VQ1IVaWi4XGMzd5/XjY4e0JCIPvsw=

Please note that the SHA256 signatures are base64 encoded and not
hexadecimal (which is the default for most checksum tools). The PGP
key used to sign the releases is available as RELEASE_KEY.asc from
the mirror sites.

Reporting Bugs:
===============

- Please read http://www.openssh.com/report.html
  Security bugs should be reported directly to openssh@openssh.com

OpenSSH is brought to you by Markus Friedl, Niels Provos, Theo de
Raadt, Kevin Steves, Damien Miller, Darren Tucker, Jason McIntyre,
Tim Rice and Ben Lindstrom.
2016-08-02 13:30:06 +00:00
christos
417e1b99d5 OpenSSH 7.3 has just been released. It will be available from the
mirrors listed at http://www.openssh.com/ shortly.

OpenSSH is a 100% complete SSH protocol 2.0 implementation and
includes sftp client and server support. OpenSSH also includes
transitional support for the legacy SSH 1.3 and 1.5 protocols
that may be enabled at compile-time.

Once again, we would like to thank the OpenSSH community for their
continued support of the project, especially those who contributed
code or patches, reported bugs, tested snapshots or donated to the
project. More information on donations may be found at:
http://www.openssh.com/donations.html

Future deprecation notice
=========================

We plan on retiring more legacy cryptography in a near-future
release, specifically:

 * Refusing all RSA keys smaller than 1024 bits (the current minimum
   is 768 bits)
 * Removing server-side support for the SSH v.1 protocol (currently
   compile-time disabled).
 * In approximately 1 year, removing all support for the SSH v.1
   protocol (currently compile-time disabled).

This list reflects our current intentions, but please check the final
release notes for future releases.

Changes since OpenSSH 7.2
=========================

This is primarily a bugfix release.

Security
--------

 * sshd(8): Mitigate a potential denial-of-service attack against
   the system's crypt(3) function via sshd(8). An attacker could
   send very long passwords that would cause excessive CPU use in
   crypt(3). sshd(8) now refuses to accept password authentication
   requests of length greater than 1024 characters. Independently
   reported by Tomas Kuthan (Oracle), Andres Rojas and Javier Nieto.

 * sshd(8): Mitigate timing differences in password authentication
   that could be used to discern valid from invalid account names
   when long passwords were sent and particular password hashing
   algorithms are in use on the server. CVE-2016-6210, reported by
   EddieEzra.Harari at verint.com

 * ssh(1), sshd(8): Fix observable timing weakness in the CBC padding
   oracle countermeasures. Reported by Jean Paul Degabriele, Kenny
   Paterson, Torben Hansen and Martin Albrecht. Note that CBC ciphers
   are disabled by default and only included for legacy compatibility.

 * ssh(1), sshd(8): Improve operation ordering of MAC verification for
   Encrypt-then-MAC (EtM) mode transport MAC algorithms to verify the
   MAC before decrypting any ciphertext. This removes the possibility
   of timing differences leaking facts about the plaintext, though no
   such leakage has been observed.  Reported by Jean Paul Degabriele,
   Kenny Paterson, Torben Hansen and Martin Albrecht.

 * sshd(8): (portable only) Ignore PAM environment vars when
   UseLogin=yes. If PAM is configured to read user-specified
   environment variables and UseLogin=yes in sshd_config, then a
   hostile local user may attack /bin/login via LD_PRELOAD or
   similar environment variables set via PAM. CVE-2015-8325,
   found by Shayan Sadigh.

New Features
------------

 * ssh(1): Add a ProxyJump option and corresponding -J command-line
   flag to allow simplified indirection through a one or more SSH
   bastions or "jump hosts".

 * ssh(1): Add an IdentityAgent option to allow specifying specific
   agent sockets instead of accepting one from the environment.

 * ssh(1): Allow ExitOnForwardFailure and ClearAllForwardings to be
   optionally overridden when using ssh -W. bz#2577

 * ssh(1), sshd(8): Implement support for the IUTF8 terminal mode as
   per draft-sgtatham-secsh-iutf8-00.

 * ssh(1), sshd(8): Add support for additional fixed Diffie-Hellman
   2K, 4K and 8K groups from draft-ietf-curdle-ssh-kex-sha2-03.

 * ssh-keygen(1), ssh(1), sshd(8): support SHA256 and SHA512 RSA
   signatures in certificates;

 * ssh(1): Add an Include directive for ssh_config(5) files.

 * ssh(1): Permit UTF-8 characters in pre-authentication banners sent
   from the server. bz#2058

Bugfixes
--------

 * ssh(1), sshd(8): Reduce the syslog level of some relatively common
   protocol events from LOG_CRIT. bz#2585

 * sshd(8): Refuse AuthenticationMethods="" in configurations and
   accept AuthenticationMethods=any for the default behaviour of not
   requiring multiple authentication. bz#2398

 * sshd(8): Remove obsolete and misleading "POSSIBLE BREAK-IN
   ATTEMPT!" message when forward and reverse DNS don't match. bz#2585

 * ssh(1): Close ControlPersist background process stderr except
   in debug mode or when logging to syslog. bz#1988

 * misc: Make PROTOCOL description for direct-streamlocal@openssh.com
   channel open messages match deployed code. bz#2529

 * ssh(1): Deduplicate LocalForward and RemoteForward entries to fix
   failures when both ExitOnForwardFailure and hostname
   canonicalisation are enabled. bz#2562

 * sshd(8): Remove fallback from moduli to obsolete "primes" file
   that was deprecated in 2001. bz#2559.

 * sshd_config(5): Correct description of UseDNS: it affects ssh
   hostname processing for authorized_keys, not known_hosts; bz#2554

 * ssh(1): Fix authentication using lone certificate keys in an agent
   without corresponding private keys on the filesystem. bz#2550

 * sshd(8): Send ClientAliveInterval pings when a time-based
   RekeyLimit is set; previously keepalive packets were not being
   sent. bz#2252

Portability
-----------

 * ssh(1), sshd(8): Fix compilation by automatically disabling ciphers
   not supported by OpenSSL. bz#2466

 * misc: Fix compilation failures on some versions of AIX's compiler
   related to the definition of the VA_COPY macro. bz#2589

 * sshd(8): Whitelist more architectures to enable the seccomp-bpf
   sandbox. bz#2590

 * ssh-agent(1), sftp-server(8): Disable process tracing on Solaris
   using setpflags(__PROC_PROTECT, ...). bz#2584

 * sshd(8): On Solaris, don't call Solaris setproject() with
   UsePAM=yes it's PAM's responsibility. bz#2425

Checksums:
==========

 - SHA1 (openssh-7.3.tar.gz) = b1641e5265d9ec68a9a19decc3a7edd1203cbd33
 - SHA256 (openssh-7.3.tar.gz) = vS0X35qrX9OOPBkyDMYhOje/DBwHBVEV7nv5rkzw4vM=

 - SHA1 (openssh-7.3p1.tar.gz) = bfade84283fcba885e2084343ab19a08c7d123a5
 - SHA256 (openssh-7.3p1.tar.gz) = P/uYmm3KppWUw7VQ1IVaWi4XGMzd5/XjY4e0JCIPvsw=

Please note that the SHA256 signatures are base64 encoded and not
hexadecimal (which is the default for most checksum tools). The PGP
key used to sign the releases is available as RELEASE_KEY.asc from
the mirror sites.

Reporting Bugs:
===============

- Please read http://www.openssh.com/report.html
  Security bugs should be reported directly to openssh@openssh.com

OpenSSH is brought to you by Markus Friedl, Niels Provos, Theo de
Raadt, Kevin Steves, Damien Miller, Darren Tucker, Jason McIntyre,
Tim Rice and Ben Lindstrom.
2016-08-02 13:29:06 +00:00
christos
fe3d7b70d6 -Wno-stack-protector 2016-07-25 06:20:26 +00:00
christos
2fcbe1519f CID 977755: Resource leaks. 2016-06-28 16:34:40 +00:00
agc
0ad97abd01 Update netpgpverify to 20160617
Sync with changes in pkgsrc

+ don't assume a string is NUL-terminated - use fwrite(3) with a specific size
2016-06-15 20:34:28 +00:00
agc
f0cd146e8f Update netpgpverify to 20160616:
+ Bring over change from pkgsrc to add version.asc signature verification
to complement the noversion.asc cleartext signatures

+ Update version to 20160616
2016-06-15 16:51:46 +00:00
joerg
d9ced641b5 Mark obuf_printf as printf-like. 2016-06-15 15:47:50 +00:00
mrg
e6e96483bf replace the previous hack with something that i believe is actually
correct and, more importantly ;), works properly.

thanks for riastradh for hints about which bit was actually broken.
2016-06-15 05:01:58 +00:00
agc
02fd82b2cb netpgpverify: bring over changes in 20160615 from pkgsrc
+ perform check for start of ascii-armoured signature in a more efficient
way
2016-06-15 03:37:50 +00:00
mrg
6bfcf96505 build convert_endian() with "no-strict-aliases" optimiser attribute
to avoid some unknown miscompilation in endian_convert() that causes
ssh to exit on some output (for me, "cc -v".)

note in HACKS.  we should investigate this further if possible as
this seems to indicate a strict aliasing violation.  there certainly
are 32 and 64 bit object arrays being accessed with 8 bit accessors,
but i don't have time currently.
2016-06-15 02:12:14 +00:00
agc
ffd13a8c6d add file used for testing gpg --emit-no-version case 2016-06-14 20:55:00 +00:00
agc
4dc60d040f add test for signatures produced by gpg --no-emit-version 2016-06-14 20:47:43 +00:00
agc
dd98b26d9b Sync with pkgsrc sources as of version 20160614
+ pick up renaming changes to internal routines
+ fix for issue verifying signatures created by gpg --no-emit-version
+ add test for same
2016-06-14 20:47:08 +00:00
abhinav
65652ab083 Fix spelling of the month in the date (sent pull request upstream). 2016-06-10 18:55:52 +00:00
christos
22cce15d1f revert, everything coredumps with this change. 2016-06-04 18:22:45 +00:00
joerg
78fd5ce7d6 Regenerate to use .ctor. 2016-06-03 15:42:15 +00:00
joerg
80379e533e Replace init sections with the simpler .ctor sections. 2016-06-03 15:41:57 +00:00
snj
7ce81240c1 hook new man pages into build 2016-05-06 09:30:05 +00:00
snj
9cda733fe1 regen for openssl 1.0.1t 2016-05-06 09:28:31 +00:00
christos
411ef98e1a merge conflicts 2016-05-03 17:21:32 +00:00
christos
43fd2ac1eb Security fixes:
*) Prevent padding oracle in AES-NI CBC MAC check

     A MITM attacker can use a padding oracle attack to decrypt traffic
     when the connection uses an AES CBC cipher and the server support
     AES-NI.

     This issue was introduced as part of the fix for Lucky 13 padding
     attack (CVE-2013-0169). The padding check was rewritten to be in
     constant time by making sure that always the same bytes are read and
     compared against either the MAC or padding bytes. But it no longer
     checked that there was enough data to have both the MAC and padding
     bytes.

     This issue was reported by Juraj Somorovsky using TLS-Attacker.
     (CVE-2016-2107)
     [Kurt Roeckx]

  *) Fix EVP_EncodeUpdate overflow

     An overflow can occur in the EVP_EncodeUpdate() function which is used for
     Base64 encoding of binary data. If an attacker is able to supply very large
     amounts of input data then a length check can overflow resulting in a heap
     corruption.

     Internally to OpenSSL the EVP_EncodeUpdate() function is primarly used by
     the PEM_write_bio* family of functions. These are mainly used within the
     OpenSSL command line applications, so any application which processes data
     from an untrusted source and outputs it as a PEM file should be considered
     vulnerable to this issue. User applications that call these APIs directly
     with large amounts of untrusted data may also be vulnerable.

     This issue was reported by Guido Vranken.
     (CVE-2016-2105)
     [Matt Caswell]

  *) Fix EVP_EncryptUpdate overflow

     An overflow can occur in the EVP_EncryptUpdate() function. If an attacker
     is able to supply very large amounts of input data after a previous call to
     EVP_EncryptUpdate() with a partial block then a length check can overflow
     resulting in a heap corruption. Following an analysis of all OpenSSL
     internal usage of the EVP_EncryptUpdate() function all usage is one of two
     forms. The first form is where the EVP_EncryptUpdate() call is known to be
     the first called function after an EVP_EncryptInit(), and therefore that
     specific call must be safe. The second form is where the length passed to
     EVP_EncryptUpdate() can be seen from the code to be some small value and
     therefore there is no possibility of an overflow. Since all instances are
     one of these two forms, it is believed that there can be no overflows in
     internal code due to this problem. It should be noted that
     EVP_DecryptUpdate() can call EVP_EncryptUpdate() in certain code paths.
     Also EVP_CipherUpdate() is a synonym for EVP_EncryptUpdate(). All instances
     of these calls have also been analysed too and it is believed there are no
     instances in internal usage where an overflow could occur.

     This issue was reported by Guido Vranken.
     (CVE-2016-2106)
     [Matt Caswell]

  *) Prevent ASN.1 BIO excessive memory allocation

     When ASN.1 data is read from a BIO using functions such as d2i_CMS_bio()
     a short invalid encoding can casuse allocation of large amounts of memory
     potentially consuming excessive resources or exhausting memory.

     Any application parsing untrusted data through d2i BIO functions is
     affected. The memory based functions such as d2i_X509() are *not* affected.
     Since the memory based functions are used by the TLS library, TLS
     applications are not affected.

     This issue was reported by Brian Carpenter.
     (CVE-2016-2109)
     [Stephen Henson]

  *) EBCDIC overread

     ASN1 Strings that are over 1024 bytes can cause an overread in applications
     using the X509_NAME_oneline() function on EBCDIC systems. This could result
     in arbitrary stack data being returned in the buffer.

     This issue was reported by Guido Vranken.
     (CVE-2016-2176)
     [Matt Caswell]

  *) Modify behavior of ALPN to invoke callback after SNI/servername
     callback, such that updates to the SSL_CTX affect ALPN.
     [Todd Short]

  *) Remove LOW from the DEFAULT cipher list.  This removes singles DES from the
     default.
     [Kurt Roeckx]

  *) Only remove the SSLv2 methods with the no-ssl2-method option. When the
     methods are enabled and ssl2 is disabled the methods return NULL.
     [Kurt Roeckx]
2016-05-03 17:10:26 +00:00
wiz
2ac4fbecd9 Fix xref. 2016-04-28 08:18:05 +00:00
christos
db1e653281 If PAM is configured to read user-specified environment variables
and UseLogin=yes in sshd_config, then a hostile local user may
attack /bin/login via LD_PRELOAD or similar environment variables
set via PAM.

CVE-2015-8325, found by Shayan Sadigh, via Colin Watson
https://anongit.mindrot.org/openssh.git/commit/?\
id=85bdcd7c92fe7ff133bbc4e10a65c91810f88755

XXX: pullup-7
2016-04-14 16:42:09 +00:00
christos
30150afc85 Don't die on RC5 warning 2016-04-13 21:33:52 +00:00
christos
743c16df37 regen with old assembly stubs. 2016-03-21 19:13:15 +00:00
christos
ddfe1626d6 revert change from openssl-1.1.0-pre4, breaks gcc-4.8 2016-03-21 19:12:26 +00:00
christos
66aed21df4 regen 2016-03-20 22:27:44 +00:00
christos
b09de184c8 elide bug with new cpuid code. 2016-03-20 22:27:31 +00:00
christos
e3b47d16a6 bring newer versions from 1.1.0-pre4 2016-03-20 22:26:56 +00:00
christos
5a840fc796 re-gen to fix sha1. there were also improvements for montgomery multiplications
that we did not have from a previous change.
2016-03-20 22:18:43 +00:00
christos
2392dd986f move scratch stack offset from 64 to 72 bytes so that it is aligned properly.
We core-dump using xmm instructions with gcc-5.3 otherwise. This is all
fixed a lot better in openssl-1.1.0-pre4 and I am tempted....
2016-03-20 22:17:13 +00:00
christos
c7894c4458 remove unused variable 2016-03-16 21:41:25 +00:00
christos
8cf4c21bed CID 1356385: Add fallthrough comment 2016-03-16 21:09:39 +00:00
christos
936fc04948 CID 1356389: Remove TOCTOU. 2016-03-16 21:07:59 +00:00
christos
47690f3506 CID 1356388: Prevent DoS from Tainted scalar 2016-03-16 21:06:06 +00:00
christos
6520304603 CID 1356386: Don't leak sock 2016-03-16 21:00:37 +00:00
christos
76b039a9c6 CID 1356384: Check returns 2016-03-16 20:57:46 +00:00
christos
a2730ae23c CID 1018734: Unitialized variable 2016-03-16 20:55:54 +00:00
christos
a8a1a8c522 PR/50943: David Binderman: Fix misplaced parenthesis. 2016-03-11 18:28:43 +00:00
christos
238888033a Add more __dead; pointed out by clang (from tnn@) 2016-03-11 13:15:02 +00:00
christos
1b8bb90dd8 fix pam build. 2016-03-11 03:54:27 +00:00
christos
7997655135 merge conflicts 2016-03-11 01:55:00 +00:00
christos
48b0210551 Future deprecation notice
=========================

We plan on retiring more legacy cryptography in a near-future
release, specifically:

 * Refusing all RSA keys smaller than 1024 bits (the current minimum
   is 768 bits)

This list reflects our current intentions, but please check the final
release notes for future releases.

Potentially-incompatible changes
================================

This release disables a number of legacy cryptographic algorithms
by default in ssh:

 * Several ciphers blowfish-cbc, cast128-cbc, all arcfour variants
   and the rijndael-cbc aliases for AES.

 * MD5-based and truncated HMAC algorithms.

These algorithms are already disabled by default in sshd.

Changes since OpenSSH 7.1p2
===========================

This is primarily a bugfix release.

Security
--------

 * ssh(1), sshd(8): remove unfinished and unused roaming code (was
   already forcibly disabled in OpenSSH 7.1p2).

 * ssh(1): eliminate fallback from untrusted X11 forwarding to
   trusted forwarding when the X server disables the SECURITY
   extension.

 * ssh(1), sshd(8): increase the minimum modulus size supported for
   diffie-hellman-group-exchange to 2048 bits.

 * sshd(8): pre-auth sandboxing is now enabled by default (previous
   releases enabled it for new installations via sshd_config).

New Features
------------

 * all: add support for RSA signatures using SHA-256/512 hash
   algorithms based on draft-rsa-dsa-sha2-256-03.txt and
   draft-ssh-ext-info-04.txt.

 * ssh(1): Add an AddKeysToAgent client option which can be set to
   'yes', 'no', 'ask', or 'confirm', and defaults to 'no'.  When
   enabled, a private key that is used during authentication will be
   added to ssh-agent if it is running (with confirmation enabled if
   set to 'confirm').

 * sshd(8): add a new authorized_keys option "restrict" that includes
   all current and future key restrictions (no-*-forwarding, etc.).
   Also add permissive versions of the existing restrictions, e.g.
   "no-pty" -> "pty". This simplifies the task of setting up
   restricted keys and ensures they are maximally-restricted,
   regardless of any permissions we might implement in the future.

 * ssh(1): add ssh_config CertificateFile option to explicitly list
   certificates. bz#2436

 * ssh-keygen(1): allow ssh-keygen to change the key comment for all
   supported formats.

 * ssh-keygen(1): allow fingerprinting from standard input, e.g.
   "ssh-keygen -lf -"

 * ssh-keygen(1): allow fingerprinting multiple public keys in a
   file, e.g. "ssh-keygen -lf ~/.ssh/authorized_keys" bz#1319

 * sshd(8): support "none" as an argument for sshd_config
   Foreground and ChrootDirectory. Useful inside Match blocks to
   override a global default. bz#2486

 * ssh-keygen(1): support multiple certificates (one per line) and
   reading from standard input (using "-f -") for "ssh-keygen -L"

 * ssh-keyscan(1): add "ssh-keyscan -c ..." flag to allow fetching
   certificates instead of plain keys.

 * ssh(1): better handle anchored FQDNs (e.g. 'cvs.openbsd.org.') in
   hostname canonicalisation - treat them as already canonical and
   remove the trailing '.' before matching ssh_config.

Bugfixes
--------

 * sftp(1): existing destination directories should not terminate
   recursive uploads (regression in openssh 6.8) bz#2528

 * ssh(1), sshd(8): correctly send back SSH2_MSG_UNIMPLEMENTED
   replies to unexpected messages during key exchange. bz#2949

 * ssh(1): refuse attempts to set ConnectionAttempts=0, which does
   not make sense and would cause ssh to print an uninitialised stack
   variable. bz#2500

 * ssh(1): fix errors when attempting to connect to scoped IPv6
   addresses with hostname canonicalisation enabled.

 * sshd_config(5): list a couple more options usable in Match blocks.
   bz#2489

 * sshd(8): fix "PubkeyAcceptedKeyTypes +..." inside a Match block.

 * ssh(1): expand tilde characters in filenames passed to -i options
   before checking whether or not the identity file exists. Avoids
   confusion for cases where shell doesn't expand (e.g. "-i ~/file"
   vs. "-i~/file"). bz#2481

 * ssh(1): do not prepend "exec" to the shell command run by "Match
   exec" in a config file, which could cause some commands to fail
   in certain environments. bz#2471

 * ssh-keyscan(1): fix output for multiple hosts/addrs on one line
   when host hashing or a non standard port is in use bz#2479

 * sshd(8): skip "Could not chdir to home directory" message when
   ChrootDirectory is active. bz#2485

 * ssh(1): include PubkeyAcceptedKeyTypes in ssh -G config dump.

 * sshd(8): avoid changing TunnelForwarding device flags if they are
   already what is needed; makes it possible to use tun/tap
   networking as non-root user if device permissions and interface
   flags are pre-established

 * ssh(1), sshd(8): RekeyLimits could be exceeded by one packet.
   bz#2521

 * ssh(1): fix multiplexing master failure to notice client exit.

 * ssh(1), ssh-agent(1): avoid fatal() for PKCS11 tokens that present
   empty key IDs. bz#1773

 * sshd(8): avoid printf of NULL argument. bz#2535

 * ssh(1), sshd(8): allow RekeyLimits larger than 4GB. bz#2521

 * ssh-keygen(1): sshd(8): fix several bugs in (unused) KRL signature
   support.

 * ssh(1), sshd(8): fix connections with peers that use the key
   exchange guess feature of the protocol. bz#2515

 * sshd(8): include remote port number in log messages. bz#2503

 * ssh(1): don't try to load SSHv1 private key when compiled without
   SSHv1 support. bz#2505

 * ssh-agent(1), ssh(1): fix incorrect error messages during key
   loading and signing errors. bz#2507

 * ssh-keygen(1): don't leave empty temporary files when performing
   known_hosts file edits when known_hosts doesn't exist.

 * sshd(8): correct packet format for tcpip-forward replies for
   requests that don't allocate a port bz#2509

 * ssh(1), sshd(8): fix possible hang on closed output. bz#2469

 * ssh(1): expand %i in ControlPath to UID. bz#2449

 * ssh(1), sshd(8): fix return type of openssh_RSA_verify. bz#2460

 * ssh(1), sshd(8): fix some option parsing memory leaks. bz#2182

 * ssh(1): add a some debug output before DNS resolution; it's a
   place where ssh could previously silently stall in cases of
   unresponsive DNS servers. bz#2433

 * ssh(1): remove spurious newline in visual hostkey. bz#2686

 * ssh(1): fix printing (ssh -G ...) of HostKeyAlgorithms=+...

 * ssh(1): fix expansion of HostkeyAlgorithms=+...

Documentation
-------------

 * ssh_config(5), sshd_config(5): update default algorithm lists to
   match current reality. bz#2527

 * ssh(1): mention -Q key-plain and -Q key-cert query options.
   bz#2455

 * sshd_config(8): more clearly describe what AuthorizedKeysFile=none
   does.

 * ssh_config(5): better document ExitOnForwardFailure. bz#2444

 * sshd(5): mention internal DH-GEX fallback groups in manual.
   bz#2302

 * sshd_config(5): better description for MaxSessions option.
   bz#2531

Portability
-----------

 * ssh(1), sftp-server(8), ssh-agent(1), sshd(8): Support Illumos/
   Solaris fine-grained privileges. Including a pre-auth privsep
   sandbox and several pledge() emulations. bz#2511

 * Renovate redhat/openssh.spec, removing deprecated options and
   syntax.

 * configure: allow --without-ssl-engine with --without-openssl

 * sshd(8): fix multiple authentication using S/Key. bz#2502

 * sshd(8): read back from libcrypto RAND_* before dropping
   privileges.  Avoids sandboxing violations with BoringSSL.

 * Fix name collision with system-provided glob(3) functions.
   bz#2463

 * Adapt Makefile to use ssh-keygen -A when generating host keys.
   bz#2459

 * configure: correct default value for --with-ssh1 bz#2457

 * configure: better detection of _res symbol bz#2259

 * support getrandom() syscall on Linux
2016-03-11 01:49:59 +00:00
christos
71f53a526c From Frank Wille:
Request "IKE mode config" in "rsasig" (certificates on both sides only)
authentication mode, if "mode_cfg" is configured to "on".
Tested with a Lancom router, using the following configuration:

path include "/etc/racoon";
path certificate "/etc/racoon/certs";
path script "/etc/racoon/scripts";

remote "wpsd"
{
    remote_address 1.2.3.4;
    exchange_mode main,base;

    my_identifier asn1dn;
    certificate_type x509 "vpnclient15.crt" "vpnclient15.key";
    ca_type x509 "ca.crt";

    mode_cfg on;
    dpd_delay 20;
    nat_traversal on;
    lifetime time 8 hour;
    script "phase1-up.sh" phase1_up;
    script "phase1-down.sh" phase1_down;

    proposal {
        encryption_algorithm aes;
        hash_algorithm md5;
        authentication_method rsasig;
        dh_group 2;
    }
    proposal_check obey;
}

sainfo anonymous
{
    pfs_group 2;
    lifetime time 8 hour;
    encryption_algorithm aes;
    authentication_algorithm hmac_md5;
    compression_algorithm deflate;
}
2016-03-09 22:27:17 +00:00
christos
d2bf8aa2c7 PR/50918: David Binderman: Fix memory leak 2016-03-09 15:58:25 +00:00
christos
338c254400 merge conflicts, bump libraries to 11 for consistency. 2016-03-02 01:52:35 +00:00
christos
4fa8c26b73 OpenSSL Security Advisory [1st March 2016]
=========================================

NOTE: With this update, OpenSSL is disabling the SSLv2 protocol by default, as
well as removing SSLv2 EXPORT ciphers.  We strongly advise against the use of
SSLv2 due not only to the issues described below, but to the other known
deficiencies in the protocol as described at
https://tools.ietf.org/html/rfc6176


Cross-protocol attack on TLS using SSLv2 (DROWN) (CVE-2016-0800)
================================================================

Severity: High

A cross-protocol attack was discovered that could lead to decryption of TLS
sessions by using a server supporting SSLv2 and EXPORT cipher suites as a
Bleichenbacher RSA padding oracle.  Note that traffic between clients and
non-vulnerable servers can be decrypted provided another server supporting
SSLv2 and EXPORT ciphers (even with a different protocol such as SMTP, IMAP or
POP) shares the RSA keys of the non-vulnerable server. This vulnerability is
known as DROWN (CVE-2016-0800).

Recovering one session key requires the attacker to perform approximately 2^50
computation, as well as thousands of connections to the affected server. A more
efficient variant of the DROWN attack exists against unpatched OpenSSL servers
using versions that predate 1.0.2a, 1.0.1m, 1.0.0r and 0.9.8zf released on
19/Mar/2015 (see CVE-2016-0703 below).

Users can avoid this issue by disabling the SSLv2 protocol in all their SSL/TLS
servers, if they've not done so already. Disabling all SSLv2 ciphers is also
sufficient, provided the patches for CVE-2015-3197 (fixed in OpenSSL 1.0.1r and
1.0.2f) have been deployed.  Servers that have not disabled the SSLv2 protocol,
and are not patched for CVE-2015-3197 are vulnerable to DROWN even if all SSLv2
ciphers are nominally disabled, because malicious clients can force the use of
SSLv2 with EXPORT ciphers.

OpenSSL 1.0.2g and 1.0.1s deploy the following mitigation against DROWN:

SSLv2 is now by default disabled at build-time.  Builds that are not configured
with "enable-ssl2" will not support SSLv2.  Even if "enable-ssl2" is used,
users who want to negotiate SSLv2 via the version-flexible SSLv23_method() will
need to explicitly call either of:

   SSL_CTX_clear_options(ctx, SSL_OP_NO_SSLv2);
   or
   SSL_clear_options(ssl, SSL_OP_NO_SSLv2);

as appropriate.  Even if either of those is used, or the application explicitly
uses the version-specific SSLv2_method() or its client or server variants,
SSLv2 ciphers vulnerable to exhaustive search key recovery have been removed.
Specifically, the SSLv2 40-bit EXPORT ciphers, and SSLv2 56-bit DES are no
longer available.

In addition, weak ciphers in SSLv3 and up are now disabled in default builds of
OpenSSL.  Builds that are not configured with "enable-weak-ssl-ciphers" will
not provide any "EXPORT" or "LOW" strength ciphers.

OpenSSL 1.0.2 users should upgrade to 1.0.2g
OpenSSL 1.0.1 users should upgrade to 1.0.1s

This issue was reported to OpenSSL on December 29th 2015 by Nimrod Aviram and
Sebastian Schinzel. The fix was developed by Viktor Dukhovni and Matt Caswell
of OpenSSL.


Double-free in DSA code (CVE-2016-0705)
=======================================

Severity: Low

A double free bug was discovered when OpenSSL parses malformed DSA private keys
and could lead to a DoS attack or memory corruption for applications that
receive DSA private keys from untrusted sources.  This scenario is considered
rare.

This issue affects OpenSSL versions 1.0.2 and 1.0.1.

OpenSSL 1.0.2 users should upgrade to 1.0.2g
OpenSSL 1.0.1 users should upgrade to 1.0.1s

This issue was reported to OpenSSL on February 7th 2016 by Adam Langley
(Google/BoringSSL) using libFuzzer. The fix was developed by Dr Stephen Henson
of OpenSSL.


Memory leak in SRP database lookups (CVE-2016-0798)
===================================================

Severity: Low

The SRP user database lookup method SRP_VBASE_get_by_user had
confusing memory management semantics; the returned pointer was sometimes newly
allocated, and sometimes owned by the callee. The calling code has no way of
distinguishing these two cases.

Specifically, SRP servers that configure a secret seed to hide valid
login information are vulnerable to a memory leak: an attacker
connecting with an invalid username can cause a memory leak of around
300 bytes per connection.  Servers that do not configure SRP, or
configure SRP but do not configure a seed are not vulnerable.

In Apache, the seed directive is known as SSLSRPUnknownUserSeed.

To mitigate the memory leak, the seed handling in
SRP_VBASE_get_by_user is now disabled even if the user has configured
a seed.  Applications are advised to migrate to
SRP_VBASE_get1_by_user. However, note that OpenSSL makes no strong
guarantees about the indistinguishability of valid and invalid
logins. In particular, computations are currently not carried out in
constant time.

This issue affects OpenSSL versions 1.0.2 and 1.0.1.

OpenSSL 1.0.2 users should upgrade to 1.0.2g
OpenSSL 1.0.1 users should upgrade to 1.0.1s

This issue was discovered on February 23rd 2016 by Emilia Käsper of
the OpenSSL development team. Emilia Käsper also developed the fix.


BN_hex2bn/BN_dec2bn NULL pointer deref/heap corruption (CVE-2016-0797)
======================================================================

Severity: Low

In the BN_hex2bn function the number of hex digits is calculated using an int
value |i|. Later |bn_expand| is called with a value of |i * 4|. For large values
of |i| this can result in |bn_expand| not allocating any memory because |i * 4|
is negative. This can leave the internal BIGNUM data field as NULL leading to a
subsequent NULL ptr deref. For very large values of |i|, the calculation |i * 4|
could be a positive value smaller than |i|. In this case memory is allocated to
the internal BIGNUM data field, but it is insufficiently sized leading to heap
corruption. A similar issue exists in BN_dec2bn. This could have security
consequences if BN_hex2bn/BN_dec2bn is ever called by user applications with
very large untrusted hex/dec data. This is anticipated to be a rare occurrence.

All OpenSSL internal usage of these functions use data that is not expected to
be untrusted, e.g. config file data or application command line arguments. If
user developed applications generate config file data based on untrusted data
then it is possible that this could also lead to security consequences. This is
also anticipated to be rare.

This issue affects OpenSSL versions 1.0.2 and 1.0.1.

OpenSSL 1.0.2 users should upgrade to 1.0.2g
OpenSSL 1.0.1 users should upgrade to 1.0.1s

This issue was reported to OpenSSL on February 19th 2016 by Guido Vranken.  The
fix was developed by Matt Caswell of the OpenSSL development team.

Fix memory issues in BIO_*printf functions (CVE-2016-0799)
==========================================================

Severity: Low

The internal |fmtstr| function used in processing a "%s" format string in the
BIO_*printf functions could overflow while calculating the length of a string
and cause an OOB read when printing very long strings.

Additionally the internal |doapr_outch| function can attempt to write to an OOB
memory location (at an offset from the NULL pointer) in the event of a memory
allocation failure. In 1.0.2 and below this could be caused where the size of a
buffer to be allocated is greater than INT_MAX. E.g. this could be in processing
a very long "%s" format string. Memory leaks can also occur.

The first issue may mask the second issue dependent on compiler behaviour.
These problems could enable attacks where large amounts of untrusted data is
passed to the BIO_*printf functions. If applications use these functions in this
way then they could be vulnerable. OpenSSL itself uses these functions when
printing out human-readable dumps of ASN.1 data. Therefore applications that
print this data could be vulnerable if the data is from untrusted sources.
OpenSSL command line applications could also be vulnerable where they print out
ASN.1 data, or if untrusted data is passed as command line arguments.

Libssl is not considered directly vulnerable. Additionally certificates etc
received via remote connections via libssl are also unlikely to be able to
trigger these issues because of message size limits enforced within libssl.

This issue affects OpenSSL versions 1.0.2 and 1.0.1.

OpenSSL 1.0.2 users should upgrade to 1.0.2g
OpenSSL 1.0.1 users should upgrade to 1.0.1s

This issue was reported to OpenSSL on February 23rd by Guido Vranken.  The
fix was developed by Matt Caswell of the OpenSSL development team.

Side channel attack on modular exponentiation (CVE-2016-0702)
=============================================================

Severity: Low

A side-channel attack was found which makes use of cache-bank conflicts on the
Intel Sandy-Bridge microarchitecture which could lead to the recovery of RSA
keys.  The ability to exploit this issue is limited as it relies on an attacker
who has control of code in a thread running on the same hyper-threaded core as
the victim thread which is performing decryptions.

This issue affects OpenSSL versions 1.0.2 and 1.0.1.

OpenSSL 1.0.2 users should upgrade to 1.0.2g
OpenSSL 1.0.1 users should upgrade to 1.0.1s

This issue was reported to OpenSSL on Jan 8th 2016 by Yuval Yarom, The
University of Adelaide and NICTA, Daniel Genkin, Technion and Tel Aviv
University, and Nadia Heninger, University of Pennsylvania with more
information at http://cachebleed.info.  The fix was developed by Andy Polyakov
of OpenSSL.


Divide-and-conquer session key recovery in SSLv2 (CVE-2016-0703)
================================================================

Severity: High

This issue only affected versions of OpenSSL prior to March 19th 2015 at which
time the code was refactored to address vulnerability CVE-2015-0293.

s2_srvr.c did not enforce that clear-key-length is 0 for non-export ciphers. If
clear-key bytes are present for these ciphers, they *displace* encrypted-key
bytes. This leads to an efficient divide-and-conquer key recovery attack: if an
eavesdropper has intercepted an SSLv2 handshake, they can use the server as an
oracle to determine the SSLv2 master-key, using only 16 connections to the
server and negligible computation.

More importantly, this leads to a more efficient version of DROWN that is
effective against non-export ciphersuites, and requires no significant
computation.

This issue affected OpenSSL versions 1.0.2, 1.0.1l, 1.0.0q, 0.9.8ze and all
earlier versions.  It was fixed in OpenSSL 1.0.2a, 1.0.1m, 1.0.0r and 0.9.8zf
(released March 19th 2015).

This issue was reported to OpenSSL on February 10th 2016 by David Adrian and J.
Alex Halderman of the University of Michigan.  The underlying defect had by
then already been fixed by Emilia Käsper of OpenSSL on March 4th 2015.  The fix
for this issue can be identified by commits ae50d827 (1.0.2a), cd56a08d
(1.0.1m), 1a08063 (1.0.0r) and 65c588c (0.9.8zf).


Bleichenbacher oracle in SSLv2 (CVE-2016-0704)
==============================================

Severity: Moderate

This issue only affected versions of OpenSSL prior to March 19th 2015 at which
time the code was refactored to address the vulnerability CVE-2015-0293.

s2_srvr.c overwrite the wrong bytes in the master-key when applying
Bleichenbacher protection for export cipher suites.  This provides a
Bleichenbacher oracle, and could potentially allow more efficient variants of
the DROWN attack.

This issue affected OpenSSL versions 1.0.2, 1.0.1l, 1.0.0q, 0.9.8ze and all
earlier versions.  It was fixed in OpenSSL 1.0.2a, 1.0.1m, 1.0.0r and 0.9.8zf
(released March 19th 2015).

This issue was reported to OpenSSL on February 10th 2016 by David Adrian and J.
Alex Halderman of the University of Michigan.  The underlying defect had by
then already been fixed by Emilia Käsper of OpenSSL on March 4th 2015.  The fix
for this issue can be identified by commits ae50d827 (1.0.2a), cd56a08d
(1.0.1m), 1a08063 (1.0.0r) and 65c588c (0.9.8zf).

Note
====

As per our previous announcements and our Release Strategy
(https://www.openssl.org/policies/releasestrat.html), support for OpenSSL
version 1.0.1 will cease on 31st December 2016. No security updates for that
version will be provided after that date. Users of 1.0.1 are advised to
upgrade.

Support for versions 0.9.8 and 1.0.0 ended on 31st December 2015. Those
versions are no longer receiving security updates.

References
==========

URL for this Security Advisory:
https://www.openssl.org/news/secadv/20160301.txt

Note: the online version of the advisory may be updated with additional details
over time.

For details of OpenSSL severity classifications please see:
https://www.openssl.org/policies/secpolicy.html
2016-03-01 21:00:52 +00:00
joerg
bf5f1d0a1d Explicitly request SPARCv9 assembler support for v9 using assembler
files.
2016-02-27 19:20:47 +00:00
christos
f91581fb8e PR/50815: David Binderman: Remove dup test 2016-02-17 20:11:17 +00:00
agc
9723718822 Fix signing of in-memory data with SSH keys 2016-02-07 05:03:36 +00:00
seanb
8436ef0286 - Avoid uninitialized variable usage in do_nologin() when HAVE_LOGIN_CAP
isn't defined (which doesn't apply to NetBSD but...) and a root
  login is being evaluated.
- From upstream.
2016-02-04 15:04:11 +00:00
christos
4060c40ee5 merge conflicts 2016-01-30 17:00:19 +00:00
christos
dcdb0b745a OpenSSL CHANGES
_______________

 Changes between 1.0.1q and 1.0.1r [28 Jan 2016]

  *) Protection for DH small subgroup attacks

     As a precautionary measure the SSL_OP_SINGLE_DH_USE option has been
     switched on by default and cannot be disabled. This could have some
     performance impact.
     [Matt Caswell]

  *) SSLv2 doesn't block disabled ciphers

     A malicious client can negotiate SSLv2 ciphers that have been disabled on
     the server and complete SSLv2 handshakes even if all SSLv2 ciphers have
     been disabled, provided that the SSLv2 protocol was not also disabled via
     SSL_OP_NO_SSLv2.

     This issue was reported to OpenSSL on 26th December 2015 by Nimrod Aviram
     and Sebastian Schinzel.
     (CVE-2015-3197)
     [Viktor Dukhovni]

  *) Reject DH handshakes with parameters shorter than 1024 bits.
     [Kurt Roeckx]
2016-01-30 16:56:02 +00:00
christos
1d2e8f9944 add more blacklist rejection points. 2016-01-23 00:03:30 +00:00
christos
76a27842d2 More fixes from upstream:
- X connection forwarding fixes
- more explicit_bzero
- more closing file descriptors
XXX: pullup-7
2016-01-19 17:10:55 +00:00
christos
7785118406 get rid of roaming (CVE-2016-0777) 2016-01-14 22:30:04 +00:00
christos
3d4fd82fa3 PR/50564: Rin Okuyama: sftp: filename completion is broken 2015-12-16 13:23:38 +00:00
christos
261bb38818 merge conflicts 2015-12-06 21:52:35 +00:00
christos
3e7df5c261 Import openssl-1.0.1q
OpenSSL Security Advisory [3 Dec 2015] - Updated [4 Dec 2015]
=============================================================

[Updated 4 Dec 2015]: This advisory has been updated to include the details of
CVE-2015-1794, a Low severity issue affecting OpenSSL 1.0.2 which had a fix
included in the released packages but was missed from the advisory text.

NOTE: WE ANTICIPATE THAT 1.0.0t AND 0.9.8zh WILL BE THE LAST RELEASES FOR THE
0.9.8 AND 1.0.0 VERSIONS AND THAT NO MORE SECURITY FIXES WILL BE PROVIDED (AS
PER PREVIOUS ANNOUNCEMENTS). USERS ARE ADVISED TO UPGRADE TO LATER VERSIONS.

BN_mod_exp may produce incorrect results on x86_64 (CVE-2015-3193)
==================================================================

Severity: Moderate

There is a carry propagating bug in the x86_64 Montgomery squaring procedure. No
EC algorithms are affected. Analysis suggests that attacks against RSA and DSA
as a result of this defect would be very difficult to perform and are not
believed likely. Attacks against DH are considered just feasible (although very
difficult) because most of the work necessary to deduce information
about a private key may be performed offline. The amount of resources
required for such an attack would be very significant and likely only
accessible to a limited number of attackers. An attacker would
additionally need online access to an unpatched system using the target
private key in a scenario with persistent DH parameters and a private
key that is shared between multiple clients. For example this can occur by
default in OpenSSL DHE based SSL/TLS ciphersuites.

This issue affects OpenSSL version 1.0.2.

OpenSSL 1.0.2 users should upgrade to 1.0.2e

This issue was reported to OpenSSL on August 13 2015 by Hanno
Böck. The fix was developed by Andy Polyakov of the OpenSSL
development team.

Certificate verify crash with missing PSS parameter (CVE-2015-3194)
===================================================================

Severity: Moderate

The signature verification routines will crash with a NULL pointer dereference
if presented with an ASN.1 signature using the RSA PSS algorithm and absent
mask generation function parameter. Since these routines are used to verify
certificate signature algorithms this can be used to crash any certificate
verification operation and exploited in a DoS attack. Any application which
performs certificate verification is vulnerable including OpenSSL clients and
servers which enable client authentication.

This issue affects OpenSSL versions 1.0.2 and 1.0.1.

OpenSSL 1.0.2 users should upgrade to 1.0.2e
OpenSSL 1.0.1 users should upgrade to 1.0.1q

This issue was reported to OpenSSL on August 27 2015 by Loïc Jonas Etienne
(Qnective AG). The fix was developed by Dr. Stephen Henson of the OpenSSL
development team.

X509_ATTRIBUTE memory leak (CVE-2015-3195)
==========================================

Severity: Moderate

When presented with a malformed X509_ATTRIBUTE structure OpenSSL will leak
memory. This structure is used by the PKCS#7 and CMS routines so any
application which reads PKCS#7 or CMS data from untrusted sources is affected.
SSL/TLS is not affected.

This issue affects OpenSSL versions 1.0.2 and 1.0.1, 1.0.0 and 0.9.8.

OpenSSL 1.0.2 users should upgrade to 1.0.2e
OpenSSL 1.0.1 users should upgrade to 1.0.1q
OpenSSL 1.0.0 users should upgrade to 1.0.0t
OpenSSL 0.9.8 users should upgrade to 0.9.8zh

This issue was reported to OpenSSL on November 9 2015 by Adam Langley
(Google/BoringSSL) using libFuzzer. The fix was developed by Dr. Stephen
Henson of the OpenSSL development team.

Race condition handling PSK identify hint (CVE-2015-3196)
=========================================================

Severity: Low

If PSK identity hints are received by a multi-threaded client then
the values are wrongly updated in the parent SSL_CTX structure. This can
result in a race condition potentially leading to a double free of the
identify hint data.

This issue was fixed in OpenSSL 1.0.2d and 1.0.1p but has not been previously
listed in an OpenSSL security advisory. This issue also affects OpenSSL 1.0.0
and has not been previously fixed in an OpenSSL 1.0.0 release.

OpenSSL 1.0.2 users should upgrade to 1.0.2d
OpenSSL 1.0.1 users should upgrade to 1.0.1p
OpenSSL 1.0.0 users should upgrade to 1.0.0t

The fix for this issue can be identified in the OpenSSL git repository by commit
ids 3c66a669dfc7 (1.0.2), d6be3124f228 (1.0.1) and 1392c238657e (1.0.0).

The fix was developed by Dr. Stephen Henson of the OpenSSL development team.

Anon DH ServerKeyExchange with 0 p parameter (CVE-2015-1794)
============================================================

Severity: Low

If a client receives a ServerKeyExchange for an anonymous DH ciphersuite with
the value of p set to 0 then a seg fault can occur leading to a possible denial
of service attack.

This issue affects OpenSSL version 1.0.2.

OpenSSL 1.0.2 users should upgrade to 1.0.2e

This issue was reported to OpenSSL on August 3 2015 by Guy Leaver (Cisco). The
fix was developed by Matt Caswell of the OpenSSL development team.

Note
====

As per our previous announcements and our Release Strategy
(https://www.openssl.org/about/releasestrat.html), support for OpenSSL versions
1.0.0 and 0.9.8 will cease on 31st December 2015. No security updates for these
versions will be provided after that date. In the absence of significant
security issues being identified prior to that date, the 1.0.0t and 0.9.8zh
releases will be the last for those versions. Users of these versions are
advised to upgrade.


References
==========

URL for this Security Advisory:
https://www.openssl.org/news/secadv/20151203.txt

Note: the online version of the advisory may be updated with additional
details over time.

For details of OpenSSL severity classifications please see:
https://www.openssl.org/about/secpolicy.html
2015-12-06 21:45:41 +00:00
christos
d78e1b84d7 regen 2015-11-12 23:11:21 +00:00
christos
529d2b9702 put back the old ones until the rest is generated 2015-11-12 20:14:55 +00:00
christos
39fec168ea Regen; it's been a *long* while. 2015-11-12 18:28:34 +00:00
joerg
defe89daaf List source name, not object name to unbreak AFLAGS.*. 2015-10-01 23:00:12 +00:00
christos
b1c8f1c6ff merge conflicts 2015-08-21 08:20:59 +00:00
christos
8395c1339a merge conflicts 2015-08-13 10:33:21 +00:00
christos
fa879c24ed bump version 2015-08-13 10:32:36 +00:00
christos
f453f1d467 import openssh-7.0
Changes since OpenSSH 6.9
=========================

This focus of this release is primarily to deprecate weak, legacy
and/or unsafe cryptography.

Security
--------

 * sshd(8): OpenSSH 6.8 and 6.9 incorrectly set TTYs to be world-
   writable. Local attackers may be able to write arbitrary messages
   to logged-in users, including terminal escape sequences.
   Reported by Nikolay Edigaryev.

 * sshd(8): Portable OpenSSH only: Fixed a privilege separation
   weakness related to PAM support. Attackers who could successfully
   compromise the pre-authentication process for remote code
   execution and who had valid credentials on the host could
   impersonate other users.  Reported by Moritz Jodeit.

 * sshd(8): Portable OpenSSH only: Fixed a use-after-free bug
   related to PAM support that was reachable by attackers who could
   compromise the pre-authentication process for remote code
   execution. Also reported by Moritz Jodeit.

 * sshd(8): fix circumvention of MaxAuthTries using keyboard-
   interactive authentication. By specifying a long, repeating
   keyboard-interactive "devices" string, an attacker could request
   the same authentication method be tried thousands of times in
   a single pass. The LoginGraceTime timeout in sshd(8) and any
   authentication failure delays implemented by the authentication
   mechanism itself were still applied. Found by Kingcope.

Potentially-incompatible Changes
--------------------------------

 * Support for the legacy SSH version 1 protocol is disabled by
   default at compile time.

 * Support for the 1024-bit diffie-hellman-group1-sha1 key exchange
   is disabled by default at run-time. It may be re-enabled using
   the instructions at http://www.openssh.com/legacy.html

 * Support for ssh-dss, ssh-dss-cert-* host and user keys is disabled
   by default at run-time. These may be re-enabled using the
   instructions at http://www.openssh.com/legacy.html

 * Support for the legacy v00 cert format has been removed.

 * The default for the sshd_config(5) PermitRootLogin option has
   changed from "yes" to "prohibit-password".

 * PermitRootLogin=without-password/prohibit-password now bans all
   interactive authentication methods, allowing only public-key,
   hostbased and GSSAPI authentication (previously it permitted
   keyboard-interactive and password-less authentication if those
   were enabled).

New Features
------------

 * ssh_config(5): add PubkeyAcceptedKeyTypes option to control which
   public key types are available for user authentication.

 * sshd_config(5): add HostKeyAlgorithms option to control which
   public key types are offered for host authentications.

 * ssh(1), sshd(8): extend Ciphers, MACs, KexAlgorithms,
   HostKeyAlgorithms, PubkeyAcceptedKeyTypes and HostbasedKeyTypes
   options to allow appending to the default set of algorithms
   instead of replacing it. Options may now be prefixed with a '+'
   to append to the default, e.g. "HostKeyAlgorithms=+ssh-dss".

 * sshd_config(5): PermitRootLogin now accepts an argument of
   'prohibit-password' as a less-ambiguous synonym of 'without-
   password'.

Bugfixes
--------

 * ssh(1), sshd(8): add compatability workarounds for Cisco and more
   PuTTY versions. bz#2424

 * Fix some omissions and errors in the PROTOCOL and PROTOCOL.mux
   documentation relating to Unix domain socket forwarding;
   bz#2421 bz#2422

 * ssh(1): Improve the ssh(1) manual page to include a better
   description of Unix domain socket forwarding; bz#2423

 * ssh(1), ssh-agent(1): skip uninitialised PKCS#11 slots, fixing
   failures to load keys when they are present. bz#2427

 * ssh(1), ssh-agent(1): do not ignore PKCS#11 hosted keys that wth
   empty CKA_ID; bz#2429

 * sshd(8): clarify documentation for UseDNS option; bz#2045
2015-08-13 10:25:51 +00:00
shm
4bd8c591b0 Fixed memory leak on comments 2015-08-08 12:34:33 +00:00
shm
029f8c2148 Fix various minor memory leaks on errors 2015-08-08 10:38:35 +00:00
christos
29920b2c0d From FreeBSD:
A remote attacker may effectively bypass MaxAuthTries settings, which would
enable them to brute force passwords. [CVE-2015-5600]
XXX: pullup-7
2015-07-29 15:04:40 +00:00
mrg
cf4dd8937a remove the xfree86 reachover makefiles and the vast majority of
the support in the rest of the source tree.

X11 sets could use some cleaning up perhaps (just deletion, as
we've never really marked the old X11R6 as obsolete for native
xorg using platforms so far either.)
2015-07-23 08:03:24 +00:00
shm
a553de09a2 PR#49876 - fix typos, from Dieter Roelants. 2015-07-13 13:57:44 +00:00
christos
b08f29cea1 merge conflicts 2015-07-09 14:31:01 +00:00
christos
d1c68cc03d Import 1.0.1p to fix:
*) Alternate chains certificate forgery

     During certificate verfification, OpenSSL will attempt to find an
     alternative certificate chain if the first attempt to build such a chain
     fails. An error in the implementation of this logic can mean that an
     attacker could cause certain checks on untrusted certificates to be
     bypassed, such as the CA flag, enabling them to use a valid leaf
     certificate to act as a CA and "issue" an invalid certificate.

     This issue was reported to OpenSSL by Adam Langley/David Benjamin
     (Google/BoringSSL).
     [Matt Caswell]
2015-07-09 14:15:22 +00:00
christos
45c705da39 CID 1309355: check error return from closefrom(3) where appropriate. 2015-07-06 15:09:17 +00:00
christos
4054ffb031 merge conflicts 2015-07-03 00:59:59 +00:00
christos
0cf1df15f6 Changes since OpenSSH 6.8
=========================

This is primarily a bugfix release.

Security
--------

 * ssh(1): when forwarding X11 connections with ForwardX11Trusted=no,
   connections made after ForwardX11Timeout expired could be permitted
   and no longer subject to XSECURITY restrictions because of an
   ineffective timeout check in ssh(1) coupled with "fail open"
   behaviour in the X11 server when clients attempted connections with
   expired credentials. This problem was reported by Jann Horn.

 * ssh-agent(1): fix weakness of agent locking (ssh-add -x) to
   password guessing by implementing an increasing failure delay,
   storing a salted hash of the password rather than the password
   itself and using a timing-safe comparison function for verifying
   unlock attempts. This problem was reported by Ryan Castellucci.

New Features
------------

 * ssh(1), sshd(8): promote chacha20-poly1305@openssh.com to be the
   default cipher

 * sshd(8): support admin-specified arguments to AuthorizedKeysCommand;
   bz#2081

 * sshd(8): add AuthorizedPrincipalsCommand that allows retrieving
   authorized principals information from a subprocess rather than
   a file.

 * ssh(1), ssh-add(1): support PKCS#11 devices with external PIN
   entry devices bz#2240

 * sshd(8): allow GSSAPI host credential check to be relaxed for
   multihomed hosts via GSSAPIStrictAcceptorCheck option; bz#928

 * ssh-keygen(1): support "ssh-keygen -lF hostname" to search
   known_hosts and print key hashes rather than full keys.

 * ssh-agent(1): add -D flag to leave ssh-agent in foreground without
   enabling debug mode; bz#2381

Bugfixes
--------

 * ssh(1), sshd(8): deprecate legacy SSH2_MSG_KEX_DH_GEX_REQUEST_OLD
   message and do not try to use it against some 3rd-party SSH
   implementations that use it (older PuTTY, WinSCP).

 * Many fixes for problems caused by compile-time deactivation of
   SSH1 support (including bz#2369)

 * ssh(1), sshd(8): cap DH-GEX group size at 4Kbits for Cisco
   implementations as some would fail when attempting to use group
   sizes >4K; bz#2209

 * ssh(1): fix out-of-bound read in EscapeChar configuration option
   parsing; bz#2396

 * sshd(8): fix application of PermitTunnel, LoginGraceTime,
   AuthenticationMethods and StreamLocalBindMask options in Match
   blocks

 * ssh(1), sshd(8): improve disconnection message on TCP reset;
   bz#2257

 * ssh(1): remove failed remote forwards established by muliplexing
   from the list of active forwards; bz#2363

 * sshd(8): make parsing of authorized_keys "environment=" options
   independent of PermitUserEnv being enabled; bz#2329

 * sshd(8): fix post-auth crash with permitopen=none; bz#2355

 * ssh(1), ssh-add(1), ssh-keygen(1): allow new-format private keys
   to be encrypted with AEAD ciphers; bz#2366

 * ssh(1): allow ListenAddress, Port and AddressFamily configuration
   options to appear in any order; bz#86

 * sshd(8): check for and reject missing arguments for VersionAddendum
   and ForceCommand; bz#2281

 * ssh(1), sshd(8): don't treat unknown certificate extensions as
   fatal; bz#2387

 * ssh-keygen(1): make stdout and stderr output consistent; bz#2325

 * ssh(1): mention missing DISPLAY environment in debug log when X11
   forwarding requested; bz#1682

 * sshd(8): correctly record login when UseLogin is set; bz#378

 * sshd(8): Add some missing options to sshd -T output and fix output
   of VersionAddendum and HostCertificate. bz#2346

 * Document and improve consistency of options that accept a "none"
   argument" TrustedUserCAKeys, RevokedKeys (bz#2382),
   AuthorizedPrincipalsFile (bz#2288)

 * ssh(1): include remote username in debug output; bz#2368

 * sshd(8): avoid compatibility problem with some versions of Tera
   Term, which would crash when they received the hostkeys notification
   message (hostkeys-00@openssh.com)

 * sshd(8): mention ssh-keygen -E as useful when comparing legacy MD5
   host key fingerprints; bz#2332

 * ssh(1): clarify pseudo-terminal request behaviour and use make
   manual language consistent; bz#1716

 * ssh(1): document that the TERM environment variable is not subject
   to SendEnv and AcceptEnv; bz#2386
2015-07-03 00:54:44 +00:00
christos
fb41fcd643 Use the official version of openssl's "restore binary compatibility" fix.
Also merge new change to ssl checking.
2015-06-16 20:00:13 +00:00
christos
f40fdf6fe8 constify the new hmac tests 2015-06-12 20:25:44 +00:00
christos
2dedb2215d merge conflicts, restore binary compatibility in hmac, regen. 2015-06-12 17:01:11 +00:00
christos
9cae6e10c2 Changes between 1.0.1m and 1.0.1n [11 Jun 2015]
*) Malformed ECParameters causes infinite loop

     When processing an ECParameters structure OpenSSL enters an infinite loop
     if the curve specified is over a specially malformed binary polynomial
     field.

     This can be used to perform denial of service against any
     system which processes public keys, certificate requests or
     certificates.  This includes TLS clients and TLS servers with
     client authentication enabled.

     This issue was reported to OpenSSL by Joseph Barr-Pixton.
     (CVE-2015-1788)
     [Andy Polyakov]

  *) Exploitable out-of-bounds read in X509_cmp_time

     X509_cmp_time does not properly check the length of the ASN1_TIME
     string and can read a few bytes out of bounds. In addition,
     X509_cmp_time accepts an arbitrary number of fractional seconds in the
     time string.

     An attacker can use this to craft malformed certificates and CRLs of
     various sizes and potentially cause a segmentation fault, resulting in
     a DoS on applications that verify certificates or CRLs. TLS clients
     that verify CRLs are affected. TLS clients and servers with client
     authentication enabled may be affected if they use custom verification
     callbacks.

     This issue was reported to OpenSSL by Robert Swiecki (Google), and
     independently by Hanno Böck.
     (CVE-2015-1789)
     [Emilia Käsper]

  *) PKCS7 crash with missing EnvelopedContent

     The PKCS#7 parsing code does not handle missing inner EncryptedContent
     correctly. An attacker can craft malformed ASN.1-encoded PKCS#7 blobs
     with missing content and trigger a NULL pointer dereference on parsing.

     Applications that decrypt PKCS#7 data or otherwise parse PKCS#7
     structures from untrusted sources are affected. OpenSSL clients and
     servers are not affected.

     This issue was reported to OpenSSL by Michal Zalewski (Google).
     (CVE-2015-1790)
     [Emilia Käsper]

  *) CMS verify infinite loop with unknown hash function

     When verifying a signedData message the CMS code can enter an infinite loop
     if presented with an unknown hash function OID. This can be used to perform
     denial of service against any system which verifies signedData messages using
     the CMS code.
     This issue was reported to OpenSSL by Johannes Bauer.
     (CVE-2015-1792)
     [Stephen Henson]

  *) Race condition handling NewSessionTicket

     If a NewSessionTicket is received by a multi-threaded client when attempting to
     reuse a previous ticket then a race condition can occur potentially leading to
     a double free of the ticket data.
     (CVE-2015-1791)
     [Matt Caswell]

  *) Reject DH handshakes with parameters shorter than 768 bits.
     [Kurt Roeckx and Emilia Kasper]
2015-06-12 16:34:57 +00:00