Probleme mit gcrypt und HMAC
Werner Koch
wk at gnupg.org
So Dez 25 21:30:06 CET 2011
On Fri, 23 Dec 2011 20:10, wardog at gmx.de said:
> unsigned char *res = gcry_md_read(digest, 0);
>
> gcry_md_close(digest);
>
> Wenn ich mir nun "res" ausgeben lasse, befindet sich darin
> seltsamerweise ein teil des ursprungstextes, nämlich "jumps over the
Schau mal auf die Dokumentation:
-- Function: unsigned char * gcry_md_read (gcry_md_hd_t H, int ALGO)
`gcry_md_read' returns the message digest after finalizing the
calculation. This function may be used as often as required but
it will always return the same value for one handle. The returned
message digest is allocated within the message context and
therefore valid until the handle is released or reseted (using
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
`gcry_md_close' or `gcry_md_reset'. ALGO may be given as 0 to
Wenn Du ihn jetzt nach dem gcry_md_close ausgibst, so hatd RES keine
gültigen wert mehr. Gib Ihn vorher aus oder mache eine Kopie bevor Du
gcry_md_close aufrufst. Um die Länge des Digests zu ermitteln benutzt
Du am besten
mdlen = gcry_md_get_algo_dlen (algo);
Ein Testprogram, als Beispiel, findet sich in libgcrypt/tests/hmac.c .
Shalom-Salam,
Werner
--
Die Gedanken sind frei. Ausnahmen regelt ein Bundesgesetz.
Mehr Informationen über die Mailingliste Gnupg-de