Commit Graph

115 Commits

Author SHA1 Message Date
Chris Branch 46d482a734 Specify exact versions of dependent crates in the workspace manifest
This is needed for cargo release to update to a release candidate
version successfully; without it, only the major version is bumped,
and cargo prevents you from using a prerelease version if you didn't
specifically request it.
2023-10-26 16:31:07 +01:00
Alexis (Poliorcetics) Bourget f67498cf00 deps: update to bindgen 0.68 2023-10-09 13:25:45 +02:00
Ivan Nikulin 4749c525e4 Update Cargo.toml 2023-09-13 12:38:03 +01:00
Manuel Olguín Muñoz c2cd349132 Release 3.0.5 2023-09-13 12:38:03 +01:00
Paolo Barbolini ed91cce367 Fix -Z minimal-versions 2023-08-30 12:19:04 +01:00
Ivan Nikulin 011d500460 Separate `fips` and `fips-link-precompiled` features.
Make the later compatible with `rpk` feature.
2023-08-30 11:41:20 +01:00
Ivan Nikulin a6e35a46b6 Bump version in Cargo.toml 2023-08-05 14:36:12 +01:00
Ivan Nikulin 55d2731a18 Release 3.0.3 2023-08-05 14:03:58 +01:00
Ivan Nikulin 308f0405bd Release 3.0.2 2023-08-03 13:38:59 +01:00
Anthony Ramine abfe2f7980 Switch boring from lazy_static to once_cell 2023-08-02 12:14:02 +01:00
Ivan Nikulin 33e3d756ff Fix builds for features that require git patches
Previously we were building from the deps directory with submodules. For publishing we were copying files in sumbodules into the package. With this we were making the package directory dirty with build artifacts and applied patches.

This commit change the build script's behaviour: sources are now copied to the output directory and then boringssl is built from there.

In addition, this commit adds files that were missing from the package for building with patches.
2023-08-01 17:33:29 +01:00
Ivan Nikulin 6435c5b8d5 Fix publishing 2023-08-01 11:32:20 +01:00
Ivan Nikulin d1ee9bfd86 Use workspace metadata for crates 2023-07-10 11:38:18 +01:00
Ivan Nikulin c4e8a94a69 Add RPK and PQ crypto features 2023-07-07 13:50:36 +01:00
Frank Denis 05c6a41270 Use bindgen to automatically generate boring-sys
This ensures that all the Rust functions, types and constants
always match the actual BoringSSL definitions.

It also removes quite a lot of manually maintained code, as well
as the need for systest.

The value for `SslOptions::ALL`, for example, was wrong. On current
BoringSSL versions, this is a no-op, and is set to `0`.

Clearing it does nothing. So, the `clear_ctx_options` test, that
passed by accident, was adjusted to use a different option.

The `libc` crate is not required, as we only use it for types that
are already defined in the standard library. It was removed from
`boring-sys`. The same can be done to other crates later.
2021-02-12 15:03:45 +01:00
Ivan Nikulin f4096d8afd Add hyper-boring 2020-11-11 20:29:54 +00:00
Ivan Nikulin 548771adb1 Add tokio-boring 2020-11-11 19:26:22 +00:00
Ivan Nikulin 5cb8947d7e Rename stuff 2020-11-11 17:47:30 +00:00
Ivan Nikulin a6f5beeb33 Remove decrepit and unavaliable API and fix signatures 2020-11-10 00:18:28 +00:00
Ivan Nikulin df0b31b651 BoringSSL 2020-11-08 12:55:18 +00:00
Steven Fackler acb629a47f Add a crate to define custom error libraries 2019-03-12 07:55:40 -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 dece5d116a Fix workspace declaration 2016-08-10 09:02:10 -07:00
Ben Batha 8ff61f6b73 start using cargo workspaces 2016-07-28 20:20:11 -04:00
Steven Fackler ec65b0c67b Move docs to this repo and auto build 2015-02-07 21:30:05 -08:00
Steven Fackler 7b8aa9b915 Release v0.3.1 2015-02-03 10:11:01 -08:00
Steven Fackler e4eedbd536 Release v0.3.0 2015-02-03 09:07:16 -08:00
Steven Fackler 89c3eaf483 Fix for stability changes 2015-01-29 09:05:19 -08:00
Steven Fackler 8fe0633917 Release v0.2.18 2015-01-28 08:48:07 -08:00
Steven Fackler cfe9df78fa Release v0.2.17 2015-01-23 10:22:11 -08:00
Steven Fackler 1a60bccb6a Release v0.2.16 2015-01-16 22:31:07 -08:00
Steven Fackler 1ba1067430 Release v0.2.13 2015-01-06 08:59:58 -08:00
Steven Fackler 3ab2e07618 Release v0.2.12 2015-01-04 08:04:26 -08:00
Steven Fackler df9a73570d Release v0.2.11 2015-01-03 08:32:57 -08:00
Steven Fackler d6ee6863b0 Release v0.2.10 2014-12-31 21:16:52 -08:00
Steven Fackler 651a1eab0b Release v0.2.9 2014-12-29 14:44:48 -08:00
Steven Fackler 49a72ae921 Release v0.2.8 2014-12-23 11:58:05 -05:00
Steven Fackler 12d31ade9d Release v0.2.7 2014-12-21 13:36:35 -05:00
Steven Fackler 1392970360 Release v0.2.6 2014-12-19 08:22:08 -08:00
Steven Fackler ada2398b75 Release v0.2.5 2014-12-16 08:58:07 -08:00
Steven Fackler 1dc66d9486 Release v0.2.4 2014-12-15 09:26:34 -08:00
Richard Diamond 93c6c867e0 Don't forget to bump the openssl-sys dep version! 2014-12-10 00:04:21 -06:00
Richard Diamond 10e8a8f8e3 Now that pkg-config 0.1.1 has been published, delegate to bailout detection to pkg-config.
Also bump version minors for publishing. :)
2014-12-09 23:15:04 -06:00
Steven Fackler fd680e8a33 Release v0.2.2 2014-12-01 13:23:43 -08:00
Steven Fackler ad109a25be Release 0.2.1 2014-11-28 15:49:12 -08:00
Steven Fackler 4bf953bc2b Bump to 0.2
Also removed the PNaCl support. It hasn't worked anyway in a while since
the pnacl-libressl-sys library doesn't have any of the FFI bindings and
makes openssl's Cargo.toml a mess.

