Update pre9
This commit is contained in:
@@ -113,7 +113,7 @@ TLSv1.2 and below ciphersuites that have been configured. The format for this
|
||||
list is a simple colon (":") separated list of TLSv1.3 ciphersuite names. By
|
||||
default this value is:
|
||||
|
||||
"TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256"
|
||||
TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256
|
||||
|
||||
=item B<cipherlist>
|
||||
|
||||
|
||||
+4
-3
@@ -83,7 +83,8 @@ B<openssl> B<cms>
|
||||
[B<-signer file>]
|
||||
[B<-recip file>]
|
||||
[B<-keyid>]
|
||||
[B<-receipt_request_all -receipt_request_first>]
|
||||
[B<-receipt_request_all>]
|
||||
[B<-receipt_request_first>]
|
||||
[B<-receipt_request_from emailaddress>]
|
||||
[B<-receipt_request_to emailaddress>]
|
||||
[B<-receipt_request_print>]
|
||||
@@ -304,7 +305,7 @@ default digest algorithm for the signing key will be used (usually SHA1).
|
||||
The encryption algorithm to use. For example triple DES (168 bits) - B<-des3>
|
||||
or 256 bit AES - B<-aes256>. Any standard algorithm name (as used by the
|
||||
EVP_get_cipherbyname() function) can also be used preceded by a dash, for
|
||||
example B<-aes-128-cbc>. See L<B<enc>|enc(1)> for a list of ciphers
|
||||
example B<-aes-128-cbc>. See L<enc(1)> for a list of ciphers
|
||||
supported by your version of OpenSSL.
|
||||
|
||||
If not specified triple DES is used. Only used with B<-encrypt> and
|
||||
@@ -403,7 +404,7 @@ Use subject key identifier to identify certificates instead of issuer name and
|
||||
serial number. The supplied certificate B<must> include a subject key
|
||||
identifier extension. Supported by B<-sign> and B<-encrypt> options.
|
||||
|
||||
=item B<-receipt_request_all -receipt_request_first>
|
||||
=item B<-receipt_request_all>, B<-receipt_request_first>
|
||||
|
||||
For B<-sign> option include a signed receipt request. Indicate requests should
|
||||
be provided by all recipient or first tier recipients (those mailed directly
|
||||
|
||||
+1
-1
@@ -89,7 +89,7 @@ filename.
|
||||
The output file password source. For more information about the format of B<arg>
|
||||
see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)>.
|
||||
|
||||
=item B<-aes128|-aes192|-aes256|-aria128|-aria192|-aria256|-camellia128|-camellia192|-camellia256|-des|-des3|-idea>
|
||||
=item B<-aes128>, B<-aes192>, B<-aes256>, B<-aria128>, B<-aria192>, B<-aria256>, B<-camellia128>, B<-camellia192>, B<-camellia256>, B<-des>, B<-des3>, B<-idea>
|
||||
|
||||
These options encrypt the private key with the specified
|
||||
cipher before outputting it. A pass phrase is prompted for.
|
||||
|
||||
+1
-1
@@ -45,7 +45,7 @@ Print out a usage message.
|
||||
Output the key to the specified file. If this argument is not specified then
|
||||
standard output is used.
|
||||
|
||||
=item B<-aes128|-aes192|-aes256|-aria128|-aria192|-aria256|-camellia128|-camellia192|-camellia256|-des|-des3|-idea>
|
||||
=item B<-aes128>, B<-aes192>, B<-aes256>, B<-aria128>, B<-aria192>, B<-aria256>, B<-camellia128>, B<-camellia192>, B<-camellia256>, B<-des>, B<-des3>, B<-idea>
|
||||
|
||||
These options encrypt the private key with specified
|
||||
cipher before outputting it. A pass phrase is prompted for.
|
||||
|
||||
@@ -261,13 +261,13 @@ Encrypt output private key using 128 bit AES and the passphrase "hello":
|
||||
|
||||
Generate a 2048 bit RSA key using 3 as the public exponent:
|
||||
|
||||
openssl genpkey -algorithm RSA -out key.pem -pkeyopt rsa_keygen_bits:2048 \
|
||||
-pkeyopt rsa_keygen_pubexp:3
|
||||
openssl genpkey -algorithm RSA -out key.pem \
|
||||
-pkeyopt rsa_keygen_bits:2048 -pkeyopt rsa_keygen_pubexp:3
|
||||
|
||||
Generate 2048 bit DSA parameters:
|
||||
|
||||
openssl genpkey -genparam -algorithm DSA -out dsap.pem \
|
||||
-pkeyopt dsa_paramgen_bits:2048
|
||||
-pkeyopt dsa_paramgen_bits:2048
|
||||
|
||||
Generate DSA key from parameters:
|
||||
|
||||
@@ -276,13 +276,13 @@ Generate DSA key from parameters:
|
||||
Generate 2048 bit DH parameters:
|
||||
|
||||
openssl genpkey -genparam -algorithm DH -out dhp.pem \
|
||||
-pkeyopt dh_paramgen_prime_len:2048
|
||||
-pkeyopt dh_paramgen_prime_len:2048
|
||||
|
||||
Generate 2048 bit X9.42 DH parameters:
|
||||
|
||||
openssl genpkey -genparam -algorithm DH -out dhpx.pem \
|
||||
-pkeyopt dh_paramgen_prime_len:2048 \
|
||||
-pkeyopt dh_paramgen_type:1
|
||||
-pkeyopt dh_paramgen_prime_len:2048 \
|
||||
-pkeyopt dh_paramgen_type:1
|
||||
|
||||
Output RFC5114 2048 bit DH parameters with 224 bit subgroup:
|
||||
|
||||
|
||||
+1
-1
@@ -53,7 +53,7 @@ standard output is used.
|
||||
The output file password source. For more information about the format
|
||||
of B<arg> see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)>.
|
||||
|
||||
=item B<-aes128|-aes192|-aes256|-aria128|-aria192|-aria256|-camellia128|-camellia192|-camellia256|-des|-des3|-idea>
|
||||
=item B<-aes128>, B<-aes192>, B<-aes256>, B<-aria128>, B<-aria192>, B<-aria256>, B<-camellia128>, B<-camellia192>, B<-camellia256>, B<-des>, B<-des3>, B<-idea>
|
||||
|
||||
These options encrypt the private key with specified
|
||||
cipher before outputting it. If none of these options is
|
||||
|
||||
+61
-62
@@ -77,161 +77,160 @@ B<list>, or B<no->I<XXX> itself.)
|
||||
|
||||
=over 4
|
||||
|
||||
=item L<B<asn1parse>|asn1parse(1)>
|
||||
=item B<asn1parse>
|
||||
|
||||
Parse an ASN.1 sequence.
|
||||
|
||||
=item L<B<ca>|ca(1)>
|
||||
=item B<ca>
|
||||
|
||||
Certificate Authority (CA) Management.
|
||||
|
||||
=item L<B<ciphers>|ciphers(1)>
|
||||
=item B<ciphers>
|
||||
|
||||
Cipher Suite Description Determination.
|
||||
|
||||
=item L<B<cms>|cms(1)>
|
||||
=item B<cms>
|
||||
|
||||
CMS (Cryptographic Message Syntax) utility.
|
||||
|
||||
=item L<B<crl>|crl(1)>
|
||||
=item B<crl>
|
||||
|
||||
Certificate Revocation List (CRL) Management.
|
||||
|
||||
=item L<B<crl2pkcs7>|crl2pkcs7(1)>
|
||||
=item B<crl2pkcs7>
|
||||
|
||||
CRL to PKCS#7 Conversion.
|
||||
|
||||
=item L<B<dgst>|dgst(1)>
|
||||
=item B<dgst>
|
||||
|
||||
Message Digest Calculation.
|
||||
|
||||
=item B<dh>
|
||||
|
||||
Diffie-Hellman Parameter Management.
|
||||
Obsoleted by L<B<dhparam>|dhparam(1)>.
|
||||
Obsoleted by L<dhparam(1)>.
|
||||
|
||||
=item L<B<dhparam>|dhparam(1)>
|
||||
=item B<dhparam>
|
||||
|
||||
Generation and Management of Diffie-Hellman Parameters. Superseded by
|
||||
L<B<genpkey>|genpkey(1)> and L<B<pkeyparam>|pkeyparam(1)>.
|
||||
L<genpkey(1)> and L<pkeyparam(1)>.
|
||||
|
||||
=item L<B<dsa>|dsa(1)>
|
||||
=item B<dsa>
|
||||
|
||||
DSA Data Management.
|
||||
|
||||
=item L<B<dsaparam>|dsaparam(1)>
|
||||
=item B<dsaparam>
|
||||
|
||||
DSA Parameter Generation and Management. Superseded by
|
||||
L<B<genpkey>|genpkey(1)> and L<B<pkeyparam>|pkeyparam(1)>.
|
||||
L<genpkey(1)> and L<pkeyparam(1)>.
|
||||
|
||||
=item L<B<ec>|ec(1)>
|
||||
=item B<ec>
|
||||
|
||||
EC (Elliptic curve) key processing.
|
||||
|
||||
=item L<B<ecparam>|ecparam(1)>
|
||||
=item B<ecparam>
|
||||
|
||||
EC parameter manipulation and generation.
|
||||
|
||||
=item L<B<enc>|enc(1)>
|
||||
=item B<enc>
|
||||
|
||||
Encoding with Ciphers.
|
||||
|
||||
=item L<B<engine>|engine(1)>
|
||||
=item B<engine>
|
||||
|
||||
Engine (loadable module) information and manipulation.
|
||||
|
||||
=item L<B<errstr>|errstr(1)>
|
||||
=item B<errstr>
|
||||
|
||||
Error Number to Error String Conversion.
|
||||
|
||||
=item B<gendh>
|
||||
|
||||
Generation of Diffie-Hellman Parameters.
|
||||
Obsoleted by L<B<dhparam>|dhparam(1)>.
|
||||
Obsoleted by L<dhparam(1)>.
|
||||
|
||||
=item L<B<gendsa>|gendsa(1)>
|
||||
=item B<gendsa>
|
||||
|
||||
Generation of DSA Private Key from Parameters. Superseded by
|
||||
L<B<genpkey>|genpkey(1)> and L<B<pkey>|pkey(1)>.
|
||||
L<genpkey(1)> and L<pkey(1)>.
|
||||
|
||||
=item L<B<genpkey>|genpkey(1)>
|
||||
=item B<genpkey>
|
||||
|
||||
Generation of Private Key or Parameters.
|
||||
|
||||
=item L<B<genrsa>|genrsa(1)>
|
||||
=item B<genrsa>
|
||||
|
||||
Generation of RSA Private Key. Superseded by L<B<genpkey>|genpkey(1)>.
|
||||
Generation of RSA Private Key. Superseded by L<genpkey(1)>.
|
||||
|
||||
=item L<B<nseq>|nseq(1)>
|
||||
=item B<nseq>
|
||||
|
||||
Create or examine a Netscape certificate sequence.
|
||||
|
||||
=item L<B<ocsp>|ocsp(1)>
|
||||
=item B<ocsp>
|
||||
|
||||
Online Certificate Status Protocol utility.
|
||||
|
||||
=item L<B<passwd>|passwd(1)>
|
||||
=item B<passwd>
|
||||
|
||||
Generation of hashed passwords.
|
||||
|
||||
=item L<B<pkcs12>|pkcs12(1)>
|
||||
=item B<pkcs12>
|
||||
|
||||
PKCS#12 Data Management.
|
||||
|
||||
=item L<B<pkcs7>|pkcs7(1)>
|
||||
=item B<pkcs7>
|
||||
|
||||
PKCS#7 Data Management.
|
||||
|
||||
=item L<B<pkcs8>|pkcs8(1)>
|
||||
=item B<pkcs8>
|
||||
|
||||
PKCS#8 format private key conversion tool.
|
||||
|
||||
=item L<B<pkey>|pkey(1)>
|
||||
=item B<pkey>
|
||||
|
||||
Public and private key management.
|
||||
|
||||
=item L<B<pkeyparam>|pkeyparam(1)>
|
||||
=item B<pkeyparam>
|
||||
|
||||
Public key algorithm parameter management.
|
||||
|
||||
=item L<B<pkeyutl>|pkeyutl(1)>
|
||||
=item B<pkeyutl>
|
||||
|
||||
Public key algorithm cryptographic operation utility.
|
||||
|
||||
=item L<B<prime>|prime(1)>
|
||||
=item B<prime>
|
||||
|
||||
Compute prime numbers.
|
||||
|
||||
=item L<B<rand>|rand(1)>
|
||||
=item B<rand>
|
||||
|
||||
Generate pseudo-random bytes.
|
||||
|
||||
=item L<B<rehash>|rehash(1)>
|
||||
=item B<rehash>
|
||||
|
||||
Create symbolic links to certificate and CRL files named by the hash values.
|
||||
|
||||
=item L<B<req>|req(1)>
|
||||
=item B<req>
|
||||
|
||||
PKCS#10 X.509 Certificate Signing Request (CSR) Management.
|
||||
|
||||
=item L<B<rsa>|rsa(1)>
|
||||
=item B<rsa>
|
||||
|
||||
RSA key management.
|
||||
|
||||
|
||||
=item L<B<rsautl>|rsautl(1)>
|
||||
=item B<rsautl>
|
||||
|
||||
RSA utility for signing, verification, encryption, and decryption. Superseded
|
||||
by L<B<pkeyutl>|pkeyutl(1)>.
|
||||
by L<pkeyutl(1)>.
|
||||
|
||||
=item L<B<s_client>|s_client(1)>
|
||||
=item B<s_client>
|
||||
|
||||
This implements a generic SSL/TLS client which can establish a transparent
|
||||
connection to a remote server speaking SSL/TLS. It's intended for testing
|
||||
purposes only and provides only rudimentary interface functionality but
|
||||
internally uses mostly all functionality of the OpenSSL B<ssl> library.
|
||||
|
||||
=item L<B<s_server>|s_server(1)>
|
||||
=item B<s_server>
|
||||
|
||||
This implements a generic SSL/TLS server which accepts connections from remote
|
||||
clients speaking SSL/TLS. It's intended for testing purposes only and provides
|
||||
@@ -240,47 +239,47 @@ functionality of the OpenSSL B<ssl> library. It provides both an own command
|
||||
line oriented protocol for testing SSL functions and a simple HTTP response
|
||||
facility to emulate an SSL/TLS-aware webserver.
|
||||
|
||||
=item L<B<s_time>|s_time(1)>
|
||||
=item B<s_time>
|
||||
|
||||
SSL Connection Timer.
|
||||
|
||||
=item L<B<sess_id>|sess_id(1)>
|
||||
=item B<sess_id>
|
||||
|
||||
SSL Session Data Management.
|
||||
|
||||
=item L<B<smime>|smime(1)>
|
||||
=item B<smime>
|
||||
|
||||
S/MIME mail processing.
|
||||
|
||||
=item L<B<speed>|speed(1)>
|
||||
=item B<speed>
|
||||
|
||||
Algorithm Speed Measurement.
|
||||
|
||||
=item L<B<spkac>|spkac(1)>
|
||||
=item B<spkac>
|
||||
|
||||
SPKAC printing and generating utility.
|
||||
|
||||
=item L<B<srp>|srp(1)>
|
||||
=item B<srp>
|
||||
|
||||
Maintain SRP password file.
|
||||
|
||||
=item L<B<storeutl>|storeutl(1)>
|
||||
=item B<storeutl>
|
||||
|
||||
Utility to list and display certificates, keys, CRLs, etc.
|
||||
|
||||
=item L<B<ts>|ts(1)>
|
||||
=item B<ts>
|
||||
|
||||
Time Stamping Authority tool (client/server).
|
||||
|
||||
=item L<B<verify>|verify(1)>
|
||||
=item B<verify>
|
||||
|
||||
X.509 Certificate Verification.
|
||||
|
||||
=item L<B<version>|version(1)>
|
||||
=item B<version>
|
||||
|
||||
OpenSSL Version Information.
|
||||
|
||||
=item L<B<x509>|x509(1)>
|
||||
=item B<x509>
|
||||
|
||||
X.509 Certificate Data Management.
|
||||
|
||||
@@ -376,31 +375,31 @@ SM3 Digest
|
||||
|
||||
Base64 Encoding
|
||||
|
||||
=item B<bf bf-cbc bf-cfb bf-ecb bf-ofb>
|
||||
=item B<bf>, B<bf-cbc>, B<bf-cfb>, B<bf-ecb>, B<bf-ofb>
|
||||
|
||||
Blowfish Cipher
|
||||
|
||||
=item B<cast cast-cbc>
|
||||
=item B<cast>, B<cast-cbc>
|
||||
|
||||
CAST Cipher
|
||||
|
||||
=item B<cast5-cbc cast5-cfb cast5-ecb cast5-ofb>
|
||||
=item B<cast5-cbc>, B<cast5-cfb>, B<cast5-ecb>, B<cast5-ofb>
|
||||
|
||||
CAST5 Cipher
|
||||
|
||||
=item B<des des-cbc des-cfb des-ecb des-ede des-ede-cbc des-ede-cfb des-ede-ofb des-ofb>
|
||||
=item B<des>, B<des-cbc>, B<des-cfb>, B<des-ecb>, B<des-ede>, B<des-ede-cbc>, B<des-ede-cfb>, B<des-ede-ofb>, B<des-ofb>
|
||||
|
||||
DES Cipher
|
||||
|
||||
=item B<des3 desx des-ede3 des-ede3-cbc des-ede3-cfb des-ede3-ofb>
|
||||
=item B<des3>, B<desx>, B<des-ede3>, B<des-ede3-cbc>, B<des-ede3-cfb>, B<des-ede3-ofb>
|
||||
|
||||
Triple-DES Cipher
|
||||
|
||||
=item B<idea idea-cbc idea-cfb idea-ecb idea-ofb>
|
||||
=item B<idea>, B<idea-cbc>, B<idea-cfb>, B<idea-ecb>, B<idea-ofb>
|
||||
|
||||
IDEA Cipher
|
||||
|
||||
=item B<rc2 rc2-cbc rc2-cfb rc2-ecb rc2-ofb>
|
||||
=item B<rc2>, B<rc2-cbc>, B<rc2-cfb>, B<rc2-ecb>, B<rc2-ofb>
|
||||
|
||||
RC2 Cipher
|
||||
|
||||
@@ -408,7 +407,7 @@ RC2 Cipher
|
||||
|
||||
RC4 Cipher
|
||||
|
||||
=item B<rc5 rc5-cbc rc5-cfb rc5-ecb rc5-ofb>
|
||||
=item B<rc5>, B<rc5-cbc>, B<rc5-cfb>, B<rc5-ecb>, B<rc5-ofb>
|
||||
|
||||
RC5 Cipher
|
||||
|
||||
|
||||
+8
-4
@@ -108,13 +108,17 @@ This can be used with a subsequent B<-rand> flag.
|
||||
|
||||
=head1 EXAMPLES
|
||||
|
||||
B<openssl passwd -crypt -salt xx password> prints B<xxj31ZMTZzkVA>.
|
||||
% openssl passwd -crypt -salt xx password
|
||||
xxj31ZMTZzkVA
|
||||
|
||||
B<openssl passwd -1 -salt xxxxxxxx password> prints B<$1$xxxxxxxx$UYCIxa628.9qXjpQCjM4a.>.
|
||||
% openssl passwd -1 -salt xxxxxxxx password
|
||||
$1$xxxxxxxx$UYCIxa628.9qXjpQCjM4a.
|
||||
|
||||
B<openssl passwd -apr1 -salt xxxxxxxx password> prints B<$apr1$xxxxxxxx$dxHfLAsjHkDRmG83UXe8K0>.
|
||||
% openssl passwd -apr1 -salt xxxxxxxx password
|
||||
$apr1$xxxxxxxx$dxHfLAsjHkDRmG83UXe8K0
|
||||
|
||||
B<openssl passwd -aixmd5 -salt xxxxxxxx password> prints B<xxxxxxxx$8Oaipk/GPKhC64w/YVeFD/>.
|
||||
% openssl passwd -aixmd5 -salt xxxxxxxx password
|
||||
xxxxxxxx$8Oaipk/GPKhC64w/YVeFD/
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
|
||||
+2
-2
@@ -223,14 +223,14 @@ below.
|
||||
These algorithms were included in the original PKCS#5 v1.5 specification.
|
||||
They only offer 56 bits of protection since they both use DES.
|
||||
|
||||
=item B<PBE-SHA1-RC2-64 PBE-MD2-RC2-64 PBE-MD5-RC2-64 PBE-SHA1-DES>
|
||||
=item B<PBE-SHA1-RC2-64>, B<PBE-MD2-RC2-64>, B<PBE-MD5-RC2-64>, B<PBE-SHA1-DES>
|
||||
|
||||
These algorithms are not mentioned in the original PKCS#5 v1.5 specification
|
||||
but they use the same key derivation algorithm and are supported by some
|
||||
software. They are mentioned in PKCS#5 v2.0. They use either 64 bit RC2 or
|
||||
56 bit DES.
|
||||
|
||||
=item B<PBE-SHA1-RC4-128 PBE-SHA1-RC4-40 PBE-SHA1-3DES PBE-SHA1-2DES PBE-SHA1-RC2-128 PBE-SHA1-RC2-40>
|
||||
=item B<PBE-SHA1-RC4-128>, B<PBE-SHA1-RC4-40>, B<PBE-SHA1-3DES>, B<PBE-SHA1-2DES>, B<PBE-SHA1-RC2-128>, B<PBE-SHA1-RC2-40>
|
||||
|
||||
These algorithms use the PKCS#12 password based encryption algorithm and
|
||||
allow strong encryption algorithms like triple DES or 128 bit RC2 to be used.
|
||||
|
||||
+1
-1
@@ -90,7 +90,7 @@ filename.
|
||||
The output file password source. For more information about the format of B<arg>
|
||||
see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)>.
|
||||
|
||||
=item B<-aes128|-aes192|-aes256|-aria128|-aria192|-aria256|-camellia128|-camellia192|-camellia256|-des|-des3|-idea>
|
||||
=item B<-aes128>, B<-aes192>, B<-aes256>, B<-aria128>, B<-aria192>, B<-aria256>, B<-camellia128>, B<-camellia192>, B<-camellia256>, B<-des>, B<-des3>, B<-idea>
|
||||
|
||||
These options encrypt the private key with the specified
|
||||
cipher before outputting it. A pass phrase is prompted for.
|
||||
|
||||
@@ -804,7 +804,7 @@ information whenever a session is renegotiated.
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<SSL_CONF_cmd(3)>, L<sess_id(1)>, L<s_server(1)>, L<ciphers(1)>,
|
||||
L<SSL_CTX_set_max_send_fragment(3)>, L<SSL_CTX_set_split_send_fragment(3)>
|
||||
L<SSL_CTX_set_max_send_fragment(3)>, L<SSL_CTX_set_split_send_fragment(3)>,
|
||||
L<SSL_CTX_set_max_pipelines(3)>
|
||||
|
||||
=head1 HISTORY
|
||||
|
||||
+13
-1
@@ -180,6 +180,8 @@ B<openssl> B<s_server>
|
||||
[B<-keylogfile outfile>]
|
||||
[B<-max_early_data int>]
|
||||
[B<-early_data>]
|
||||
[B<-anti_replay>]
|
||||
[B<-no_anti_replay>]
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
@@ -709,6 +711,15 @@ greater than or equal to 0.
|
||||
|
||||
Accept early data where possible.
|
||||
|
||||
=item B<-anti_replay>, B<-no_anti_replay>
|
||||
|
||||
Switches replay protection on or off, respectively. Replay protection is on by
|
||||
default unless overridden by a configuration file. When it is on, OpenSSL will
|
||||
automatically detect if a session ticket has been used more than once, TLSv1.3
|
||||
has been negotiated, and early data is enabled on the server. A full handshake
|
||||
is forced if a session ticket is used a second or subsequent time. Any early
|
||||
data that was sent will be rejected.
|
||||
|
||||
=back
|
||||
|
||||
=head1 CONNECTED COMMANDS
|
||||
@@ -798,7 +809,8 @@ unknown cipher suites a client says it supports.
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<SSL_CONF_cmd(3)>, L<sess_id(1)>, L<s_client(1)>, L<ciphers(1)>
|
||||
L<SSL_CTX_set_max_send_fragment(3)>, L<SSL_CTX_set_split_send_fragment(3)>
|
||||
L<SSL_CTX_set_max_send_fragment(3)>,
|
||||
L<SSL_CTX_set_split_send_fragment(3)>,
|
||||
L<SSL_CTX_set_max_pipelines(3)>
|
||||
|
||||
=head1 HISTORY
|
||||
|
||||
+6
-5
@@ -116,11 +116,12 @@ Create an SPKAC using the challenge string "hello":
|
||||
|
||||
Example of an SPKAC, (long lines split up for clarity):
|
||||
|
||||
SPKAC=MIG5MGUwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA1cCoq2Wa3Ixs47uI7F\
|
||||
PVwHVIPDx5yso105Y6zpozam135a8R0CpoRvkkigIyXfcCjiVi5oWk+6FfPaD03u\
|
||||
PFoQIDAQABFgVoZWxsbzANBgkqhkiG9w0BAQQFAANBAFpQtY/FojdwkJh1bEIYuc\
|
||||
2EeM2KHTWPEepWYeawvHD0gQ3DngSC75YCWnnDdq+NQ3F+X4deMx9AaEglZtULwV\
|
||||
4=
|
||||
SPKAC=MIG5MGUwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA\
|
||||
1cCoq2Wa3Ixs47uI7FPVwHVIPDx5yso105Y6zpozam135a\
|
||||
8R0CpoRvkkigIyXfcCjiVi5oWk+6FfPaD03uPFoQIDAQAB\
|
||||
FgVoZWxsbzANBgkqhkiG9w0BAQQFAANBAFpQtY/FojdwkJ\
|
||||
h1bEIYuc2EeM2KHTWPEepWYeawvHD0gQ3DngSC75YCWnnD\
|
||||
dq+NQ3F+X4deMx9AaEglZtULwV4=
|
||||
|
||||
=head1 NOTES
|
||||
|
||||
|
||||
+6
-4
@@ -557,10 +557,12 @@ OID section of the config file):
|
||||
|
||||
Before generating a response a signing certificate must be created for
|
||||
the TSA that contains the B<timeStamping> critical extended key usage extension
|
||||
without any other key usage extensions. You can add the
|
||||
'extendedKeyUsage = critical,timeStamping' line to the user certificate section
|
||||
of the config file to generate a proper certificate. See L<req(1)>,
|
||||
L<ca(1)>, L<x509(1)> for instructions. The examples
|
||||
without any other key usage extensions. You can add this line to the
|
||||
user certificate section of the config file to generate a proper certificate;
|
||||
|
||||
extendedKeyUsage = critical,timeStamping
|
||||
|
||||
See L<req(1)>, L<ca(1)>, and L<x509(1)> for instructions. The examples
|
||||
below assume that cacert.pem contains the certificate of the CA,
|
||||
tsacert.pem is the signing certificate issued by cacert.pem and
|
||||
tsakey.pem is the private key of the TSA.
|
||||
|
||||
@@ -3,11 +3,13 @@
|
||||
=head1 NAME
|
||||
|
||||
EVP_MD_CTX_new, EVP_MD_CTX_reset, EVP_MD_CTX_free, EVP_MD_CTX_copy_ex,
|
||||
EVP_MD_CTX_ctrl, EVP_DigestInit_ex, EVP_DigestInit, EVP_DigestUpdate,
|
||||
EVP_MD_CTX_ctrl, EVP_MD_CTX_set_flags, EVP_MD_CTX_clear_flags,
|
||||
EVP_MD_CTX_test_flags, EVP_DigestInit_ex, EVP_DigestInit, EVP_DigestUpdate,
|
||||
EVP_DigestFinal_ex, EVP_DigestFinalXOF, EVP_DigestFinal,
|
||||
EVP_MD_CTX_copy, EVP_MD_type, EVP_MD_pkey_type, EVP_MD_size,
|
||||
EVP_MD_block_size, EVP_MD_CTX_md, EVP_MD_CTX_size,
|
||||
EVP_MD_CTX_block_size, EVP_MD_CTX_type, EVP_md_null,
|
||||
EVP_MD_CTX_block_size, EVP_MD_CTX_type, EVP_MD_CTX_md_data,
|
||||
EVP_md_null,
|
||||
EVP_get_digestbyname, EVP_get_digestbynid,
|
||||
EVP_get_digestbyobj - EVP digest routines
|
||||
|
||||
@@ -19,6 +21,9 @@ EVP_get_digestbyobj - EVP digest routines
|
||||
int EVP_MD_CTX_reset(EVP_MD_CTX *ctx);
|
||||
void EVP_MD_CTX_free(EVP_MD_CTX *ctx);
|
||||
void EVP_MD_CTX_ctrl(EVP_MD_CTX *ctx, int cmd, int p1, void* p2);
|
||||
void EVP_MD_CTX_set_flags(EVP_MD_CTX *ctx, int flags);
|
||||
void EVP_MD_CTX_clear_flags(EVP_MD_CTX *ctx, int flags);
|
||||
int EVP_MD_CTX_test_flags(const EVP_MD_CTX *ctx, int flags);
|
||||
|
||||
int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl);
|
||||
int EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *d, size_t cnt);
|
||||
@@ -41,6 +46,7 @@ EVP_get_digestbyobj - EVP digest routines
|
||||
int EVP_MD_CTX_size(const EVP_MD *ctx);
|
||||
int EVP_MD_CTX_block_size(const EVP_MD *ctx);
|
||||
int EVP_MD_CTX_type(const EVP_MD *ctx);
|
||||
void *EVP_MD_CTX_md_data(const EVP_MD_CTX *ctx);
|
||||
|
||||
const EVP_MD *EVP_md_null(void);
|
||||
|
||||
@@ -72,6 +78,10 @@ Cleans up digest context B<ctx> and frees up the space allocated to it.
|
||||
|
||||
Performs digest-specific control actions on context B<ctx>.
|
||||
|
||||
=item EVP_MD_CTX_set_flags(), EVP_MD_CTX_clear_flags(), EVP_MD_CTX_test_flags()
|
||||
|
||||
Sets, clears and tests B<ctx> flags. See L</FLAGS> below for more information.
|
||||
|
||||
=item EVP_DigestInit_ex()
|
||||
|
||||
Sets up digest context B<ctx> to use a digest B<type> from ENGINE B<impl>.
|
||||
@@ -140,6 +150,12 @@ Return the NID of the OBJECT IDENTIFIER representing the given message digest
|
||||
when passed an B<EVP_MD> structure. For example, C<EVP_MD_type(EVP_sha1())>
|
||||
returns B<NID_sha1>. This function is normally used when setting ASN1 OIDs.
|
||||
|
||||
=item EVP_MD_CTX_md_data()
|
||||
|
||||
Return the digest method private data for the passed B<EVP_MD_CTX>.
|
||||
The space is allocated by OpenSSL and has the size originally set with
|
||||
EVP_MD_meth_set_app_datasize().
|
||||
|
||||
=item EVP_MD_CTX_md()
|
||||
|
||||
Returns the B<EVP_MD> structure corresponding to the passed B<EVP_MD_CTX>.
|
||||
@@ -165,6 +181,38 @@ B<ASN1_OBJECT> structure respectively.
|
||||
|
||||
=back
|
||||
|
||||
=head1 FLAGS
|
||||
|
||||
EVP_MD_CTX_set_flags(), EVP_MD_CTX_clear_flags() and EVP_MD_CTX_test_flags()
|
||||
can be used the manipulate and test these B<EVP_MD_CTX> flags:
|
||||
|
||||
=over 4
|
||||
|
||||
=item EVP_MD_CTX_FLAG_ONESHOT
|
||||
|
||||
This flag instructs the digest to optimize for one update only, if possible.
|
||||
|
||||
=for comment EVP_MD_CTX_FLAG_CLEANED is internal, don't mention it
|
||||
|
||||
=for comment EVP_MD_CTX_FLAG_REUSE is internal, don't mention it
|
||||
|
||||
=for comment We currently avoid documenting flags that are only bit holder:
|
||||
EVP_MD_CTX_FLAG_NON_FIPS_ALLOW, EVP_MD_CTX_FLAGS_PAD_*
|
||||
|
||||
=item EVP_MD_CTX_FLAG_NO_INIT
|
||||
|
||||
This flag instructs EVP_DigestInit() and similar not to initialise the
|
||||
implementation specific data.
|
||||
|
||||
=item EVP_MD_CTX_FLAG_FINALISE
|
||||
|
||||
Some functions such as EVP_DigestSign only finalise copies of internal
|
||||
contexts so additional data can be included after the finalisation call.
|
||||
This is inefficient if this functionality is not required, and can be
|
||||
disabled with this flag.
|
||||
|
||||
=back
|
||||
|
||||
=head1 RETURN VALUES
|
||||
|
||||
=over 4
|
||||
|
||||
@@ -211,6 +211,18 @@ that there will be no forward secrecy for the resumed session.
|
||||
enables strict mode protocol handling. Equivalent to setting
|
||||
B<SSL_CERT_FLAG_TLS_STRICT>.
|
||||
|
||||
=item B<-anti_replay>, B<-no_anti_replay>
|
||||
|
||||
Switches replay protection, on or off respectively. With replay protection on,
|
||||
OpenSSL will automatically detect if a session ticket has been used more than
|
||||
once, TLSv1.3 has been negotiated, and early data is enabled on the server. A
|
||||
full handshake is forced if a session ticket is used a second or subsequent
|
||||
time. Anti-Replay is on by default unless overridden by a configuration file and
|
||||
is only used by servers. Anti-replay measures are required for compliance with
|
||||
the TLSv1.3 specification. Some applications may be able to mitigate the replay
|
||||
risks in other ways and in such cases the built-in OpenSSL functionality is not
|
||||
required. Switching off anti-replay is equivalent to B<SSL_OP_NO_ANTI_REPLAY>.
|
||||
|
||||
=back
|
||||
|
||||
=head1 SUPPORTED CONFIGURATION FILE COMMANDS
|
||||
@@ -441,6 +453,15 @@ middleboxes that do not understand TLSv1.3 will not drop the connection. This
|
||||
option is set by default. A future version of OpenSSL may not set this by
|
||||
default. Equivalent to B<SSL_OP_ENABLE_MIDDLEBOX_COMPAT>.
|
||||
|
||||
B<AntiReplay>: If set then OpenSSL will automatically detect if a session ticket
|
||||
has been used more than once, TLSv1.3 has been negotiated, and early data is
|
||||
enabled on the server. A full handshake is forced if a session ticket is used a
|
||||
second or subsequent time. This option is set by default and is only used by
|
||||
servers. Anti-replay measures are required to comply with the TLSv1.3
|
||||
specification. Some applications may be able to mitigate the replay risks in
|
||||
other ways and in such cases the built-in OpenSSL functionality is not required.
|
||||
Disabling anti-replay is equivalent to setting B<SSL_OP_NO_ANTI_REPLAY>.
|
||||
|
||||
=item B<VerifyMode>
|
||||
|
||||
The B<value> argument is a comma separated list of flags to set.
|
||||
|
||||
@@ -226,6 +226,17 @@ this option is set or not CCS messages received from the peer will always be
|
||||
ignored in TLSv1.3. This option is set by default. To switch it off use
|
||||
SSL_clear_options(). A future version of OpenSSL may not set this by default.
|
||||
|
||||
=item SSL_OP_NO_ANTI_REPLAY
|
||||
|
||||
By default, when a server is configured for early data (i.e., max_early_data > 0),
|
||||
OpenSSL will switch on replay protection. See L<SSL_read_early_data(3)> for a
|
||||
description of the replay protection feature. Anti-replay measures are required
|
||||
to comply with the TLSv1.3 specification. Some applications may be able to
|
||||
mitigate the replay risks in other ways and in such cases the built in OpenSSL
|
||||
functionality is not required. Those applications can turn this feature off by
|
||||
setting this option. This is a server-side opton only. It is ignored by
|
||||
clients.
|
||||
|
||||
=back
|
||||
|
||||
The following options no longer have any effect but their identifiers are
|
||||
|
||||
@@ -10,7 +10,10 @@ SSL_SESSION_get_max_early_data,
|
||||
SSL_SESSION_set_max_early_data,
|
||||
SSL_write_early_data,
|
||||
SSL_read_early_data,
|
||||
SSL_get_early_data_status
|
||||
SSL_get_early_data_status,
|
||||
SSL_allow_early_data_cb_fn,
|
||||
SSL_CTX_set_allow_early_data_cb,
|
||||
SSL_set_allow_early_data_cb
|
||||
- functions for sending and receiving early data
|
||||
|
||||
=head1 SYNOPSIS
|
||||
@@ -30,6 +33,16 @@ SSL_get_early_data_status
|
||||
|
||||
int SSL_get_early_data_status(const SSL *s);
|
||||
|
||||
|
||||
typedef int (*SSL_allow_early_data_cb_fn)(SSL *s, void *arg);
|
||||
|
||||
void SSL_CTX_set_allow_early_data_cb(SSL_CTX *ctx,
|
||||
SSL_allow_early_data_cb_fn cb,
|
||||
void *arg);
|
||||
void SSL_set_allow_early_data_cb(SSL *s,
|
||||
SSL_allow_early_data_cb_fn cb,
|
||||
void *arg);
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
These functions are used to send and receive early data where TLSv1.3 has been
|
||||
@@ -186,6 +199,20 @@ In the event that the current maximum early data setting for the server is
|
||||
different to that originally specified in a session that a client is resuming
|
||||
with then the lower of the two values will apply.
|
||||
|
||||
Some server applications may wish to have more control over whether early data
|
||||
is accepted or not, for example to mitigate replay risks (see L</REPLAY PROTECTION>
|
||||
below) or to decline early_data when the server is heavily loaded. The functions
|
||||
SSL_CTX_set_allow_early_data_cb() and SSL_set_allow_early_data_cb() set a
|
||||
callback which is called at a point in the handshake immediately before a
|
||||
decision is made to accept or reject early data. The callback is provided with a
|
||||
pointer to the user data argument that was provided when the callback was first
|
||||
set. Returning 1 from the callback will allow early data and returning 0 will
|
||||
reject it. Note that the OpenSSL library may reject early data for other reasons
|
||||
in which case this callback will not get called. Notably, the built-in replay
|
||||
protection feature will still be used even if a callback is present unless it
|
||||
has been explicitly disabled using the SSL_OP_NO_ANTI_REPLAY option. See
|
||||
L</REPLAY PROTECTION> below.
|
||||
|
||||
=head1 NOTES
|
||||
|
||||
The whole purpose of early data is to enable a client to start sending data to
|
||||
@@ -252,6 +279,12 @@ The OpenSSL replay protection does not apply to external Pre Shared Keys (PSKs)
|
||||
(e.g. see SSL_CTX_set_psk_find_session_callback(3)). Therefore extreme caution
|
||||
should be applied when combining external PSKs with early data.
|
||||
|
||||
Some applications may mitigate the replay risks in other ways. For those
|
||||
applications it is possible to turn off the built-in replay protection feature
|
||||
using the B<SSL_OP_NO_ANTI_REPLAY> option. See L<SSL_CTX_set_options(3)> for
|
||||
details. Applications can also set a callback to make decisions about accepting
|
||||
early data or not. See SSL_CTX_set_allow_early_data_cb() above for details.
|
||||
|
||||
=head1 RETURN VALUES
|
||||
|
||||
SSL_write_early_data() returns 1 for success or 0 for failure. In the event of a
|
||||
|
||||
@@ -28,6 +28,8 @@ PKCS7_ISSUER_AND_SERIAL_digest
|
||||
int X509_NAME_digest(const X509_NAME *data, const EVP_MD *type,
|
||||
unsigned char *md, unsigned int *len);
|
||||
|
||||
#include <openssl/pkcs7.h>
|
||||
|
||||
int PKCS7_ISSUER_AND_SERIAL_digest(PKCS7_ISSUER_AND_SERIAL *data,
|
||||
const EVP_MD *type, unsigned char *md,
|
||||
unsigned int *len);
|
||||
|
||||
Reference in New Issue
Block a user