| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
This reverts commit d2d20a83778b7c363322997332bf1ff5deef92d5.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
This reverts commit aad933e5077b2c73e1f05d7314e442531a562bcf, reversing
changes made to 60ee731408facdc8e3dfc000fdee2f1291fad664.
|
| |\
| |
| | |
Add set_certificate_chain_file()
|
| | |
| |
| |
| |
| |
| |
| |
| | |
SSL_CTX_use_certificate_chain_file() is preferred over
SSL_CTX_use_certificate_file().
It allows the use of complete certificate chains instead of loading
only the first certificate in a PEM file.
|
| |\ \
| |/
|/| |
AES CFB-mode feature
|
| | | |
|
| |\ \
| | |
| | | |
Fix build on LibreSSL.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
LibreSSL has deprecated SSLv3_method, so this commit makes that a compile-time
feature.
It also removes a test referencing SSL_OP_CISCO_ANYCONNECT, as the LibreSSL
header says it is amongst "Obsolete flags kept for compatibility. No sane code
should use them."
|
| |\ \ \
| |_|/
|/| | |
Add public key PEM read function.
|
| | | | |
|
| | |/
|/| |
|
| |/
|
|
|
|
|
| |
In OpenSSL world, the SSLv23 option is a poorly name method that will
negotiate what version of TLS or SSL to use. It starts with the best
version the library supports and then precedes to keep trying all the
way down to SSL 2.0.
|
| | |
|
| |
|
|
|
| |
This sets automatic curve selection and enables ECDH support.
Requires LibreSSL or OpenSSL >= 1.0.2, so behind a feature gate.
|
| |
|
|
|
|
|
| |
This abolishes the test.sh script which spawns a bunch of `openssl` instances to
instead run/manage the binary in-process (providing more isolation to boot). The
tests have been updated accordingly and the `connected_socket` dependency was
also dropped in favor of `net2` as it the former doesn't work on Windows.
|
| |\
| |
| | |
ssl/npn+alpn: adjust protocol selection to fail if no protocols match
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The current behavior causes a server written using rust-openssl to (if
it cannot negotiate a protocol) fallback to the first protocol it has
avaliable.
This makes it impossible to detect protocol mismatches.
This updates our selection to be more similar to how openssl's
s_server behaves: non-matching protocols are not supplied with a
fallback.
Note that some setups may actually want a fallback protocol supplied
via ALPN. To support those cases, we should consider adding a generic
callback that allows protocol selection to be entirely controlled by
the programmer.
For the purposes of having a sane default, however, not supplying a
default (and mimicing s_server's behavior) is the best choice.
|
| | | |
|
| |\ \
| | |
| | | |
Use try_ssl_null!() when relevant
|
| | | | |
|
| |/ / |
|
| |\ \
| | |
| | | |
Check if public/private RSA key is properly loaded
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | | |
RSA_size will cause an segmentation fault if it is null
|
| | |/ |
|
| |/ |
|
| |\
| |
| | |
Add support for DHE for forward secrecy
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
rust-openssl didn't support forward secrecy at all.
This adds support for DHE, by exposing set_tmp_dh() as well as the RFC5114
parameters, which are conveniently exposed since OpenSSL 1.0.2.
With OpenSSL >= 1.0.2, and the rfc5114 feature gate, enabling DHE is as simple
as (here for 2048-bit MODP group with 256-bit prime order subgroup):
use openssl::dh::DH;
let dh = DH::get_2048_256().unwrap();
ctx.set_tmp_dh(dh).unwrap();
With OpenSSL < 1.0.2, DH::from_params() can be used to manually specify the
DH parameters (here for 2048-bit MODP group with 256-bit prime order subgroup):
use openssl::bn::BigNum;
use openssl::dh::DH;
let p = BigNum::from_hex_str("87A8E61DB4B6663CFFBBD19C651959998CEEF608660DD0F25D2CEED4435E3B00E00DF8F1D61957D4FAF7DF4561B2AA3016C3D91134096FAA3BF4296D830E9A7C209E0C6497517ABD5A8A9D306BCF67ED91F9E6725B4758C022E0B1EF4275BF7B6C5BFC11D45F9088B941F54EB1E59BB8BC39A0BF12307F5C4FDB70C581B23F76B63ACAE1CAA6B7902D52526735488A0EF13C6D9A51BFA4AB3AD8347796524D8EF6A167B5A41825D967E144E5140564251CCACB83E6B486F6B3CA3F7971506026C0B857F689962856DED4010ABD0BE621C3A3960A54E710C375F26375D7014103A4B54330C198AF126116D2276E11715F693877FAD7EF09CADB094AE91E1A1597").unwrap();
let g = BigNum::from_hex_str("3FB32C9B73134D0B2E77506660EDBD484CA7B18F21EF205407F4793A1A0BA12510DBC15077BE463FFF4FED4AAC0BB555BE3A6C1B0C6B47B1BC3773BF7E8C6F62901228F8C28CBB18A55AE31341000A650196F931C77A57F2DDF463E5E9EC144B777DE62AAAB8A8628AC376D282D6ED3864E67982428EBC831D14348F6F2F9193B5045AF2767164E1DFC967C1FB3F2E55A4BD1BFFE83B9C80D052B985D182EA0ADB2A3B7313D3FE14C8484B1E052588B9B7D2BBD2DF016199ECD06E1557CD0915B3353BBB64E0EC377FD028370DF92B52C7891428CDC67EB6184B523D1DB246C32F63078490F00EF8D647D148D47954515E2327CFEF98C582664B4C0F6CC41659").unwrap();
let q = BigNum::from_hex_str("8CF83642A709A097B447997640129DA299B1A47D1EB3750BA308B0FE64F5FBD3").unwrap();
let dh = DH::from_params(p, g, q).unwrap();
ctx.set_tmp_dh(dh).unwrap();
|
| |/ |
|
| |\
| |
| | |
Expose EVP_BytesToKey
|
| | |
| |
| |
| |
| | |
This is based on work by pyrho.
Closes #88
|
| |\ \
| | |
| | | |
Add get_state_string()
|
| | | | |
|
| |\ \ \
| |/ /
|/| | |
Implement certificate extensions for certificate requests
|
| | | | |
|
| | | | |
|
| | |/
|/| |
|
| |\ \
| | |
| | | |
Fix probelms with DTLS when no packets are pending.
|
| | |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When using DTLS you might run into the situation where no packets
are pending, so SSL_read returns len=0. On a TLS connection this
means that the connection was closed, but on DTLS it does not
(a DTLS connection cannot be closed in the usual sense).
This commit fixes a bug introduced by c8d23f3.
Conflicts:
openssl/src/ssl/mod.rs
|
| |\ \
| | |
| | | |
Added AES CTR-mode under feature flag.
|
| | |/ |
|
| | | |
|
| |/ |
|