Skip to content

Commit 465ca08

Browse files
authored
document using system installation of libcrypto (#511)
1 parent 54d48df commit 465ca08

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

README.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,23 @@ cmake --build . --target install --config "Debug"
9191
* Due to maximum path length limitations in the Windows API, we recommend cloning to a short path like: `C:\dev\iotsdk`
9292
* `--config` is only REQUIRED for multi-configuration build tools (VisualStudio/MsBuild being the most common).
9393

94+
**Linux specific notes**:
95+
96+
If your application uses OpenSSL, configure with `-DUSE_OPENSSL=ON`.
97+
98+
The IoT SDK does not use OpenSSL for TLS.
99+
On Apple and Windows, the OS's default TLS library is used.
100+
On Linux, [s2n-tls](https://github.com/aws/s2n-tls) is used.
101+
But s2n-tls uses libcrypto, the cryptography math library bundled with OpenSSL.
102+
To simplify the build process, the source code for s2n-tls and libcrypto are
103+
included as git submodules and built along with the IoT SDK.
104+
But if your application is also loading the system installation of OpenSSL
105+
(i.e. your application uses libcurl which uses libssl which uses libcrypto)
106+
there may be crashes as the application tries to use two different versions of libcrypto at once.
107+
108+
Setting `-DUSE_OPENSSL=ON` will cause the IoT SDK to link against your system's
109+
existing `libcrypto`, instead of building its own copy.
110+
94111
## Samples
95112

96113
[Samples README](./samples)

0 commit comments

Comments
 (0)