commit 8c9c0feb497cc37d0f619edac9a1746640f81122 Author: Aaron Kaiser Date: Wed Apr 3 12:48:01 2024 +0200 Initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..378eac2 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +build diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..36a0230 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "libjade"] + path = libjade + url = https://github.com/formosa-crypto/libjade.git diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..33f2d57 --- /dev/null +++ b/Makefile @@ -0,0 +1,20 @@ +JC ?= jasminc +CC ?= gcc +MAKE ?= make + +.PHONY: clean run + +all: build + @true + +build: build/agent.S + $(CC) build/agent.S -o build/agent + +clean: + rm build/* 2> /dev/null || true + +build/%.S: src/%.jazz + JASMINPATH="Jade=libjade/src/" $(JC) $< -o $@ + +run: build + build/agent diff --git a/build/.gitkeep b/build/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/default.nix b/default.nix new file mode 100644 index 0000000..583cb5e --- /dev/null +++ b/default.nix @@ -0,0 +1,21 @@ +{ pkgs ? import { } }: +with pkgs; +let + jasmin-src = fetchFromGitHub { + owner = "jasmin-lang"; + repo = "jasmin"; + rev = "9bb6340fe0e3c5d78ea3957f6c5c3564c3424770"; + hash = "sha256-EVwnD6dZLTy9MgR6gdymhg3Ipudpj1mchDlMpCAdITE="; + }; + + jasmin = callPackage "${jasmin-src}/default.nix" { inherit pkgs; }; +in +stdenv.mkDerivation { + name = "x25519-agent"; + + nativeBuildInputs = [ + gnumake + gcc + jasmin + ]; +} diff --git a/libjade b/libjade new file mode 160000 index 0000000..c1c7516 --- /dev/null +++ b/libjade @@ -0,0 +1 @@ +Subproject commit c1c7516c45c624e2d9b75149df0c531d39b123b0 diff --git a/src/agent.jazz b/src/agent.jazz new file mode 100644 index 0000000..22f988f --- /dev/null +++ b/src/agent.jazz @@ -0,0 +1,7 @@ +from Jade require "crypto_scalarmult/curve25519/amd64/mulx/curve25519.jinc" + +export fn main(reg u64 p) -> reg u64 { + reg u64 ret; + ret = 0; + return ret; +}