=pod

=head1 NAME

SSLeay_version - retrieve version/build information about OpenSSL library

=head1 SYNOPSIS

 #include <openssl/crypto.h>

 const char *SSLeay_version(int type);

=head1 DESCRIPTION

SSLeay_version() returns a pointer to a constant string describing the
version of the OpenSSL library or giving information about the library
build.

The following B<type> values are supported:

=over 4

=item SSLEAY_VERSION

The version of the OpenSSL library including the release date.

=item SSLEAY_CFLAGS

The compiler flags set for the compilation process in the form
"compiler: ..."  if available or "compiler: information not available"
otherwise.

=item SSLEAY_BUILT_ON

The date of the build process in the form "built on: ..." if available
or "built on: date not available" otherwise.

=item SSLEAY_PLATFORM

The "Configure" target of the library build in the form "platform: ..."
if available or "platform: information not available" otherwise.

=item SSLEAY_DIR

The "OPENSSLDIR" setting of the library build in the form "OPENSSLDIR: "...""
if available or "OPENSSLDIR: N/A" otherwise.

=back

=head1 RETURN VALUES

The following return values can occur:

=over 4

=item "not available"

An invalid value for B<type> was given.

=item Pointer to constant string

Textual description.

=back

=head1 SEE ALSO

L<crypto(3)|crypto(3)>

=head1 HISTORY

B<SSLEAY_DIR> was added in OpenSSL 0.9.7.

=cut
