openssl.git
6 years agoOptimize SPARC T4 MONTMUL support.
Andy Polyakov [Tue, 18 Jun 2013 08:39:38 +0000 (10:39 +0200)]
Optimize SPARC T4 MONTMUL support.

Improve RSA sing performance by 20-30% by:
- switching from floating-point to integer conditional moves;
- daisy-chaining sqr-sqr-sqr-sqr-sqr-mul sequences;
- using MONTMUL even during powers table setup;

6 years agoPA-RISC assembler pack: switch to bve in 64-bit builds.
Andy Polyakov [Tue, 18 Jun 2013 08:37:00 +0000 (10:37 +0200)]
PA-RISC assembler pack: switch to bve in 64-bit builds.

PR: 3074

6 years agoAdd secure DSA nonce flag.
Adam Langley [Thu, 24 Jan 2013 21:27:28 +0000 (16:27 -0500)]
Add secure DSA nonce flag.

This change adds the option to calculate (EC)DSA nonces by hashing the
message and private key along with entropy to avoid leaking the private
key if the PRNG fails.

6 years agoLimit the number of empty records that will be processed consecutively
Adam Langley [Wed, 20 Feb 2013 17:42:09 +0000 (12:42 -0500)]
Limit the number of empty records that will be processed consecutively
in order to prevent ssl3_get_record from never returning.

Reported by "oftc_must_be_destroyed" and George Kadianakis.

6 years agoDon't SEGFAULT when trying to export a public DSA key as a private key.
Adam Langley [Thu, 21 Feb 2013 22:11:55 +0000 (17:11 -0500)]
Don't SEGFAULT when trying to export a public DSA key as a private key.

6 years agoThis change alters the processing of invalid, RSA pre-master secrets so
Adam Langley [Wed, 24 Apr 2013 18:45:44 +0000 (14:45 -0400)]
This change alters the processing of invalid, RSA pre-master secrets so
that bad encryptions are treated like random session keys in constant
time.

6 years agoIgnore one-makefile stuff.
Ben Laurie [Thu, 13 Jun 2013 14:39:23 +0000 (15:39 +0100)]
Ignore one-makefile stuff.

6 years agoDocument updates from wiki.
Matt Caswell [Wed, 12 Jun 2013 22:42:08 +0000 (23:42 +0100)]
Document updates from wiki.

PR#3071

The primary changes made are:
- Updates to the "NAME" section of many pages to correctly reflect the
functions defined on those pages. This section is automatically parsed
by the util/extract-names.pl script, so if it is not correct then
running "man" will not correctly locate the right manual pages.
- Updates to take account of where functions are now deprecated
- Full documentation of the ec sub-library
- A number of other typo corrections and other minor tweaks

6 years agoExetended OAEP support.
Dr. Stephen Henson [Tue, 21 May 2013 22:55:50 +0000 (23:55 +0100)]
Exetended OAEP support.

Extend OAEP support. Generalise the OAEP padding functions to support
arbitrary digests. Extend EVP_PKEY RSA method to handle the new OAEP
padding functions and add ctrls to set the additional parameters.

6 years agoTypo.
Dr. Stephen Henson [Tue, 21 May 2013 22:48:12 +0000 (23:48 +0100)]
Typo.

6 years agoAdd support for arbitrary TLS extensions.
Trevor [Mon, 13 May 2013 01:55:27 +0000 (18:55 -0700)]
Add support for arbitrary TLS extensions.

Contributed by Trevor Perrin.

6 years agoAdd aesni-sha256-x86_64.
Ben Laurie [Wed, 12 Jun 2013 13:18:33 +0000 (14:18 +0100)]
Add aesni-sha256-x86_64.

6 years agoaesni-sha1-x86_64.pl: update performance data.
Andy Polyakov [Mon, 10 Jun 2013 20:35:22 +0000 (22:35 +0200)]
aesni-sha1-x86_64.pl: update performance data.

