all repos — circe-vpn @ c1ad65380d09c8dfca9c6d8cdbdcbe347a6a90c0

Circe VPN

Initial commit
Juniper Beatitudes [email protected]
Fri, 03 Jul 2026 15:38:44 -0500
commit

c1ad65380d09c8dfca9c6d8cdbdcbe347a6a90c0

parent

3323e713198bfe61950c805048d76fe7b5c2f226

5 files changed, 216 insertions(+), 0 deletions(-)

jump to
A .clang-format

@@ -0,0 +1,1 @@

+BasedOnStyle: GNU
A .gitmodules

@@ -0,0 +1,9 @@

+[submodule "contrib/TinyCrypT"] + path = contrib/TinyCrypT + url = https://gitea.eyes-like-fire.org/juniper/TinyCrypT.git +[submodule "contrib/mlkem-native"] + path = contrib/mlkem-native + url = https://github.com/pq-code-package/mlkem-native.git +[submodule "contrib/mldsa-native"] + path = contrib/mldsa-native + url = https://github.com/pq-code-package/mldsa-native.git
A flake.lock

@@ -0,0 +1,96 @@

+{ + "nodes": { + "esp32-overlay": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1767865407, + "narHash": "sha256-QWF1rZYd+HvNzLIeRS+OEBX7HF0EhWCGeLbMkgtbsIo=", + "owner": "mirrexagon", + "repo": "nixpkgs-esp-dev", + "rev": "5287d6e1ca9e15ebd5113c41b9590c468e1e001b", + "type": "github" + }, + "original": { + "owner": "mirrexagon", + "repo": "nixpkgs-esp-dev", + "type": "github" + } + }, + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1767799921, + "narHash": "sha256-r4GVX+FToWVE2My8VVZH4V0pTIpnu2ZE8/Z4uxGEMBE=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "d351d0653aeb7877273920cd3e823994e7579b0b", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-25.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1782847225, + "narHash": "sha256-JC9PjqKYG9ve5U8aDOLQipp3+KLANBHUvGdLZlxzdKI=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "95ca1e203c0750115fd4a6f17d5a245dfe6b1edd", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-26.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "esp32-overlay": "esp32-overlay", + "nixpkgs": "nixpkgs_2" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +}
A flake.nix

@@ -0,0 +1,82 @@

+{ + description = "Circe Build Environment"; + + inputs = { + nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-26.05"; + esp32-overlay.url = "github:mirrexagon/nixpkgs-esp-dev"; + }; + + outputs = + { + self, + nixpkgs, + esp32-overlay, + ... + }@inputs: + let + system = "x86_64-linux"; + pkgs = nixpkgs.legacyPackages.${system}; + pkgs-persephone = import nixpkgs { + overlays = [ esp32-overlay.overlays.default ]; + inherit system; + config.permittedInsecurePackages = [ "python3.13-ecdsa-0.19.1" ]; + }; + aphrodite_shl = pkgs.mkShell { + name = "circe-tooling-env-aphrodite"; + packages = with pkgs; [ + ninja + meson + gcc + clang-tools + valgrind + bear + tokei + ]; + }; + teiresia_shl = pkgs.mkShell { + name = "circe-tooling-env-teiresia"; + packages = with pkgs; [ + ninja + meson + pkgsCross.aarch64-multiplatform-musl.gcc + clang-tools + valgrind + bear + tokei + ]; + }; + demeter_shl = pkgs.mkShell { + name = "circe-tooling-env-demeter"; + packages = with pkgs; [ + ninja + meson + pkgsCross.mips64el-linux-gnuabin32.gcc + clang-tools + valgrind + bear + tokei + ]; + }; + persephone_shl = pkgs.mkShell { + name = "circe-tooling-env-persephone"; + packages = with pkgs-persephone; [ + ninja + meson + esp-idf-xtensa + qemu-esp32 + clang-tools + valgrind + bear + tokei + ]; + }; + in + { + devShells.${system} = { + default = aphrodite_shl; + teiresia = teiresia_shl; + demeter = demeter_shl; + persephone = persephone_shl; + }; + }; +}
A meson.build

@@ -0,0 +1,28 @@

+project('Circe', 'c', version: '0.1.0') + +build_args = [ + '-O3', + '-ffreestanding', +] + +# if target_machine.cpu_family() == 'x86_64' +# build_args += '-march=native' +# endif + +## LIBCIRCE-CORE + +core_sources = [] + +core_incdir = include_directories('core/') + +core_target = static_library('libcirce-core', core_sources, c_args: build_args, include_directories: core_incdir) + +core_dep = declare_dependency( + include_directories: core_incdir, + link_with : target +) +set_variable(meson.project_name() + '_core_dep', core_dep) + +if not meson.is_subproject() and not meson.is_cross_build() + # Tests go here +endif