L<x509(1)>, L<ca(1)>, L<req(1)>, L<pkcs12(1)>,
L<config(5)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
=back
-=head2 OUTPUT
+=head2 Output
The output will typically contain lines like this:
L<ASN1_generate_nconf(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<req(1)>, L<spkac(1)>, L<x509(1)>, L<CA.pl(1)>,
L<config(5)>, L<x509v3_config(5)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
that several cipher suite names do not include the authentication used,
e.g. DES-CBC3-SHA. In these cases, RSA authentication is used.
-=head2 SSL v3.0 cipher suites.
+=head2 SSL v3.0 cipher suites
SSL_RSA_WITH_NULL_MD5 NULL-MD5
SSL_RSA_WITH_NULL_SHA NULL-SHA
SSL_FORTEZZA_KEA_WITH_FORTEZZA_CBC_SHA Not implemented.
SSL_FORTEZZA_KEA_WITH_RC4_128_SHA Not implemented.
-=head2 TLS v1.0 cipher suites.
+=head2 TLS v1.0 cipher suites
TLS_RSA_WITH_NULL_MD5 NULL-MD5
TLS_RSA_WITH_NULL_SHA NULL-SHA
TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 ECDHE-RSA-CAMELLIA128-SHA256
TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 ECDHE-RSA-CAMELLIA256-SHA384
-=head2 Pre shared keying (PSK) ciphersuites
+=head2 Pre-shared keying (PSK) ciphersuites
PSK_WITH_NULL_SHA PSK-NULL-SHA
DHE_PSK_WITH_NULL_SHA DHE-PSK-NULL-SHA
DHE_PSK_WITH_AES_128_CCM_8 DHE-PSK-AES128-CCM8
DHE_PSK_WITH_AES_256_CCM_8 DHE-PSK-AES256-CCM8
-=head2 ChaCha20-Poly1305 cipher suites from draft-ietf-tls-chacha20-poly1305-04, extending TLS v1.2
+=head2 ChaCha20-Poly1305 cipher suites, extending TLS v1.2
TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 ECDHE-RSA-CHACHA20-POLY1305
TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 ECDHE-ECDSA-CHACHA20-POLY1305
The B<-V> option for the B<ciphers> command was added in OpenSSL 1.0.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
The -no_alt_chains options was first added to OpenSSL 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved.
The features of each configuration module are described below.
-=head2 ASN1 OBJECT CONFIGURATION MODULE
+=head2 ASN1 Object Configuration Module
This module has the name B<oid_section>. The value of this variable points
to a section containing name value pairs of OIDs: the name is the OID short
shortName = some object long name, 1.2.3.4
-=head2 ENGINE CONFIGURATION MODULE
+=head2 Engine Configuration Module
This ENGINE configuration module has the name B<engines>. The value of this
variable points to a section containing further ENGINE configuration
# Supply all default algorithms
default_algorithms = ALL
-=head2 EVP CONFIGURATION MODULE
+=head2 EVP Configuration Module
This modules has the name B<alg_section> which points to a section containing
algorithm commands.
fips_mode = on
-=head2 SSL CONFIGURATION MODULE
+=head2 SSL Configuration Module
This module has the name B<ssl_conf> which points to a section containing
SSL configurations.
L<x509(1)>, L<req(1)>, L<ca(1)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<crl2pkcs7(1)>, L<ca(1)>, L<x509(1)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<pkcs7(1)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
The default digest was changed from MD5 to SHA256 in Openssl 1.1.
The FIPS-related options were removed in OpenSSL 1.1
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<dsaparam(1)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<dsaparam(1)>, L<gendsa(1)>, L<rsa(1)>,
L<genrsa(1)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<gendsa(1)>, L<dsa(1)>, L<genrsa(1)>,
L<rsa(1)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ecparam(1)>, L<dsa(1)>, L<rsa(1)>
-=cut
-
=head1 COPYRIGHT
Copyright 2003-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ec(1)>, L<dsaparam(1)>
-=cut
-
=head1 COPYRIGHT
Copyright 2003-2016 The OpenSSL Project Authors. All Rights Reserved.
The default digest was changed from MD5 to SHA256 in Openssl 1.1.
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
[RSA]
(dynamic) Dynamic engine loading support
-=cut
-
=head1 COPYRIGHT
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
L<err(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2004-2016 The OpenSSL Project Authors. All Rights Reserved.
L<dsaparam(1)>, L<dsa(1)>, L<genrsa(1)>,
L<rsa(1)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
The ability to use NIST curve names, and to generate an EC key directly,
were added in OpenSSL 1.0.2.
-=cut
-
=head1 COPYRIGHT
Copyright 2006-2016 The OpenSSL Project Authors. All Rights Reserved.
L<gendsa(1)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
This program needs a few more options: like allowing DER or PEM input and
output files and allowing multiple certificate files to be used.
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
The -no_alt_chains options was first added to OpenSSL 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
not able to detect pseudo-commands such as B<quit>,
B<list>, or B<no->I<XXX> itself.)
-=head2 STANDARD COMMANDS
+=head2 Standard Commands
=over 10
=back
-=head2 MESSAGE DIGEST COMMANDS
+=head2 Message Digest Commands
=over 10
=back
-=head2 ENCODING AND CIPHER COMMANDS
+=head2 Encoding and Cipher Commands
=over 10
For notes on the availability of other commands, see their individual
manual pages.
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
B<openssl passwd -apr1 -salt xxxxxxxx password> prints B<$apr1$xxxxxxxx$dxHfLAsjHkDRmG83UXe8K0>.
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<pkcs8(1)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<crl2pkcs7(1)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
The B<-iter> option was added to OpenSSL 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<genpkey(1)>, L<rsa(1)>, L<pkcs8(1)>,
L<dsa(1)>, L<genrsa(1)>, L<gendsa(1)>
-=cut
-
=head1 COPYRIGHT
Copyright 2006-2016 The OpenSSL Project Authors. All Rights Reserved.
L<genpkey(1)>, L<rsa(1)>, L<pkcs8(1)>,
L<dsa(1)>, L<genrsa(1)>, L<gendsa(1)>
-=cut
-
=head1 COPYRIGHT
Copyright 2006-2016 The OpenSSL Project Authors. All Rights Reserved.
L<dgst(1)>, L<rsa(1)>, L<genrsa(1)>,
L<EVP_PKEY_HKDF(3)>, L<EVP_PKEY_TLS1_PRF(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2006-2016 The OpenSSL Project Authors. All Rights Reserved.
L<RAND_bytes(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<crl(1)>.
L<x509(1)>.
-=cut
-
=head1 COPYRIGHT
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
L<gendsa(1)>, L<config(5)>,
L<x509v3_config(5)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<pkcs8(1)>, L<dsa(1)>, L<genrsa(1)>,
L<gendsa(1)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<dgst(1)>, L<rsa(1)>, L<genrsa(1)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
The -no_alt_chains options was first added to OpenSSL 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
The -no_alt_chains options was first added to OpenSSL 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<s_client(1)>, L<s_server(1)>, L<ciphers(1)>
-=cut
-
=head1 COPYRIGHT
Copyright 2004-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ciphers(1)>, L<s_server(1)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
The -no_alt_chains options was first added to OpenSSL 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
=back
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ca(1)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
=back
-=cut
-
=head1 SEE ALSO
L<tsget(1)>, L<openssl(1)>, L<req(1)>,
L<x509(1)>, L<ca(1)>, L<genrsa(1)>,
L<config(5)>
-=cut
-
=head1 COPYRIGHT
Copyright 2006-2016 The OpenSSL Project Authors. All Rights Reserved.
L<openssl(1)>, L<ts(1)>, L<curl(1)>,
B<RFC 3161>
-=cut
-
=head1 COPYRIGHT
Copyright 2006-2016 The OpenSSL Project Authors. All Rights Reserved.
Not used as of OpenSSL 1.1.0 as a result of the deprecation of the
B<-issuer_checks> option.
-=item B<33 X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER: unable to get CRL issuer certificate>
+=item B<X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER>
-TBA
+Unable to get CRL issuer certificate.
-=item B<34 X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION: unhandled critical extension>
+=item B<X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION>
-TBA
+Unhandled critical extension.
-=item B<35 X509_V_ERR_KEYUSAGE_NO_CRL_SIGN: key usage does not include CRL signing>
+=item B<X509_V_ERR_KEYUSAGE_NO_CRL_SIGN>
-TBA
+Key usage does not include CRL signing.
-=item B<36 X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION: unhandled critical CRL extension>
+=item B<X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION>
-TBA
+Unhandled critical CRL extension.
-=item B<37 X509_V_ERR_INVALID_NON_CA: invalid non-CA certificate has CA markings>
+=item B<X509_V_ERR_INVALID_NON_CA>
-TBA
+Invalid non-CA certificate has CA markings.
-=item B<38 X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED: proxy path length constraint exceeded>
+=item B<X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED>
-TBA
+Proxy path length constraint exceeded.
-=item B<39 X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE: key usage does not include digital signature>
+=item B<X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE>
-TBA
+Key usage does not include digital signature.
-=item B<40 X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED: proxy certificates not allowed, please set the appropriate flag>
+=item B<X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED>
-TBA
+Proxy certificates not allowed, please set the appropriate flag.
-=item B<41 X509_V_ERR_INVALID_EXTENSION: invalid or inconsistent certificate extension>
+=item B<X509_V_ERR_INVALID_EXTENSION>
-TBA
+Invalid or inconsistent certificate extension.
-=item B<42 X509_V_ERR_INVALID_POLICY_EXTENSION: invalid or inconsistent certificate policy extension>
+=item B<X509_V_ERR_INVALID_POLICY_EXTENSION>
-TBA
+Invalid or inconsistent certificate policy extension.
-=item B<43 X509_V_ERR_NO_EXPLICIT_POLICY: no explicit policy>
+=item B<X509_V_ERR_NO_EXPLICIT_POLICY>
-TBA
+No explicit policy.
-=item B<44 X509_V_ERR_DIFFERENT_CRL_SCOPE: Different CRL scope>
+=item B<X509_V_ERR_DIFFERENT_CRL_SCOPE>
-TBA
+Different CRL scope.
-=item B<45 X509_V_ERR_UNSUPPORTED_EXTENSION_FEATURE: Unsupported extension feature>
+=item B<X509_V_ERR_UNSUPPORTED_EXTENSION_FEATURE>
-TBA
+Unsupported extension feature.
-=item B<46 X509_V_ERR_UNNESTED_RESOURCE: RFC 3779 resource not subset of parent's resources>
+=item B<X509_V_ERR_UNNESTED_RESOURCE>
-TBA
+RFC 3779 resource not subset of parent's resources.
-=item B<47 X509_V_ERR_PERMITTED_VIOLATION: permitted subtree violation>
+=item B<X509_V_ERR_PERMITTED_VIOLATION>
-TBA
+Permitted subtree violation.
-=item B<48 X509_V_ERR_EXCLUDED_VIOLATION: excluded subtree violation>
+=item B<X509_V_ERR_EXCLUDED_VIOLATION>
-TBA
+Excluded subtree violation.
-=item B<49 X509_V_ERR_SUBTREE_MINMAX: name constraints minimum and maximum not supported>
+=item B<X509_V_ERR_SUBTREE_MINMAX>
-TBA
+Name constraints minimum and maximum not supported.
-=item B<50 X509_V_ERR_APPLICATION_VERIFICATION: application verification failure>
+=item B<X509_V_ERR_APPLICATION_VERIFICATION>
-an application specific error. Unused.
+Application verification failure. Unused.
-=item B<51 X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE: unsupported name constraint type>
+=item B<X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE>
-TBA
+Unsupported name constraint type.
-=item B<52 X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX: unsupported or invalid name constraint syntax>
+=item B<X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX>
-TBA
+Unsupported or invalid name constraint syntax.
-=item B<53 X509_V_ERR_UNSUPPORTED_NAME_SYNTAX: unsupported or invalid name syntax>
+=item B<X509_V_ERR_UNSUPPORTED_NAME_SYNTAX>
-TBA
+Unsupported or invalid name syntax.
-=item B<54 X509_V_ERR_CRL_PATH_VALIDATION_ERROR: CRL path validation error>
+=item B<X509_V_ERR_CRL_PATH_VALIDATION_ERROR>
-TBA
+CRL path validation error.
-=item B<55 X509_V_ERR_PATH_LOOP: Path Loop>
+=item B<X509_V_ERR_PATH_LOOP>
-TBA
+Path loop.
-=item B<56 X509_V_ERR_SUITE_B_INVALID_VERSION: Suite B: certificate version invalid>
+=item B<X509_V_ERR_SUITE_B_INVALID_VERSION>
-TBA
+Suite B: certificate version invalid.
-=item B<57 X509_V_ERR_SUITE_B_INVALID_ALGORITHM: Suite B: invalid public key algorithm>
+=item B<X509_V_ERR_SUITE_B_INVALID_ALGORITHM>
-TBA
+Suite B: invalid public key algorithm.
-=item B<58 X509_V_ERR_SUITE_B_INVALID_CURVE: Suite B: invalid ECC curve>
+=item B<X509_V_ERR_SUITE_B_INVALID_CURVE>
-TBA
+Suite B: invalid ECC curve.
-=item B<59 X509_V_ERR_SUITE_B_INVALID_SIGNATURE_ALGORITHM: Suite B: invalid signature algorithm>
+=item B<X509_V_ERR_SUITE_B_INVALID_SIGNATURE_ALGORITHM>
-TBA
+Suite B: invalid signature algorithm.
-=item B<60 X509_V_ERR_SUITE_B_LOS_NOT_ALLOWED: Suite B: curve not allowed for this LOS>
+=item B<X509_V_ERR_SUITE_B_LOS_NOT_ALLOWED>
-TBA
+Suite B: curve not allowed for this LOS.
-=item B<61 X509_V_ERR_SUITE_B_CANNOT_SIGN_P_384_WITH_P_256: Suite B: cannot sign P-384 with P-256>
+=item B<X509_V_ERR_SUITE_B_CANNOT_SIGN_P_384_WITH_P_256>
-TBA
+Suite B: cannot sign P-384 with P-256.
-=item B<62 X509_V_ERR_HOSTNAME_MISMATCH: Hostname mismatch>
+=item B<X509_V_ERR_HOSTNAME_MISMATCH>
-TBA
+Hostname mismatch.
-=item B<63 X509_V_ERR_EMAIL_MISMATCH: Email address mismatch>
+=item B<X509_V_ERR_EMAIL_MISMATCH>
-TBA
+Email address mismatch.
-=item B<64 X509_V_ERR_IP_ADDRESS_MISMATCH: IP address mismatch>
+=item B<X509_V_ERR_IP_ADDRESS_MISMATCH>
-TBA
+IP address mismatch.
-=item B<65 X509_V_ERR_DANE_NO_MATCH: No matching DANE TLSA records>
+=item B<X509_V_ERR_DANE_NO_MATCH>
DANE TLSA authentication is enabled, but no TLSA records matched the
certificate chain.
The B<-issuer_checks> option is deprecated as of OpenSSL 1.1.0 and
is silently ignored.
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
The output of B<openssl version -a> would typically be used when sending
in a bug report.
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
=head1 OPTIONS
-=head2 INPUT, OUTPUT AND GENERAL PURPOSE OPTIONS
+=head2 Input, Output, and General Purpose Options
=over 4
=back
-=head2 DISPLAY OPTIONS
+=head2 Display Options
Note: the B<-alias> and B<-purpose> options are also display options
but are described in the B<TRUST SETTINGS> section.
=back
-=head2 TRUST SETTINGS
+=head2 Trust Settings
A B<trusted certificate> is an ordinary certificate which has several
additional pieces of information attached to it such as the permitted
=back
-=head2 SIGNING OPTIONS
+=head2 Signing Options
The B<x509> utility can be used to sign certificates and requests: it
can thus behave like a "mini CA".
=back
-=head2 NAME OPTIONS
+=head2 Name Options
The B<nameopt> command line switch determines how the subject and issuer
names are displayed. If no B<nameopt> switch is present the default "oneline"
=back
-=head2 TEXT OPTIONS
+=head2 Text Options
As well as customising the name output format, it is also possible to
customise the actual fields printed using the B<certopt> options when
canonical version of the DN using SHA1. This means that any directories using
the old form must have their links rebuilt using B<c_rehash> or similar.
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
authorityInfoAccess = caIssuers;URI:http://my.ca/ca.html
-=head2 CRL distribution points.
+=head2 CRL distribution points
This is a multi-valued extension whose options can be either in name:value pair
using the same form as subject alternative name or a single value representing
L<req(1)>, L<ca(1)>, L<x509(1)>,
L<ASN1_generate_nconf(3)>
-
-=cut
-
=head1 COPYRIGHT
Copyright 2004-2016 The OpenSSL Project Authors. All Rights Reserved.
ASN1_ENUMERATED_set_int64() and ASN1_ENUMERATED_get_int64()
were added to OpenSSL 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ERR_get_error(3)>, L<d2i_ASN1_OBJECT(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ERR_get_error(3)>
-=head1 HISTORY
-
-=cut
-
=head1 COPYRIGHT
Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ERR_get_error(3)>
-=head1 HISTORY
-
-TBA
-
-=cut
-
=head1 COPYRIGHT
Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved.
L<X509_NAME_print_ex(3)>,
L<ASN1_tag2str(3)>
-=head1 HISTORY
-
-TBA
-
-=cut
-
=head1 COPYRIGHT
Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved.
ASN1_TIME_diff() returns 1 for success and 0 for failure. It can fail if the
pass ASN1_TIME structure has invalid syntax for example.
-=cut
-
=head1 COPYRIGHT
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
ASN1_TYPE_pack_sequence() return an ASN1_TYPE structure if it succeeds or
NULL on failure.
-=cut
-
=head1 COPYRIGHT
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
followed by an optional colon and a value. The formats of B<type>,
B<value> and B<modifier> are explained below.
-=head2 SUPPORTED TYPES
+=head2 Supported Types
The supported types are listed below. Unless otherwise specified
only the B<ASCII> format is permissible.
=back
-=head2 MODIFIERS
+=head2 Modifiers
Modifiers affect the following structure, they can be used to
add EXPLICIT or IMPLICIT tagging, add wrappers or to change
L<ERR_get_error(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved.
ASYNC_WAIT_CTX_get_changed_fds, ASYNC_WAIT_CTX_clear_fd were first added to
OpenSSL 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
ASYNC_block_pause(), ASYNC_unblock_pause() and ASYNC_is_capable() were first
added to OpenSSL 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
L<BIO_connect(3)>, L<BIO_s_connect(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
L<BIO_lookup(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
L<BIO_ADDR(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
supported, if an error occurred, if EOF has not been reached and in
the case of BIO_seek() on a file BIO for a successful operation.
-=head1 SEE ALSO
-
-TBA
-
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
There should be some way of specifying a test that the BIO can perform
to reliably determine EOF (for example a MIME boundary).
-=head1 SEE ALSO
-
-TBA
-
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<BIO_pop(3)>,
L<BIO_ctrl(3)>.
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
BIO_get_cipher_ctx() currently always returns 1.
-=head1 EXAMPLES
-
-TBA
-
-=head1 SEE ALSO
-
-TBA
-
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
Before OpenSSL 1.0.0., the call to BIO_get_md_ctx() would only work if the
BIO was initialized first.
-=head1 SEE ALSO
-
-TBA
-
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
BIO_f_null() returns the null filter BIO method.
-=head1 SEE ALSO
-
-TBA
-
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
to do so to separate the handshake process from other I/O
processing.
-=head1 RETURN VALUES
-
-TBA
-
=head1 EXAMPLE
This SSL/TLS client example, attempts to retrieve a page from an
SSL_CTX *ctx;
SSL *ssl;
- /* We would seed the PRNG here if the platform didn't
- * do it automatically
- */
+ /* XXX Seed the PRNG if needed. */
ctx = SSL_CTX_new(TLS_client_method());
- /* We'd normally set some stuff like the verify paths and
- * mode here because as things stand this will connect to
- * any server whose certificate is signed by any CA.
- */
+ /* XXX Set verify paths and mode here. */
sbio = BIO_new_ssl_connect(ctx);
-
BIO_get_ssl(sbio, &ssl);
-
- if(!ssl) {
- fprintf(stderr, "Can't locate SSL pointer\n");
- /* whatever ... */
+ if (ssl == NULL) {
+ fprintf(stderr, "Can't locate SSL pointer\n");
+ ERR_print_errors_fp(stderr);
+ exit(1);
}
/* Don't want any retries */
SSL_set_mode(ssl, SSL_MODE_AUTO_RETRY);
- /* We might want to do other things with ssl here */
+ /* XXX We might want to do other things with ssl here */
/* An empty host part means the loopback address */
BIO_set_conn_hostname(sbio, ":https");
out = BIO_new_fp(stdout, BIO_NOCLOSE);
- if(BIO_do_connect(sbio) <= 0) {
- fprintf(stderr, "Error connecting to server\n");
- ERR_print_errors_fp(stderr);
- /* whatever ... */
+ if (BIO_do_connect(sbio) <= 0) {
+ fprintf(stderr, "Error connecting to server\n");
+ ERR_print_errors_fp(stderr);
+ exit(1);
}
-
- if(BIO_do_handshake(sbio) <= 0) {
+ if (BIO_do_handshake(sbio) <= 0) {
fprintf(stderr, "Error establishing SSL connection\n");
ERR_print_errors_fp(stderr);
- /* whatever ... */
+ exit(1);
}
- /* Could examine ssl here to get connection info */
+ /* XXX Could examine ssl here to get connection info */
BIO_puts(sbio, "GET / HTTP/1.0\n\n");
- for(;;) {
- len = BIO_read(sbio, tmpbuf, 1024);
- if(len <= 0) break;
- BIO_write(out, tmpbuf, len);
+ for ( ; ; ) {
+ len = BIO_read(sbio, tmpbuf, 1024);
+ if(len <= 0)
+ break;
+ BIO_write(out, tmpbuf, len);
}
BIO_free_all(sbio);
BIO_free(out);
SSL_CTX *ctx;
SSL *ssl;
- /* Might seed PRNG here */
+ /* XXX Seed the PRNG if needed. */
ctx = SSL_CTX_new(TLS_server_method());
-
- if (!SSL_CTX_use_certificate_file(ctx,"server.pem",SSL_FILETYPE_PEM)
- || !SSL_CTX_use_PrivateKey_file(ctx,"server.pem",SSL_FILETYPE_PEM)
- || !SSL_CTX_check_private_key(ctx)) {
-
- fprintf(stderr, "Error setting up SSL_CTX\n");
- ERR_print_errors_fp(stderr);
- return 0;
+ if (!SSL_CTX_use_certificate_file(ctx, "server.pem", SSL_FILETYPE_PEM)
+ || !SSL_CTX_use_PrivateKey_file(ctx, "server.pem", SSL_FILETYPE_PEM)
+ || !SSL_CTX_check_private_key(ctx)) {
+ fprintf(stderr, "Error setting up SSL_CTX\n");
+ ERR_print_errors_fp(stderr);
+ exit(1);
}
- /* Might do other things here like setting verify locations and
- * DH and/or RSA temporary key callbacks
- */
+ /* XXX Other things like set verify locations, EDH temp callbacks. */
/* New SSL BIO setup as server */
- sbio=BIO_new_ssl(ctx,0);
-
+ sbio = BIO_new_ssl(ctx,0);
BIO_get_ssl(sbio, &ssl);
-
- if(!ssl) {
- fprintf(stderr, "Can't locate SSL pointer\n");
- /* whatever ... */
+ if (ssl == NULL) {
+ fprintf(stderr, "Can't locate SSL pointer\n");
+ ERR_print_errors_fp(stderr);
+ exit(1);
}
- /* Don't want any retries */
SSL_set_mode(ssl, SSL_MODE_AUTO_RETRY);
-
- /* Create the buffering BIO */
-
bbio = BIO_new(BIO_f_buffer());
-
- /* Add to chain */
sbio = BIO_push(bbio, sbio);
+ acpt = BIO_new_accept("4433");
- acpt=BIO_new_accept("4433");
-
- /* By doing this when a new connection is established
+ /*
+ * By doing this when a new connection is established
* we automatically have sbio inserted into it. The
* BIO chain is now 'swallowed' by the accept BIO and
* will be freed when the accept BIO is freed.
*/
-
- BIO_set_accept_bios(acpt,sbio);
-
+ BIO_set_accept_bios(acpt, sbio);
out = BIO_new_fp(stdout, BIO_NOCLOSE);
/* Setup accept BIO */
- if(BIO_do_accept(acpt) <= 0) {
- fprintf(stderr, "Error setting up accept BIO\n");
- ERR_print_errors_fp(stderr);
- return 0;
+ if (BIO_do_accept(acpt) <= 0) {
+ fprintf(stderr, "Error setting up accept BIO\n");
+ ERR_print_errors_fp(stderr);
+ exit(1);
}
- /* Now wait for incoming connection */
- if(BIO_do_accept(acpt) <= 0) {
- fprintf(stderr, "Error in connection\n");
- ERR_print_errors_fp(stderr);
- return 0;
+ if (BIO_do_accept(acpt) <= 0) {
+ fprintf(stderr, "Error in connection\n");
+ ERR_print_errors_fp(stderr);
+ exit(1);
}
- /* We only want one connection so remove and free
- * accept BIO
- */
-
+ /* We only want one connection so remove and free accept BIO */
sbio = BIO_pop(acpt);
-
BIO_free_all(acpt);
- if(BIO_do_handshake(sbio) <= 0) {
- fprintf(stderr, "Error in SSL handshake\n");
- ERR_print_errors_fp(stderr);
- return 0;
+ if (BIO_do_handshake(sbio) <= 0) {
+ fprintf(stderr, "Error in SSL handshake\n");
+ ERR_print_errors_fp(stderr);
+ exit(1);
}
BIO_puts(sbio, "HTTP/1.0 200 OK\r\nContent-type: text/plain\r\n\r\n");
BIO_puts(sbio, "\r\nConnection Established\r\nRequest headers:\r\n");
BIO_puts(sbio, "--------------------------------------------------\r\n");
- for(;;) {
- len = BIO_gets(sbio, tmpbuf, 1024);
- if(len <= 0) break;
- BIO_write(sbio, tmpbuf, len);
- BIO_write(out, tmpbuf, len);
- /* Look for blank line signifying end of headers*/
- if((tmpbuf[0] == '\r') || (tmpbuf[0] == '\n')) break;
+ for ( ; ; ) {
+ len = BIO_gets(sbio, tmpbuf, 1024);
+ if (len <= 0)
+ break;
+ BIO_write(sbio, tmpbuf, len);
+ BIO_write(out, tmpbuf, len);
+ /* Look for blank line signifying end of headers*/
+ if (tmpbuf[0] == '\r' || tmpbuf[0] == '\n')
+ break;
}
BIO_puts(sbio, "--------------------------------------------------\r\n");
BIO_puts(sbio, "\r\n");
-
- /* Since there is a buffering BIO present we had better flush it */
BIO_flush(sbio);
-
BIO_free_all(sbio);
=head1 BUGS
included workarounds for this bug (e.g. freeing BIOs more than once) should
be modified to handle this fix or they may free up an already freed BIO.
-=head1 SEE ALSO
-
-TBA
-
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
} while(btmp);
-=head1 SEE ALSO
-
-TBA
-
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
The functions described here were added in OpenSSL version 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
L<CRYPTO_get_ex_new_index(3)>.
-=cut
-
=head1 COPYRIGHT
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
The functions described here were added in OpenSSL version 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
BIO *mem = BIO_new(BIO_s_mem());
-=head1 SEE ALSO
-
-TBA
-
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
BIO_new_CMS() was added to OpenSSL 1.0.0
-=cut
-
=head1 COPYRIGHT
Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved.
L<BIO_ADDRINFO(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
The BIO_set_next() function was added in OpenSSL version 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<BIO_should_retry(3)>
-TBA
-
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
BIO *abio, *cbio, *cbio2;
- abio = BIO_new_accept("4444");
-
/* First call to BIO_accept() sets up accept BIO */
- if(BIO_do_accept(abio) <= 0) {
- fprintf(stderr, "Error setting up accept\n");
- ERR_print_errors_fp(stderr);
- exit(0);
+ abio = BIO_new_accept("4444");
+ if (BIO_do_accept(abio) <= 0) {
+ fprintf(stderr, "Error setting up accept\n");
+ ERR_print_errors_fp(stderr);
+ exit(1);
}
/* Wait for incoming connection */
- if(BIO_do_accept(abio) <= 0) {
- fprintf(stderr, "Error accepting connection\n");
- ERR_print_errors_fp(stderr);
- exit(0);
+ if (BIO_do_accept(abio) <= 0) {
+ fprintf(stderr, "Error accepting connection\n");
+ ERR_print_errors_fp(stderr);
+ exit(1);
}
fprintf(stderr, "Connection 1 established\n");
+
/* Retrieve BIO for connection */
cbio = BIO_pop(abio);
BIO_puts(cbio, "Connection 1: Sending out Data on initial connection\n");
fprintf(stderr, "Sent out data on connection 1\n");
+
/* Wait for another connection */
- if(BIO_do_accept(abio) <= 0) {
- fprintf(stderr, "Error accepting connection\n");
- ERR_print_errors_fp(stderr);
- exit(0);
+ if (BIO_do_accept(abio) <= 0) {
+ fprintf(stderr, "Error accepting connection\n");
+ ERR_print_errors_fp(stderr);
+ exit(1);
}
fprintf(stderr, "Connection 2 established\n");
+
/* Close accept BIO to refuse further connections */
cbio2 = BIO_pop(abio);
BIO_free(abio);
fprintf(stderr, "Sent out data on connection 2\n");
BIO_puts(cbio, "Connection 1: Second connection established\n");
+
/* Close the two established connections */
BIO_free(cbio);
BIO_free(cbio2);
-=head1 SEE ALSO
-
-TBA
-
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_set_bio(3)>, L<ssl(3)>, L<bio(3)>,
L<BIO_should_retry(3)>, L<BIO_read(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
cbio = BIO_new_connect("localhost:http");
out = BIO_new_fp(stdout, BIO_NOCLOSE);
- if(BIO_do_connect(cbio) <= 0) {
- fprintf(stderr, "Error connecting to server\n");
- ERR_print_errors_fp(stderr);
- /* whatever ... */
- }
+ if (BIO_do_connect(cbio) <= 0) {
+ fprintf(stderr, "Error connecting to server\n");
+ ERR_print_errors_fp(stderr);
+ exit(1);
+ }
BIO_puts(cbio, "GET / HTTP/1.0\n\n");
- for(;;) {
- len = BIO_read(cbio, tmpbuf, 1024);
- if(len <= 0) break;
- BIO_write(out, tmpbuf, len);
+ for ( ; ; ) {
+ len = BIO_read(cbio, tmpbuf, 1024);
+ if(len <= 0)
+ break;
+ BIO_write(out, tmpbuf, len);
}
BIO_free(cbio);
BIO_free(out);
L<BIO_ADDR(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<BIO_gets(3)>, L<BIO_printf(3)>,
L<BIO_set_close(3)>, L<BIO_get_close(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<BIO_gets(3)>, L<BIO_printf(3)>,
L<BIO_set_close(3)>, L<BIO_get_close(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
BIO_set_close(mem, BIO_NOCLOSE); /* So BIO_free() leaves BUF_MEM alone */
BIO_free(mem);
-
-=head1 SEE ALSO
-
-TBA
-
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
BIO_s_null() returns the null sink BIO method.
-=head1 SEE ALSO
-
-TBA
-
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
BIO_new_socket() returns the newly allocated BIO or NULL is an error
occurred.
-=head1 SEE ALSO
-
-TBA
-
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
The BIO_debug_callback() function is a good example, its source is
in crypto/bio/bio_cb.c
-=head1 SEE ALSO
-
-TBA
-
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
The BIO_get_retry_reason() and BIO_set_retry_reason() functions were added in
OpenSSL version 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
BN_BLINDING_thread_id() was first introduced in OpenSSL 1.0.0, and it
deprecates BN_BLINDING_set_thread_id() and BN_BLINDING_get_thread_id().
-=cut
-
=head1 COPYRIGHT
Copyright 2005-2016 The OpenSSL Project Authors. All Rights Reserved.
BN_CTX_init() was removed in OpenSSL 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<BN_CTX_new(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<bn(3)>, L<ERR_get_error(3)>, L<BN_CTX_new(3)>,
L<BN_add_word(3)>, L<BN_set_bit(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<bn(3)>, L<ERR_get_error(3)>, L<BN_add(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ASN1_INTEGER_to_BN(3)>,
L<BN_num_bytes(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<bn(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<bn(3)>, L<ERR_get_error(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
BN_GENCB_new(), BN_GENCB_free(),
and BN_GENCB_get_arg() were added in OpenSSL 1.1.0
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<bn(3)>, L<ERR_get_error(3)>, L<BN_add(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
BN_MONT_CTX_init() was removed in OpenSSL 1.1.0
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
BN_RECP_CTX_init was removed in OpenSSL 1.1.0
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
BN_init() was removed in OpenSSL 1.1.0; use BN_new() instead.
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<bn(3)>, L<DH_size(3)>, L<DSA_size(3)>,
L<RSA_size(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<bn(3)>, L<ERR_get_error(3)>, L<rand(3)>,
L<RAND_add(3)>, L<RAND_bytes(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<bn(3)>, L<BN_num_bytes(3)>, L<BN_add(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<bn(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<bn(3)>, L<BN_bn2bin(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<CMS_sign(3)>,
L<CMS_encrypt(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ERR_get_error(3)>, L<CMS_decrypt(3)>,
L<CMS_final(3)>,
-=cut
-
=head1 COPYRIGHT
Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ERR_get_error(3)>, L<CMS_sign(3)>,
L<CMS_final(3)>,
-=cut
-
=head1 COPYRIGHT
Copyright 2014-2016 The OpenSSL Project Authors. All Rights Reserved.
The B<CMS_STREAM> flag was added in OpenSSL 1.0.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ERR_get_error(3)>, L<CMS_encrypt(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved.
The B<CMS_STREAM> flag was first supported in OpenSSL 1.0.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ERR_get_error(3)>, L<CMS_sign(3)>,
L<CMS_encrypt(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ERR_get_error(3)>, L<CMS_decrypt(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ERR_get_error(3)>, L<CMS_verify(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ERR_get_error(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved.
L<CMS_sign_receipt(3)>, L<CMS_verify(3)>
L<CMS_verify_receipt(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved.
The B<CMS_STREAM> flag is only supported for detached data in OpenSSL 0.9.8,
it is supported for embedded data in OpenSSL 1.0.0 and later.
-=cut
-
=head1 COPYRIGHT
Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved.
L<CMS_verify_receipt(3)>,
L<CMS_sign(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ERR_get_error(3)>, L<CMS_compress(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ERR_get_error(3)>, L<CMS_sign(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved.
L<CMS_sign_receipt(3)>,
L<CMS_verify(3)>,
-=cut
-
=head1 COPYRIGHT
Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved.
CONF_modules_free() was deprecated in OpenSSL 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2004-2016 The OpenSSL Project Authors. All Rights Reserved.
L<conf(5)>, L<OPENSSL_config(3)>,
L<CONF_free(3)>, L<err(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2004-2016 The OpenSSL Project Authors. All Rights Reserved.
dup_func() should return 0 for failure and 1 for success.
-=cut
-
=head1 COPYRIGHT
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
L<dh(3)>, L<ERR_get_error(3)>, L<rand(3)>, L<DH_size(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<dh(3)>, L<ERR_get_error(3)>, L<rand(3)>,
L<DH_free(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
The functions described here were added in OpenSSL version 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
The functions described here were added in OpenSSL version 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
L<DH_generate_parameters(3)>,
L<DH_generate_key(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<dh(3)>, L<DH_new(3)>, L<DH_meth_new(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
DH_bits() was added in OpenSSL 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<dsa(3)>, L<ERR_get_error(3)>,
L<DSA_do_sign(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<DSA_SIG_new(3)>,
L<DSA_sign(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<dh(3)>, L<dsa(3)>, L<ERR_get_error(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<dsa(3)>, L<ERR_get_error(3)>, L<rand(3)>,
L<DSA_generate_parameters(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<dsa(3)>, L<ERR_get_error(3)>, L<rand(3)>,
L<DSA_free(3)>, L<BN_generate_prime(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
The functions described here were added in OpenSSL version 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
The functions described here were added in OpenSSL version 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
L<DSA_generate_parameters(3)>,
L<DSA_generate_key(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<dsa(3)>, L<DSA_new(3)>, L<DSA_meth_new(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<dsa(3)>, L<ERR_get_error(3)>, L<rand(3)>,
L<DSA_do_sign(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<dsa(3)>, L<DSA_sign(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<d2i_ECPKParameters(3)>,
L<BN_mod_mul_montgomery(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2013-2016 The OpenSSL Project Authors. All Rights Reserved.
L<EC_POINT_new(3)>, L<EC_POINT_add(3)>, L<EC_KEY_new(3)>,
L<EC_GFp_simple_method(3)>, L<d2i_ECPKParameters(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2013-2016 The OpenSSL Project Authors. All Rights Reserved.
L<EC_POINT_new(3)>, L<EC_POINT_add(3)>, L<EC_KEY_new(3)>,
L<EC_GFp_simple_method(3)>, L<d2i_ECPKParameters(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2013-2016 The OpenSSL Project Authors. All Rights Reserved.
L<EC_GFp_simple_method(3)>,
L<d2i_ECPKParameters(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2013-2016 The OpenSSL Project Authors. All Rights Reserved.
L<EC_POINT_new(3)>, L<EC_KEY_new(3)>,
L<EC_GFp_simple_method(3)>, L<d2i_ECPKParameters(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2013-2016 The OpenSSL Project Authors. All Rights Reserved.
L<EC_POINT_add(3)>, L<EC_KEY_new(3)>,
L<EC_GFp_simple_method(3)>, L<d2i_ECPKParameters(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2013-2016 The OpenSSL Project Authors. All Rights Reserved.
ERR_GET_LIB(), ERR_GET_FUNC() and ERR_GET_REASON() are available in
all versions of OpenSSL.
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<err(3)>, L<ERR_get_error(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<err(3)>, L<ERR_get_error(3)>,
L<ERR_print_errors(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<err(3)>, L<ERR_error_string(3)>,
L<ERR_GET_LIB(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
ERR_free_strings() functions were deprecated in OpenSSL 1.1.0 by
OPENSSL_init_crypto() and OPENSSL_init_ssl().
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<err(3)>, L<ERR_load_strings(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<err(3)>, L<ERR_error_string(3)>,
L<ERR_get_error(3)>.
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<err(3)>, L<ERR_load_strings(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
ERR_remove_thread_state() was deprecated in OpenSSL 1.1.0 when the
thread handling functionality was entirely rewritten.
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<err(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2003-2016 The OpenSSL Project Authors. All Rights Reserved.
L<PKCS5_PBKDF2_HMAC(3)>,
L<EVP_EncryptInit(3)>
-=head1 HISTORY
-
-=cut
-
=head1 COPYRIGHT
Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
The EVP_CIPHER_CTX_get_cipher_data() and EVP_CIPHER_CTX_set_cipher_data()
functions were added in OpenSSL 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
1.1.
The functions described here were added in OpenSSL version 1.1.
-=cut
-
=head1 COPYRIGHT
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
#define EVP_MAX_MD_SIZE 64 /* SHA512 */
int EVP_MD_type(const EVP_MD *md);
- int EVP_MD_pkey_type(const EVP_MD *md);
+ int EVP_MD_pkey_type(const EVP_MD *md);
int EVP_MD_size(const EVP_MD *md);
int EVP_MD_block_size(const EVP_MD *md);
later, so now EVP_sha1() can be used with RSA and DSA. The legacy EVP_dss1()
was removed in OpenSSL 1.1.0
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
EVP_DigestSignInit(), EVP_DigestSignUpdate() and EVP_DigestSignFinal()
were first added to OpenSSL 1.0.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2006-2016 The OpenSSL Project Authors. All Rights Reserved.
EVP_DigestVerifyInit(), EVP_DigestVerifyUpdate() and EVP_DigestVerifyFinal()
were first added to OpenSSL 1.0.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2006-2016 The OpenSSL Project Authors. All Rights Reserved.
L<evp(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
disappeared. EVP_CIPHER_CTX_init() remains as an alias for
EVP_CIPHER_CTX_reset().
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
The B<EVP_MD> structure was openly available in OpenSSL before version
1.1. The functions described here were added in OpenSSL version 1.1.
-=cut
-
=head1 COPYRIGHT
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
L<EVP_EncryptInit(3)>,
L<EVP_SealInit(3)>
-=head1 HISTORY
-
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
These functions were first added to OpenSSL 1.0.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2006-2016 The OpenSSL Project Authors. All Rights Reserved.
These functions were first added to OpenSSL 1.0.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2006-2016 The OpenSSL Project Authors. All Rights Reserved.
L<EVP_PKEY_CTX_ctrl_str(3)>,
L<EVP_PKEY_derive(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
L<EVP_PKEY_CTX_ctrl_str(3)>,
L<EVP_PKEY_derive(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
L<EVP_PKEY_CTX_new(3)>,
L<EVP_PKEY_keygen(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2006-2016 The OpenSSL Project Authors. All Rights Reserved.
These functions were first added to OpenSSL 1.0.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2006-2016 The OpenSSL Project Authors. All Rights Reserved.
These functions were first added to OpenSSL 1.0.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2006-2016 The OpenSSL Project Authors. All Rights Reserved.
These functions were first added to OpenSSL 1.0.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2006-2016 The OpenSSL Project Authors. All Rights Reserved.
This function was first added to OpenSSL 1.0.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2006-2016 The OpenSSL Project Authors. All Rights Reserved.
These functions were first added to OpenSSL 1.0.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2006-2016 The OpenSSL Project Authors. All Rights Reserved.
EVP_PKEY_up_ref() was first added to OpenSSL 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved.
These functions were first added to OpenSSL 1.0.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2006-2016 The OpenSSL Project Authors. All Rights Reserved.
L<EVP_PKEY_new(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved.
These functions were first added to OpenSSL 1.0.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2006-2016 The OpenSSL Project Authors. All Rights Reserved.
These functions were first added to OpenSSL 1.0.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2006-2016 The OpenSSL Project Authors. All Rights Reserved.
These functions were first added to OpenSSL 1.0.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2013-2016 The OpenSSL Project Authors. All Rights Reserved.
L<EVP_EncryptInit(3)>,
L<EVP_OpenInit(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<md5(3)>, L<mdc2(3)>, L<ripemd(3)>,
L<sha(3)>, L<dgst(1)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<md5(3)>, L<mdc2(3)>, L<ripemd(3)>,
L<sha(3)>, L<dgst(1)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
OBJ_cleanup() was deprecated in OpenSSL 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved.
L<OCSP_response_status(3)>,
L<OCSP_sendreq_new(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
L<OCSP_response_status(3)>,
L<OCSP_sendreq_new(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
L<OCSP_response_status(3)>,
L<OCSP_sendreq_new(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
L<OCSP_response_status(3)>,
L<OCSP_sendreq_new(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
L<OCSP_response_find_status(3)>
L<OCSP_sendreq_new(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
L<OCSP_response_find_status(3)>,
L<OCSP_response_status(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
compiler of their choice and link it into the target application.
The referred module is available as <openssl>/ms/applink.c.
-=cut
-
=head1 COPYRIGHT
Copyright 2004-2016 The OpenSSL Project Authors. All Rights Reserved.
L<crypto(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
The OPENSSL_no_config() and OPENSSL_config() functions were
deprecated in OpenSSL 1.1.0 by OPENSSL_init_crypto().
-=cut
-
=head1 COPYRIGHT
Copyright 2004-2016 The OpenSSL Project Authors. All Rights Reserved.
=back
-=cut
-
=head1 COPYRIGHT
Copyright 2004-2016 The OpenSSL Project Authors. All Rights Reserved.
The OPENSSL_init_crypto(), OPENSSL_cleanup(), OPENSSL_atexit(),
and OPENSSL_thread_stop() functions were added in OpenSSL 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
Otherwise number of recorded values is returned.
-=cut
-
=head1 COPYRIGHT
Copyright 2011-2016 The OpenSSL Project Authors. All Rights Reserved.
L<conf(3)>, L<OPENSSL_config(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2004-2016 The OpenSSL Project Authors. All Rights Reserved.
configuration option> C<crypto-mdebug> I<enabled. In case, swapping out
only, say, the malloc() implementation is outright dangerous.>
-=cut
-
=head1 COPYRIGHT
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
L<BN_new(3)>,
L<bn_internal(3)>.
-=cut
-
=head1 COPYRIGHT
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
OpenSSL_add_all_digests(), and EVP_cleanup(), functions
were deprecated in OpenSSL 1.1.0 by OPENSSL_init_crypto().
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
PEM_write_bio_CMS_stream() was added to OpenSSL 1.0.0
-=cut
-
=head1 COPYRIGHT
Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved.
PEM_write_bio_PKCS7_stream() was added to OpenSSL 1.0.0
-=cut
-
=head1 COPYRIGHT
Copyright 2007-2016 The OpenSSL Project Authors. All Rights Reserved.
L<d2i_PKCS12(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved.
L<PKCS12_create(3)>, L<ERR_get_error(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
L<d2i_PKCS12(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved.
L<evp(3)>, L<rand(3)>,
L<EVP_BytesToKey(3)>
-=head1 HISTORY
-
-=cut
-
=head1 COPYRIGHT
Copyright 2014-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ERR_get_error(3)>, L<PKCS7_encrypt(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved.
The B<PKCS7_STREAM> flag was added in OpenSSL 1.0.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved.
The B<PKCS7_STREAM> flag was added in OpenSSL 1.0.0
-=cut
-
=head1 COPYRIGHT
Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved.
PPKCS7_sign_add_signer() was added to OpenSSL 1.0.0
-=cut
-
=head1 COPYRIGHT
Copyright 2007-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ERR_get_error(3)>, L<PKCS7_sign(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved.
L<rand(3)>, L<RAND_egd(3)>,
L<RAND_load_file(3)>, L<RAND_cleanup(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<rand(3)>, L<ERR_get_error(3)>,
L<RAND_add(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
RAND_cleanup() was deprecated in OpenSSL 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<rand(3)>, L<RAND_add(3)>,
L<RAND_cleanup(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<rand(3)>, L<RAND_add(3)>, L<RAND_cleanup(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<rand(3)>, L<engine(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<rsa(3)>, L<rand(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
RSA_check_key_ex() appeared after OpenSSL 1.0.2.
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ERR_get_error(3)>, L<rand(3)>, L<rsa(3)>,
L<RSA_free(3)>, L<BN_generate_prime(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
The functions described here were added in OpenSSL version 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
The functions described here were added in OpenSSL version 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
L<RSA_generate_key(3)>,
L<RSA_new_method(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<RSA_private_decrypt(3)>,
L<RSA_sign(3)>, L<RSA_verify(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<dh(3)>, L<dsa(3)>, L<rsa(3)>, L<BN_bn2bin(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ERR_get_error(3)>, L<rsa(3)>,
L<RSA_sign(3)>, L<RSA_verify(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ERR_get_error(3)>, L<rand(3)>, L<rsa(3)>,
L<RSA_size(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<rsa(3)>, L<RSA_new(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<rsa(3)>, L<RSA_private_encrypt(3)>,
L<RSA_public_decrypt(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<rand(3)>, L<rsa(3)>, L<RSA_sign(3)>,
L<RSA_verify(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
RSA_bits() was added in OpenSSL 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<CMS_verify(3)>, L<CMS_encrypt(3)>
L<CMS_decrypt(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved.
L<PKCS7_verify(3)>, L<PKCS7_encrypt(3)>
L<PKCS7_decrypt(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved.
L<CMS_verify(3)>, L<CMS_encrypt(3)>
L<CMS_decrypt(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved.
L<PKCS7_verify(3)>, L<PKCS7_encrypt(3)>
L<PKCS7_decrypt(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved.
The following sections contain a list of all supported extensions
including their name and NID.
-=head2 PKIX CERTIFICATE EXTENSIONS
+=head2 PKIX Certificate Extensions
The following certificate extensions are defined in PKIX standards such as
RFC5280.
TLS Feature NID_tlsfeature
-=head2 NETSCAPE CERTIFICATE EXTENSIONS
+=head2 Netscape Certificate Extensions
The following are (largely obsolete) Netscape certificate extensions.
Netscape SSL Server Name NID_netscape_ssl_server_name
Netscape Comment NID_netscape_comment
-=head2 MISCELLANEOUS CERTIFICATE EXTENSIONS
+=head2 Miscellaneous Certificate Extensions
Strong Extranet ID NID_sxnet
Proxy Certificate Information NID_proxyCertInfo
-=head2 PKIX CRL EXTENSIONS
+=head2 PKIX CRL Extensions
The following are CRL extensions from PKIX standards such as RFC5280.
CRL Reason Code NID_crl_reason
Certificate Issuer NID_certificate_issuer
-=head2 OCSP EXTENSIONS
+=head2 OCSP Extensions
OCSP Nonce NID_id_pkix_OCSP_Nonce
OCSP CRL ID NID_id_pkix_OCSP_CrlID
OCSP Service Locator NID_id_pkix_OCSP_serviceLocator
Hold Instruction Code NID_hold_instruction_code
-=head2 CERTIFICATE TRANSPARENCY EXTENSIONS
+=head2 Certificate Transparency Extensions
The following extensions are used by certificate transparency, RFC6962
L<X509_sign(3)>,
L<X509_verify_cert(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
L<X509V3_get_d2i(3)>,
L<X509_verify_cert(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
L<X509V3_get_d2i(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
This page documents certificate store formats used by these methods and
caching policy.
-=head2 FILE METHOD
+=head2 File Method
The B<X509_LOOKUP_file> method loads all the certificates or CRLs
present in a file into memory at the time the file is added as a
This method should be used by applications which work with a small
set of CAs.
-=head2 HASHED DIR METHOD
+=head2 Hashed Directory Method
B<X509_LOOKUP_hash_dir> is a more advanced method, which loads
certificates and CRLs on demand, and caches them in memory once
L<X609_store_add_lookup(3)>,
L<SSL_CTX_load_verify_locations(3)>,
-=cut
-
=head1 COPYRIGHT
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ERR_get_error(3)>, L<d2i_X509_NAME(3)>,
L<OBJ_nid2obj(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ERR_get_error(3)>, L<d2i_X509_NAME(3)>
-=head1 HISTORY
-
-=cut
-
=head1 COPYRIGHT
Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ERR_get_error(3)>, L<d2i_X509_NAME(3)>
-=head1 HISTORY
-
-TBA
-
-=cut
-
=head1 COPYRIGHT
Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ASN1_STRING_print_ex(3)>
-=head1 HISTORY
-
-TBA
-
-=cut
-
=head1 COPYRIGHT
Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ERR_get_error(3)>,
L<X509_get_pubkey(3)>,
-=cut
-
=head1 COPYRIGHT
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
L<X509_up_ref(3)>,
L<X509_free(3)>.
-=head1 HISTORY
-
-TBA
-
-=cut
-
=head1 COPYRIGHT
Copyright 2009-2016 The OpenSSL Project Authors. All Rights Reserved.
available as a macro X509_STORE_set_verify_func(). This macro still exists but
simply calls this function.
-=cut
-
=head1 COPYRIGHT
Copyright 2009-2016 The OpenSSL Project Authors. All Rights Reserved.
L<X509_STORE_set_verify_cb_func(3)>
L<X509_STORE_CTX_get_ex_new_index(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2009-2016 The OpenSSL Project Authors. All Rights Reserved.
B<X509_STORE_get0_param> and B<X509_STORE_get0_objects> were added in
OpenSSL version 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
The B<X509_STORE_up_ref> function was added in OpenSSL 1.1.0
-=cut
-
=head1 COPYRIGHT
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
X509_STORE_set_verify_cb() was added to OpenSSL 1.0.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2009-2016 The OpenSSL Project Authors. All Rights Reserved.
The legacy B<X509_V_FLAG_CB_ISSUER_CHECK> flag is deprecated as of
OpenSSL 1.1.0, and has no effect.
-=cut
-
=head1 COPYRIGHT
Copyright 2009-2016 The OpenSSL Project Authors. All Rights Reserved.
L<X509_check_issued(3)>,
L<X509_check_purpose(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
These functions were added in OpenSSL 1.0.2.
-=cut
-
=head1 COPYRIGHT
Copyright 2012-2016 The OpenSSL Project Authors. All Rights Reserved.
L<X509_check_ca(3)>,
L<verify(1)>
-=cut
-
=head1 COPYRIGHT
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
X509_CRL_get0_signature() and X509_CRL_get_signature_nid() were first added
to OpenSSL 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
L<X509V3_get_d2i(3)>,
L<X509_verify_cert(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
L<X509_check_purpose(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
L<X509V3_get_d2i(3)>,
L<X509_verify_cert(3)>
-=head1 HISTORY
-
-=cut
-
=head1 COPYRIGHT
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
X509_get_serialNumber() and X509_set_serialNumber() are available in
all versions of OpenSSL.
-=cut
-
=head1 COPYRIGHT
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
L<X509V3_get_d2i(3)>,
L<X509_verify_cert(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
X509_get_version(), X509_REQ_get_version() and X509_CRL_get_version() are
functions in OpenSSL 1.1.0, in previous versions they were macros.
-=cut
-
=head1 COPYRIGHT
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
L<X509V3_get_d2i(3)>,
L<X509_verify_cert(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved.
X509_sign_ctx(), X509_REQ_sign_ctx() and X509_CRL_sign_ctx() were first added
to OpenSSL 1.0.1.
-=cut
-
=head1 COPYRIGHT
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
L<X509_STORE_CTX_get_error(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2009-2016 The OpenSSL Project Authors. All Rights Reserved.
L<X509V3_get_d2i(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
#include <openssl/bio.h>
-TBA
-
-
=head1 DESCRIPTION
A BIO is an I/O abstraction, it hides many of the underlying I/O
L<BIO_set_callback(3)>,
L<BIO_should_retry(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<EVP_EncryptInit(3)>,
L<des_modes(7)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<BN_mod_mul_montgomery(3)>,
L<BN_BLINDING_new(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<bn(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
BUF_MEM_new_ex() was added in OpenSSL 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<openssl(1)>, L<ssl(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<d2i_X509(3)>
-=head1 HISTORY
-
-TBA
-
-=cut
-
=head1 COPYRIGHT
Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved.
L<d2i_X509(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
L<d2i_X509(3)>
-=head1 HISTORY
-
-TBA
-
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<d2i_X509(3)>
-=head1 HISTORY
-
-TBA
-
-=cut
-
=head1 COPYRIGHT
Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved.
L<EC_POINT_new(3)>, L<EC_POINT_add(3)>, L<EC_KEY_new(3)>,
L<EC_GFp_simple_method(3)>, L<d2i_X509(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2013-2016 The OpenSSL Project Authors. All Rights Reserved.
L<d2i_ECPKParameters(3)>,
L<d2i_ECPrivateKey(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
L<pem(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved.
L<crypto(3)>,
L<d2i_PKCS8PrivateKey(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
L<d2i_X509(3)>
-=head1 HISTORY
-
-TBA
-
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<X509V3_get_d2i(3)>,
L<X509_verify_cert(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved.
L<d2i_X509(3)>
-=head1 HISTORY
-
-TBA
-
-=cut
-
=head1 COPYRIGHT
Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved.
L<d2i_X509(3)>
-=head1 HISTORY
-
-TBA
-
-=cut
-
=head1 COPYRIGHT
Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved.
L<d2i_X509(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved.
L<d2i_X509(3)>
-=head1 HISTORY
-
-TBA
-
-=cut
-
=head1 COPYRIGHT
Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved.
L<d2i_X509(3)>
-=head1 HISTORY
-
-TBA
-
-=cut
-
=head1 COPYRIGHT
Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved.
L<des_modes(7)>,
L<EVP_EncryptInit(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<blowfish(3)>, L<des(3)>, L<idea(3)>,
L<rc2(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<DH_compute_key(3)>, L<DH_get0_pqg(3)>, L<DH_meth_new(3)>, L<d2i_DHparams(3)>,
L<RSA_print(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<DSA_get_ex_new_index(3)>,
L<RSA_print(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<EC_GFp_simple_method(3)>, L<d2i_ECPKParameters(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2013-2016 The OpenSSL Project Authors. All Rights Reserved.
L<EVP_DigestSignInit(3)>,
L<EVP_DigestVerifyInit(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2004-2016 The OpenSSL Project Authors. All Rights Reserved.
ENGINE_load_cryptodev() were deprecated in OpenSSL 1.1.0 by
OPENSSL_init_crypto().
-=cut
-
=head1 COPYRIGHT
Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved.
be done if the external library needs to generate new ASN1 structures
but it can also be used to add more general purpose error code handling.
-TBA more details
-
=head1 INTERNALS
The error queues are stored in a thread-local storage with one B<ERR_STATE>
The ERR_load_crypto_strings() function was deprecated in OpenSSL 1.1.0 by
OPENSSL_init_crypto().
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<EVP_BytesToKey(3)>,
L<engine(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
HMAC_Init_ex(), HMAC_Update() and HMAC_Final() did not return values in
versions of OpenSSL before 1.0.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
i2d_CMS_bio_stream() was added to OpenSSL 1.0.0
-=cut
-
=head1 COPYRIGHT
Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved.
i2d_PKCS7_bio_stream() was added to OpenSSL 1.0.0
-=cut
-
=head1 COPYRIGHT
Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved.
L<bio(3)>, L<lhash(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<lh_stats(3)>
-=cut
+=head1 HISTORY
+
+In OpenSSL 1.0.0, the lhash interface was revamped for better
+type checking.
=head1 COPYRIGHT
L<EVP_DigestInit(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<EVP_DigestInit(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<EVP_EncryptInit(3)>, L<EVP_BytesToKey(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
L<RAND_set_rand_method(3)>,
L<RAND_cleanup(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<EVP_EncryptInit(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<EVP_DigestInit(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<RSA_sign_ASN1_OCTET_STRING(3)>,
L<RSA_padding_add_PKCS1_type_1(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<EVP_DigestInit(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<crypto(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ui_create(3)>, L<ui_compat(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
L<crypto(3)>,
L<x509v3(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2003-2016 The OpenSSL Project Authors. All Rights Reserved.
DTLSv1_listen() return codes were clarified in OpenSSL 1.1.0. The type of "peer"
also changed in OpenSSL 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
The OPENSSL_init_ssl() function was added in OpenSSL 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
L<ssl(3)>, L<SSL_get_current_cipher(3)>,
L<SSL_get_ciphers(3)>, L<ciphers(1)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
SSL_COMP_free_compression_methods() was deprecated in OpenSSL 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
These functions were first added to OpenSSL 1.0.2
-=cut
-
=head1 COPYRIGHT
Copyright 2012-2016 The OpenSSL Project Authors. All Rights Reserved.
These functions were first added to OpenSSL 1.0.2
-=cut
-
=head1 COPYRIGHT
Copyright 2012-2016 The OpenSSL Project Authors. All Rights Reserved.
These functions were first added to OpenSSL 1.0.2
-=cut
-
=head1 COPYRIGHT
Copyright 2012-2016 The OpenSSL Project Authors. All Rights Reserved.
These functions were first added to OpenSSL 1.0.2
-=cut
-
=head1 COPYRIGHT
Copyright 2012-2016 The OpenSSL Project Authors. All Rights Reserved.
B<MinProtocol> and B<MaxProtocol> where added in OpenSSL 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2012-2016 The OpenSSL Project Authors. All Rights Reserved.
These functions were first added to OpenSSL 1.0.2
-=cut
-
=head1 COPYRIGHT
Copyright 2012-2016 The OpenSSL Project Authors. All Rights Reserved.
These functions were first added to OpenSSL 1.0.2.
-=cut
-
=head1 COPYRIGHT
Copyright 2013-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_CTX_build_cert_chain(3)>
L<SSL_build_cert_chain(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_CTX_set_session_cache_mode(3)>,
L<SSL_SESSION_free(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
SSL_CTX_config() and SSL_config() were first added to OpenSSL 1.1.0
-=cut
-
=head1 COPYRIGHT
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ssl(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
These functions were first added to OpenSSL 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_CTX_set_timeout(3)>,
L<SSL_CTX_sess_set_get_cb(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_CTX_new(3)>, L<ssl(3)>,
L<SSL_CTX_sess_set_get_cb(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
These functions were first added to OpenSSL 1.0.2.
-=cut
-
=head1 COPYRIGHT
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ssl(3)>, L<SSL_CTX_set_verify(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ssl(3)>,
L<SSL_CTX_add_client_custom_ext(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_CTX_set_cert_store(3)>,
L<SSL_CTX_set_client_CA_list(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_CTX_set_options(3)>, L<SSL_CTX_free(3)>, L<SSL_accept(3)>,
L<SSL_CTX_set_min_proto_version(3)>, L<ssl(3)>, L<SSL_set_connect_state(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_CTX_set_session_cache_mode(3)>
L<SSL_CTX_sess_set_cache_size(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_CTX_sess_number(3)>,
L<SSL_CTX_flush_sessions(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_SESSION_free(3)>,
L<SSL_CTX_free(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_CTX_add_session(3)>,
L<SSL_CTX_set_session_cache_mode(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
These functions were first added to OpenSSL 1.0.2.
-=cut
-
=head1 COPYRIGHT
Copyright 2013-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ssl(3)>, L<SSL_get_shared_sigalgs(3)>,
L<SSL_CONF_CTX_new(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
These functions were first added to OpenSSL 1.0.2.
-=cut
-
=head1 COPYRIGHT
Copyright 2013-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ssl(3)>, L<SSL_CTX_set_tlsext_servername_callback(3)>,
L<SSL_CTX_set_tlsext_servername_arg(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_get_client_CA_list(3)>,
L<SSL_clear(3)>, L<SSL_free(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2014-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_CTX_load_verify_locations(3)>,
L<SSL_CTX_set_verify(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_get_verify_result(3)>,
L<SSL_CTX_load_verify_locations(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_CTX_set_tmp_dh_callback(3)>,
L<ciphers(1)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_load_client_CA_file(3)>,
L<SSL_CTX_load_verify_locations(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_get_client_CA_list(3)>,
L<SSL_clear(3)>, L<SSL_free(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_CTX_set_verify(3)>,
L<ssl_ct_validation_cb(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
L<ssl(3)>,
L<ssl_ct_validation_cb(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
SSL_extension_supported() returns 1 if the extension B<ext_type> is handled
internally by OpenSSL and 0 otherwise.
-=cut
-
=head1 COPYRIGHT
Copyright 2014-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ssl(3)>,
L<SSL_CTX_use_certificate(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ssl(3)>, L<SSL_get_version(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ssl(3)>, L<SSL_state_string(3)>,
L<SSL_alert_type_string(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ssl(3)>, L<SSL_new(3)>,
L<SSL_CTX_set_verify(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_CTX_set_options(3)>, L<SSL_CONF_cmd(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
SSL_MODE_ASYNC was first added to OpenSSL 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ssl(3)>, L<SSL_new(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
The attempt to always try to use secure renegotiation was added in
Openssl 0.9.8m.
-=cut
-
=head1 COPYRIGHT
Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
Otherwise or on errors callback should return 0. In this case
the connection setup fails.
-=cut
-
=head1 COPYRIGHT
Copyright 2006-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_set_shutdown(3)>, L<SSL_new(3)>,
L<SSL_clear(3)>, L<SSL_free(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ssl(3)>, L<SSL_pending(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
=head1 APPLICATION DEFINED SECURITY CALLBACKS
-TBA
+I<Documentation to be provided.>
=head1 NOTES
check the return values for errors will misbehave: for example it might
appear that a certificate is not set at all because it had been rejected.
-=head1 SEE ALSO
-
-TBA
-
=head1 HISTORY
These functions were first added to OpenSSL 1.1.0
-=cut
-
=head1 COPYRIGHT
Copyright 2014-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_CTX_set_timeout(3)>,
L<SSL_CTX_flush_sessions(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ssl(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_CTX_set_read_ahead(3)>, L<SSL_pending(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_clear(3)>, L<ssl(3)>,
L<SSL_set_connect_state(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_CTX_flush_sessions(3)>,
L<SSL_get_default_timeout(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
SSL_CTX_set_tlsext_status_type() was added in OpenSSL 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_CTX_sess_set_get_cb(3)>,
L<SSL_CTX_set_session_id_context(3)>,
-=cut
-
=head1 COPYRIGHT
Copyright 2014-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_CTX_set_options(3)>,
L<ciphers(1)>, L<dhparam(1)>
-=cut
-
=head1 COPYRIGHT
Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_get_ex_data_X509_STORE_CTX_idx(3)>,
L<SSL_get_ex_new_index(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_CTX_set_client_cert_cb(3)>,
L<SSL_CTX_add_extra_chain_cert(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
=back
-=cut
-
=head1 COPYRIGHT
Copyright 2006-2016 The OpenSSL Project Authors. All Rights Reserved.
On failure, the functions return 0. Check out the error stack to find out
the reason.
-=cut
-
=head1 COPYRIGHT
Copyright 2013-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_CTX_flush_sessions(3)>,
L<d2i_SSL_SESSION(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_SESSION_get_time(3)>,
L<SSL_SESSION_free(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_CTX_set_timeout(3)>,
L<SSL_get_default_timeout(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
SSL_SESSION_has_ticket, SSL_SESSION_get_ticket_lifetime_hint and
SSL_SESSION_get0_ticket were added in OpenSSL 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_do_handshake(3)>,
L<SSL_CTX_new(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ssl(3)>, L<SSL_CTX_set_info_callback(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_CTX_set_cert_cb(3)>,
L<ssl(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_CTX_set_options(3)>, L<ssl(3)>,
L<SSL_CTX_set_client_cert_cb(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_do_handshake(3)>,
L<SSL_CTX_new(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_accept(3)>, L<ssl(3)>, L<bio(3)>,
L<SSL_set_connect_state(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_shutdown(3)>, L<SSL_set_shutdown(3)>,
L<ssl(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ssl(3)>,
L<SSL_CTX_set_ct_validation_callback(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
L<ssl(3)>, L<SSL_new(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
SSL_waiting_for_async(), SSL_get_all_async_fds() and SSL_get_changed_async_fds()
were first added to OpenSSL 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
L<ssl(3)>, L<SSL_CTX_set_cipher_list(3)>,
L<SSL_CIPHER_get_name(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_CTX_set_client_CA_list(3)>,
L<SSL_CTX_set_client_cert_cb(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_export_keying_material(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ssl(3)>, L<SSL_CIPHER_get_name(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_CTX_flush_sessions(3)>,
L<SSL_get_default_timeout(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
SSL_ERROR_WANT_ASYNC was added in OpenSSL 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ssl(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_set_fd(3)>, L<ssl(3)> , L<bio(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ssl(3)>, L<SSL_get_peer_certificate(3)>, L<X509_up_ref(3)>,
L<X509_chain_up_ref(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ssl(3)>, L<SSL_get_verify_result(3)>,
L<SSL_CTX_set_verify(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
Note that the return value is valid only during the lifetime of the
SSL object B<ssl>.
-=cut
-
=head1 COPYRIGHT
Copyright 2006-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_set_bio(3)>, L<ssl(3)> , L<bio(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_clear(3)>,
L<SSL_SESSION_free(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_CTX_set_cert_cb(3)>,
L<ssl(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_get_peer_certificate(3)>,
L<verify(1)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ssl(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
The SSL_library_init() and OpenSSL_add_ssl_algorithms() functions were
deprecated in OpenSSL 1.1.0 by OPENSSL_init_ssl().
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ssl(3)>,
L<SSL_CTX_set_client_CA_list(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_get_SSL_CTX(3)>,
L<ssl(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
The SSL_has_pending() function was added in OpenSSL 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_shutdown(3)>, L<SSL_set_shutdown(3)>,
L<ssl(3)>, L<bio(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ssl(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ssl(3)>, L<SSL_set_session(3)>,
L<SSL_CTX_set_session_cache_mode(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
These functions were first added to OpenSSL 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
SSL_set_rbio() and SSL_set_wbio() were added in OpenSSL 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_do_handshake(3)>,
L<SSL_CTX_set_ssl_version(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_connect(3)>, L<SSL_accept(3)>,
L<SSL_shutdown(3)>, L<ssl(3)> , L<bio(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_session_reused(3)>,
L<SSL_CTX_set_session_cache_mode(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_CTX_set_quiet_shutdown(3)>,
L<SSL_clear(3)>, L<SSL_free(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_get_peer_certificate(3)>,
L<verify(1)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_clear(3)>, L<SSL_free(3)>,
L<ssl(3)>, L<bio(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ssl(3)>, L<SSL_CTX_set_info_callback(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ssl(3)>, L<err(3)>, L<SSL_get_error(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
L<SSL_set_connect_state(3)>,
L<ssl(3)>, L<bio(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
L<ssl(3)>, L<SSL_SESSION_free(3)>,
L<SSL_CTX_sess_set_get_cb(3)>
-=cut
-
=head1 COPYRIGHT
Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
Currently the OpenSSL B<ssl> library exports 214 API functions.
They are documented in the following:
-=head2 DEALING WITH PROTOCOL METHODS
+=head2 Dealing with Protocol Methods
Here we document the various API functions which deal with the SSL/TLS
protocol methods defined in B<SSL_METHOD> structures.
=back
-=head2 DEALING WITH CIPHERS
+=head2 Dealing with Ciphers
Here we document the various API functions which deal with the SSL/TLS
ciphers defined in B<SSL_CIPHER> structures.
=back
-=head2 DEALING WITH PROTOCOL CONTEXTS
+=head2 Dealing with Protocol Contexts
Here we document the various API functions which deal with the SSL/TLS
protocol context defined in the B<SSL_CTX> structure.
=item void B<SSL_CTX_set_psk_server_callback>(SSL_CTX *ctx, unsigned int (*callback)(SSL *ssl, const char *identity, unsigned char *psk, int max_psk_len));
-
-
=back
-=head2 DEALING WITH SESSIONS
+=head2 Dealing with Sessions
Here we document the various API functions which deal with the SSL/TLS
sessions defined in the B<SSL_SESSION> structures.
=back
-=head2 DEALING WITH CONNECTIONS
+=head2 Dealing with Connections
Here we document the various API functions which deal with the SSL/TLS
connection defined in the B<SSL> structure.
The return type of B<SSL_copy_session_id> was changed from void to int in
OpenSSL 1.1.0.
-=cut
-
=head1 COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
#! /usr/bin/env perl
+# Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (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
+# https://www.openssl.org/source/license.html
+
require 5.10.0;
use warnings;
use Pod::Checker;
use File::Find;
+my $temp = '/tmp/docnits.txt';
+my $OUT;
+
sub check()
{
- my $errs = 0;
-
my $contents = '';
{
local $/ = undef;
$contents = <POD>;
close POD;
}
- if ( $contents !~ /^=pod/ ) {
- print "$_ doesn't start with =pod\n";
- return 1;
- }
- if ( $contents !~ /=cut\n$/ ) {
- print "$_ doesn't end with =cut\n";
- return 1;
- }
- if ( $contents !~ /Copyright .* The OpenSSL Project Authors/ ) {
- print "$_ missing copyright\n";
- return 1;
- }
+ print $OUT "$_ doesn't start with =pod\n"
+ if $contents !~ /^=pod/;
+ print $OUT "$_ doesn't end with =cut\n"
+ if $contents !~ /=cut\n$/;
+ print $OUT "$_ more than one cut line.\n"
+ if $contents =~ /=cut.*=cut/ms;
+ print $OUT "$_ missing copyright\n"
+ if $contents !~ /Copyright .* The OpenSSL Project Authors/;
+ print $OUT "$_ copyright not last\n"
+ if $contents =~ /head1 COPYRIGHT.*=head/ms;
+ print $OUT "$_ head2 in All uppercase\n"
+ if $contents =~ /head2.*[A-Z ]+\n/;
+
+ podchecker($_, $OUT);
+}
- $errs = podchecker($_, \*STDOUT);
- $errs = 1 if $errs < 0;
- return $errs;
+open $OUT, '>', $temp
+ or die "Can't open $temp, $!";
+foreach (@ARGV ? @ARGV : glob('*/*.pod')) {
+ &check($_);
}
+close $OUT;
-my $errs = 0;
-foreach (glob('*/*.pod')) {
- $errs += &check($_);
+my $count = 0;
+open $OUT, '<', $temp
+ or die "Can't read $temp, $!";
+while ( <$OUT> ) {
+ next if /\(section\) in.*deprecated/;
+ $count++;
+ print;
}
-exit $errs;
+close $OUT;
+unlink $temp || warn "Can't remove $temp, $!";
+
+exit $count;