6 years agoaesni-sha256-x86_64.pl: harmonize with latest sha512-x86_64.pl.
Andy Polyakov [Mon, 10 Jun 2013 20:34:06 +0000 (22:34 +0200)]
aesni-sha256-x86_64.pl: harmonize with latest sha512-x86_64.pl.

6 years agosha1-x86_64.pl: add AVX2+BMI code path.
Andy Polyakov [Mon, 10 Jun 2013 20:30:34 +0000 (22:30 +0200)]
sha1-x86_64.pl: add AVX2+BMI code path.

6 years agosha512-x86_64.pl: upcoming-Atom-specific optimization.
Andy Polyakov [Mon, 10 Jun 2013 20:29:01 +0000 (22:29 +0200)]
sha512-x86_64.pl: upcoming-Atom-specific optimization.

6 years agosha[256|512]-586.pl: add more SIMD code paths.
Andy Polyakov [Mon, 10 Jun 2013 20:26:53 +0000 (22:26 +0200)]
sha[256|512]-586.pl: add more SIMD code paths.

6 years agoghash-x86_64.pl: add Haswell performance data.
Andy Polyakov [Mon, 10 Jun 2013 20:25:12 +0000 (22:25 +0200)]
ghash-x86_64.pl: add Haswell performance data.

6 years agox86cpuid.pl: fix extended feature flags detection.
Andy Polyakov [Mon, 10 Jun 2013 20:20:46 +0000 (22:20 +0200)]
x86cpuid.pl: fix extended feature flags detection.

6 years agoFix PSS signature printing.
Dr. Stephen Henson [Sun, 5 May 2013 12:34:03 +0000 (13:34 +0100)]
Fix PSS signature printing.

Fix PSS signature printing: consistently use 0x prefix for hex values for
padding length and trailer fields.

6 years agoReencode with X509_CRL_ctx_sign too.
Dr. Stephen Henson [Fri, 3 May 2013 11:31:47 +0000 (12:31 +0100)]
Reencode with X509_CRL_ctx_sign too.

6 years agoEnsure that, when generating small primes, the result is actually of the
Adam Langley [Tue, 23 Apr 2013 18:36:06 +0000 (14:36 -0400)]
Ensure that, when generating small primes, the result is actually of the
requested size. Fixes OpenSSL #2701.

This change does not address the cases of generating safe primes, or
where the |add| parameter is non-NULL.

Conflicts:
crypto/bn/bn.h
crypto/bn/bn_err.c

6 years agoEnsure that x**0 mod 1 = 0.
Adam Langley [Tue, 23 Apr 2013 16:13:51 +0000 (12:13 -0400)]
Ensure that x**0 mod 1 = 0.

6 years agoAdd volatile qualifications to two blocks of inline asm to stop GCC from
Adam Langley [Mon, 3 Jun 2013 19:45:11 +0000 (15:45 -0400)]
Add volatile qualifications to two blocks of inline asm to stop GCC from
eliminating them as dead code.

Both volatile and "memory" are used because of some concern that the compiler
may still cache values across the asm block without it, and because this was
such a painful debugging session that I wanted to ensure that it's never
repeated.

6 years agoRemove added ;.
Ben Laurie [Tue, 4 Jun 2013 14:05:18 +0000 (15:05 +0100)]
Remove added ;.

6 years agoMissing prototypes.
Ben Laurie [Tue, 4 Jun 2013 14:14:18 +0000 (15:14 +0100)]
Missing prototypes.

6 years agocrypto/bn/bn_exp.c: SPARC portability fix.
Andy Polyakov [Sat, 1 Jun 2013 07:58:07 +0000 (09:58 +0200)]
crypto/bn/bn_exp.c: SPARC portability fix.

6 years agoaesni-x86_64.pl: optimize XTS.
Andy Polyakov [Sat, 25 May 2013 17:23:09 +0000 (19:23 +0200)]
aesni-x86_64.pl: optimize XTS.

