1. 11 9月, 2015 1 次提交
  2. 09 9月, 2015 1 次提交
    • D
      RT3969: Add OPENSSL_SYS_UEFI · 4d60c7e1
      David Woodhouse 提交于
      This provides support for building in the EDK II reference implementation
      of UEFI. Most UEFI firmware in existence uses OpenSSL for implementing
      the core cryptographic functionality needed for Secure Boot.
      
      This has always previously been handled with external patches to OpenSSL
      but we are now making a concerted effort to eliminate those.
      
      In this mode, we don't actually use the OpenSSL makefiles; we process
      the MINFO file generated by 'make files' and incorporate it into the
      EDK2 build system.
      
      Since EDK II builds for various targets with varying word size and we
      need to have a single prepackaged configuration, we deliberately don't
      hard-code the setting of SIXTY_FOUR_BIT vs. THIRTY_TWO_BIT in
      opensslconf.h. We bypass that for OPENSSL_SYS_UEFI and allow EDK II
      itself to set those, depending on the architecture.
      
      For x86_64, EDK II sets SIXTY_FOUR_BIT and thus uses 'long long' for the
      64-bit type, even when building with GCC where 'long' is also 64-bit. We
      do this because the Microsoft toolchain has 32-bit 'long'.
      Signed-off-by: NRich Salz <rsalz@akamai.com>
      Reviewed-by: NTim Hudson <tjh@openssl.org>
      4d60c7e1
  3. 06 9月, 2015 3 次提交
  4. 05 9月, 2015 2 次提交
  5. 04 9月, 2015 3 次提交
  6. 03 9月, 2015 3 次提交
  7. 02 9月, 2015 5 次提交
  8. 01 9月, 2015 4 次提交
  9. 26 8月, 2015 1 次提交
  10. 17 8月, 2015 1 次提交
  11. 14 8月, 2015 3 次提交
  12. 12 8月, 2015 3 次提交
  13. 11 8月, 2015 1 次提交
  14. 03 8月, 2015 2 次提交
    • M
      Fix make errors for the CCS changes · 496dbe18
      Matt Caswell 提交于
      The move of CCS into the state machine was causing make errors to fail. This
      fixes it.
      Reviewed-by: NTim Hudson <tjh@openssl.org>
      496dbe18
    • M
      Move TLS CCS processing into the state machine · 657da85e
      Matt Caswell 提交于
      The handling of incoming CCS records is a little strange. Since CCS is not
      a handshake message it is handled differently to normal handshake messages.
      Unfortunately whilst technically it is not a handhshake message the reality
      is that it must be processed in accordance with the state of the handshake.
      Currently CCS records are processed entirely within the record layer. In
      order to ensure that it is handled in accordance with the handshake state
      a flag is used to indicate that it is an acceptable time to receive a CCS.
      
      Previously this flag did not exist (see CVE-2014-0224), but the flag should
      only really be considered a workaround for the problem that CCS is not
      visible to the state machine.
      
      Outgoing CCS messages are already handled within the state machine.
      
      This patch makes CCS visible to the TLS state machine. A separate commit
      will handle DTLS.
      Reviewed-by: NTim Hudson <tjh@openssl.org>
      657da85e
  15. 31 7月, 2015 1 次提交
  16. 30 7月, 2015 5 次提交
  17. 27 7月, 2015 1 次提交
    • M
      Remove support for SSL3_FLAGS_DELAY_CLIENT_FINISHED · 57787ac8
      Matt Caswell 提交于
      This flag was not set anywhere within the codebase (only read). It could
      only be set by an app reaching directly into s->s3->flags and setting it
      directly. However that method became impossible when libssl was opaquified.
      
      Even in 1.0.2/1.0.1 if an app set the flag directly it is only relevant to
      ssl3_connect(), which calls SSL_clear() during initialisation that clears
      any flag settings. Therefore it could take effect if the app set the flag
      after the handshake has started but before it completed. It seems quite
      unlikely that any apps really do this (especially as it is completely
      undocumented).
      
      The purpose of the flag is suppress flushing of the write bio on the client
      side at the end of the handshake after the client has written the Finished
      message whilst resuming a session. This enables the client to send
      application data as part of the same flight as the Finished message.
      
      This flag also controls the setting of a second flag SSL3_FLAGS_POP_BUFFER.
      There is an interesting comment in the code about this second flag in the
      implementation of ssl3_write:
      
      	/* This is an experimental flag that sends the
      	 * last handshake message in the same packet as the first
      	 * use data - used to see if it helps the TCP protocol during
      	 * session-id reuse */
      
      It seems the experiment did not work because as far as I can tell nothing
      is using this code. The above comment has been in the code since SSLeay.
      
      This commit removes support for SSL3_FLAGS_DELAY_CLIENT_FINISHED, as well
      as the associated SSL3_FLAGS_POP_BUFFER.
      Reviewed-by: NRich Salz <rsalz@openssl.org>
      57787ac8