Paul Bakker
50dc850c52
Const correctness
2013-10-28 21:19:10 +01:00
Paul Bakker
6a6087e71d
Added missing inline definition for MSCV and ARM environments
2013-10-28 18:53:08 +01:00
Paul Bakker
7bc745b6a1
Merged constant-time padding checks
2013-10-28 14:40:26 +01:00
Paul Bakker
1642122f8b
Merged support for Camellia-GCM + ciphersuite and fixes to cipher layer
2013-10-28 14:38:35 +01:00
Paul Bakker
3f917e230d
Merged optimizations for MODP NIST curves
2013-10-28 14:18:26 +01:00
Manuel Pégourié-Gonnard
1001e32d6f
Fix return value of ecdsa_from_keypair()
2013-10-28 14:01:08 +01:00
Manuel Pégourié-Gonnard
21ef42f257
Don't select a PSK ciphersuite if no key available
2013-10-28 14:00:45 +01:00
Manuel Pégourié-Gonnard
3daaf3d21d
X509 key identifiers depend on SHA1
2013-10-28 13:58:32 +01:00
Paul Bakker
45a2c8d99a
Prevent possible alignment warnings on casting from char * to 'aligned *'
2013-10-28 12:57:08 +01:00
Paul Bakker
677377f472
Server does not send out extensions not advertised by client
2013-10-28 12:54:26 +01:00
Manuel Pégourié-Gonnard
e68bf171eb
Make get_zeros_padding() constant-time
2013-10-27 18:26:39 +01:00
Manuel Pégourié-Gonnard
6c32990114
Make get_one_and_zeros_padding() constant-time
2013-10-27 18:25:03 +01:00
Manuel Pégourié-Gonnard
d17df51277
Make get_zeros_and_len_padding() constant-time
2013-10-27 17:32:43 +01:00
Manuel Pégourié-Gonnard
f8ab069d6a
Make get_pkcs_padding() constant-time
2013-10-27 17:25:57 +01:00
Manuel Pégourié-Gonnard
a8a25ae1b9
Fix bad error codes
2013-10-27 13:48:15 +01:00
Manuel Pégourié-Gonnard
7109624aef
Skip MAC computation/check when GCM is used
2013-10-25 19:31:25 +02:00
Manuel Pégourié-Gonnard
8866591cc5
Don't special-case NULL cipher in ssl_tls.c
2013-10-25 18:42:44 +02:00
Manuel Pégourié-Gonnard
126a66f668
Simplify switching on mode in ssl_tls.c
2013-10-25 18:33:32 +02:00
Manuel Pégourié-Gonnard
98d9a2c061
Fix missing or wrong ciphersuite definitions
2013-10-25 18:03:18 +02:00
Manuel Pégourié-Gonnard
6fb0f745be
Rank GCM before CBC in ciphersuite_preference
2013-10-25 17:08:15 +02:00
Manuel Pégourié-Gonnard
8d01eea7af
Add Camellia-GCM ciphersuites
2013-10-25 16:46:05 +02:00
Manuel Pégourié-Gonnard
e0dca4ad78
Cipher layer: check iv_len more carefully
2013-10-24 17:03:39 +02:00
Manuel Pégourié-Gonnard
dae7093875
gcm_selftest depends on AES
2013-10-24 15:06:33 +02:00
Manuel Pégourié-Gonnard
87181d1deb
Add Camellia-GCM to th cipher layer
2013-10-24 14:02:40 +02:00
Manuel Pégourié-Gonnard
13e0d449f7
Add Camellia-GCM test vectors
...
https://tools.ietf.org/html/draft-kato-ipsec-camellia-gcm-03#section-4
2013-10-24 13:24:25 +02:00
Manuel Pégourié-Gonnard
9fcceac943
Add a comment about modules coupling
2013-10-23 20:56:12 +02:00
Manuel Pégourié-Gonnard
b21c81fb41
Use less memory in fix_negative()
2013-10-23 20:45:04 +02:00
Manuel Pégourié-Gonnard
cae6f3ed45
Reorganize code in ecp.c
2013-10-23 20:19:57 +02:00
Manuel Pégourié-Gonnard
5779cbe582
Make mod_p{224,256,384] a bit faster
...
Speedup is roughly 25%, giving a 6% speedup on ecp_mul() for these curves.
2013-10-23 20:17:00 +02:00
Manuel Pégourié-Gonnard
c04c530a98
Make NIST curves optimisation an option
2013-10-23 16:11:52 +02:00
Manuel Pégourié-Gonnard
0f9149cb0a
Add mod_p384
2013-10-23 15:06:37 +02:00
Manuel Pégourié-Gonnard
ec655c908c
Add mod_p256
2013-10-23 14:50:39 +02:00
Manuel Pégourié-Gonnard
210b458ddc
Document and slightly reorganize mod_pXXX
2013-10-23 14:27:58 +02:00
Manuel Pégourié-Gonnard
2a08c0debc
mod_p224 now working with 8-bit and 16-bit ints
2013-10-23 13:24:55 +02:00
Manuel Pégourié-Gonnard
a47e7058ea
mod_p224 now endian-neutral
2013-10-23 13:24:55 +02:00
Manuel Pégourié-Gonnard
e783f06f73
Start working on mod_p224
...
(Prototype, works only on 32-bit and little-endian 64-bit.)
2013-10-23 13:24:55 +02:00
Manuel Pégourié-Gonnard
cc67aee9c8
Make ecp_mod_p521 a bit faster
2013-10-23 13:24:55 +02:00
Manuel Pégourié-Gonnard
c9e387ca9e
Optimize ecp_modp()
...
Makes it 22% faster, for a 5% gain on ecp_mul()
2013-10-23 13:24:55 +02:00
Manuel Pégourié-Gonnard
d1e7a45fdd
Rework ecp_mod_p192()
...
On x86_64, this makes it 5x faster, and ecp_mul() 17% faster for this curve.
The code is shorter too.
2013-10-23 13:24:55 +02:00
Paul Bakker
6888167e73
Forced cast to prevent MSVC compiler warning
2013-10-15 13:24:01 +02:00
Paul Bakker
5c17ccdf2a
Bumped version to 1.3.1
2013-10-15 13:12:41 +02:00
Paul Bakker
f34673e37b
Merged RSA-PSK key-exchange and ciphersuites
2013-10-15 12:46:41 +02:00
Paul Bakker
376e8153a0
Merged ECDHE-PSK ciphersuites
2013-10-15 12:45:36 +02:00
Paul Bakker
bbc1007c50
Convert SOCKET to int to prevent compiler warnings under MSVC.
...
From kernel objects at msdn:
Kernel object handles are process specific. That is, a process must either create the object or open an existing object to obtain a kernel object handle. The per-process limit on kernel handles is 2^24.
Windows Internals by Russinovich and Solomon as well says that the high bits are zero.
2013-10-15 11:55:57 +02:00
Manuel Pégourié-Gonnard
59b9fe28f0
Fix bug in psk_identity_hint parsing
2013-10-15 11:55:33 +02:00
Manuel Pégourié-Gonnard
bac0e3b7d2
Dependency fixes
2013-10-15 11:54:47 +02:00
Manuel Pégourié-Gonnard
09258b9537
Refactor parse_server_key_exchange a bit
2013-10-15 11:19:54 +02:00
Manuel Pégourié-Gonnard
8a3c64d73f
Fix and simplify *-PSK ifdef's
2013-10-14 19:54:10 +02:00
Manuel Pégourié-Gonnard
ef0eb1ebd8
Add two missing RSA-PSK ciphersuites
2013-10-14 19:34:48 +02:00
Manuel Pégourié-Gonnard
0fae60bb71
Implement RSA-PSK key exchange
2013-10-14 19:34:48 +02:00
Paul Bakker
be089b0483
Introduced POLARSSL_HAVE_READDIR_R for systems without it
2013-10-14 15:51:50 +02:00
Paul Bakker
b9cfaa0c7f
Explicit conversions and minor changes to prevent MSVC compiler warnings
2013-10-14 15:50:40 +02:00
Manuel Pégourié-Gonnard
057e0cf263
Fix ciphersuites dependencies on MD5 and SHA1
2013-10-14 14:26:04 +02:00
Manuel Pégourié-Gonnard
1b62c7f93d
Fix dependencies and related issues
2013-10-14 14:02:19 +02:00
Manuel Pégourié-Gonnard
72fb62daa2
More *-PSK refactoring
2013-10-14 14:01:58 +02:00
Manuel Pégourié-Gonnard
bd1ae24449
Factor PSK pms computation to ssl_tls.c
2013-10-14 13:17:36 +02:00
Manuel Pégourié-Gonnard
b59d699a65
Fix bugs in ECDHE_PSK key exchange
2013-10-14 12:00:45 +02:00
Manuel Pégourié-Gonnard
225d6aa786
Add ECDHE_PSK ciphersuites
2013-10-11 19:07:56 +02:00
Manuel Pégourié-Gonnard
3ce3bbdc00
Add support for ECDHE_PSK key exchange
2013-10-11 18:16:35 +02:00
Paul Bakker
b887f1119e
Removed return from error_strerror()
2013-10-11 15:24:31 +02:00
Paul Bakker
beccd9f226
Explicit void pointer cast for buggy MS compiler
2013-10-11 15:20:27 +02:00
Paul Bakker
5191e92ecc
Added missing x509write_crt_set_version()
2013-10-11 10:54:28 +02:00
Paul Bakker
b7c13123de
threading_set_own() renamed to threading_set_alt()
2013-10-11 10:51:32 +02:00
Paul Bakker
4aa40d4f51
Better support for MSVC
2013-10-11 10:49:24 +02:00
Paul Bakker
b799dec4c0
Merged support for Brainpool curves and ciphersuites
2013-10-11 10:05:43 +02:00
Paul Bakker
1677033bc8
TLS compression only allocates working buffer once
2013-10-11 09:59:44 +02:00
Paul Bakker
d61cc3b246
Possible naming collision in dhm_context
2013-10-11 09:38:49 +02:00
Paul Bakker
fcc172138c
Fixed const-correctness issues
2013-10-11 09:38:06 +02:00
Manuel Pégourié-Gonnard
ae102995a7
RSA blinding: lock for a smaller amount of time
2013-10-11 09:19:12 +02:00
Manuel Pégourié-Gonnard
4d89c7e184
RSA blinding: check highly unlikely cases
2013-10-11 09:18:27 +02:00
Manuel Pégourié-Gonnard
971f8b84bb
Fix compile errors with RSA_NO_CRT
2013-10-11 09:18:16 +02:00
Manuel Pégourié-Gonnard
9654fb156f
Fix missing MSVC define
2013-10-11 09:17:14 +02:00
Manuel Pégourié-Gonnard
0cd6f98c0f
Don't special-case a = -3, not worth it
2013-10-10 15:55:39 +02:00
Manuel Pégourié-Gonnard
b8012fca5f
Adjust dependencies
2013-10-10 15:40:49 +02:00
Manuel Pégourié-Gonnard
48ac3db551
Add OIDs for brainpool curves
2013-10-10 15:11:33 +02:00
Manuel Pégourié-Gonnard
0ace4b3154
Use much less variables in ecp_double_jac_gen()
2013-10-10 13:21:48 +02:00
Manuel Pégourié-Gonnard
1c4aa24df1
Add brainpool support for ecp_mul()
2013-10-10 12:56:00 +02:00
Manuel Pégourié-Gonnard
cd7458aafd
Support brainpool curves in ecp_check_pubkey()
2013-10-10 12:56:00 +02:00
Manuel Pégourié-Gonnard
a070ada6d4
Add brainpool curves to ecp_use_kown_dp()
2013-10-10 12:56:00 +02:00
Manuel Pégourié-Gonnard
cec4a53c98
Add domain parameters for Brainpool curves
2013-10-10 12:56:00 +02:00
Manuel Pégourié-Gonnard
8195c1a567
Add identifiers for Brainpool curves
2013-10-10 12:56:00 +02:00
Paul Bakker
c9965dca27
RSA blinding threading support
2013-09-29 15:02:11 +02:00
Paul Bakker
1337affc91
Buffer allocator threading support
2013-09-29 15:02:11 +02:00
Paul Bakker
f4e7dc50ea
entropy_func() threading support
2013-09-29 15:02:07 +02:00
Paul Bakker
1ffefaca1e
Introduced entropy_free()
2013-09-29 15:01:42 +02:00
Paul Bakker
c55988406f
SSL Cache threading support
2013-09-28 15:24:59 +02:00
Paul Bakker
2466d93546
Threading abstraction layer added
2013-09-28 15:00:02 +02:00
Paul Bakker
bf796acf07
Added implementation for memory_buffer_set_verify()
2013-09-28 11:08:44 +02:00
Paul Bakker
caa3af47c0
Handle missing curve extension correctly in ssl_parse_client_hello()
2013-09-28 11:08:43 +02:00
Paul Bakker
f18084a201
Ready for 1.3.0 release
2013-09-26 10:07:09 +02:00
Paul Bakker
ca9c87ed2b
Removed possible cache-timing difference for pad check
2013-09-25 18:52:37 +02:00
Manuel Pégourié-Gonnard
a0fdf8b0a0
Simplify the way default certs are used
2013-09-25 14:05:49 +02:00
Manuel Pégourié-Gonnard
cb99bdb27e
Client: if no cert, send empty cert list
2013-09-25 13:30:56 +02:00
Manuel Pégourié-Gonnard
641de714b6
Use both RSA and ECDSA CA if available
2013-09-25 13:23:33 +02:00
Manuel Pégourié-Gonnard
8372454615
Rework SNI to fix memory issues
2013-09-24 22:30:56 +02:00
Manuel Pégourié-Gonnard
482a2828e4
Offer both EC and RSA in certs.c, RSA first
2013-09-24 21:25:54 +02:00
Manuel Pégourié-Gonnard
4618459fa1
Update EC certificates in certs.c
2013-09-24 21:25:54 +02:00
Manuel Pégourié-Gonnard
705fcca409
Adapt support for SNI to recent changes
2013-09-24 21:25:54 +02:00
Manuel Pégourié-Gonnard
d09453c88c
Check our ECDSA cert(s) against supported curves
2013-09-24 21:25:53 +02:00
Manuel Pégourié-Gonnard
f24b4a7316
Interface change in ECP info functions
...
ecp_named_curve_from_grp_id() -> ecp_curve_info_from_grp_id()
ecp_grp_id_from_named_curve() -> ecp_curve_info_from_tls_id()
2013-09-24 21:25:53 +02:00
Manuel Pégourié-Gonnard
f71e587c5e
Fix memory leak in ssl cipher usage
2013-09-24 21:25:53 +02:00
Manuel Pégourié-Gonnard
3ebb2cdb52
Add support for multiple server certificates
2013-09-24 21:25:53 +02:00
Manuel Pégourié-Gonnard
834ea8587f
Change internal structs for multi-cert support
2013-09-24 21:25:53 +02:00
Manuel Pégourié-Gonnard
cbf3ef3861
RSA and ECDSA key exchanges don't depend on CRL
2013-09-24 21:25:53 +02:00
Manuel Pégourié-Gonnard
164d894b9a
Fix: session start time wasn't set server side
2013-09-23 23:00:50 +02:00
Paul Bakker
3cf63edc44
Typo in Windows error code in x509_crt.c
2013-09-23 15:10:16 +02:00
Paul Bakker
c27c4e2efb
Support faulty X509 v1 certificates with extensions
...
(POLARSSL_X509_ALLOW_EXTENSIONS_NON_V3)
2013-09-23 15:01:36 +02:00
Manuel Pégourié-Gonnard
fe28646f72
Fix references to x509parse in config.h
2013-09-20 16:51:13 +02:00
Manuel Pégourié-Gonnard
1a483833b3
SSL_TLS doesn't depend on PK any more
...
(But PK does depend on RSA or ECP.)
2013-09-20 12:29:15 +02:00
Manuel Pégourié-Gonnard
34ced2dffe
Fix mis-sized buffer
...
Reported by rgacogne on twitter.
Also spotted by gcc-4.8 with -O2
2013-09-20 11:37:39 +02:00
Manuel Pégourié-Gonnard
a7496f00ff
Fix a few more warnings in small configurations
2013-09-20 11:29:59 +02:00
Manuel Pégourié-Gonnard
4fee79b885
Fix some more depend issues
2013-09-20 10:58:59 +02:00
Manuel Pégourié-Gonnard
387a211fad
Fix some dependencies in tests
2013-09-20 10:58:59 +02:00
Manuel Pégourié-Gonnard
1032c1d3ec
Fix some dependencies and warnings in small config
2013-09-19 10:49:00 +02:00
Paul Bakker
5ad403f5b5
Prepared for 1.3.0 RC0
2013-09-18 21:21:30 +02:00
Paul Bakker
6db455e6e3
PSK callback added to SSL server
2013-09-18 21:14:58 +02:00
Manuel Pégourié-Gonnard
ff29f9c825
Compute public key if absent when reading EC key
2013-09-18 16:13:02 +02:00
Manuel Pégourié-Gonnard
da179e4870
Add ecp_curve_list(), hide ecp_supported_curves
2013-09-18 15:37:44 +02:00
Manuel Pégourié-Gonnard
dace82f805
Refactor cipher information management
2013-09-18 15:37:44 +02:00
Manuel Pégourié-Gonnard
a310459f5c
Fix a few things that broke with RSA compiled out
2013-09-18 15:37:44 +02:00
Manuel Pégourié-Gonnard
161ef968db
Cache pre-computed points for ecp_mul()
...
Up to 1.25 speedup on ECDSA sign for small curves, but mainly useful as a
preparation for fixed-point mult (a few prototypes changed in constness).
2013-09-18 15:37:44 +02:00
Manuel Pégourié-Gonnard
56cd319f0e
Add human-friendly name in ecp_curve_info
2013-09-18 15:37:44 +02:00
Manuel Pégourié-Gonnard
a79d123a55
Make ecp_supported_curves constant
2013-09-18 14:35:57 +02:00
Manuel Pégourié-Gonnard
51451f8d26
Replace EC flag with ssl_ciphersuite_uses_ec()
2013-09-18 14:35:56 +02:00
Manuel Pégourié-Gonnard
15d5de1969
Simplify usage of DHM blinding
2013-09-18 14:35:55 +02:00
Manuel Pégourié-Gonnard
c83e418149
Prepare for ECDH point blinding just in case
2013-09-18 14:35:54 +02:00
Manuel Pégourié-Gonnard
c972770f78
Prepare ecp_group for future extensions
2013-09-18 14:35:53 +02:00
Manuel Pégourié-Gonnard
456d3b9b0b
Make ECP error codes more specific
2013-09-18 14:35:53 +02:00
Manuel Pégourié-Gonnard
568c9cf878
Add ecp_supported_curves and simplify some code
2013-09-18 14:34:34 +02:00
Manuel Pégourié-Gonnard
7038039f2e
Dissociate TLS and internal EC curve identifiers
...
Allows to add new curves before they get a TLS number
2013-09-18 14:34:34 +02:00
Manuel Pégourié-Gonnard
a97c015f89
Rm useless/wrong DHM lenght test
2013-09-18 14:34:33 +02:00
Manuel Pégourié-Gonnard
4cf0686d6d
Remove spurious '+ 3' in ecdsa_write_signature()
2013-09-18 14:34:33 +02:00
Manuel Pégourié-Gonnard
dd0f57f186
Check key size in cipher_setkey()
2013-09-18 14:34:32 +02:00
Paul Bakker
b6b0956631
Rm of memset instead of x509_crt_init()
2013-09-18 14:32:52 +02:00
Paul Bakker
c559c7a680
Renamed x509_cert structure to x509_crt for consistency
2013-09-18 14:32:52 +02:00
Paul Bakker
9556d3d650
Renamed x509_crt_write.c and x509_csr_write.c
2013-09-18 13:50:13 +02:00
Paul Bakker
ddf26b4e38
Renamed x509parse_* functions to new form
...
e.g. x509parse_crtfile -> x509_crt_parse_file
2013-09-18 13:46:23 +02:00
Paul Bakker
369d2eb2a2
Introduced x509_crt_init(), x509_crl_init() and x509_csr_init()
2013-09-18 12:01:43 +02:00
Paul Bakker
86d0c1949e
Generalized function names of x509 functions not parse-specific
...
x509parse_serial_gets -> x509_serial_gets
x509parse_dn_gets -> x509_dn_gets
x509parse_time_expired -> x509_time_expired
2013-09-18 12:01:42 +02:00
Paul Bakker
5187656211
Renamed X509 / X509WRITE error codes to generic (non-cert-specific)
2013-09-17 14:36:05 +02:00
Paul Bakker
36713e8ed9
Fixed bunch of X509_PARSE related defines / dependencies
2013-09-17 13:25:29 +02:00
Paul Bakker
e9e6ae338b
Moved x509_self_test() from x509_crt.c to x509.c and fixed mem-free bug
2013-09-16 22:55:51 +02:00
Paul Bakker
da7711594e
Changed pk_parse_get_pubkey() to pk_parse_subpubkey()
2013-09-16 22:45:03 +02:00
Paul Bakker
d1a983fe77
Removed x509parse key functions and moved them to compat-1.2.h
2013-09-16 22:26:53 +02:00
Paul Bakker
7c6b2c320e
Split up X509 files into smaller modules
2013-09-16 21:41:54 +02:00
Paul Bakker
cff6842b39
POLARSSL_PEM_C split into POLARSSL_PEM_PARSE_C and POLARSSL_PEM_WRITE_C
2013-09-16 13:36:18 +02:00
Paul Bakker
77e23fb0e0
Move *_pemify() function to PEM module
2013-09-15 20:03:26 +02:00
Paul Bakker
40ce79f1e6
Moved DHM parsing from X509 module to DHM module
2013-09-15 17:43:54 +02:00
Paul Bakker
3e41fe8938
Remove printf when RSA selftest is skipped
2013-09-15 17:42:50 +02:00
Paul Bakker
dce7fdcbc9
Fixed warnings in case POLARSSL_PEM_C is not defined
2013-09-15 17:15:26 +02:00