PR: 3042

6 years agoaesni-sha1-x86_64.pl: Atom-specific optimization.
Andy Polyakov [Sat, 25 May 2013 17:08:39 +0000 (19:08 +0200)]
aesni-sha1-x86_64.pl: Atom-specific optimization.

6 years agosha512-x86_64.pl: +16% optimization for Atom.
Andy Polyakov [Sat, 25 May 2013 17:02:57 +0000 (19:02 +0200)]
sha512-x86_64.pl: +16% optimization for Atom.

(and pending AVX2 changes).

6 years agovpaes-x86[_64].pl: minor Atom-specific optimization.
Andy Polyakov [Sat, 25 May 2013 16:57:03 +0000 (18:57 +0200)]
vpaes-x86[_64].pl: minor Atom-specific optimization.

6 years agoAdd AES-SHA256 stitch.
Andy Polyakov [Mon, 13 May 2013 20:49:58 +0000 (22:49 +0200)]
Add AES-SHA256 stitch.

6 years agox86_64-xlate.pl: minor size/performance improvement.
Andy Polyakov [Mon, 13 May 2013 14:06:25 +0000 (16:06 +0200)]
x86_64-xlate.pl: minor size/performance improvement.

6 years agoaesni-x86_64.pl: minor CTR performance improvement.
Andy Polyakov [Mon, 13 May 2013 13:49:03 +0000 (15:49 +0200)]
aesni-x86_64.pl: minor CTR performance improvement.

6 years agoTests pass!
Ben Laurie [Sun, 5 May 2013 15:15:34 +0000 (16:15 +0100)]
Tests pass!

6 years agoUgly hack to avoid recompiling the same thing multiple times in parallel.
Ben Laurie [Sun, 5 May 2013 14:06:33 +0000 (15:06 +0100)]
Ugly hack to avoid recompiling the same thing multiple times in parallel.

6 years agoReencode certificates in X509_sign_ctx.
Dr. Stephen Henson [Thu, 2 May 2013 11:18:46 +0000 (12:18 +0100)]
Reencode certificates in X509_sign_ctx.

Reencode certificates in X509_sign_ctx as well as X509_sign.

This was causing a problem in the x509 application when it modified an
existing certificate.

6 years agobsaes-armv7.pl: add bsaes_cbc_encrypt and bsaes_ctr32_encrypt_blocks.
Andy Polyakov [Tue, 23 Apr 2013 15:52:14 +0000 (17:52 +0200)]
bsaes-armv7.pl: add bsaes_cbc_encrypt and bsaes_ctr32_encrypt_blocks.

Submitted by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

Contributor claims ~50% improvement in CTR and ~9% in CBC decrypt
on Cortex-A15.

6 years agobsaes-armv7.pl: take it into build loop.
Andy Polyakov [Tue, 23 Apr 2013 15:49:54 +0000 (17:49 +0200)]
bsaes-armv7.pl: take it into build loop.

6 years agoTypo.
Dr. Stephen Henson [Sun, 14 Apr 2013 00:19:07 +0000 (01:19 +0100)]
Typo.

6 years agoFix Windows linking error in GOST test case.
Andy Polyakov [Sat, 13 Apr 2013 21:03:31 +0000 (23:03 +0200)]
Fix Windows linking error in GOST test case.

6 years agocrypto/modes/modes_lcl.h: let STRICT_ALIGNMENT be on ARMv7.
Andy Polyakov [Sat, 13 Apr 2013 18:57:37 +0000 (20:57 +0200)]
crypto/modes/modes_lcl.h: let STRICT_ALIGNMENT be on ARMv7.

