all repos — TinyCrypT @ 0443981d2543b79cead85cfaf98c05992a4a097f

Short and sweet classical cryptographic primitives

Started on ESP32S3 port
Juniper Beatitudes [email protected]
Tue, 06 Jan 2026 22:39:00 -0600
commit

0443981d2543b79cead85cfaf98c05992a4a097f

parent

a2a1d74db0953d9f68d7cd1e8d62d50f0ac3c0d0

M flake.lockflake.lock

@@ -1,7 +1,60 @@

{ "nodes": { + "esp32-overlay": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1767146219, + "narHash": "sha256-dviXadLLdKhoW9apdBoF+UpGxgcukSin6h6oaxKY/w4=", + "owner": "mirrexagon", + "repo": "nixpkgs-esp-dev", + "rev": "a202c3c73bed7e2cb8c6870f80781993dab41fcd", + "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": 1758070117, + "narHash": "sha256-uLwwHFCZnT1c3N3biVe/0hCkag2GSrf9+M56+Okf+WY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e9b7f2ff62b35f711568b1f0866243c7c302028d", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-25.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { "lastModified": 1767047869, "narHash": "sha256-tzYsEzXEVa7op1LTnrLSiPGrcCY6948iD0EcNLWcmzo=", "owner": "nixos",

@@ -18,7 +71,23 @@ }

}, "root": { "inputs": { - "nixpkgs": "nixpkgs" + "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" } } },
M flake.nixflake.nix

@@ -3,17 +3,24 @@ description = "TinyCrypT Build Environment";

inputs = { nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-25.11"; + 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 = "tct-tooling-env-aphrodite"; packages = with pkgs; [

@@ -50,12 +57,25 @@ bear

tokei ]; }; + persephone_shl = pkgs.mkShell { + name = "tct-tooling-env-persephone"; + packages = with pkgs-persephone; [ + ninja + meson + esp-idf-xtensa + clang-tools + valgrind + bear + tokei + ]; + }; in { devShells.${system} = { default = aphrodite_shl; teiresia = teiresia_shl; demeter = demeter_shl; + persephone = persephone_shl; }; }; }
A persephone-machine.txt

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

+[binaries] +c = 'xtensa-esp-elf-gcc' +cpp = 'xtensa-esp-elf-g++' +ar = 'xtensa-esp-elf-ar' +windres = 'xtensa-esp-elf-windres' +strip = 'xtensa-esp-elf-strip' + +[host_machine] +system = 'linux' +cpu_family = 'xtensa' +cpu = 'lx7' +endian = 'little'
M tinycrypt/portable/ed25519.ctinycrypt/portable/ed25519.c

@@ -697,7 +697,7 @@ }

#ifndef TCT_LOWMEM -#include "tinycrypt/ed25519_precompute.h" +#include "tinycrypt/portable/ed25519_precompute.h" static void xB (const uint32_t *k, uint32_t *x, uint32_t *y, uint32_t *z, uint32_t *t)