Probleme mit gcrypt und HMAC
wardog
wardog at gmx.de
Fr Dez 23 20:10:43 CET 2011
Hallo zusammen,
bin neu hier und setze mich derzeit mit gcrypt auseinander. Leider bin
ich beim SHA1-HMAC auf ein Problem gestoßen und ich komme einfach nicht
darauf, was ich falsch machen. Der betreffende Code sieht folgendermaßen
aus:
gcry_error_t err = 0;
gcry_md_hd_t digest;
err = gcry_md_open(
&digest, GCRY_MD_SHA1,
GCRY_MD_FLAG_SECURE | GCRY_MD_FLAG_HMAC);
if (err) {
return false;
}
err = gcry_md_setkey(digest, "key", 3);
if (err) {
return false;
}
char *text = "The quick brown fox jumps over the lazy dog";
gcry_md_write(digest, text, strlen(text));
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
lazy dog". Damit ist das Resultat, wenn ich es in HEX-Kodiere, natürlich
auch deutlich länger als es sein sollte. Andererseits kommt es bei
anderen Texten durchaus auch mal vor, dass das Ergebnis zu kurz ausfällt
und die letzten Byte einfach fehlen. Benutze ich die Funktionen write
oder read falsch oder mache ich sonst irgendeinen fehler?
Wäre wirklich toll, wenn mich da jemand mit der Nase auf das Problem
stoßen könnte.
Gruß
Mehr Informationen über die Mailingliste Gnupg-de