Checked crypto arithmetic and key agreement
Version 2.955.1 behåller de befintliga SHA3-, SHAKE- och nyckelöverenskommelse-API:erna med heltalsöverlopps- och intervallkontroller aktiverade i Delphi och Free Pascal
SHA3-256, SHA3-384, SHA3-512 och SHAKE256 behåller sina befintliga utdata över tom indata, rate-gränssnitt, multipla block, strömmande uppdateringar och upprepad SHAKE-extraktion
P-256-, P-384- och P-521-utbyten använder explicita lågord-operationer varhelst fältimplementationen medvetet arbetar modulo 2^64; högbit-konstanter och Montgomery-operationer förblir användbara i kontrollerade 32-bitars byggen
Montgomery delad-hemlighet-tillåtelse
HPDFX25519 och HPDFX448 kontrollerar de completa kanoniska utdatabyttena och kastar EInvalidOpException när den delade hemligheten är enbart nollor, inklusive svaga fältrepresentationer vars interna lim är nollskilda
HPDFComputeKeyAgreementSecret översätter detta avvisande till False, ett tomt SharedSecret och ett färskt Issue; en efterföljande giltig operation förblir användbar
Icke-kanoniska u-koordinater fortsätter att följa RFC 7748-avkodning, inklusive X25519-högbit-regeln; noll-hemlighet-kontrollen följer den valfria tillåtelsekontrollen i RFC 7748 avsnitt 6
Acceptans
Sex faktiska nativa mål klarar 360 oberoende SHA3/SHAKE-jämförelser och 101 nyckelöverenskommelsefall var, inklusive fullbredd NIST-privata skalärer i båda riktningarna, RFC-vektorer och 1 000 iterationer, avvisning av låg ordning, icke-kanonisk indata och återhämtning
Båda Delphi-arkitekturerna klarar också de 11 oförändrade ursprungliga ladder- och mottagarkuvert-konsumentmetoderna; de faktiska kompilatorstängningarna granskas mot aktuell utgåvesammansättning
Kör Tests/Linux/Run-CheckedCryptoAcceptance.py för normal kontrollerad konsolacceptans; Tests/Linux/CheckedCryptoAcceptance.en-us.md beskriver kompilatorkommandona och den oberoende vektorgeneratorn
Dessa kontroller etablerar dokumenterat vektor- och avvisningsbeteende; de etablerar inte konstant-tid-exekvering eller en sidokanalcertifiering