diff --git a/g10/gpg.c b/g10/gpg.c index 8d69da047..b06e392f7 100644 --- a/g10/gpg.c +++ b/g10/gpg.c @@ -4349,102 +4349,113 @@ print_hashline( gcry_md_hd_t md, int algo, const char *fname ) es_fputs (":\n", es_stdout); } + static void print_mds( const char *fname, int algo ) { - FILE *fp; - char buf[1024]; - size_t n; - gcry_md_hd_t md; + FILE *fp; + char buf[1024]; + size_t n; + gcry_md_hd_t md; - if( !fname ) { - fp = stdin; + if (!fname) + { + fp = stdin; #ifdef HAVE_DOSISH_SYSTEM - setmode ( fileno(fp) , O_BINARY ); + setmode ( fileno(fp) , O_BINARY ); #endif } - else { - fp = fopen( fname, "rb" ); - if (fp && is_secured_file (fileno (fp))) - { - fclose (fp); - fp = NULL; - gpg_err_set_errno (EPERM); - } + else + { + fp = fopen (fname, "rb" ); + if (fp && is_secured_file (fileno (fp))) + { + fclose (fp); + fp = NULL; + gpg_err_set_errno (EPERM); + } } - if( !fp ) { - log_error("%s: %s\n", fname?fname:"[stdin]", strerror(errno) ); - return; + if (!fp) + { + log_error("%s: %s\n", fname?fname:"[stdin]", strerror(errno) ); + return; } - gcry_md_open (&md, 0, 0); - if( algo ) - gcry_md_enable (md, algo); - else { - if (!openpgp_md_test_algo (GCRY_MD_MD5)) - gcry_md_enable (md, GCRY_MD_MD5); - gcry_md_enable (md, GCRY_MD_SHA1); - if (!openpgp_md_test_algo (GCRY_MD_RMD160)) - gcry_md_enable (md, GCRY_MD_RMD160); - if (!openpgp_md_test_algo (GCRY_MD_SHA224)) - gcry_md_enable (md, GCRY_MD_SHA224); - if (!openpgp_md_test_algo (GCRY_MD_SHA256)) - gcry_md_enable (md, GCRY_MD_SHA256); - if (!openpgp_md_test_algo (GCRY_MD_SHA384)) - gcry_md_enable (md, GCRY_MD_SHA384); - if (!openpgp_md_test_algo (GCRY_MD_SHA512)) - gcry_md_enable (md, GCRY_MD_SHA512); + gcry_md_open (&md, 0, 0); + if (algo) + gcry_md_enable (md, algo); + else + { + if (!openpgp_md_test_algo (GCRY_MD_MD5)) + gcry_md_enable (md, GCRY_MD_MD5); + gcry_md_enable (md, GCRY_MD_SHA1); + if (!openpgp_md_test_algo (GCRY_MD_RMD160)) + gcry_md_enable (md, GCRY_MD_RMD160); + if (!openpgp_md_test_algo (GCRY_MD_SHA224)) + gcry_md_enable (md, GCRY_MD_SHA224); + if (!openpgp_md_test_algo (GCRY_MD_SHA256)) + gcry_md_enable (md, GCRY_MD_SHA256); + if (!openpgp_md_test_algo (GCRY_MD_SHA384)) + gcry_md_enable (md, GCRY_MD_SHA384); + if (!openpgp_md_test_algo (GCRY_MD_SHA512)) + gcry_md_enable (md, GCRY_MD_SHA512); } - while( (n=fread( buf, 1, DIM(buf), fp )) ) - gcry_md_write (md, buf, n); - if( ferror(fp) ) - log_error("%s: %s\n", fname?fname:"[stdin]", strerror(errno) ); - else { - gcry_md_final (md); - if ( opt.with_colons ) { - if ( algo ) - print_hashline( md, algo, fname ); - else { - if (!openpgp_md_test_algo (GCRY_MD_MD5)) - print_hashline( md, GCRY_MD_MD5, fname ); - print_hashline( md, GCRY_MD_SHA1, fname ); - if (!openpgp_md_test_algo (GCRY_MD_RMD160)) - print_hashline( md, GCRY_MD_RMD160, fname ); - if (!openpgp_md_test_algo (GCRY_MD_SHA224)) - print_hashline (md, GCRY_MD_SHA224, fname); - if (!openpgp_md_test_algo (GCRY_MD_SHA256)) - print_hashline( md, GCRY_MD_SHA256, fname ); - if (!openpgp_md_test_algo (GCRY_MD_SHA384)) - print_hashline ( md, GCRY_MD_SHA384, fname ); - if (!openpgp_md_test_algo (GCRY_MD_SHA512)) - print_hashline ( md, GCRY_MD_SHA512, fname ); + while ((n=fread (buf, 1, DIM(buf), fp))) + gcry_md_write (md, buf, n); + + if (ferror(fp)) + log_error ("%s: %s\n", fname?fname:"[stdin]", strerror(errno)); + else + { + gcry_md_final (md); + if (opt.with_colons) + { + if ( algo ) + print_hashline (md, algo, fname); + else + { + if (!openpgp_md_test_algo (GCRY_MD_MD5)) + print_hashline( md, GCRY_MD_MD5, fname ); + print_hashline( md, GCRY_MD_SHA1, fname ); + if (!openpgp_md_test_algo (GCRY_MD_RMD160)) + print_hashline( md, GCRY_MD_RMD160, fname ); + if (!openpgp_md_test_algo (GCRY_MD_SHA224)) + print_hashline (md, GCRY_MD_SHA224, fname); + if (!openpgp_md_test_algo (GCRY_MD_SHA256)) + print_hashline( md, GCRY_MD_SHA256, fname ); + if (!openpgp_md_test_algo (GCRY_MD_SHA384)) + print_hashline ( md, GCRY_MD_SHA384, fname ); + if (!openpgp_md_test_algo (GCRY_MD_SHA512)) + print_hashline ( md, GCRY_MD_SHA512, fname ); } } - else { - if( algo ) - print_hex(md,-algo,fname); - else { - if (!openpgp_md_test_algo (GCRY_MD_MD5)) - print_hex( md, GCRY_MD_MD5, fname ); - print_hex( md, GCRY_MD_SHA1, fname ); - if (!openpgp_md_test_algo (GCRY_MD_RMD160)) - print_hex( md, GCRY_MD_RMD160, fname ); - if (!openpgp_md_test_algo (GCRY_MD_SHA224)) - print_hex (md, GCRY_MD_SHA224, fname); - if (!openpgp_md_test_algo (GCRY_MD_SHA256)) - print_hex( md, GCRY_MD_SHA256, fname ); - if (!openpgp_md_test_algo (GCRY_MD_SHA384)) - print_hex( md, GCRY_MD_SHA384, fname ); - if (!openpgp_md_test_algo (GCRY_MD_SHA512)) - print_hex( md, GCRY_MD_SHA512, fname ); + else + { + if (algo) + print_hex (md, -algo, fname); + else + { + if (!openpgp_md_test_algo (GCRY_MD_MD5)) + print_hex (md, GCRY_MD_MD5, fname); + print_hex (md, GCRY_MD_SHA1, fname ); + if (!openpgp_md_test_algo (GCRY_MD_RMD160)) + print_hex (md, GCRY_MD_RMD160, fname ); + if (!openpgp_md_test_algo (GCRY_MD_SHA224)) + print_hex (md, GCRY_MD_SHA224, fname); + if (!openpgp_md_test_algo (GCRY_MD_SHA256)) + print_hex (md, GCRY_MD_SHA256, fname ); + if (!openpgp_md_test_algo (GCRY_MD_SHA384)) + print_hex (md, GCRY_MD_SHA384, fname ); + if (!openpgp_md_test_algo (GCRY_MD_SHA512)) + print_hex (md, GCRY_MD_SHA512, fname ); } } } - gcry_md_close(md); + gcry_md_close (md); - if( fp != stdin ) - fclose(fp); + if (fp != stdin) + fclose (fp); }