libnetplus (20260425+2) unstable; urgency=medium

  * RSA bigInt: switch from fixed 32-bit limbs to portable limb_t/dlimb_t
    typedefs — 64-bit limbs with __uint128_t accumulator on GCC/Clang,
    32-bit fallback on MSVC. Halves limb count for RSA-2048 (64→32),
    yielding ~4x fewer inner-loop iterations in Montgomery CIOS.

 -- Jan Koester <jan.koester@tuxist.de>  Sat, 25 Apr 2026 14:00:00 +0200

libnetplus (20260425+1) unstable; urgency=medium

  * RSA: replace separate multiply + reduce with fused CIOS
    (Coarsely Integrated Operand Scanning) in montgomeryMultiply_into,
    eliminating a full schoolbook multiplication pass and improving
    cache locality

 -- Jan Koester <jan.koester@tuxist.de>  Sat, 25 Apr 2026 12:00:00 +0200

libnetplus (20260424+22) unstable; urgency=medium

  * Fix remaining compiler warnings: remove unused derOctetString, enlarge
    snprintf buffer in derUtcTime, remove unused label in epoll.cpp,
    suppress GCC 14 false-positive -Wfree-nonheap-object in tls.cpp/quic.cpp

 -- Jan Koester <jan.koester@tuxist.de>  Thu, 24 Apr 2026 18:00:00 +0200

libnetplus (20260424+21) unstable; urgency=medium

  * Fix compiler warnings: remove unused debug variables in quic.cpp

 -- Jan Koester <jan.koester@tuxist.de>  Thu, 24 Apr 2026 17:30:00 +0200

libnetplus (20260424+20) unstable; urgency=medium

  * Disable QUIC_DBG macro after HTTP/3 debugging complete

 -- Jan Koester <jan.koester@tuxist.de>  Thu, 24 Apr 2026 17:15:00 +0200

libnetplus (20260424+19) unstable; urgency=medium

  * Add accept() debug logging for QUIC remote connection diagnosis

 -- Jan Koester <jan.koester@tuxist.de>  Thu, 24 Apr 2026 16:15:00 +0200

libnetplus (20260424+18) unstable; urgency=medium

  * Enable QUIC debug logging for HTTP/3 handshake diagnosis

 -- Jan Koester <jan.koester@tuxist.de>  Thu, 24 Apr 2026 15:55:00 +0200

libnetplus (20260414+17) unstable; urgency=medium

  * Add utils/certgen: self-signed RSA certificate + key generation API
  * Add netplus-certgen CLI tool for certificate generation
  * Optimize RSA key generation: fix bit_count (p,q now half of target N)
  * Add trial division by small primes before Miller-Rabin
  * Optimize modPow: use repeated doubling for R^2 mod N computation
  * Optimize isProbablyPrime: direct squaring instead of modPow(x,2,n)
  * Optimize bigIntToBytesBE: direct word extraction O(n) vs O(n^2)
  * Optimize shiftLeft: in-place without temp vector allocation
  * Add RSA key accessors: getN(), getE(), getD()

 -- Jan Koester <jan.koester@tuxist.de>  Mon, 14 Apr 2026 00:00:00 +0200

libnetplus (20260410+16) unstable; urgency=medium

  * Add PEM auto-detection for x509cert::loadFromFile() and rsa constructors
  * Add x509cert::loadAllFromPem() for PEM chain/bundle files
  * Add PKCS#12 (.p12/.pfx) parser with 3DES-CBC and PBES2/AES support
  * Add CertificateBundle::loadFromFile() with auto-detect by file extension

 -- Jan Koester <jan.koester@tuxist.de>  Thu, 10 Apr 2026 00:00:00 +0200

libnetplus (20260409+15) unstable; urgency=medium

  * Add netplus::isIPAddr() utility function (posix + windows)

 -- Jan Koester <jan.koester@tuxist.de>  Wed, 09 Apr 2026 00:00:00 +0200

libnetplus (20260409+14) unstable; urgency=medium

  * Increase BLOCKSIZE from 16384 to 65536 for improved streaming throughput

 -- Jan Koester <jan.koester@tuxist.de>  Wed, 09 Apr 2026 00:00:00 +0200

libnetplus (20260407+13) unstable; urgency=medium

  * New release

 -- Jan Koester <jan.koester@tuxist.de>  Tue, 07 Apr 2026 00:00:00 +0200

