Commit Graph

1091 Commits

Author SHA1 Message Date
Steven Fackler 7c33346960 Remove version-specific features
Closes #852
2018-03-19 00:41:33 -07:00
Steven Fackler cf658e4c5c
Merge pull request #875 from Ralith/hash-extras
Expose cipher digests and digest sizes
2018-03-16 22:00:59 -07:00
Benjamin Saunders 09b1fe9a0d Expose additional cipher and digest accessors 2018-03-16 20:33:23 -07:00
Steven Fackler 66a2ad76b7
Merge pull request #874 from rohit-lshift/priv-key-from-num
Added a function to create a EcKey<Private> from its parts
2018-03-13 21:50:17 -07:00
Rohit Aggarwal e3a657d22b Change function name to be similar to RSA one 2018-03-13 08:57:35 +00:00
Steven Fackler 9452c01672
Merge pull request #864 from mlen/aes-ccm-bindings
Implement AES-{128,256}-CCM bindings
2018-03-11 16:30:37 -07:00
Steven Fackler 170adae336
Merge pull request #873 from sfackler/tweaks
Add a Sync + Send bound to the custom ext type
2018-03-11 16:10:54 -07:00
Steven Fackler 7edecbd3a8
Merge pull request #872 from sfackler/tweaks
Some ECDSA fixes/tweaks
2018-03-11 15:37:28 -07:00
Steven Fackler 9f5ef88880 Add a Sync + Send bound to the custom ext type
It's stored inside of the Ssl, so this is probably tecnically
necessarly?
2018-03-11 15:36:47 -07:00
Steven Fackler d0329473bd
Merge branch 'master' into custom-extensions 2018-03-11 15:27:28 -07:00
Steven Fackler c9ef7f3cd5 Some ECDSA fixes/tweaks 2018-03-11 15:23:23 -07:00
Steven Fackler 1b830c3fb7
Merge pull request #863 from rohit-lshift/master
Exposed some of ECDSA functions
2018-03-11 15:08:16 -07:00
Steven Fackler 4ee7e0d3a9 Tweak verify_cert's signature
The call can fail either due to an invalid cert or an internal error,
and we should distinguish between the two.
2018-03-11 14:08:34 -07:00
Mateusz Lenik cefad46cf5 fixup! Implement AES-{128,256}-CCM bindings 2018-03-11 22:04:01 +01:00
Steven Fackler 00359a1a55
Merge pull request #861 from bkchr/verify_certificate
Implements `X509_verify_cert`
2018-03-11 13:37:21 -07:00
Steven Fackler 40e59db37c Rename Oid to Id 2018-03-11 13:29:01 -07:00
Bastian Köcher d7a7c379a8 Changes `init` to take a closure which is called with the initialized context
After calling the closure, we automatically cleanup the context. This is
required, because otherwise we could have dangling references in the context.
2018-03-11 11:34:36 +01:00
Rohit Aggarwal c0a4bc4202
Revert previous commit 2018-03-11 07:41:22 +00:00
Benjamin Saunders e02dbde2f7 Generic custom extension add fn return type 2018-03-10 22:30:54 -08:00
Steven Fackler eb5fda588f
Merge pull request #862 from bkchr/sign_verifier
Adds new functions for Verifier/Signer
2018-03-10 16:42:33 -08:00
Steven Fackler 562fe79f4c Add one more set of impls 2018-03-10 08:53:46 -08:00
Rohit Aggarwal bc304565e7
Arguments should be BigNumRef and not BigNum 2018-03-10 16:29:54 +00:00
Steven Fackler 245f5f3a11 Impl Sync and Send for various types
Closes #865
2018-03-09 22:14:50 -08:00
Benjamin Saunders b0bc1c770e High-level API for OpenSSL 1.1.1 custom extension support 2018-03-09 20:33:49 -08:00
Bastian Köcher 7fe3fabf24 Switches to new type wrapper for RsaPssSaltlen 2018-03-10 00:27:15 +01:00
Bastian Köcher a5d7f8a718 Moves store context init into its own function 2018-03-10 00:15:03 +01:00
Rohit Aggarwal e655b561a7 Added a function to create a EC<Key> from its parts 2018-03-09 15:58:56 +00:00
Rohit Aggarwal 7ab650098c Remove unneeded paramter 2018-03-09 10:39:58 +00:00
Mateusz Lenik 4866e9ff8a fixup! Implement AES-{128,256}-CCM bindings 2018-03-08 21:57:39 +01:00
Rohit Aggarwal 8461129456 Changes as per PR feedback 2018-03-08 17:42:15 +00:00
Rohit Aggarwal 9e2755abae Get curves for OpenSSL tests itself 2018-03-08 17:10:09 +00:00
Rohit Aggarwal 0a38b5a9ef Try out another curve 2018-03-08 16:56:40 +00:00
Rohit Aggarwal 4b4d312018 Another try at using the correct curve 2018-03-08 16:46:31 +00:00
Mateusz Lenik dcbb45cc9d Implement AES-{128,256}-CCM bindings 2018-03-08 17:24:55 +01:00
Rohit Aggarwal d4de2a408f Use examples listed in OpenSSL docs for testing 2018-03-08 16:12:35 +00:00
Bastian Köcher a5ba1a0007 Adds `RsaPssSaltlen` enum to encode the special values 2018-03-08 16:17:32 +01:00
Bastian Köcher b0ea53184d Switches to newtype wrapper for Oid 2018-03-08 12:24:37 +01:00
Bastian Köcher 1a0b085377 Extends the test to verify the certificate two times 2018-03-08 12:10:29 +01:00
Bastian Köcher 810ddeb4ca Moves `cleanup` into its own function 2018-03-08 12:08:39 +01:00
Rohit Aggarwal 2d6cd9eb16 Exposed some of ECDSA functions 2018-03-08 09:44:05 +00:00
Bastian Köcher 724dd6f830 Adds more functions to `Verifier`/`Signer` for RSA keys 2018-03-07 20:43:28 +01:00
Bastian Köcher 84a5ce7607 Adds RSA PKCS1 PSS padding 2018-03-07 20:43:12 +01:00
Bastian Köcher 9a8a1c752b Adds `PKeyRef::get_id` to get the OID of a key 2018-03-07 18:42:13 +01:00
Bastian Köcher 888f4ccaab Fixes the implementation of `X509StoreContextRef::verify_cert`
The certificate, the store and the certificates chain does not need to be
consumed by `verify_cert` and instead are taken as references. We also call
`X509_STORE_CTX_cleanup`, after the verification succeeded.
2018-03-07 16:07:57 +01:00
Benjamin Fry 53adf0e6a4 delay return until after forgets 2018-03-07 13:54:35 +01:00
Benjamin Fry 6abac82f13 cleanup and add negative test 2018-03-07 13:54:35 +01:00
Benjamin Fry a1cfde765a add cleanup ffi to store context 2018-03-07 13:54:15 +01:00
Benjamin Fry 3187366cc5 restructure to self contained function 2018-03-07 13:53:29 +01:00
Steven Fackler 2251a6f2b6 Little tweaks 2018-03-07 13:51:58 +01:00
Benjamin Fry d8a11973e2 convert to raw pass-through methods 2018-03-07 13:51:58 +01:00
Benjamin Fry 910386027d add comment about consuming self in verify_cert 2018-03-07 13:50:12 +01:00
Benjamin Fry 35cad33d51 fix error check 2018-03-07 13:50:12 +01:00
Benjamin Fry 847fac25f8 properly version library functions 2018-03-07 13:48:09 +01:00
Benjamin Fry 3595ff9e51 Fix memory mgmt 2018-03-07 13:42:39 +01:00
Benjamin Fry eb6296e892 add verify_cert and store_context_builder 2018-03-07 13:41:44 +01:00
Steven Fackler f645165ee2 Remove the x509 module-level example
The example generated a bogus certificate that was missing a serial
number, a validity range, etc.

