mirror of https://github.com/openssl/openssl.git
				
				
				
			
		
			
				
	
	
		
			254 lines
		
	
	
		
			7.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			254 lines
		
	
	
		
			7.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| =pod
 | |
| 
 | |
| =head1 NAME
 | |
| 
 | |
| OPENSSL_VERSION_MAJOR, OPENSSL_VERSION_MINOR, OPENSSL_VERSION_PATCH,
 | |
| OPENSSL_VERSION_PRE_RELEASE, OPENSSL_VERSION_BUILD_METADATA,
 | |
| OPENSSL_VERSION_TEXT,
 | |
| OPENSSL_version_major, OPENSSL_version_minor, OPENSSL_version_patch,
 | |
| OPENSSL_version_pre_release, OPENSSL_version_build_metadata, OpenSSL_version,
 | |
| OPENSSL_VERSION_NUMBER, OpenSSL_version_num, OPENSSL_info
 | |
| - get OpenSSL version number and other information
 | |
| 
 | |
| =head1 SYNOPSIS
 | |
| 
 | |
|  #include <openssl/opensslv.h>
 | |
| 
 | |
|  #define OPENSSL_VERSION_MAJOR  x
 | |
|  #define OPENSSL_VERSION_MINOR  y
 | |
|  #define OPENSSL_VERSION_PATCH  z
 | |
| 
 | |
|  /* The definitions here are typical release values */
 | |
|  #define OPENSSL_VERSION_PRE_RELEASE ""
 | |
|  #define OPENSSL_VERSION_BUILD_METADATA ""
 | |
| 
 | |
|  #define OPENSSL_VERSION_TEXT "OpenSSL x.y.z xx XXX xxxx"
 | |
| 
 | |
|  #include <openssl/crypto.h>
 | |
| 
 | |
|  unsigned int OPENSSL_version_major(void);
 | |
|  unsigned int OPENSSL_version_minor(void);
 | |
|  unsigned int OPENSSL_version_patch(void);
 | |
|  const char *OPENSSL_version_pre_release(void);
 | |
|  const char *OPENSSL_version_build_metadata(void);
 | |
| 
 | |
|  const char *OpenSSL_version(int t);
 | |
| 
 | |
|  const char *OPENSSL_info(int t);
 | |
| 
 | |
| Deprecated:
 | |
| 
 | |
|  /* from openssl/opensslv.h */
 | |
|  #define OPENSSL_VERSION_NUMBER 0xnnnnnnnnnL
 | |
| 
 | |
|  /* from openssl/crypto.h */
 | |
|  unsigned long OpenSSL_version_num();
 | |
| 
 | |
| =head1 DESCRIPTION
 | |
| 
 | |
| =head2 Macros
 | |
| 
 | |
| The three macros B<OPENSSL_VERSION_MAJOR>, B<OPENSSL_VERSION_MINOR> and
 | |
| B<OPENSSL_VERSION_PATCH> represent the three parts of a version
 | |
| identifier, B<I<MAJOR>.I<MINOR>.I<PATCH>>.
 | |
| 
 | |
| The macro B<OPENSSL_VERSION_PRE_RELEASE> is an added bit of text that
 | |
| indicates that this is a pre-release version, such as C<"-dev"> for an
 | |
| ongoing development snapshot or C<"-alpha3"> for an alpha release.
 | |
| The value must be a string.
 | |
| 
 | |
| The macro B<OPENSSL_VERSION_BUILD_METADATA> is extra information, reserved
 | |
| for other parties, such as C<"+fips">, or C<"+vendor.1">).
 | |
| The OpenSSL project will not touch this macro (will leave it an empty string).
 | |
| The value must be a string.
 | |
| 
 | |
| B<OPENSSL_VERSION_STR> is a convenience macro to get the short version
 | |
| identifier string, C<"I<MAJOR>.I<MINOR>.I<PATCH>">.
 | |
| 
 | |
| B<OPENSSL_FULL_VERSION_STR> is a convenience macro to get the longer
 | |
| version identifier string, which combines B<OPENSSL_VERSION_STR>,
 | |
