fix(zkp-hamiltonian): ARM64 build fixes and RPCD CLI flag corrections
- Add #ifndef guard for ZKP_MAX_N in zkp_types.h to allow command-line override - Copy OpenWrt Makefile to package root for proper feed detection - Fix RPCD luci.zkp CLI flags: -r for ratio, -o for output prefix - Add temp directory handling for keygen file generation Tested on MochaBin router: - zkp_keygen: generates graph + key pair - zkp_prover: creates NIZK proof - zkp_verifier: validates proof → ACCEPT Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
a5fc33c8bc
commit
4a972ab0ae
@ -3239,3 +3239,36 @@ git checkout HEAD -- index.html
|
|||||||
- **Files:**
|
- **Files:**
|
||||||
- `luci-app-metablogizer/root/usr/libexec/rpcd/luci.metablogizer`
|
- `luci-app-metablogizer/root/usr/libexec/rpcd/luci.metablogizer`
|
||||||
- **Commit:** `ec8e96a7 fix(metablogizer): Auto-sync mitmproxy routes on HAProxy reload`
|
- **Commit:** `ec8e96a7 fix(metablogizer): Auto-sync mitmproxy routes on HAProxy reload`
|
||||||
|
|
||||||
|
42. **LuCI ZKP Dashboard (2026-02-24)**
|
||||||
|
- Created `luci-app-zkp` package for ZKP Hamiltonian cryptographic proofs.
|
||||||
|
- **Dashboard Features:**
|
||||||
|
- Status display: library version, saved keys count, storage paths
|
||||||
|
- Key generation: node count (4-50), edge density selector
|
||||||
|
- Prove/Verify workflow with visual ACCEPT/REJECT results
|
||||||
|
- Keys table with Prove, Verify, Delete actions
|
||||||
|
- KISS theme with dark mode support
|
||||||
|
- **RPCD Methods:** status, keygen, prove, verify, list_keys, delete_key, get_graph
|
||||||
|
- **Menu Location:** Status > ZKP Cryptography
|
||||||
|
- Note: Requires `zkp-hamiltonian` CLI tools to be built for ARM64
|
||||||
|
- **Files:**
|
||||||
|
- `luci-app-zkp/htdocs/luci-static/resources/view/zkp/overview.js`
|
||||||
|
- `luci-app-zkp/root/usr/libexec/rpcd/luci.zkp`
|
||||||
|
- **Commit:** `b60d7fd0 feat(luci-app-zkp): Add ZKP Hamiltonian cryptographic dashboard`
|
||||||
|
|
||||||
|
43. **ZKP Hamiltonian ARM64 Build & Deployment (2026-02-24)**
|
||||||
|
- Built `zkp-hamiltonian` package for ARM64 (aarch64_cortex-a72) using full OpenWrt toolchain.
|
||||||
|
- **Build Notes:**
|
||||||
|
- SDK lacks target OpenSSL headers; must use full toolchain in `secubox-tools/openwrt/`
|
||||||
|
- Fixed `ZKP_MAX_N` macro redefinition by adding `#ifndef` guard in `zkp_types.h`
|
||||||
|
- Fixed RPCD script CLI flags: `-r` for ratio (not `-d`), `-o` for output prefix
|
||||||
|
- **Deployed CLI Tools:**
|
||||||
|
- `zkp_keygen` - 75KB binary
|
||||||
|
- `zkp_prover` - 76KB binary
|
||||||
|
- `zkp_verifier` - 75KB binary
|
||||||
|
- **Verification:** Full workflow tested on router (keygen → prove → verify → ACCEPT)
|
||||||
|
- **Files:**
|
||||||
|
- `zkp-hamiltonian/Makefile` (moved from openwrt/ subdirectory)
|
||||||
|
- `zkp-hamiltonian/include/zkp_types.h` (ZKP_MAX_N guard)
|
||||||
|
- `luci-app-zkp/root/usr/libexec/rpcd/luci.zkp` (CLI flag fixes)
|
||||||
|
|
||||||
|
|||||||
@ -866,6 +866,12 @@ _Last updated: 2026-02-24 (Service Stability Fixes)_
|
|||||||
|
|
||||||
### Just Completed (2026-02-24)
|
### Just Completed (2026-02-24)
|
||||||
|
|
||||||
|
- **LuCI ZKP Dashboard** — DONE (2026-02-24)
|
||||||
|
- Web UI for ZKP Hamiltonian cryptographic proofs
|
||||||
|
- Features: keygen, prove, verify, keys management
|
||||||
|
- KISS theme with dark mode
|
||||||
|
- Commit: b60d7fd0
|
||||||
|
|
||||||
- **MetaBlogizer Upload Workflow Fix** — DONE (2026-02-24)
|
- **MetaBlogizer Upload Workflow Fix** — DONE (2026-02-24)
|
||||||
- Sites now work immediately after upload without unpublish + expose cycle
|
- Sites now work immediately after upload without unpublish + expose cycle
|
||||||
- Root cause: mitmproxy never received reload signal after route creation
|
- Root cause: mitmproxy never received reload signal after route creation
|
||||||
|
|||||||
@ -417,7 +417,9 @@
|
|||||||
"Bash(./zkp_verifier:*)",
|
"Bash(./zkp_verifier:*)",
|
||||||
"Bash(printf:*)",
|
"Bash(printf:*)",
|
||||||
"Bash(dd:*)",
|
"Bash(dd:*)",
|
||||||
"Bash(gh release create:*)"
|
"Bash(gh release create:*)",
|
||||||
|
"Bash(# Check if OpenWrt toolchain is available ls -la /home/reepost/CyberMindStudio/secubox-openwrt/secubox-tools/openwrt/)",
|
||||||
|
"Bash(# Create symlink in SDK feeds cd /home/reepost/CyberMindStudio/secubox-openwrt/secubox-tools/sdk ln -sf ../local-feed/zkp-hamiltonian/openwrt feeds/local/zkp-hamiltonian || true ls -la feeds/local/)"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -140,10 +140,22 @@ method_keygen() {
|
|||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Create temp directory for generation
|
||||||
|
local tmpdir="/tmp/zkp_gen_$$"
|
||||||
|
mkdir -p "$tmpdir"
|
||||||
|
local prefix="$tmpdir/$name"
|
||||||
|
|
||||||
local output
|
local output
|
||||||
output=$(zkp_keygen -n "$nodes" -d "$density" -g "$graphfile" -k "$keyfile" 2>&1)
|
output=$(zkp_keygen -n "$nodes" -r "$density" -o "$prefix" 2>&1)
|
||||||
local rc=$?
|
local rc=$?
|
||||||
|
|
||||||
|
# Move generated files to proper locations
|
||||||
|
if [ $rc -eq 0 ] && [ -f "${prefix}.graph" ] && [ -f "${prefix}.key" ]; then
|
||||||
|
mv "${prefix}.graph" "$graphfile"
|
||||||
|
mv "${prefix}.key" "$keyfile"
|
||||||
|
fi
|
||||||
|
rm -rf "$tmpdir"
|
||||||
|
|
||||||
if [ $rc -eq 0 ] && [ -f "$graphfile" ] && [ -f "$keyfile" ]; then
|
if [ $rc -eq 0 ] && [ -f "$graphfile" ] && [ -f "$keyfile" ]; then
|
||||||
local graph_size=$(stat -c %s "$graphfile")
|
local graph_size=$(stat -c %s "$graphfile")
|
||||||
local key_size=$(stat -c %s "$keyfile")
|
local key_size=$(stat -c %s "$keyfile")
|
||||||
@ -201,7 +213,7 @@ method_prove() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
local output
|
local output
|
||||||
output=$(zkp_prover -g "$graphfile" -k "$keyfile" -p "$prooffile" 2>&1)
|
output=$(zkp_prover -g "$graphfile" -k "$keyfile" -o "$prooffile" 2>&1)
|
||||||
local rc=$?
|
local rc=$?
|
||||||
|
|
||||||
if [ $rc -eq 0 ] && [ -f "$prooffile" ]; then
|
if [ $rc -eq 0 ] && [ -f "$prooffile" ]; then
|
||||||
|
|||||||
61
package/secubox/zkp-hamiltonian/Makefile
Normal file
61
package/secubox/zkp-hamiltonian/Makefile
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
# Copyright (C) 2026 CyberMind.FR / SecuBox
|
||||||
|
#
|
||||||
|
# OpenWrt package for ZKP Hamiltonian library
|
||||||
|
|
||||||
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
|
PKG_NAME:=zkp-hamiltonian
|
||||||
|
PKG_VERSION:=1.0.0
|
||||||
|
PKG_RELEASE:=1
|
||||||
|
PKG_LICENSE:=GPL-2.0-or-later
|
||||||
|
PKG_MAINTAINER:=SecuBox <contact@secubox.fr>
|
||||||
|
|
||||||
|
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
||||||
|
PKG_BUILD_PARALLEL:=1
|
||||||
|
|
||||||
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
include $(INCLUDE_DIR)/cmake.mk
|
||||||
|
|
||||||
|
define Package/zkp-hamiltonian
|
||||||
|
SECTION:=utils
|
||||||
|
CATEGORY:=Utilities
|
||||||
|
SUBMENU:=Encryption
|
||||||
|
TITLE:=Zero-Knowledge Proof Hamiltonian Library
|
||||||
|
DEPENDS:=+libopenssl
|
||||||
|
URL:=https://github.com/gkerma/secubox-openwrt
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/zkp-hamiltonian/description
|
||||||
|
Zero-Knowledge Proof library based on the Hamiltonian Cycle problem.
|
||||||
|
Implements the Blum 1986 protocol with Fiat-Shamir NIZK transformation.
|
||||||
|
Uses SHA3-256 for commitments and provides CLI tools for proof generation
|
||||||
|
and verification.
|
||||||
|
endef
|
||||||
|
|
||||||
|
CMAKE_OPTIONS += \
|
||||||
|
-DOPENWRT_BUILD=ON \
|
||||||
|
-DBUILD_TESTS=OFF \
|
||||||
|
-DBUILD_TOOLS=ON \
|
||||||
|
-DBUILD_SHARED_LIBS=OFF \
|
||||||
|
-DUSE_LIBSODIUM=OFF \
|
||||||
|
-DZKP_MAX_N=50
|
||||||
|
|
||||||
|
define Build/Prepare
|
||||||
|
mkdir -p $(PKG_BUILD_DIR)
|
||||||
|
$(CP) $(CURDIR)/src $(PKG_BUILD_DIR)/
|
||||||
|
$(CP) $(CURDIR)/include $(PKG_BUILD_DIR)/
|
||||||
|
$(CP) $(CURDIR)/tools $(PKG_BUILD_DIR)/
|
||||||
|
$(CP) $(CURDIR)/CMakeLists.txt $(PKG_BUILD_DIR)/
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/zkp-hamiltonian/install
|
||||||
|
$(INSTALL_DIR) $(1)/usr/bin
|
||||||
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/zkp_keygen $(1)/usr/bin/
|
||||||
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/zkp_prover $(1)/usr/bin/
|
||||||
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/zkp_verifier $(1)/usr/bin/
|
||||||
|
$(INSTALL_DIR) $(1)/usr/lib
|
||||||
|
$(CP) $(PKG_BUILD_DIR)/libzkp_hamiltonian.a $(1)/usr/lib/
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call BuildPackage,zkp-hamiltonian))
|
||||||
@ -15,7 +15,9 @@
|
|||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
|
|
||||||
/* Protocol constants */
|
/* Protocol constants */
|
||||||
|
#ifndef ZKP_MAX_N
|
||||||
#define ZKP_MAX_N 128
|
#define ZKP_MAX_N 128
|
||||||
|
#endif
|
||||||
#define ZKP_NONCE_SIZE 32
|
#define ZKP_NONCE_SIZE 32
|
||||||
#define ZKP_HASH_SIZE 32
|
#define ZKP_HASH_SIZE 32
|
||||||
#define ZKP_VERSION 0x01
|
#define ZKP_VERSION 0x01
|
||||||
|
|||||||
@ -0,0 +1,61 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
# Copyright (C) 2026 CyberMind.FR / SecuBox
|
||||||
|
#
|
||||||
|
# OpenWrt package for ZKP Hamiltonian library
|
||||||
|
|
||||||
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
|
PKG_NAME:=zkp-hamiltonian
|
||||||
|
PKG_VERSION:=1.0.0
|
||||||
|
PKG_RELEASE:=1
|
||||||
|
PKG_LICENSE:=GPL-2.0-or-later
|
||||||
|
PKG_MAINTAINER:=SecuBox <contact@secubox.fr>
|
||||||
|
|
||||||
|
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
||||||
|
PKG_BUILD_PARALLEL:=1
|
||||||
|
|
||||||
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
include $(INCLUDE_DIR)/cmake.mk
|
||||||
|
|
||||||
|
define Package/zkp-hamiltonian
|
||||||
|
SECTION:=utils
|
||||||
|
CATEGORY:=Utilities
|
||||||
|
SUBMENU:=Encryption
|
||||||
|
TITLE:=Zero-Knowledge Proof Hamiltonian Library
|
||||||
|
DEPENDS:=+libopenssl
|
||||||
|
URL:=https://github.com/gkerma/secubox-openwrt
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/zkp-hamiltonian/description
|
||||||
|
Zero-Knowledge Proof library based on the Hamiltonian Cycle problem.
|
||||||
|
Implements the Blum 1986 protocol with Fiat-Shamir NIZK transformation.
|
||||||
|
Uses SHA3-256 for commitments and provides CLI tools for proof generation
|
||||||
|
and verification.
|
||||||
|
endef
|
||||||
|
|
||||||
|
CMAKE_OPTIONS += \
|
||||||
|
-DOPENWRT_BUILD=ON \
|
||||||
|
-DBUILD_TESTS=OFF \
|
||||||
|
-DBUILD_TOOLS=ON \
|
||||||
|
-DBUILD_SHARED_LIBS=OFF \
|
||||||
|
-DUSE_LIBSODIUM=OFF \
|
||||||
|
-DZKP_MAX_N=50
|
||||||
|
|
||||||
|
define Build/Prepare
|
||||||
|
mkdir -p $(PKG_BUILD_DIR)
|
||||||
|
$(CP) ../src $(PKG_BUILD_DIR)/
|
||||||
|
$(CP) ../include $(PKG_BUILD_DIR)/
|
||||||
|
$(CP) ../tools $(PKG_BUILD_DIR)/
|
||||||
|
$(CP) ../CMakeLists.txt $(PKG_BUILD_DIR)/
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/zkp-hamiltonian/install
|
||||||
|
$(INSTALL_DIR) $(1)/usr/bin
|
||||||
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/zkp_keygen $(1)/usr/bin/
|
||||||
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/zkp_prover $(1)/usr/bin/
|
||||||
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/zkp_verifier $(1)/usr/bin/
|
||||||
|
$(INSTALL_DIR) $(1)/usr/lib
|
||||||
|
$(CP) $(PKG_BUILD_DIR)/libzkp_hamiltonian.a $(1)/usr/lib/
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call BuildPackage,zkp-hamiltonian))
|
||||||
Loading…
Reference in New Issue
Block a user