Generating a correct x509 certificate is complex enough that doing it
correctly is too long to be a reasonable doc example. There's already
a more complete example in the examples directory that handles things
more correctly.

Closes #859
2018-03-05 19:25:01 -08:00
Benjamin Saunders f92de22b8d Add SslOptions::ENABLE_MIDDLEBOX_COMPAT 2018-03-03 14:57:38 -08:00
Steven Fackler 85d8db21d2 Always include something in ErrorStack's Display
The error stack can be empty after a some kinds of errors (AEAD
validation failure in Crypter is one example), and we don't want to
display as an empty string in that case.
2018-02-27 15:56:23 -08:00
Steven Fackler b7ba577339 Add min/max protocol version support 2018-02-25 23:20:10 -08:00
Steven Fackler d5dd6575c1 Restore error stack in cookie callback 2018-02-25 22:11:08 -08:00
Benjamin Saunders e04dbfa3ee Expose cookie generate/verify callback setters 2018-02-25 20:05:15 -08:00
Steven Fackler cebfbd9a25
Merge pull request #850 from sfackler/put-error
Add the ability to push errors back onto the error stack.
2018-02-24 20:58:07 -08:00
Steven Fackler 5fd23d38d5 Add the ability to push errors back onto the error stack. 2018-02-24 20:46:03 -08:00
Steven Fackler f72f35e9bd Add RFC 5705 support 2018-02-23 22:04:57 -08:00
Steven Fackler 7e0591a377 Actually add version stuff 2018-02-21 23:25:28 -08:00
Steven Fackler 950c39c2e6
Merge pull request #840 from olehermanse/master
Add des_ede3_cbc cipher and more tests/examples
2018-02-21 23:03:33 -08:00
Steven Fackler 15048f4c02 Inline connector constants 2018-02-21 19:41:06 -08:00
Steven Fackler 6977e9e89f Don't special case 1.0.1
It appears that 1.0.1's defaults are actually okay.
2018-02-21 18:44:04 -08:00
Ole Herman Schumacher Elgesem 7e02c09861
Added example/test in symm.rs for encrypting a private key with a symmetric cipher
Signed-off-by: Ole Herman Schumacher Elgesem <oleherman93@gmail.com>
2018-02-21 13:16:04 +01:00
Steven Fackler 7192a5291f Update SslConnector cipher list
Based off of python/cpython#3532, we use OpenSSL's default cipher list
and turn of things we don't like. This can't be used with 1.0.1,
however, which had a poor default set. There, we use the old defaults,
with the bits that aren't implemented in 1.0.1 removed (namely TLSv1.3
suites and ChaCha).
2018-02-20 22:27:54 -08:00
Steven Fackler 2daaf3fdea Add some debugging-related bindings 2018-02-17 17:49:49 -08:00
Steven Fackler 90d5f85511 Add SSL_version binding 2018-02-17 13:44:21 -08:00
Steven Fackler 3f5e3f095e Fix session cloning 2018-02-17 10:12:47 -08:00
Steven Fackler e5123d266b Bind remove and get session callbacks 2018-02-16 22:24:34 -08:00
Steven Fackler 4dffa0c33f SSL session callbacks have always been around 2018-02-16 21:31:09 -08:00
nyradr 8abc51c2b3 Fix symm decrypt documentation example 2018-02-16 11:59:47 +01:00
Steven Fackler af4832e145 Doc tweak 2018-02-15 21:33:39 -08:00
Steven Fackler a9d8bea33c Add more session cache support 2018-02-15 21:30:20 -08:00
Ole Herman Schumacher Elgesem cc34a7149e
Add des_ede3_cbc cipher
Signed-off-by: Ole Herman Schumacher Elgesem <oleherman93@gmail.com>
2018-02-15 17:44:44 +01:00
Steven Fackler f4ddd66b03 Tweak features
We should keep the version features totally separate for now.
2018-02-14 22:11:24 -08:00
Steven Fackler e8fd63bae3 Fix tests for TLS 1.3
Google yells at you when using TLS 1.3 without SNI by sending a bogus
self-signed cert!
2018-02-14 19:36:11 -08:00
Ole Herman Schumacher Elgesem eb24a2157a
More tests for pem_pkcs1 methods
Signed-off-by: Ole Herman Schumacher Elgesem <oleherman93@gmail.com>
2018-02-15 03:02:58 +01:00
Steven Fackler 2765775535 OpenSSL 1.1.1 support 2018-02-13 22:31:37 -08:00
Ole Herman Schumacher Elgesem 041d473c0a
Added binding for PEM_read_bio_RSAPublicKey
Signed-off-by: Ole Herman Schumacher Elgesem <oleherman93@gmail.com>
2018-02-14 02:08:01 +01:00
Steven Fackler b1ab0ec473 Don't leak X509s 2018-02-12 09:32:26 -08:00
Steven Fackler 2fd79b525e
Merge pull request #831 from apeduru/rsa-docs
Add RSA docs
2018-02-11 20:56:37 -08:00
Ansley Peduru a686ed7891 Use Padding constant in RSA docs example 2018-02-10 23:36:05 -05:00
Steven Fackler fda5e50638
Merge pull request #833 from CmdrMoozy/des_ede3
Support EVP_des_ede3.
2018-02-04 17:36:31 -08:00
Axel Rasmussen 404bbeddfd
Support EVP_des_ede3.
This cipher is used, for example, for DES challenges for authenticating
against a Yubikey, so supporting it in rust-openssl is generally useful.
2018-02-04 13:17:09 -08:00
Ansley Peduru c9fed802b3 Add RSA docs 2018-01-25 14:46:45 -05:00
Steven Fackler a6499d44bb
Merge pull request #824 from apeduru/pkey-docs
Add PKey docs
2018-01-24 11:00:07 -08:00
Ansley Peduru d3169a565e Add HMAC to Pkey docs 2018-01-24 09:53:28 -05:00
Stepan Koltsov 81f7d17822 tests: if server failed to start, print exit code instead of timing out
```
% cargo +stable test --lib ssl::test::test_connect_with_alpn_successful_single_match --features=v102
    Finished dev [unoptimized + debuginfo] target(s) in 0.0 secs
     Running /Users/nga/devel/left/rust-openssl/target/debug/deps/openssl-a38e12a3527f6932

running 1 test
test ssl::test::test_connect_with_alpn_successful_single_match ... FAILED

failures:

---- ssl::test::test_connect_with_alpn_successful_single_match stdout ----
	thread 'ssl::test::test_connect_with_alpn_successful_single_match' panicked at 'server exited: exit code: 1', src/ssl/test.rs:91:24
note: Run with `RUST_BACKTRACE=1` for a backtrace.


failures:
    ssl::test::test_connect_with_alpn_successful_single_match

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 159 filtered out
```
2018-01-24 00:27:13 -08:00
Ansley Peduru 6552a9cbfd Print the public key in PKey example 2018-01-23 22:43:53 -05:00
Ian P. Cooke 60337266ab add support for rfc822Name (email) and uniformResourceIdentifier (uri) to GeneralName 2018-01-15 11:22:29 -06:00
Steven Fackler 692562470b Add setters to ConnectConfiguration 2018-01-11 17:24:38 -08:00
Steven Fackler be1e787ce6 Add from conversion
This is needed for tokio-openssl
2018-01-10 22:26:32 -08:00
Steven Fackler d85e2a2937 Release openssl 0.10.0 2018-01-10 22:08:11 -08:00
Ansley Peduru b9eace6569 Fix import in pkey docs 2018-01-07 14:17:03 -05:00
Ansley Peduru 33ec3a5784 Missing colon 2018-01-07 14:15:17 -05:00