While ARMv7 in general is capable of unaligned access, not all instructions
actually are. And trouble is that compiler doesn't seem to differentiate
those capable and incapable of unaligned access. Side effect is that kernel
goes into endless loop retrying same instruction triggering unaligned trap.
Problem was observed in xts128.c and ccm128.c modules. It's possible to
resolve it by using (volatile u32*) casts, but letting STRICT_ALIGNMENT
be feels more appropriate.

6 years agoSuite B support for DTLS 1.2
Dr. Stephen Henson [Tue, 9 Apr 2013 14:57:39 +0000 (15:57 +0100)]
Suite B support for DTLS 1.2

Check for Suite B support using method flags instead of version numbers:
anything supporting TLS 1.2 cipher suites will also support Suite B.

Return an error if an attempt to use DTLS 1.0 is made in Suite B mode.

6 years agoAlways return errors in ssl3_get_client_hello
Dr. Stephen Henson [Tue, 9 Apr 2013 14:53:38 +0000 (15:53 +0100)]
Always return errors in ssl3_get_client_hello

If we successfully match a cookie don't set return value to 2 as this
results in other error conditions returning 2 as well.

Instead set return value to -2 which can be checked later if everything
else is OK.

6 years agoDual DTLS version methods.
Dr. Stephen Henson [Sat, 6 Apr 2013 14:50:12 +0000 (15:50 +0100)]
Dual DTLS version methods.

Add new methods DTLS_*_method() which support both DTLS 1.0 and DTLS 1.2 and
pick the highest version the peer supports during negotiation.

As with SSL/TLS options can change this behaviour specifically
SSL_OP_NO_DTLSv1 and SSL_OP_NO_DTLSv1_2.

6 years agoSet s->d1 to NULL after freeing it.
Dr. Stephen Henson [Mon, 8 Apr 2013 17:03:12 +0000 (18:03 +0100)]
Set s->d1 to NULL after freeing it.

6 years agoAsm build portability.
Dr. Stephen Henson [Mon, 8 Apr 2013 13:53:54 +0000 (14:53 +0100)]
Asm build portability.

Don't use Win32 specific options in mk1mf.pl to build assembly language
files.

6 years agoMake sure all tests are actually run, plus some fixups for things that
Ben Laurie [Sun, 7 Apr 2013 15:52:54 +0000 (16:52 +0100)]
Make sure all tests are actually run, plus some fixups for things that
turn out to be made somewhere by existing Makefiles.

6 years agoUse original alltests target for definitive test list.
Ben Laurie [Sat, 6 Apr 2013 19:42:38 +0000 (20:42 +0100)]
Use original alltests target for definitive test list.

6 years agoMissing semicolon.
Ben Laurie [Sat, 6 Apr 2013 15:17:14 +0000 (16:17 +0100)]
Missing semicolon.

6 years agoFix non-copy builds.
Dr. Stephen Henson [Sat, 6 Apr 2013 15:05:23 +0000 (16:05 +0100)]
Fix non-copy builds.

Only use -MMD and .sinclude in copy builds: other platforms don't
support them.

6 years agoMissing file.
Ben Laurie [Sat, 6 Apr 2013 14:25:43 +0000 (15:25 +0100)]
Missing file.

6 years agoMake executable.
Ben Laurie [Sat, 6 Apr 2013 14:22:28 +0000 (15:22 +0100)]
Make executable.

6 years agoHelper scripts for one makefile build.
Ben Laurie [Sat, 6 Apr 2013 14:17:30 +0000 (15:17 +0100)]
Helper scripts for one makefile build.

6 years agoMerge, go back to copy-if-different.
Ben Laurie [Sat, 6 Apr 2013 14:15:11 +0000 (15:15 +0100)]
Merge, go back to copy-if-different.

6 years agoFix test_ss.
Ben Laurie [Wed, 3 Apr 2013 05:50:47 +0000 (06:50 +0100)]
Fix test_ss.

6 years agoAdd new asm target.
Ben Laurie [Wed, 3 Apr 2013 05:38:33 +0000 (06:38 +0100)]
Add new asm target.

