=pod

=head1 NAME

dgst, md5, md4, md2, sha1, sha, mdc2, ripemd160 - message digests

=head1 SYNOPSIS

B<openssl> B<dgst> 
[B<-md5|-md4|-md2|-sha1|-sha|-mdc2|-ripemd160|-dss1>]
[B<-c>]
[B<-d>]
[B<-hex>]
[B<-binary>]
[B<-out filename>]
[B<-sign filename>]
[B<-verify filename>]
[B<-prverify filename>]
[B<-signature filename>]
[B<file...>]

[B<md5|md4|md2|sha1|sha|mdc2|ripemd160>]
[B<-c>]
[B<-d>]
[B<file...>]

=head1 DESCRIPTION

The digest functions output the message digest of a supplied file or files
in hexadecimal form. They can also be used for digital signing and verification.

=head1 OPTIONS

=over 4

=item B<-c>

print out the digest in two digit groups separated by colons, only relevant if
B<hex> format output is used.

=item B<-d>

print out BIO debugging information.

=item B<-hex>

digest is to be output as a hex dump. This is the default case for a "normal"
digest as opposed to a digital signature.

=item B<-binary>

output the digest or signature in binary form.

=item B<-out filename>

filename to output to, or standard output by default.

=item B<-sign filename>

digitally sign the digest using the private key in "filename".

=item B<-verify filename>

verify the signature using the the public key in "filename".
The output is either "Verification OK" or "Verification Failure".

=item B<-prverify filename>

verify the signature using the  the private key in "filename".

=item B<-signature filename>

the actual signature to verify.

=item B<-rand file(s)>

a file or files containing random data used to seed the random number
generator, or an EGD socket (see L<RAND_egd(3)|RAND_egd(3)>).
Multiple files can be specified separated by a OS-dependent character.
The separator is B<;> for MS-Windows, B<,> for OpenVMS, and B<:> for
all others. 

=item B<file...>

file or files to digest. If no files are specified then standard input is
used.

=back

=head1 NOTES

The digest of choice for all new applications is SHA1. Other digests are
however still widely used.

If you wish to sign or verify data using the DSA algorithm then the dss1
digest must be used.

A source of random numbers is required for certain signing algorithms, in
particular DSA.

The signing and verify options should only be used if a single file is
being signed or verified.

=cut
