Simple program to get sha256 hash
Paolo Bolzoni
paolo.bolzoni.brown at gmail.com
Thu Mar 16 23:47:01 CET 2017
Dear list,
Today I wanted to play a bit with libgcrypt and I wanted
to make a small program to return the sha256 hash of a
string passed as argument.
The program compiles, links, and gives an output.
However, the output is different than what I get using
sha256sum from coreutils!
Here is what I see in my shell:
$ gcc -o ssha ./hash.cpp -lgcrypt
$ ./ssha blablabla
a6898dd93b4c6a87e978aea8547fdc3901b7b94d96636e03d5a6194f4491c571
$ sha256sum <<< 'blablabla'
a5edca3a5b8fb54ae61d236a5274626ba6a38781573e02202000158faa707191 -
$
hash.cpp contains the code I copied in the bottom of the email.
What am I missing? Isn't expected to have the same hash code?
Yours faithfully,
Paolo
---------- >8
#include <stdio.h>
#include <gcrypt.h>
int main(int argc, char** argv) {
if (argc < 2) return 1;
gcry_md_hd_t context;
gcry_md_open(&context, GCRY_MD_SHA256, 0);
char* c = argv[1];
while (*c != '\0') {
++c;
gcry_md_putc(context, *c); }
unsigned char* csha = gcry_md_read(context, GCRY_MD_SHA256);
for (int i = 0; i < 32; ++i) {
printf("%02x", csha[i]); }
printf("\n");
gcry_md_close(context); }
More information about the Gnupg-users
mailing list