Steven Fackler
c776534ad4
Clean up stack
2016-11-01 19:25:40 -07:00
Steven Fackler
79c51d5e51
Clean up stack destructor
2016-11-01 19:12:38 -07:00
Steven Fackler
77b76ed8a8
Merge pull request #506 from simias/stack
...
Implemented a generic Stack API and use it to deal with StackOf(X509) and StackOf(GENERAL_NAME)
2016-11-01 18:59:35 -07:00
Lionel Flandrin
8d0090faec
Implement X509StoreContextRef::get_chain
2016-11-01 21:23:18 +01:00
Lionel Flandrin
36bf0bb387
Replace GeneralNames by the new Stack API
2016-11-01 21:23:18 +01:00
Lionel Flandrin
3bdefa987a
Implement a generic Stack API to deal with OpenSSL stacks
2016-11-01 21:23:13 +01:00
Lionel Flandrin
9ea27c12b9
Add method to encode a public key as a DER blob
2016-11-01 17:34:21 +01:00
Steven Fackler
43911db26c
Avoid extra allocations in Asn1Time Display impl
2016-10-31 23:09:07 -07:00
Steven Fackler
dd4836cdf6
Fix 1.1.0 build
2016-10-31 23:06:27 -07:00
Steven Fackler
f71395c600
Little cfg cleanup
2016-10-31 22:45:51 -07:00
Steven Fackler
dc4098bdd8
Clean up x509 name entries
2016-10-31 22:43:05 -07:00
Steven Fackler
ab30ad0ce7
Documentation
2016-10-31 21:00:26 -07:00
Steven Fackler
96a77cf5a8
Remove Opaque
2016-10-31 20:56:51 -07:00
Steven Fackler
cd7fa9fca2
Update x509
2016-10-31 20:54:34 -07:00
Steven Fackler
ff12d37aef
Update ssl
2016-10-31 20:32:55 -07:00
Steven Fackler
16e398e005
Update verify
2016-10-31 20:19:59 -07:00
Steven Fackler
e9d78181c3
Update Rsa
2016-10-31 20:15:12 -07:00
Steven Fackler
f640613863
Update PKey
2016-10-31 20:12:55 -07:00
Steven Fackler
d6579ab058
Update EcKey
2016-10-31 20:06:06 -07:00
Steven Fackler
fe5fb75d45
Update Dsa
2016-10-31 20:04:55 -07:00
Steven Fackler
28f375974a
Convert Dh
2016-10-31 20:02:24 -07:00
Steven Fackler
849fca4a7b
Convert Asn1Time
2016-10-31 20:02:24 -07:00
Steven Fackler
3363046c34
Update bignum
2016-10-31 20:02:24 -07:00
Steven Fackler
927c3e924c
Add a generic Ref type
2016-10-31 20:02:24 -07:00
Steven Fackler
006da59285
Return an SslRef
2016-10-30 22:42:32 -07:00
Steven Fackler
558124b755
Expose SSL_MODEs
2016-10-30 22:02:26 -07:00
Steven Fackler
e0211dac30
Rename set_CA_file
2016-10-30 21:39:26 -07:00
Steven Fackler
5b0fc9a185
Impl Sync and Send for SslContextBuilder
2016-10-30 20:34:35 -07:00
Steven Fackler
add8e4023e
Rename connectors
2016-10-30 19:39:18 -07:00
Steven Fackler
997e92e052
Merge ssl option setup
...
The client will ignore server-side options so we may as well stick them
all in the same spot.
2016-10-30 18:49:29 -07:00
Steven Fackler
bd457dba18
Move HandshakeError to submodule
2016-10-30 17:23:03 -07:00
Steven Fackler
287f6df6c6
Remove DsaParams
2016-10-30 17:04:55 -07:00
Steven Fackler
610403a562
Add RsaRef
2016-10-30 17:00:54 -07:00
Steven Fackler
c3b6eff191
Add DsaRef
2016-10-30 16:44:21 -07:00
Steven Fackler
f75f82e466
Rustfmt
2016-10-30 16:37:45 -07:00
Steven Fackler
7869651407
Remove out of date comment
2016-10-30 16:34:50 -07:00
Steven Fackler
9abbf6f80e
Use Python's cipher list on the client side.
2016-10-30 16:29:33 -07:00
Steven Fackler
d1179f1ad2
Update docs
2016-10-30 15:14:29 -07:00
Steven Fackler
52f288e090
Add a mozilla modern profile
2016-10-30 14:57:22 -07:00
Steven Fackler
7d13176cd1
Rename nwe to mozilla_intermediate
2016-10-30 14:34:05 -07:00
Steven Fackler
43b430e5b0
Pass SslMethod into constructors
2016-10-30 14:26:28 -07:00
Steven Fackler
ee79db61c2
Enable single ECDH use
2016-10-30 13:41:24 -07:00
Steven Fackler
677718f8da
Configure ECDH parameters in connector
2016-10-30 13:38:09 -07:00
Steven Fackler
8c58ecc2fa
Implement EcKey
...
cc #499
2016-10-30 13:17:20 -07:00
Steven Fackler
eb735f519a
Clean up generics a bit
2016-10-30 11:05:29 -07:00
Steven Fackler
23fe1e85e9
Pull Curl's CA list for Windows tests
2016-10-29 18:17:46 -07:00
Steven Fackler
761dd780c1
Add module level docs
2016-10-29 18:04:38 -07:00
Steven Fackler
c89f2c0be0
Use PKeyRef in X509Generator
2016-10-29 16:37:56 -07:00
Steven Fackler
c2b38d8bb3
Move docs
2016-10-29 15:02:36 -07:00
Steven Fackler
85169e5a61
Fix reexport
2016-10-29 15:02:07 -07:00
Steven Fackler
e72533c058
Docs for connectors
2016-10-29 15:00:46 -07:00
Steven Fackler
57d10ebbc3
Add PKeyRef
2016-10-29 14:19:09 -07:00
Steven Fackler
4c7a5a418e
Implement client and server connectors
2016-10-29 14:02:26 -07:00
Steven Fackler
1a288da86c
Make verification unconditionally exposed internally
2016-10-28 22:14:44 -07:00
Steven Fackler
c0cf4ab1c2
Remove private field in ParsedPkcs12
...
The function definition is fixed - nothing else is going to be coming
out of a PKCS#12 archive
2016-10-27 20:33:38 -07:00
Steven Fackler
dafb46fc51
Camel case DH
2016-10-27 20:26:18 -07:00
Steven Fackler
8604668a18
Make padding types consts
2016-10-27 19:56:52 -07:00
Steven Fackler
781417d50f
Add a macro definition
2016-10-27 19:12:55 -07:00
Steven Fackler
8e129af256
Fix description
2016-10-26 22:15:41 -07:00
Steven Fackler
63b1ec1a12
Stop returning an Option from cipher description
2016-10-26 22:13:10 -07:00
Steven Fackler
2234899e59
Fix drop signature
2016-10-26 22:00:33 -07:00
Steven Fackler
548c8b5fba
Remove macros module
2016-10-26 21:55:13 -07:00
Steven Fackler
654f0941e1
Don't double-allocate strings
2016-10-26 21:42:09 -07:00
Steven Fackler
4f59d57675
Move SslString to a shared location
2016-10-26 21:28:00 -07:00
Steven Fackler
ebc4c56c34
Add SslMethod::from_ptr
2016-10-26 20:43:43 -07:00
Steven Fackler
f4b7006771
Don't allow mutation of SslContexts
...
SslContext is reference counted and the various setter methods don't
take out locks where necessary. Fix this by adding a builder for the
context.
2016-10-25 23:12:56 -07:00
Steven Fackler
bea53bb39b
Support AES GCM
...
Closes #326
2016-10-25 20:59:33 -07:00
Steven Fackler
39279455c8
Add a shutdown method
2016-10-25 20:40:18 -07:00
Steven Fackler
eb655bddbc
Fix ordering
2016-10-25 20:01:28 -07:00
Steven Fackler
938fdd7137
Add into_error
2016-10-23 21:54:49 -07:00
Steven Fackler
ca71e00878
Fix Send + Sync-ness of SslStream
2016-10-23 20:55:31 -07:00
Steven Fackler
04fc853ee3
Remove NIDs only defined in 1.0.2+
2016-10-23 09:16:20 -07:00
Steven Fackler
d39a2cedad
Fix tests
2016-10-22 16:01:26 -07:00
Steven Fackler
787cad3c82
Use constants rather than constructors for Nid
2016-10-22 15:58:06 -07:00
Steven Fackler
3c50c74444
Camel case Rsa
2016-10-22 10:21:16 -07:00
Steven Fackler
b619c4e885
Camel case Dsa
2016-10-22 10:16:49 -07:00
Steven Fackler
2fd201d9c3
De-enumify Nid
2016-10-22 10:08:32 -07:00
Steven Fackler
ae72cbd28b
Fix hasher docs
2016-10-22 09:17:41 -07:00
Steven Fackler
98b7f2f935
Flatten crypto module
2016-10-22 09:16:38 -07:00
Steven Fackler
58f6d1138a
Properly propagate panics
2016-10-21 21:52:02 -07:00
Steven Fackler
9be0aab9ac
Borrow compression string
2016-10-21 21:46:32 -07:00
Steven Fackler
f1c68e3544
Rename SslContextOptions
2016-10-21 21:22:05 -07:00
Steven Fackler
8ec53eb0e1
Fix X509StoreContext
2016-10-21 20:59:07 -07:00
Steven Fackler
6f1a3f2834
Update BigNumRef
2016-10-21 20:26:53 -07:00
Steven Fackler
02b4385c5d
Convert X509VerifyParamRef
2016-10-21 19:58:06 -07:00
Steven Fackler
f0cde38929
Borrowed servername
2016-10-21 19:54:30 -07:00
Steven Fackler
fcb86b8394
Convert SslCipherRef
2016-10-21 19:45:46 -07:00
Steven Fackler
2bbeddd14a
Convert SslRef
2016-10-21 19:33:56 -07:00
Steven Fackler
fe98a90719
Convert SslContextRef
2016-10-21 19:15:09 -07:00
Steven Fackler
b7017a7eec
Update Asn1TimeRef
2016-10-21 17:13:30 -07:00
Steven Fackler
23fc6c828b
Convert X509Ref
2016-10-21 17:01:13 -07:00
Steven Fackler
b3eb8d516c
Switch X509Name over to new borrow setup
...
The use of actual references enables us to be correct with respect to
mutability without needing two structs for the mutable and immutable
cases and more deref impls.
2016-10-20 22:51:10 -07:00
Steven Fackler
bd0c0c60bd
Store a MidHandshakeSslStream in fatal errors
...
This in particular allows the X509 verification error to be retrieved,
as well as the stream itself.
2016-10-20 20:57:53 -07:00
Steven Fackler
8f3511c0cd
Redo SslStream construction
...
SslStream is now constructed via methods on Ssl. You realistically want
to create an Ssl for SNI and hostname verification so making it harder
to construct a stream directly from an SslContext is a good thing.
2016-10-20 19:59:09 -07:00
Steven Fackler
5ab037f056
Allow the X509 verify error to be read from an SslRef
2016-10-18 22:21:06 -07:00
Steven Fackler
cfd5192a7d
De-enumify X509ValidationError
...
Also make it an Error.
Closes #352 .
2016-10-18 22:10:37 -07:00
Steven Fackler
080050e10d
Drop lifetime on GeneralNames
2016-10-18 21:52:49 -07:00
Steven Fackler
c4459c37d9
Callback cleanup
2016-10-18 21:13:13 -07:00
Steven Fackler
f7e6d7fce6
Don't ignore errors in NPN/ALPN logic
...
Closes #479
2016-10-18 21:12:55 -07:00
Steven Fackler
194298a057
Implement new feature setup
...
The basic idea here is that there is a feature for each supported
OpenSSL version. Enabling multiple features represents support for
multiple OpenSSL versions, but it's then up to you to check which
version you link against (probably by depending on openssl-sys and
making a build script similar to what openssl does).
2016-10-17 21:57:54 -07:00
Steven Fackler
a938a001a7
Fix missing import
2016-10-16 23:26:38 -07:00
Steven Fackler
b7400d56e8
Fix algorithm field
2016-10-16 23:22:00 -07:00
Steven Fackler
68954cfc51
Finish BN overhaul
2016-10-16 23:13:00 -07:00
Steven Fackler
7ec015325b
Finish error overhaul
2016-10-16 21:07:17 -07:00
Steven Fackler
78daed2d58
ssl error handling cleanup
2016-10-16 20:14:04 -07:00
Steven Fackler
89a366d9f7
Finish crypto error cleanup
2016-10-16 19:24:04 -07:00
Steven Fackler
19440c2981
More error cleanup
...
Also allocation free RSA
2016-10-16 19:06:02 -07:00
Steven Fackler
73ccfe7a29
Continue error handling cleanup
...
Also overhaul/clean up pkcs5 internals
2016-10-16 16:42:56 -07:00
Steven Fackler
8f89f0bfa9
Start on error + BN refactor
2016-10-16 15:54:09 -07:00
Steven Fackler
6ea551dc82
Fix set_read_ahead signature
2016-10-15 16:53:10 -07:00
Steven Fackler
4ba5292a0a
De-enumify Padding
2016-10-15 16:19:19 -07:00
Steven Fackler
ee18988584
De-enumify SslMethod
2016-10-15 16:10:03 -07:00
Steven Fackler
1cecaeb62d
De-enumify Cipher
2016-10-15 15:47:40 -07:00
Steven Fackler
c171be551a
De-enumify message digests
2016-10-15 15:23:29 -07:00
Steven Fackler
6609a81685
Migrate DSA sign/verify to EVP APIs
2016-10-15 15:02:02 -07:00
Steven Fackler
228b8fbc5b
Correctly bind BIO_new_mem_buf
2016-10-15 13:39:47 -07:00
Steven Fackler
4ed81d6426
Fix EVP_DigestVerifyFinal version support
2016-10-15 13:12:37 -07:00
Steven Fackler
2ff82649b5
Add examples to crypto::sign
2016-10-15 12:50:03 -07:00
Steven Fackler
ea8cbbe9dc
Fix typo
2016-10-15 12:31:30 -07:00
Steven Fackler
4d567358a1
Distinguish between verification errors and "other" errors.
2016-10-15 12:31:06 -07:00
Steven Fackler
bb23b33829
Fix signature of EVP_DigestVerifyFinal on 1.0.1
2016-10-15 12:24:20 -07:00
Steven Fackler
6ae472487f
Support HMAC PKeys and remove hmac module
2016-10-15 11:06:11 -07:00
Steven Fackler
cce1d44f28
Remove old RSA sign and verify methods
2016-10-15 10:43:19 -07:00
Steven Fackler
f73313d688
Signature and verification support
2016-10-15 10:36:59 -07:00
Steven Fackler
64b8e5e553
Merge pull request #471 from sfackler/no-comp
...
Handle OPENSSL_NO_COMP
2016-10-14 23:09:11 -07:00
Steven Fackler
e1d1006fad
Check feature compatibility in build script
2016-10-14 23:03:44 -07:00
Steven Fackler
984b9a0cc7
Don't run test on ARM
...
They're very segfaulty, but it's almost certainly due to the QEMU layer.
We really just want to make sure things compile.
2016-10-14 22:28:24 -07:00
Steven Fackler
7ac0599638
Fix test_alpn_server_select_none
...
In OpenSSL 1.1, a failure to negotiate a protocol is a fatal error, so
fork that test. This also popped up an issue where we assumed all errors
had library, function, and reason strings which is not necessarily the
case.
While we're in here, adjust the Display impl to match what OpenSSL
prints out.
Closes #465
2016-10-14 22:01:21 -07:00
Steven Fackler
f520aa2860
Handle OPENSSL_NO_COMP
...
Closes #459
2016-10-14 20:50:45 -07:00
Steven Fackler
d976b8f595
Enable hostname verification on 1.0.2
2016-10-14 18:56:15 -07:00
Steven Fackler
af51b263b1
Support hostname verification
...
Closes #206
2016-10-14 17:39:31 -07:00
Steven Fackler
ae282a78e2
Remove link_name usage
2016-10-14 16:15:50 -07:00
Alex Crichton
0908fddc74
Ignore DTLS tests on Windows/ARM for now
...
cc #467
2016-10-14 11:15:22 -07:00
Steven Fackler
f44cff29e6
Cleanup
2016-10-13 22:34:39 -07:00
Steven Fackler
3d535f661f
Use stdlib logic for udp
2016-10-13 20:15:26 -07:00
Steven Fackler
a09f46266d
Fix windows for real
2016-10-13 20:09:43 -07:00
Steven Fackler
5b29fc9d69
Disable npn tests on < 1.0.2
...
s_client doesn't seem to support the required flag before then.
2016-10-13 20:03:02 -07:00
Steven Fackler
140ef1b988
Fix tests on windows
2016-10-13 20:01:31 -07:00
Steven Fackler
143556078b
Reenable dtls tests
2016-10-13 19:48:30 -07:00
Steven Fackler
edfc50f37d
Clean up features
2016-10-13 19:46:13 -07:00
Steven Fackler
1883590c61
Correct feature selection in tests
2016-10-13 19:21:12 -07:00
Steven Fackler
b610e01793
Flag off dtls and mask ssl_ops
...
Also un-feature gate npn as it ships with 1.0.1
2016-10-13 19:06:53 -07:00
Alex Crichton
ce4d233d38
Tweak some comments in Cargo.toml
2016-10-12 22:53:03 -07:00
Alex Crichton
715b700aff
Ignore a test on OpenSSL 1.1.0
2016-10-12 22:51:47 -07:00
Steven Fackler
af3e06d3e8
Add remaining SSL_OP constants
2016-10-12 22:50:08 -07:00
Alex Crichton
43c951f743
Add support for OpenSSL 1.1.0
...
This commit is relatively major refactoring of the `openssl-sys` crate as well
as the `openssl` crate itself. The end goal here was to support OpenSSL 1.1.0,
and lots of other various tweaks happened along the way. The major new features
are:
* OpenSSL 1.1.0 is supported
* OpenSSL 0.9.8 is no longer supported (aka all OSX users by default)
* All FFI bindings are verified with the `ctest` crate (same way as the `libc`
crate)
* CI matrixes are vastly expanded to include 32/64 of all platforms, more
OpenSSL version coverage, as well as ARM coverage on Linux
* The `c_helpers` module is completely removed along with the `gcc` dependency.
* The `openssl-sys` build script was completely rewritten
* Now uses `OPENSSL_DIR` to find the installation, not include/lib env vars.
* Better error messages for mismatched versions.
* Better error messages for failing to find OpenSSL on a platform (more can be
done here)
* Probing of OpenSSL build-time configuration to inform the API of the `*-sys`
crate.
* Many Cargo features have been removed as they're now enabled by default.
As this is a breaking change to both the `openssl` and `openssl-sys` crates this
will necessitate a major version bump of both. There's still a few more API
questions remaining but let's hash that out on a PR!
Closes #452
2016-10-12 22:49:55 -07:00
Steven Fackler
c1e41349fb
Rename NoPadding to None
2016-10-07 08:10:01 -07:00
Steven Fackler
b6719de92e
Rename EncryptionPadding to Padding
2016-10-07 08:09:02 -07:00
Andrei Oprisan
50648b7dac
Removed max_size; removed all encrypt/decrypt methods except private/public encrypt/decrypt which take the padding
2016-10-07 10:01:16 +03:00
Andrei Oprisan
f16cd5586f
added try_ssl_size, which handles -1 as error and returns the value otherwise; added RSA private_decrypt and public encrypt
...
lift_ssl_size
Added public/private encrypt/decrypt to RSA from the original commit + tests; added try_ssl_returns_size macro to check for -1 in case of SSL functions which return size
2016-10-05 14:39:11 +03:00