Commit Graph

563 Commits

Author SHA1 Message Date
Steven Fackler 95a813b646
Merge pull request #1287 from henrydcase/hdc/pke
adding PKE interface
2020-06-05 18:27:57 -04:00
Leo 7d129b6413 Add PEM/DER serialization for EC public key 2020-06-05 18:58:59 +08:00
Kris Kwiatkowski 5be8a5e9f4 adding PKE interface
The patch adds PKE interface functions, namely:
    EVP_PKEY_encrypt_init
    EVP_PKEY_encrypt
    EVP_PKEY_decrypt_init
    EVP_PKEY_decrypt

Additionally it adds functions for getting and
setting public and private key to/from byte array.

	EVP_PKEY_get_raw_public_key
	EVP_PKEY_new_raw_public_key
	EVP_PKEY_get_raw_private_key
	EVP_PKEY_new_raw_private_key

Finally it also adds a function for getting NID
of a scheme by it's name (SN).
2020-06-03 23:46:32 +00:00
Steven Fackler e851708589 Add SslRef::set_mtu 2020-05-25 17:22:24 -07:00
Steven Fackler f401ba2ec1 Run clippy 2020-05-24 16:31:04 -07:00
Steven Fackler 406031991f Run rustfmt on github actions 2020-05-24 10:39:01 -07:00
Henrik Böving f34e9b993d ocb is only available in openssl 1.1 and later 2020-05-09 01:02:34 +02:00
Henrik Böving 963e3994a5 Add support for AES-OCB mode 2020-05-08 23:16:13 +02:00
Steven Fackler 40e66bab6b Add SslContextBuilder::set_cert_store 2020-04-07 17:05:38 -07:00
Steven Fackler 2cbc436b8b
Merge pull request #1248 from coolreader18/ssl-functions
Add functions for SSL{_CTX}_get_verify_mode and SSL_is_init_finished
2020-03-26 20:52:42 -04:00
Steven Fackler ef369f827e
Merge pull request #1249 from coolreader18/more-ssl-method
Add SslMethod::tls_{client,server}
2020-03-25 20:57:23 -04:00
Noah 354a984a7c
Add SslMethod::tls_{client,server} 2020-03-24 21:56:04 -05:00
Noah 1e9cc8426e
Add functions for SSL{_CTX}_get_verify_mode and SSL_is_init_finished 2020-03-24 15:32:39 -05:00
Noah 41162e27ab
Add a shim for X509_STORE_get0_objects and X509_OBJECT_free 2020-03-24 12:33:54 -05:00
Noah 5c6179ce07
Only have constants on < ossl110 2020-03-23 17:04:31 -05:00
Noah 59bff6de85
Skip X509_OBJECT_data systests 2020-03-23 17:04:30 -05:00
Noah dfb3cb9579
Fix signedness issue 2020-03-23 10:17:02 -05:00
Noah 8cfb59b9ea
Add a way to get the certificates stored in an X509Store 2020-03-22 23:20:59 -05:00
Nipunn Koorapati 4898f60e52 Attach cfg[allow_deprecated] to methods w/ uninitialized functionality
Additionally - update usage of ONCE_INIT
2020-02-10 12:53:51 -08:00
Hiroki Noda 9189b67326 Add NO RENEGOTIATION option
SSL_OP_NO_RENEGOTIATION was added in OpenSSLv1.1.1 and backported to
v1.1.0h.
2020-01-28 04:07:38 +09:00
Hiroki Noda 78c1e2409d Add EVP_EncryptInit_ex/EVP_EncryptFinish_ex, and the equivalently named
decrypt functions

Some functions including low level AES functions would be deprecated
in next OpenSSL version(3.0).
OpenSSL team says that application should use the high level EVP APIs,
so I added these functions.

