# openssl-src
This crate contains the logic to build OpenSSL and is intended to be consumed by
the `openssl-sys` crate. You likely in theory aren't interacting with this too
much!
## Versioning
This crate follows the latest minor and patch versions for each maintained major version,
according to the [OpenSSL release strategy](https://www.openssl.org/policies/releasestrat.html).
It has no specific support for LTS versions.
The crate versions follow the `X.Y.Z+B` pattern:
* The major version `X` is the upstream OpenSSL API/ABI compatibility version:
* `300` for 3.Y.Z
* The minor `Y` and patch `Z` versions are incremented when making changes
to the crate, either OpenSSL update or internal changes.
* `B` contains the full upstream OpenSSL version, like `1.1.1k` or `3.0.7`.
Note that this field is actually ignored in comparisons and only there for
documentation.
## Windows MSVC Assembly
Building OpenSSL for `windows-msvc` targets, users can choose whether to enable
assembly language routines, which requires [nasm](https://www.nasm.us/).
The build process will automatically detect whether `nasm.exe` is installed in
PATH. If found, the assembly language routines will be enabled (in other words,
the `no-asm` option will NOT be configured).
You can manipulate this behavior by setting the `OPENSSL_RUST_USE_NASM` environment
variable:
* `1`: Force enable the assembly language routines. (panic if `nasm.exe` is not
available.)
* `0`: Force disable the assembly language routines even if the `nasm.exe` can be
found in PATH.
* not set: Let the build process automatically detect whether `nasm.exe` is
installed. If found, enable. If not, disable.
However, this environment variable does NOT take effects on non-windows platforms.
## License
This project is licensed under either of
* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or
http://www.apache.org/licenses/LICENSE-2.0)
* MIT license ([LICENSE-MIT](LICENSE-MIT) or
http://opensource.org/licenses/MIT)
at your option.
### Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in openssl-src by you, as defined in the Apache-2.0 license, shall be
dual licensed as above, without any additional terms or conditions.