Background

The crypto application mostly exists to provide an API to cryptographic primitives of OpenSSL. Using these primitives in applications requires a thorough understanding of the underlying algorithms and the proper way to apply them. It is very easy to use otherwise sound cryptographic algorithms in ways that completely fail to meet the security requirements of an application.

Consider using a higher-level API that offers the functionality the application needs, e.g.:

  • NaCl / libsodium, through the enacl package
  • The plug_crypto package, for simple encrypt/decrypt or sign/verify operations, especially in Plug/Phoenix applications