See also:
https://github.com/openssl/openssl/pull/10580
https://github.com/openssl/openssl/pull/10740
2020-01-25 00:49:47 +09:00
Hyeonu Park 4d5e5e1787 add SslStreamBuilder::set_dtls_mtu_size(usize) 2019-12-29 04:17:00 +09:00
oberien 9f4c489588 Use d2i_PKCS8_PRIV_KEY_INFO instead of *_bio 2019-12-04 02:02:33 +01:00
oberien fc529b6c81 Pkey::private_key_from_pkcs8 free p8inf 2019-12-03 03:05:05 +01:00
oberien 4b2d46c252 Fix pointer constness correctly 2019-12-01 03:38:31 +01:00
oberien a042edd134 Change *const to *mut to try if it fixes tests 2019-12-01 03:29:57 +01:00
oberien 4218e121d0 move EVP_PKCS82PKEY into evp module 2019-12-01 03:15:52 +01:00
oberien a7fa260331 Support for PKCS#8 unencrypted private key deserialization 2019-12-01 03:02:01 +01:00
fengyingcai 288b189de0 Add EVP_md_null() and MessageDigest::md_null() 2019-11-22 16:33:15 +08:00
Steven Fackler 56335d12fc
Merge pull request #1183 from adamreichold/base64
Expose OpenSSL interfaces for base64 coding.
2019-11-21 20:04:18 -05:00
Steven Fackler f85d631fcf
Merge pull request #1184 from Atul9/cargo-fmt
Format code using 'cargo fmt'
2019-11-21 20:01:39 -05:00
Steven Fackler 0fb1e55a98 Allow configuration of EC groups and signature algorithms
Closes #1186
2019-11-16 10:54:27 -08:00
Atul Bhosale 784978bad0
Format code using 'cargo fmt' 2019-11-14 21:00:53 +05:30
Adam Reichold bcbebbcace Expose EVP_{Encode,Decode}Block interfaces for base64 coding 2019-11-14 10:06:24 +01:00
Steven Fackler 34c2b69118
Merge pull request #1180 from PrismaPhonic/master
Added clonability for sha hash state.  Useful for incremental hashing
2019-11-11 21:01:19 -05:00
Peter Farr 8fae1115a4 Changed all sha objects to be clonable per PR review suggestion. 2019-11-11 16:31:47 -08:00
Lukas Lihotzki 258c49a581 Add #[cfg(ossl110)] 2019-11-11 23:03:40 +01:00
Lukas Lihotzki 6d6429237d Add EC_GROUP_order_bits 2019-11-11 22:04:14 +01:00
Peter Farr 22f029064a Added clonability for sha hash state. Useful for incremental hashing 2019-11-11 11:09:49 -08:00
Brian Olsen 80e0dd03ba
Add method to create Asn1Time from time_t value
This is mostly just a rework of the earlier work done by @illegalprime
in his PR #673 and credit should go to him.
2019-10-13 23:10:16 +02:00
Brian Olsen 14a6a98ebf
Add diff method and comparisons to Asn1TimeRef
This implements a `diff` method on `Asn1TimeRef` using `ASN1_TIME_diff`
and uses this new method to implement combinations of `PartialEq` and
`PartialOrd` for `Asn1Time` and `Asn1TimeRef`.

This is mostly just a rework of the earlier work done by @illegalprime
in his PR #673 and credit should go to him.
2019-10-13 23:09:12 +02:00
Matt Vertescher b771738a3a Fix rustc warnings
- Use `..=` for inclusive ranges
- Add the `dyn` keyword for trait objects
- Switch from `ONCE_INIT` to `std::sync::Once::new()`
2019-10-08 08:35:35 -04:00
Steven Fackler 7ce0835b74 Implement Clone for PKey 2019-10-01 18:45:10 -07:00
Sebastian Sturm bdede43afe Added support for Ed25519 and Ed448 signatures 2019-08-16 11:15:04 +02:00
Leo 88c5bd81c7 Add AES-192 and OFB mode 2019-07-06 17:11:37 +08:00
Mike Belopuhov aef0517dcf Expose EC_POINT_dup as EcPoint::to_owned 2019-06-19 21:34:48 +02:00
Mike Belopuhov e8fc907da3 Expose EC_GROUP_get_cofactor as EcGroup::cofactor 2019-06-14 16:41:47 +02:00
Mike Belopuhov 390d71f1e5 Expose EC_GROUP_get0_generator as EcGroup::generator 2019-06-13 03:09:45 +02:00
Daniel Abramov fab6ea4727 Conditionally compile PEM functions for CMS
Apparently libressl does not quite support all CMS functions (well, at
least the bindings for CMS are currently compile-time guarded), so CI
checks inside the systest fail during the verification on libressl.
This is an attempt to fix it.
2019-06-12 16:48:16 +02:00
Daniel Abramov 124c05d058 Add `CmsContentInfo` <-> PEM bindings 2019-06-12 10:23:48 +02:00