From vaptvupt-codec tag v2.65.3. Output is byte-identical to 2.65.0 (same ratio, wire format v1.6 unchanged) but extreme-mode encode is ~1.6-2x faster (Sprint 132 optimal-parser speedup) and the extreme prepass window allocation is capped at wlog=20 = 8 MiB virtual instead of up to 128 MiB (Sprint 133 memory hygiene). Our AVX2 offset-read decoder guard is now UPSTREAM (dropped from the local patch set); the ANS safe-zone 2*SAFEZONE_MAX_RUN reserve is re-applied on top (still not upstream). make check 16/16, KAT 16/16, cross- version roundtrip with 5.1.0 archives verified.
22 lines
738 B
C
22 lines
738 B
C
/*
|
|
* Zupt — Backup-oriented compression with AES-256 encryption
|
|
* Copyright (c) 2026 Cristian Cezar Moisés
|
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
|
*
|
|
* X25519 Diffie-Hellman key agreement (RFC 7748).
|
|
* Montgomery ladder — constant-time by construction.
|
|
*/
|
|
#ifndef ZUPT_X25519_H
|
|
#define ZUPT_X25519_H
|
|
|
|
#include <stdint.h>
|
|
|
|
/* X25519(scalar, point) → result. All inputs/outputs are 32 bytes.
|
|
* CT-REQUIRED: Montgomery ladder is inherently constant-time. */
|
|
void zupt_x25519(uint8_t out[32], const uint8_t scalar[32], const uint8_t point[32]);
|
|
|
|
/* X25519 with the standard basepoint (9).
|
|
* Used for keygen: public = X25519(private, basepoint). */
|
|
void zupt_x25519_base(uint8_t out[32], const uint8_t scalar[32]);
|
|
|
|
#endif
|