6 years agoShow start/end of tests.
Ben Laurie [Wed, 3 Apr 2013 05:30:16 +0000 (06:30 +0100)]
Show start/end of tests.

6 years agoAvoid collisions.
Ben Laurie [Wed, 3 Apr 2013 05:05:33 +0000 (06:05 +0100)]
Avoid collisions.

6 years agoMake session ID test work.
Ben Laurie [Tue, 2 Apr 2013 05:04:58 +0000 (06:04 +0100)]
Make session ID test work.

6 years agoMake S/MIME test work.
Ben Laurie [Tue, 2 Apr 2013 05:02:13 +0000 (06:02 +0100)]
Make S/MIME test work.

6 years agoMake RSA test work.
Ben Laurie [Tue, 2 Apr 2013 04:38:57 +0000 (05:38 +0100)]
Make RSA test work.

6 years agoMake PKCS#7 test work.
Ben Laurie [Tue, 2 Apr 2013 04:36:21 +0000 (05:36 +0100)]
Make PKCS#7 test work.

6 years agoMake OCSP test work.
Ben Laurie [Tue, 2 Apr 2013 04:33:15 +0000 (05:33 +0100)]
Make OCSP test work.

6 years agoMore progress towards working tests.
Ben Laurie [Mon, 1 Apr 2013 17:22:58 +0000 (18:22 +0100)]
More progress towards working tests.

6 years agoGet closer to a working single Makefile with test support.
Ben Laurie [Sat, 23 Mar 2013 19:05:19 +0000 (19:05 +0000)]
Get closer to a working single Makefile with test support.

6 years agoFix warnings.
Ben Laurie [Sat, 23 Mar 2013 19:04:46 +0000 (19:04 +0000)]
Fix warnings.

6 years agoMake TLS 1.2 ciphers work again.
Dr. Stephen Henson [Thu, 4 Apr 2013 17:19:18 +0000 (18:19 +0100)]
Make TLS 1.2 ciphers work again.

Since s->method does not reflect the final client version when a client
hello is sent for SSLv23_client_method it can't be relied on to indicate
if TLS 1.2 ciphers should be used. So use the client version instead.

6 years agocryptlib.c: fix typo in OPENSSL_showfatal.
Andy Polyakov [Thu, 4 Apr 2013 13:57:43 +0000 (15:57 +0200)]
cryptlib.c: fix typo in OPENSSL_showfatal.

6 years agoaesni-x86_64.pl: optimize CBC decrypt.
Andy Polyakov [Thu, 4 Apr 2013 13:56:23 +0000 (15:56 +0200)]
aesni-x86_64.pl: optimize CBC decrypt.

Give CBC decrypt approximately same treatment as to CTR and collect 25%.

6 years agoe_aes.c: reserve for future extensions.
Andy Polyakov [Thu, 4 Apr 2013 13:55:49 +0000 (15:55 +0200)]
e_aes.c: reserve for future extensions.

6 years agogcm128.c: fix linking problems in 32-bit Windows build.
Andy Polyakov [Thu, 4 Apr 2013 13:54:58 +0000 (15:54 +0200)]
gcm128.c: fix linking problems in 32-bit Windows build.

6 years agodest4-sparcv9.pl: add clarification comment.
Andy Polyakov [Thu, 4 Apr 2013 13:54:08 +0000 (15:54 +0200)]
dest4-sparcv9.pl: add clarification comment.

6 years agoevptests.txt: add XTS test vectors
Andy Polyakov [Thu, 4 Apr 2013 13:53:01 +0000 (15:53 +0200)]
evptests.txt: add XTS test vectors

6 years agoUse $(PERL) when calling scripts in mk1mf.pl
Dr. Stephen Henson [Wed, 3 Apr 2013 21:38:18 +0000 (22:38 +0100)]
Use $(PERL) when calling scripts in mk1mf.pl

