Hallo,
falls interessant: ich habe im Entwicklungszweig jetzt eine Fassung die ein weiteres Overload für CalcStream erhalten hat.
Dieses ruft init nicht auf, das muss man irgendwo vorher mal selber tun, liefert keinen berechneten Hash zurück,
den kann man ja via DigestAsXXX methoden bekommen und hat aber einen neuen Parameter: IsLastCall.
Beim Letzten Aufruf vor dem Abrufen des berechneten Hashes muss dieser Parameter true sein, sonst muss er false sein.
Der führt zum Aufrufen von Done und bei SHA3 ggf. zur korrekten Behandlung des letzten ggf. unvollständigen Bytes.
Da letzteres von Anwendern sicher gerne vergessen worden wäre und ich zumindest anfänglich Probleme in den
Unit Test
hatte als ich auch das Done aus der Methode haben wollte, hab' ich mich für diese Variante entschieden.
Im Falle leerer Daten muss man es ja trotzdem mit 0 Byte als Längenangabe aufrufen und IsLastCall muss auch true sein.
Ich hoffe das ist so akzeptabel, auf alle Fälle kann man dadurch Streams besser nutzen.
Grüße
TurboMagic