Fix a leak when using `EVP_PKEY_get1_RSA`. |
||
|---|---|---|
| openssl | ||
| openssl-sys | ||
| openssl-sys-extras | ||
| .gitignore | ||
| .travis.yml | ||
| README.md | ||
| THIRD_PARTY | ||
| appveyor.yml | ||
README.md
rust-openssl
Building
rust-openssl depends on both the OpenSSL runtime libraries and headers.
Linux
On Linux, you can install OpenSSL via your package manager. The headers are
sometimes provided in a separate package than the runtime libraries - look for
something like openssl-devel or libssl-dev.
# On Ubuntu
sudo apt-get install libssl-dev
# On Arch Linux
sudo pacman -S openssl
OSX
OpenSSL 0.9.8 is preinstalled on OSX. Some features are only available when linking against OpenSSL 1.0.0 or greater; see below on how to point rust-openssl to a separate installation.
Windows
On Windows, consider building with mingw-w64.
Build script will try to find mingw in PATH environment variable to provide
Cargo with location where openssl libs from mingw-w64 package may be found.
If you followed guide Building on Windows
from rust repo, then you should have MSYS2 with
mingw-w64-openssl installed as part of mingw-w64-x86_64-toolchain
(or mingw-w64-i686-toolchain) package.
Alternatively, install OpenSSL from here. Cargo will not be able to find OpenSSL if it's
installed to the default location. You can either copy the include/openssl
directory, libssl32.dll, and libeay32.dll to locations that Cargo can find
or pass the location to Cargo via environment variables:
env OPENSSL_LIB_DIR=C:/OpenSSL-Win64 OPENSSL_INCLUDE_DIR=C:/OpenSSL-Win64/include cargo build
Manual configuration
rust-openssl's build script will by default attempt to locate OpenSSL via pkg-config. This will not work in some situations, for example, on systems that don't have pkg-config, when cross compiling, or when using a copy of OpenSSL other than the normal system install.
The build script can be configured via environment variables:
OPENSSL_LIB_DIR- If specified, a directory that will be used to find OpenSSL runtime libraries.OPENSSL_INCLUDE_DIR- If specified, a directory that will be used to find OpenSSL headers.OPENSSL_STATIC- If specified, OpenSSL libraries will be statically rather than dynamically linked.
If either OPENSSL_LIB_DIR or OPENSSL_INCLUDE_DIR are specified, then the
build script will skip the pkg-config step.