| B<OPENSSL_VERSION_PRE_RELEASE> and B<OPENSSL_VERSION_BUILD_METADATA>.
 | |
| 
 | |
| B<OPENSSL_VERSION_TEXT> is a convenience macro to get a full descriptive
 | |
| version text, which includes B<OPENSSL_FULL_VERSION_STR> and the release
 | |
| date.
 | |
| 
 | |
| =head2 Functions
 | |
| 
 | |
| OPENSSL_version_major(), OPENSSL_version_minor(), OPENSSL_version_patch(),
 | |
| OPENSSL_version_pre_release(), and OPENSSL_version_build_metadata() return
 | |
| the values of the macros above for the build of the library, respectively.
 | |
| 
 | |
| OpenSSL_version() returns different strings depending on I<t>:
 | |
| 
 | |
| =over 4
 | |
| 
 | |
| =item OPENSSL_VERSION
 | |
| 
 | |
| The value of B<OPENSSL_VERSION_TEXT>
 | |
| 
 | |
| =item OPENSSL_VERSION_STRING
 | |
| 
 | |
| The value of B<OPENSSL_VERSION_STR>
 | |
| 
 | |
| =item OPENSSL_FULL_VERSION_STRING
 | |
| 
 | |
| The value of B<OPENSSL_FULL_VERSION_STR>
 | |
| 
 | |
| =item OPENSSL_CFLAGS
 | |
| 
 | |
| The compiler flags set for the compilation process in the form
 | |
| C<compiler: ...>  if available, or C<compiler: information not available>
 | |
| otherwise.
 | |
| 
 | |
| =item OPENSSL_BUILT_ON
 | |
| 
 | |
| The date of the build process in the form C<built on: ...> if available
 | |
| or C<built on: date not available> otherwise.
 | |
| The date would not be available in a reproducible build, for example.
 | |
| 
 | |
| =item OPENSSL_PLATFORM
 | |
| 
 | |
| The "Configure" target of the library build in the form C<platform: ...>
 | |
| if available, or C<platform: information not available> otherwise.
 | |
| 
 | |
| =item OPENSSL_DIR
 | |
| 
 | |
| The B<OPENSSLDIR> setting of the library build in the form C<OPENSSLDIR: "...">
 | |
| if available, or C<OPENSSLDIR: N/A> otherwise.
 | |
| 
 | |
| =item OPENSSL_ENGINES_DIR
 | |
| 
 | |
| The B<ENGINESDIR> setting of the library build in the form C<ENGINESDIR: "...">
 | |
| if available, or C<ENGINESDIR: N/A> otherwise.
 | |
| 
 | |
| =item OPENSSL_MODULES_DIR
 | |
| 
 | |
| The B<MODULESDIR> setting of the library build in the form C<MODULESDIR: "...">
 | |
| if available, or C<MODULESDIR: N/A> otherwise.
 | |
| 
 | |
| =item OPENSSL_CPU_INFO
 | |
| 
 | |
| The current OpenSSL cpu settings.
 | |
| This is the current setting of the cpu capability flags. It is usually
 | |
| automatically configured but may be set via an environment variable.
 | |
| The value has the same syntax as the environment variable.
 | |
| For x86 the string looks like C<CPUINFO: OPENSSL_ia32cap=0x123:0x456>
 | |
| or C<CPUINFO: N/A> if not available.
 | |
| 
 | |
| =back
 | |
| 
 | |
| For an unknown I<t>, the text C<not available> is returned.
 | |
| 
 | |
| OPENSSL_info() also returns different strings depending on I<t>:
 | |
| 
 | |
| =over 4
 | |
| 
 | |
| =item OPENSSL_INFO_CONFIG_DIR
 | |
| 
 | |
| The configured C<OPENSSLDIR>, which is the default location for
 | |
| OpenSSL configuration files.
 | |
| 
 | |
| =item OPENSSL_INFO_ENGINES_DIR
 | |
| 
 | |
| The configured C<ENGINESDIR>, which is the default location for
 | |
| OpenSSL engines.
 | |
| 
 | |
| =item OPENSSL_INFO_MODULES_DIR
 | |
| 
 | |
| The configured C<MODULESDIR>, which is the default location for
 | |
