defmodule K256.Native do
@moduledoc """
Houses the configuration and initialization of `Rustler`'s required
OTP Application.
All implemented NIFs can be found here and are delegated to by their logical
modules. `Rustler` expects its NIFs to be instantiated in a single place.
"""
# use Rustler,
# otp_app: :k256,
# crate: "k256_rs"
version = Mix.Project.config()[:version]
use RustlerPrecompiled,
otp_app: :k256,
crate: "k256_rs",
base_url: "https://github.com/RooSoft/k256/releases/download/#{version}",
force_build: System.get_env("RUSTLER_PRECOMPILATION_EXAMPLE_BUILD") in ["1", "true"],
version: version
def schnorr_generate_random_signing_key(), do: error()
def schnorr_create_signature(_, _), do: error()
def schnorr_verifying_key_from_signing_key(_), do: error()
def schnorr_verify_message(_, _, _), do: error()
def schnorr_verify_message_digest(_, _, _), do: error()
defp error(), do: :erlang.nif_error(:nif_not_loaded)
end