6 years agoTypo.
Dr. Stephen Henson [Sun, 31 Mar 2013 16:42:46 +0000 (17:42 +0100)]
Typo.

6 years agoAdd support for SPARC T4 DES opcode.
Andy Polyakov [Sun, 31 Mar 2013 12:32:05 +0000 (14:32 +0200)]
Add support for SPARC T4 DES opcode.

6 years agodes_enc.m4: add missing #include.
Andy Polyakov [Sun, 31 Mar 2013 12:07:48 +0000 (14:07 +0200)]
des_enc.m4: add missing #include.

Submitted by: David Miller

6 years agoAdd AES-NI GCM stitch.
Andy Polyakov [Fri, 29 Mar 2013 19:45:33 +0000 (20:45 +0100)]
Add AES-NI GCM stitch.

6 years agoaesni-x86_64.pl: fix typo and optimize small block performance.
Andy Polyakov [Fri, 29 Mar 2013 17:54:24 +0000 (18:54 +0100)]
aesni-x86_64.pl: fix typo and optimize small block performance.

6 years agoCall RAND_cleanup in openssl application.
Dr. Stephen Henson [Thu, 28 Mar 2013 14:28:06 +0000 (14:28 +0000)]
Call RAND_cleanup in openssl application.
(cherry picked from commit 944bc29f9004cf8851427ebfa83ee70b8399da57)

6 years agoEnable TLS 1.2 ciphers in DTLS 1.2.
Dr. Stephen Henson [Wed, 27 Mar 2013 19:54:48 +0000 (19:54 +0000)]
Enable TLS 1.2 ciphers in DTLS 1.2.

Port TLS 1.2 GCM code to DTLS. Enable use of TLS 1.2 only ciphers when in
DTLS 1.2 mode too.

6 years agoUpdate fixed DH requirements.
Dr. Stephen Henson [Wed, 27 Mar 2013 16:05:10 +0000 (16:05 +0000)]
Update fixed DH requirements.

The relaxed signing requirements for fixed DH certificates apply to DTLS 1.2
too.

6 years agoDTLS 1.2 cached record support.
Dr. Stephen Henson [Wed, 27 Mar 2013 15:50:42 +0000 (15:50 +0000)]
DTLS 1.2 cached record support.

Add DTLS1.2 support for cached records when computing handshake macs
instead of the MD5+SHA1 case for DTLS < 1.2 (this is a port of the
equivalent TLS 1.2 code to DTLS).

6 years agoMake binary curve ASN.1 work in FIPS mode.
Matt Caswell [Tue, 26 Mar 2013 15:39:50 +0000 (15:39 +0000)]
Make binary curve ASN.1 work in FIPS mode.

Don't check for binary curves by checking methods: the values will
be different in FIPS mode as they are redirected to the validated module
version.

6 years agoProvisional DTLS 1.2 support.
Dr. Stephen Henson [Wed, 20 Mar 2013 15:49:14 +0000 (15:49 +0000)]
Provisional DTLS 1.2 support.

Add correct flags for DTLS 1.2, update s_server and s_client to handle
DTLS 1.2 methods.

Currently no support for version negotiation: i.e. if client/server selects
DTLS 1.2 it is that or nothing.

6 years agoRemove versions test from dtls1_buffer_message
Dr. Stephen Henson [Tue, 26 Mar 2013 14:46:18 +0000 (14:46 +0000)]
Remove versions test from dtls1_buffer_message

Since this is always called from DTLS code it is safe to assume the header
length should be the DTLS value. This avoids the need to check the version
number and should work with any version of DTLS (not just 1.0).

6 years agoExtend DTLS method macros.
Dr. Stephen Henson [Tue, 19 Mar 2013 15:51:26 +0000 (15:51 +0000)]
Extend DTLS method macros.

Extend DTLS method creation macros to support version numbers and encryption
methods. Update existing code.

