=pod

=head1 NAME

version - print version information

=head1 SYNOPSIS

B<openssl version>
[B<-a>]
[B<-v>]
[B<-b>]
[B<-o>]
[B<-f>]
[B<-p>]

=head1 DESCRIPTION

This command is used to print out version information about OpenSSL.

=head1 OPTIONS

=over 4

=item B<-a>

all information, this is the same as setting all the other flags.

=item B<-v>

the current OpenSSL version.

=item B<-b>

the date the current version of OpenSSL was built.

=item B<-o>

option information: various options set when the library was built.

=item B<-c>

compilation flags.

=item B<-p>

platform setting.

=back

=head1 NOTES

The output of B<openssl version -a> would typically be used when sending
in a bug report.

=cut
