TSha3Algorithm = (s3aSha3_256, s3aSha3_384, s3aSha3_512, s3aShake256);
TSha3Digest256 = array[0..31] of Byte;
TSha3Digest384 = array[0..47] of Byte;
TSha3Digest512 = array[0..63] of Byte;
procedure Sha3_256Init(out Ctx: TSha3Context);
procedure Sha3_384Init(out Ctx: TSha3Context);
procedure Sha3_512Init(out Ctx: TSha3Context);
procedure Shake256Init(out Ctx: TSha3Context);
procedure Sha3Update(var Ctx: TSha3Context; const Data; DataLength: Integer);
procedure Sha3_256Final(var Ctx: TSha3Context; out Digest: TSha3Digest256);
procedure Sha3_384Final(var Ctx: TSha3Context; out Digest: TSha3Digest384);
procedure Sha3_512Final(var Ctx: TSha3Context; out Digest: TSha3Digest512);
procedure Shake256Final(var Ctx: TSha3Context);
procedure Shake256Squeeze(var Ctx: TSha3Context; out Output; OutputLength: Integer);
function Shake256Bytes(const Data: TBytes; OutputLength: Integer): TBytes;
FPdfSha3 implementeert de FIPS 202 SHA-3-familie die nodig is voor ISO/TS 32001 en verwante cryptografische PDF 2.x-extensies, zonder dat een cryptoprovider van het besturingssysteem vereist is
Hashes met vaste uitvoer delen één contexttype en op algoritme gecontroleerde finalizers, terwijl SHAKE256 de laatste absorptie loskoppelt van de uitvoer zodat aanroepers elke lengte kunnen opvragen over één of meer Shake256Squeeze-aanroepen
| Function | Description |
|---|---|
Sha3_256Init, Sha3_384Init, Sha3_512Init | Initialiseren een SHA-3-context met vaste uitvoer |
Shake256Init | Initialiseert een SHAKE256-context met uitbreidbare uitvoer |
Sha3Update | Absorbeert een untyped invoerbuffer in elke geïnitialiseerde context |
Sha3_256Final, Sha3_384Final, Sha3_512Final | Ronden een bijpassende context af en geven de digest met vaste lengte terug |
Shake256Final | Rondt de SHAKE256-absorptie af zonder uitvoer te consumeren |
Shake256Squeeze | Zet de SHAKE256-uitvoer voort vanaf de huidige offset over herhaalde aanroepen |
Sha3_256Bytes, Sha3_384Bytes, Sha3_512Bytes | Hashen een byte-array in één aanroep |
Shake256Bytes | Geven een door de aanroeper gekozen aantal SHAKE256-uitvoerbytes terug |
Sha3_256Hex, Sha3_384Hex, Sha3_512Hex | Zetten een vaste digest om naar hexadecimale tekst in kleine letters |
| Type | Description |
|---|---|
TSha3Algorithm | Identificeert het in een context gekozen algoritme |
TSha3Digest256, TSha3Digest384, TSha3Digest512 | Digestbuffers met vaste grootte |
TSha3Context | Incrementele sponge-status, ratebuffer, algoritme en squeeze-offset |
ESha3Error | Rapporteert ongeldige lengtes, foutief levenscyclusgebruik of niet-overeenkomende finalizers |
Sha3Update en gebruik uitsluitend de bijbehorende finalizer met vaste uitvoerShake256Final zetten herhaalde Shake256Squeeze-aanroepen dezelfde uitvoerstroom voort in plaats van deze te herstartenESha3Error