#Introduction
Similar to liberate, s3kr1t is primarily an abstraction library. However, rather than abstracting out platform differences, the goal is to provide abstraction from cryptographic libraries of the underlying operating system.
The library is best understood as a very narrow slice of an API for the specific cryptographic functions the other Interpeer sub-projects need.
Other than providing a stable API independent of cryptographic library used, this primarily simplifies the maintenance of builds. Cross-platform building is hard enough, so encapsulating some choices in a sub-project eases the burden on other libraries.
Currently, s3kr1t provides an API over OpenSSL1 in the 1.x or 3.x branches. Naturally, it should similarly be useable with LibreSSL2, though that is untested. For some cryptographic primitives, libsodium3 may be used.
Note that e.g. on Android, the OpenSSL version that is part of the Android NDK is used, which leverages any hardware acceleration provided by the device and its drivers. In a similar fashion, OpenSSL engines can be transparently used to accelerate operations.
-
OpenSSL
https://www.openssl.org/
See also: References ↩︎ -
LibreSSL
https://www.libressl.org/
See also: References ↩︎ -
libsodium
https://libsodium.org/
See also: References ↩︎