This is a minor version bump since Hasher's API changed
2014-11-27 21:35:39 -08:00
Steven Fackler f1e37f477c Fix windows dependencies 2014-11-27 21:25:19 -08:00
Steven Fackler 74171f6bd0 Add openssl-sys dependency on windows 2014-11-27 20:03:19 -08:00
Steven Fackler d1a733dfaa Bump to 0.1.1 2014-11-26 08:49:50 -08:00
Steven Fackler 525394d308 Bump to 0.1.0 2014-11-25 16:46:57 -08:00
Steven Fackler b7c88101f5 Add more crate metadata 2014-11-22 15:46:11 -08:00
Steven Fackler 178d0f0c8e Update stuff for upload to registry 2014-11-22 14:57:13 -08:00
Steven Fackler b084ddc7b0 Add license and description 2014-11-21 22:21:37 -08:00
Steven Fackler 5258ce6ece Move AES XTS support to a feature 2014-11-16 14:01:24 -08:00
Valerii Hiora b60d140d3d New build system 2014-11-13 15:17:00 +02:00
Steven Fackler 1f1c30dd3a Bump to 0.0.1 2014-11-11 00:30:50 -06:00
Richard Diamond 019e47020a Support PNaCl/NaCl. 2014-11-09 23:07:59 -06:00
Richard Diamond f32940294d Add overrideable platform ssl. 2014-11-08 23:15:19 -06:00
Valerii Hiora 59b843517d BN_is_zero as a Rust function
Although wrapping was relatively easy it basically meant
that we depend on C compilation which becomes nightmare
as soon as multiple platforms are used. I’ve got a huge pain
once iOS was involved with 3 device archs and 2 simulator 
arches to support, not mentioning different set of include 
and lib flags.

So there are 2 different approaches:

- continue this way, maintaining all compilation issues like
  like managing correct flags, providing correct paths and so
  on. This way our Makefile will grow extremely fast and will
  actually take more efforts to maintain.

- doing it pure Rust way. In this case we provide all the 
  macros expansions inside our wrappers and there should be
  no other way to access raw data other than through those 
  wrappers. It might be fragile if OpenSSL internal data 
  structures will ever change, but I think (or hope) it is 
  pretty stable and wouldn’t change anytime soon.

This PR eliminates `BN_is_zero` at all from public API. It’s
functionality is implemented in `BigNum.is_zero` and should 
be enough. 

Additional notes:

1. I’ve moved BIGNUM into `bn` so it could access fields
   directly and keep it as an opaque structure for everyone 
   else

2. I’ve kept empty Makefile as I hope to land `feature-matrix`
   branch soon and I don’t like merging deleted/added file 
   conflicts.
2014-10-09 19:25:07 +03:00
Jonathan Reem c22b3c5063 Add a dummy bn_is_zero C dependency to wrap BN_is_zero
This is necessary because on some architectures BN_is_zero
is a CPP macro, so trying to link against it in an `extern "C"`
block causes a linker error.

This also introduces a build command to Cargo to compile
the bn_is_zero wrapper.
2014-10-04 18:18:02 -07:00
Valerii Hiora 4c1edcf4c8 TLS 1_1, 1_2, Ssl 2 is enabled by features 2014-09-23 18:29:43 +03:00
Steven Fackler 182ec4a6e7 cargo update 2014-08-16 14:27:31 -07:00
Steven Fackler 203bdd076e Shift directory structure 2014-08-03 19:16:09 -07:00
Steven Fackler bfd8fa2d4c Drop to version 0.0.0 2014-06-25 22:10:50 -07:00
Alex Crichton a92b102add Add a Cargo.toml configuration 2014-06-25 07:18:17 -07:00