Skip to content

Latest commit

 

History

History
31 lines (22 loc) · 1.62 KB

README.md

File metadata and controls

31 lines (22 loc) · 1.62 KB

ExthCrypto CircleCI

ExthCrypto handles the majority of cryptographic operations for Exthereum. The goal of this project is to give each Exthereum project a common set of cryptographic functions where the backends can be swapped out as need be. Additionally, more complicated protocols (such as ECIES) can be implemented and tested in this project.

Note: we opt, whenever possible, to use erlang core or open-source implementations for all functions. The goal of this project is to create a consistent API for cryptographic functions that can be referenced from Exthereum projects. The goal of this project is not to re-write such functions in native erlang or Elixir.

We currently support:

  • AES symmetric encryption in block mode and (simplified) stream mode
  • Elliptic Curve Diffie Hellman (ECDH) key exchange
  • ECIES perfect-forward secret generation
  • SHA1, SHA2 and Keccak one-way cryptographic hash functions
  • NIST-SP-800-56 key derivation function
  • HMAC with SHA1, SHA2 or Keccak
  • Elliptic Curve Digital Signature Algorithm (ECDSA) with public key recovery

Installation

If available in Hex, the package can be installed by adding exth_crypto to your list of dependencies in mix.exs:

def deps do
  [{:exth_crypto, "~> 0.1.6"}]
end

Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/exth_crypto.