progs.patch

Fixup sources under the apps/ directory that are not built under the android environment.


handshake_cutthrough.patch

Enables SSL3+ clients to send application data immediately following the
Finished message even when negotiating full-handshakes.  With this patch,
clients can negotiate SSL connections in 1-RTT even when performing
full-handshakes.

jsse.patch

Support for JSSE implementation based on OpenSSL.

sha1_armv4_large.patch

This patch eliminates memory stores to addresses below SP.


mips_private.patch

Fix duplicate defines of labels AES_set_encrypt_key and AES_set_decrypt_key
by prefixing Mips version with private_ .
Revise import script to generate o32-abi .s files for Mips.


channelid.patch

Implements TLS Channel ID support as both a client and a server.
See http://tools.ietf.org/html/draft-balfanz-tls-channelid-00.


constant_time_memcmp.patch

This patch adds a constant time memcmp function and replaces several of the
memcmps on sensitive data with it.


constant_time_cbc.patch

implement CBC decoding in constant time CVE-2013-0169

clang.patch

Fixes two minor compilation errors when building with the Clang compiler.


recursive_lock_fix.patch

Small fix to get rid of unwanted recursive mutex lock in X509_PUBKEY_get.
See http://cvs.openssl.org/chngview?cn=22568 for upstream patch, and
https://groups.google.com/d/topic/mailing.openssl.dev/4Z67vaaTChk/discussion
for the most recent discussion.
