=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<-passin arg>]
[B<-verify filename>]
[B<-prverify filename>]
[B<-signature filename>]
[B<-hmac key>]
[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<-passin arg>

the private key password source. For more information about the format of B<arg>
see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)|openssl(1)>.

=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<-hmac key>

create a hashed MAC using "key".

=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