6 years agoEnable various DTLS extensions.
Dr. Stephen Henson [Tue, 19 Mar 2013 15:49:35 +0000 (15:49 +0000)]
Enable various DTLS extensions.

Some TLS extensions were disabled for DTLS. Possibly because they caused
problems with the old duplicated code. Enable them again.

6 years agoaesni-x86_64.pl: optimize CTR even further.
Andy Polyakov [Tue, 26 Mar 2013 13:29:18 +0000 (14:29 +0100)]
aesni-x86_64.pl: optimize CTR even further.

Based on suggestions from Shay Gueron and Vlad Krasnov.
PR: 3021

6 years agoghash-x86_64.pl: add AVX code path.
Andy Polyakov [Sun, 24 Mar 2013 22:44:35 +0000 (23:44 +0100)]
ghash-x86_64.pl: add AVX code path.

6 years agoaesni-x86_64.pl: optimize CTR even further.
Andy Polyakov [Tue, 19 Mar 2013 19:03:02 +0000 (20:03 +0100)]
aesni-x86_64.pl: optimize CTR even further.

6 years agoghash-x86_64.pl: minor optimization.
Andy Polyakov [Tue, 19 Mar 2013 19:02:11 +0000 (20:02 +0100)]
ghash-x86_64.pl: minor optimization.

6 years agoDisable compression for DTLS.
Dr. Stephen Henson [Tue, 19 Mar 2013 13:43:06 +0000 (13:43 +0000)]
Disable compression for DTLS.

The only standard compression method is stateful and is incompatible with
DTLS.

6 years agoTypo.
Dr. Stephen Henson [Tue, 19 Mar 2013 12:41:13 +0000 (12:41 +0000)]
Typo.

6 years agoe_aes_cbc_hmac_sha1.c: fix rare bad record mac on AES-NI plaforms.
Andy Polyakov [Mon, 18 Mar 2013 18:29:41 +0000 (19:29 +0100)]
e_aes_cbc_hmac_sha1.c: fix rare bad record mac on AES-NI plaforms.

PR: 3002

6 years agoUse enc_flags when deciding protocol variations.
Dr. Stephen Henson [Wed, 13 Mar 2013 15:33:24 +0000 (15:33 +0000)]
Use enc_flags when deciding protocol variations.

Use the enc_flags field to determine whether we should use explicit IV,
signature algorithms or SHA256 default PRF instead of hard coding which
versions support each requirement.

6 years agoUse appropriate versions of SSL3_ENC_METHOD
Dr. Stephen Henson [Wed, 13 Mar 2013 13:30:44 +0000 (13:30 +0000)]
Use appropriate versions of SSL3_ENC_METHOD

6 years agoDTLS revision.
Dr. Stephen Henson [Mon, 11 Mar 2013 15:34:28 +0000 (15:34 +0000)]
DTLS revision.

Revise DTLS code. There was a *lot* of code duplication in the
DTLS code that generates records. This makes it harder to maintain and
sometimes a TLS update is omitted by accident from the DTLS code.

Specifically almost all of the record generation functions have code like
this:

some_pointer = buffer + HANDSHAKE_HEADER_LENGTH;
... Record creation stuff ...
set_handshake_header(ssl, SSL_MT_SOMETHING, message_len);

...

write_handshake_message(ssl);

Where the "Record creation stuff" is identical between SSL/TLS and DTLS or
in some cases has very minor differences.

By adding a few fields to SSL3_ENC to include the header length, some flags
and function pointers for handshake header setting and handshake writing the
code can cope with both cases.

Note: although this passes "make test" and some simple DTLS tests there may
be some minor differences in the DTLS code that have to be accounted for.

6 years agoAvoid unnecessary fragmentation.
Michael Tuexen [Mon, 18 Mar 2013 14:30:38 +0000 (14:30 +0000)]
Avoid unnecessary fragmentation.