@ohos-ports/qudag-napi-core-openharmony-arm64
v0.1.0-beta.1
Published
OpenHarmony arm64 prebuilt binary for @qudag/napi-core (NAPI-RS)
Keywords
Readme
@ohos-ports/qudag-napi-core-openharmony-arm64
OpenHarmony (arm64) prebuilt binary for @qudag/napi-core — NAPI-RS native bindings for
QuDAG quantum-resistant DAG and cryptography (ML-KEM-768 / ML-DSA-87 / HQC round-4,
BLAKE3 fingerprinting, DAG consensus).
This package is a platform binary package in napi-rs convention: it contains only the
compiled, signed native addon qudag-napi-core.openharmony-arm64.node. Consumers normally
use it via the @qudag/napi-core loader (or directly via require('<pkg>') on OpenHarmony).
Binary identity
| item | value |
|---|---|
| artifact | qudag-napi-core.openharmony-arm64.node |
| md5 (signed) | 4efb8e72994943408b86e64d1040d4c6 |
| size | 1963840 bytes |
| format | ELF aarch64 (aarch64-unknown-linux-ohos), dynamically linked against musl interpreter, code-signed (self-sign) |
| signing | binary-sign-tool sign -selfSign 1 -signAlg SHA256withECDSA |
Provenance
Rebuilt from source (strategy: compile, no JS/WASM fallback) from the QuDAG upstream
tree at commit a1ff5fd (https://github.com/ruvnet/QuDAG), with two migration rounds applied:
- Round 1 — real FIPS-203 ML-KEM-768 via RustCrypto
ml-kemcrate (0.2.x), replacing the non-conformant upstream placeholder implementation (r1-pkg-001..004). - Round 2 — ported the behaviors of the npm-shipped private-fork binary onto the round-1
tree (
r2-pkg-001..012):getBuildInfowith real toolchain strings, ML-KEM napi Buffer/Array return types, ML-DSA deterministic detached 3309-byte signatures, HQC wrappers with NIST round-4 parameter sizes (ct 4481/9026/14469) and per-instance envelope PKE (u32 LE length header + keystream XOR + zero padding), and clean HQC round-4 C sources vendored from liboqs 0.14.0 undercore/crypto/hqc_round4/(built viacc, fips202 symbols prefixed to avoid clashes withpqcrypto-hqc).
The full patch chain (applied to a pristine a1ff5fd checkout staged with the repo content
under package/) is: r1-pkg-001..004 then r2-pkg-001..012. The chain was verified
byte-exact: 1596/1596 files md5-identical to the shipped migration source tree.
Toolchain
- rustc
1.95.0 (59807616e 2026-04-14), targetaarch64-unknown-linux-ohos(OHOS SDK llvm clang driver as cargo linker,CFLAGS="-D__MUSL__"). - Build:
cargo build --release -p qudag-napi-core --target aarch64-unknown-linux-ohos→target/aarch64-unknown-linux-ohos/release/libqudag_napi_core.so - Artifact step: copy to
qudag-napi-core.openharmony-arm64.node, then self-sign withbinary-sign-tool.
Post-sign verification
- ML-KEM ACVP known-answer regression 60/60 (keygen 25/25, encap 25/25, decap 10/10).
- HQC round-4 KEM roundtrip on all parameter sets (128/192/256); envelope roundtrip byte-equal, same-instance deterministic, wrong-key produces same-length garbage, padding ignored, length-header tamper detected.
- ML-DSA
signDeterministicdetached 3309-byte signature verifies; tampered/wrong-message signatures rejected. - User-space node smoke on OpenHarmony runtime (node v26.10.0): binary loads;
getBuildInfo→{version:"0.1.0", rustcVersion:"rustc 1.95.0 (59807616e 2026-04-14)", target:"aarch64-unknown-linux-ohos", os:"openharmony"}. - Frozen test suite: 31/31 pass after sanctioned round-3 assertion relaxation (exact byte-size equality with the foreign private-fork binary is unattainable by a legitimate source rebuild; replaced with a non-stub lower-bound check).
License
MIT OR Apache-2.0 (same as upstream QuDAG). Vendored hqc_round4 C sources originate from
liboqs 0.14.0 (MIT licensed).