libnetplus (20260405+12) unstable; urgency=medium

  * Reduce QUIC sendStreamData flow-control stall limit from 5s to 500ms
    (MAX_FC_STALLS 5000 → 500) to prevent blocking on slow peers

 -- Jan Koester <jan.koester@tuxist.de>  Sun, 05 Apr 2026 00:00:00 +0000

libnetplus (20260405+11) unstable; urgency=medium

  * Add socketwait::waitReadMulti() to wait on multiple sockets at once
    using epoll/kqueue/select/poll (all 4 backends)

 -- Jan Koester <jan.koester@tuxist.de>  Sun, 05 Apr 2026 00:00:00 +0000

libnetplus (20260404+10) unstable; urgency=medium

  * Fix quic::pumpNetwork throwing NetException on EAGAIN/EWOULDBLOCK
    instead of returning gracefully; callers (paritypp store_stripe)
    treated the Note exception as a fatal error, failing all nodes

 -- Jan Koester <jan.koester@tuxist.de>  Sat, 04 Apr 2026 00:00:00 +0000

libnetplus (20260404+9) unstable; urgency=medium

  * Remove debug std::cerr logging from udp::bind() and epoll event workers
    to eliminate data races on _ZSt4cerr

 -- Jan Koester <jan.koester@tuxist.de>  Fri, 04 Apr 2026 00:00:00 +0000

libnetplus (20260404+8) unstable; urgency=medium

  * Fix QUIC stream limit exhaustion: increase initial_max_streams from 100 to 10M
  * Auto-cleanup completed streams and send MAX_STREAMS frames to replenish peer budget
  * Server sends MAX_STREAMS(bidi/uni) when peer-initiated streams are fully closed

 -- Jan Koester <jan.koester@tuxist.de>  Fri, 04 Apr 2026 23:00:00 +0200

libnetplus (20260404+7) unstable; urgency=medium

  * Remove [QUIC] server-side Initial/ServerHello debug logging

 -- Jan Koester <jan.koester@tuxist.de>  Fri, 04 Apr 2026 23:00:00 +0200

libnetplus (20260404+6) unstable; urgency=medium

  * Remove verbose [QUIC-client] debug logging from quic.cpp

 -- Jan Koester <jan.koester@tuxist.de>  Fri, 04 Apr 2026 20:30:00 +0200

libnetplus (20260403+5) unstable; urgency=medium

  * Handshake timeout tuning

 -- Jan Koester <jan.koester@tuxist.de>  Fri, 04 Apr 2026 05:00:00 +0200

libnetplus (20260403+4) unstable; urgency=medium

  * Use HANDSHAKE_TIMEOUT_MS (5000ms) in completeHandshake instead of
    hardcoded 1500ms — servers need time for crypto + key derivation

 -- Jan Koester <jan.koester@tuxist.de>  Fri, 04 Apr 2026 04:00:00 +0200

libnetplus (20260403+3) unstable; urgency=medium

  * Fix QUIC handshake packet loss: retry sendPacket on EAGAIN up to
    5 times with 1ms back-off instead of silently dropping packets

 -- Jan Koester <jan.koester@tuxist.de>  Fri, 04 Apr 2026 03:00:00 +0200

libnetplus (20260403+2) unstable; urgency=medium

  * Add client-side handshake debug logging: Initial/Handshake decrypt
    status, TLS message flow (ServerHello, EncryptedExtensions, etc.)

 -- Jan Koester <jan.koester@tuxist.de>  Fri, 04 Apr 2026 02:00:00 +0200

libnetplus (20260403+1) unstable; urgency=medium

  * Add udp::sendTo() method for unconnected socket sends
  * Rewrite quic::sendPacket() to use udp class methods instead of
    raw OS calls (sendto/send)

 -- Jan Koester <jan.koester@tuxist.de>  Fri, 04 Apr 2026 01:00:00 +0200

libnetplus (20260403) unstable; urgency=medium

  * Add QUIC handshake debug logging: log Initial packet reception
    (peer IP, port, length, version) and ServerHello send result

 -- Jan Koester <jan.koester@tuxist.de>  Fri, 04 Apr 2026 00:10:00 +0200

libnetplus (20260401) unstable; urgency=medium

  * Initial Debian packaging with multiarch support.

 -- Jan Koester <jan.koester@tuxist.de>  Wed, 01 Apr 2026 00:00:00 +0200
