Packages

Post-quantum NTRU Key Encapsulation Mechanism (NTRU KEM) NIF for Elixir

Current section

Files

Jump to
ntrukem lib ntrukem.ex
Raw

lib/ntrukem.ex

defmodule NtruKem do
@compile {:autoload, false}
@on_load :load_nifs
def load_nifs do
:code.priv_dir(:ntrukem)
|> :filename.join(~c"ntrukem_nif")
|> :erlang.load_nif(0)
end
@spec generate_keypair() :: {:ok, pubkey :: binary(), privkey :: binary()} | {:error, atom()}
def generate_keypair, do: raise("Function generate_keypair is not implemented!")
@spec derive_keypair(binary()) ::
{:ok, pubkey :: binary(), privkey :: binary()} | {:error, atom()}
def derive_keypair(_seed),
do: raise("Function derive_keypair is not implemented!")
@spec encapsulate(binary()) :: {:ok, ciphertext :: binary, sharedkey :: binary} | :error
def encapsulate(_), do: raise("Function enc is not implemented!")
@spec decapsulate(binary(), binary()) :: {:ok, sharekey :: binary()} | :error
def decapsulate(_privkey, _ciphertext), do: raise("Function dec is not implemented!")
end