| dynamically loadable OpenSSL modules other than engines.
 | |
| 
 | |
| =item OPENSSL_INFO_DSO_EXTENSION
 | |
| 
 | |
| The configured dynamically loadable module extension.
 | |
| 
 | |
| =item OPENSSL_INFO_DIR_FILENAME_SEPARATOR
 | |
| 
 | |
| The separator between a directory specification and a filename.
 | |
| Note that on some operating systems, this is not the same as the
 | |
| separator between directory elements.
 | |
| 
 | |
| =item OPENSSL_INFO_LIST_SEPARATOR
 | |
| 
 | |
| The OpenSSL list separator.
 | |
| This is typically used in strings that are lists of items, such as the
 | |
| value of the environment variable C<$PATH> on Unix (where the
 | |
| separator is C<:>) or C<%PATH%> on Windows (where the separator is
 | |
| C<;>).
 | |
| 
 | |
| =item OPENSSL_INFO_CPU_SETTINGS
 | |
| 
 | |
| The current OpenSSL cpu settings.
 | |
| This is the current setting of the cpu capability flags. It is usually
 | |
| automatically configured but may be set via an environment variable.
 | |
| The value has the same syntax as the environment variable.
 | |
| For x86 the string looks like C<OPENSSL_ia32cap=0x123:0x456>.
 | |
| 
 | |
| =back
 | |
| 
 | |
| For an unknown I<t>, NULL is returned.
 | |
| 
 | |
| =head1 BACKWARD COMPATIBILITY
 | |
| 
 | |
| For compatibility, some older macros and functions are retained or
 | |
| synthesised.
 | |
| They are all considered deprecated.
 | |
| 
 | |
| =head2 Macros
 | |
| 
 | |
| B<OPENSSL_VERSION_NUMBER> is a combination of the major, minor and
 | |
| patch version into a single integer 0xMNN00PP0L, where:
 | |
| 
 | |
| =over 4
 | |
| 
 | |
| =item M
 | |
| 
 | |
| is the number from B<OPENSSL_VERSION_MAJOR>, in hexadecimal notation
 | |
| 
 | |
| =item NN
 | |
| 
 | |
| is the number from B<OPENSSL_VERSION_MINOR>, in hexadecimal notation
 | |
| 
 | |
| =item PP
 | |
| 
 | |
| is the number from B<OPENSSL_VERSION_PATCH>, in hexadecimal notation
 | |
| 
 | |
| =back
 | |
| 
 | |
| =head2 Functions
 | |
| 
 | |
| OpenSSL_version_num() returns the value of B<OPENSSL_VERSION_NUMBER>.
 | |
| 
 | |
| =head1 RETURN VALUES
 | |
| 
 | |
| OPENSSL_version_major(), OPENSSL_version_minor() and OPENSSL_version_patch()
 | |
| return the version number parts as integers.
 | |
| 
 | |
| OPENSSL_version_pre_release() and OPENSSL_version_build_metadata() return
 | |
| the values of B<OPENSSL_VERSION_PRE_RELEASE> and
 | |
| B<OPENSSL_VERSION_BUILD_METADATA> respectively as constant strings.
 | |
| For any of them that is undefined, the empty string is returned.
 | |
| 
 | |
| OpenSSL_version() returns constant strings.
 | |
| 
 | |
| =head1 SEE ALSO
 | |
| 
 | |
| L<crypto(7)>
 | |
| 
 | |
| =head1 HISTORY
 | |
| 
 | |
| The macros and functions described here were added in OpenSSL 3.0,
 | |
| with the exception of the L</BACKWARD COMPATIBILITY> ones.
 | |
| 
 | |
| =head1 COPYRIGHT
 | |
| 
 | |
| Copyright 2018-2019 The OpenSSL Project Authors. All Rights Reserved.
 | |
| 
 | |
| Licensed under the Apache License 2.0 (the "License").  You may not use
 | |
| this file except in compliance with the License.  You can obtain a copy
 | |
| in the file LICENSE in the source distribution or at
 | |
| L<https://www.openssl.org/source/license.html>.
 | |
| 
 | |
| =cut
 |