Import OpenSSL 1.1.0i
This commit is contained in:
@@ -393,6 +393,9 @@ When encrypting a message this option may be used multiple times to specify
|
||||
each recipient. This form B<must> be used if customised parameters are
|
||||
required (for example to specify RSA-OAEP).
|
||||
|
||||
Only certificates carrying RSA, Diffie-Hellman or EC keys are supported by this
|
||||
option.
|
||||
|
||||
=item B<-keyid>
|
||||
|
||||
use subject key identifier to identify certificates instead of issuer name and
|
||||
@@ -712,23 +715,20 @@ No revocation checking is done on the signer's certificate.
|
||||
=head1 HISTORY
|
||||
|
||||
The use of multiple B<-signer> options and the B<-resign> command were first
|
||||
added in OpenSSL 1.0.0
|
||||
added in OpenSSL 1.0.0.
|
||||
|
||||
The B<keyopt> option was first added in OpenSSL 1.1.0
|
||||
The B<keyopt> option was first added in OpenSSL 1.0.2
|
||||
|
||||
The use of B<-recip> to specify the recipient when encrypting mail was first
|
||||
added to OpenSSL 1.1.0
|
||||
|
||||
Support for RSA-OAEP and RSA-PSS was first added to OpenSSL 1.1.0.
|
||||
Support for RSA-OAEP and RSA-PSS was first added to OpenSSL 1.0.2.
|
||||
|
||||
The use of non-RSA keys with B<-encrypt> and B<-decrypt> was first added
|
||||
to OpenSSL 1.1.0.
|
||||
to OpenSSL 1.0.2.
|
||||
|
||||
The -no_alt_chains options was first added to OpenSSL 1.1.0.
|
||||
The -no_alt_chains options was first added to OpenSSL 1.0.2b.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2008-2018 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
|
||||
|
||||
@@ -20,7 +20,7 @@ started or end of file is reached. A section name can consist of
|
||||
alphanumeric characters and underscores.
|
||||
|
||||
The first section of a configuration file is special and is referred
|
||||
to as the B<default> section this is usually unnamed and is from the
|
||||
to as the B<default> section. This section is usually unnamed and spans from the
|
||||
start of file until the first named section. When a name is being looked up
|
||||
it is first looked up in a named section (if any) and then the
|
||||
default section.
|
||||
@@ -377,7 +377,7 @@ L<x509(1)>, L<req(1)>, L<ca(1)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2000-2018 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
|
||||
|
||||
@@ -12,7 +12,7 @@ B<openssl> B<genpkey>
|
||||
[B<-out filename>]
|
||||
[B<-outform PEM|DER>]
|
||||
[B<-pass arg>]
|
||||
[B<-cipher>]
|
||||
[B<-I<cipher>>]
|
||||
[B<-engine id>]
|
||||
[B<-paramfile file>]
|
||||
[B<-algorithm alg>]
|
||||
@@ -39,21 +39,21 @@ standard output is used.
|
||||
|
||||
=item B<-outform DER|PEM>
|
||||
|
||||
This specifies the output format DER or PEM.
|
||||
This specifies the output format DER or PEM. The default format is PEM.
|
||||
|
||||
=item B<-pass arg>
|
||||
|
||||
the output file password source. For more information about the format of B<arg>
|
||||
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<-cipher>
|
||||
=item B<-I<cipher>>
|
||||
|
||||
This option encrypts the private key with the supplied cipher. Any algorithm
|
||||
name accepted by EVP_get_cipherbyname() is acceptable such as B<des3>.
|
||||
|
||||
=item B<-engine id>
|
||||
|
||||
specifying an engine (by its unique B<id> string) will cause B<genpkey>
|
||||
Specifying an engine (by its unique B<id> string) will cause B<genpkey>
|
||||
to attempt to obtain a functional reference to the specified engine,
|
||||
thus initialising it if needed. The engine will then be set as the default
|
||||
for all available algorithms. If used this option should precede all other
|
||||
@@ -61,19 +61,32 @@ options.
|
||||
|
||||
=item B<-algorithm alg>
|
||||
|
||||
public key algorithm to use such as RSA, DSA or DH. If used this option must
|
||||
Public key algorithm to use such as RSA, DSA or DH. If used this option must
|
||||
precede any B<-pkeyopt> options. The options B<-paramfile> and B<-algorithm>
|
||||
are mutually exclusive.
|
||||
are mutually exclusive. Engines may add algorithms in addition to the standard
|
||||
built-in ones.
|
||||
|
||||
Valid built-in algorithm names for private key generation are RSA and EC.
|
||||
|
||||
Valid built-in algorithm names for parameter generation (see the B<-genparam>
|
||||
option) are DH, DSA and EC.
|
||||
|
||||
Note that the algorithm name X9.42 DH may be used as a synonym for the DH
|
||||
algorithm. These are identical and do not indicate the type of parameters that
|
||||
will be generated. Use the B<dh_paramgen_type> option to indicate whether PKCS#3
|
||||
or X9.42 DH parameters are required. See L<DH Parameter Generation Options>
|
||||
below for more details.
|
||||
|
||||
=item B<-pkeyopt opt:value>
|
||||
|
||||
set the public key algorithm option B<opt> to B<value>. The precise set of
|
||||
Set the public key algorithm option B<opt> to B<value>. The precise set of
|
||||
options supported depends on the public key algorithm used and its
|
||||
implementation. See B<KEY GENERATION OPTIONS> below for more details.
|
||||
implementation. See L<KEY GENERATION OPTIONS> and
|
||||
L<PARAMETER GENERATION OPTIONS> below for more details.
|
||||
|
||||
=item B<-genparam>
|
||||
|
||||
generate a set of parameters instead of a private key. If used this option must
|
||||
Generate a set of parameters instead of a private key. If used this option must
|
||||
precede any B<-algorithm>, B<-paramfile> or B<-pkeyopt> options.
|
||||
|
||||
=item B<-paramfile filename>
|
||||
@@ -97,7 +110,7 @@ The options supported by each algorithm and indeed each implementation of an
|
||||
algorithm can vary. The options for the OpenSSL implementations are detailed
|
||||
below.
|
||||
|
||||
=head1 RSA KEY GENERATION OPTIONS
|
||||
=head2 RSA Key Generation Options
|
||||
|
||||
=over 4
|
||||
|
||||
@@ -112,91 +125,92 @@ hexadecimal value if preceded by B<0x>. Default value is 65537.
|
||||
|
||||
=back
|
||||
|
||||
=head1 DSA PARAMETER GENERATION OPTIONS
|
||||
=head2 EC Key Generation Options
|
||||
|
||||
=over 4
|
||||
|
||||
=item B<dsa_paramgen_bits:numbits>
|
||||
|
||||
The number of bits in the generated parameters. If not specified 1024 is used.
|
||||
|
||||
=back
|
||||
|
||||
=head1 DH PARAMETER GENERATION OPTIONS
|
||||
|
||||
=over 4
|
||||
|
||||
=item B<dh_paramgen_prime_len:numbits>
|
||||
|
||||
The number of bits in the prime parameter B<p>.
|
||||
|
||||
=item B<dh_paramgen_generator:value>
|
||||
|
||||
The value to use for the generator B<g>.
|
||||
|
||||
=item B<dh_rfc5114:num>
|
||||
|
||||
If this option is set then the appropriate RFC5114 parameters are used
|
||||
instead of generating new parameters. The value B<num> can take the
|
||||
values 1, 2 or 3 corresponding to RFC5114 DH parameters consisting of
|
||||
1024 bit group with 160 bit subgroup, 2048 bit group with 224 bit subgroup
|
||||
and 2048 bit group with 256 bit subgroup as mentioned in RFC5114 sections
|
||||
2.1, 2.2 and 2.3 respectively.
|
||||
|
||||
=back
|
||||
|
||||
=head1 EC PARAMETER GENERATION OPTIONS
|
||||
|
||||
The EC parameter generation options below can also
|
||||
be supplied as EC key generation options. This can (for example) generate a
|
||||
key from a named curve without the need to use an explicit parameter file.
|
||||
The EC key generation options can also be used for parameter generation.
|
||||
|
||||
=over 4
|
||||
|
||||
=item B<ec_paramgen_curve:curve>
|
||||
|
||||
the EC curve to use. OpenSSL supports NIST curve names such as "P-256".
|
||||
The EC curve to use. OpenSSL supports NIST curve names such as "P-256".
|
||||
|
||||
=item B<ec_param_enc:encoding>
|
||||
|
||||
the encoding to use for parameters. The "encoding" parameter must be either
|
||||
"named_curve" or "explicit".
|
||||
The encoding to use for parameters. The "encoding" parameter must be either
|
||||
"named_curve" or "explicit". The default value is "named_curve".
|
||||
|
||||
=back
|
||||
|
||||
=head1 GOST2001 KEY GENERATION AND PARAMETER OPTIONS
|
||||
=head1 PARAMETER GENERATION OPTIONS
|
||||
|
||||
Gost 2001 support is not enabled by default. To enable this algorithm,
|
||||
one should load the ccgost engine in the OpenSSL configuration file.
|
||||
See README.gost file in the engines/ccgost directory of the source
|
||||
distribution for more details.
|
||||
The options supported by each algorithm and indeed each implementation of an
|
||||
algorithm can vary. The options for the OpenSSL implementations are detailed
|
||||
below.
|
||||
|
||||
Use of a parameter file for the GOST R 34.10 algorithm is optional.
|
||||
Parameters can be specified during key generation directly as well as
|
||||
during generation of parameter file.
|
||||
=head2 DSA Parameter Generation Options
|
||||
|
||||
=over 4
|
||||
|
||||
=item B<paramset:name>
|
||||
=item B<dsa_paramgen_bits:numbits>
|
||||
|
||||
Specifies GOST R 34.10-2001 parameter set according to RFC 4357.
|
||||
Parameter set can be specified using abbreviated name, object short name or
|
||||
numeric OID. Following parameter sets are supported:
|
||||
The number of bits in the generated prime. If not specified 1024 is used.
|
||||
|
||||
paramset OID Usage
|
||||
A 1.2.643.2.2.35.1 Signature
|
||||
B 1.2.643.2.2.35.2 Signature
|
||||
C 1.2.643.2.2.35.3 Signature
|
||||
XA 1.2.643.2.2.36.0 Key exchange
|
||||
XB 1.2.643.2.2.36.1 Key exchange
|
||||
test 1.2.643.2.2.35.0 Test purposes
|
||||
=item B<dsa_paramgen_q_bits:numbits>
|
||||
|
||||
The number of bits in the q parameter. Must be one of 160, 224 or 256. If not
|
||||
specified 160 is used.
|
||||
|
||||
=item B<dsa_paramgen_md:digest>
|
||||
|
||||
The digest to use during parameter generation. Must be one of B<sha1>, B<sha224>
|
||||
or B<sha256>. If set, then the number of bits in B<q> will match the output size
|
||||
of the specified digest and the B<dsa_paramgen_q_bits> parameter will be
|
||||
ignored. If not set, then a digest will be used that gives an output matching
|
||||
the number of bits in B<q>, i.e. B<sha1> if q length is 160, B<sha224> if it 224
|
||||
or B<sha256> if it is 256.
|
||||
|
||||
=back
|
||||
|
||||
=head1 X25519 KEY GENERATION OPTIONS
|
||||
=head2 DH Parameter Generation Options
|
||||
|
||||
The X25519 algorithm does not currently support any key generation options.
|
||||
=over 4
|
||||
|
||||
=item B<dh_paramgen_prime_len:numbits>
|
||||
|
||||
The number of bits in the prime parameter B<p>. The default is 1024.
|
||||
|
||||
=item B<dh_paramgen_subprime_len:numbits>
|
||||
|
||||
The number of bits in the sub prime parameter B<q>. The default is 256 if the
|
||||
prime is at least 2048 bits long or 160 otherwise. Only relevant if used in
|
||||
conjunction with the B<dh_paramgen_type> option to generate X9.42 DH parameters.
|
||||
|
||||
=item B<dh_paramgen_generator:value>
|
||||
|
||||
The value to use for the generator B<g>. The default is 2.
|
||||
|
||||
=item B<dh_paramgen_type:value>
|
||||
|
||||
The type of DH parameters to generate. Use 0 for PKCS#3 DH and 1 for X9.42 DH.
|
||||
The default is 0.
|
||||
|
||||
=item B<dh_rfc5114:num>
|
||||
|
||||
If this option is set, then the appropriate RFC5114 parameters are used
|
||||
instead of generating new parameters. The value B<num> can take the
|
||||
values 1, 2 or 3 corresponding to RFC5114 DH parameters consisting of
|
||||
1024 bit group with 160 bit subgroup, 2048 bit group with 224 bit subgroup
|
||||
and 2048 bit group with 256 bit subgroup as mentioned in RFC5114 sections
|
||||
2.1, 2.2 and 2.3 respectively. If present this overrides all other DH parameter
|
||||
options.
|
||||
|
||||
=back
|
||||
|
||||
=head2 EC Parameter Generation Options
|
||||
|
||||
The EC parameter generation options are the same as for key generation. See
|
||||
L<EC Key Generation Options> above.
|
||||
|
||||
=head1 NOTES
|
||||
|
||||
@@ -219,19 +233,25 @@ 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
|
||||
|
||||
Generate 1024 bit DSA parameters:
|
||||
Generate 2048 bit DSA parameters:
|
||||
|
||||
openssl genpkey -genparam -algorithm DSA -out dsap.pem \
|
||||
-pkeyopt dsa_paramgen_bits:1024
|
||||
-pkeyopt dsa_paramgen_bits:2048
|
||||
|
||||
Generate DSA key from parameters:
|
||||
|
||||
openssl genpkey -paramfile dsap.pem -out dsakey.pem
|
||||
|
||||
Generate 1024 bit DH parameters:
|
||||
Generate 2048 bit DH parameters:
|
||||
|
||||
openssl genpkey -genparam -algorithm DH -out dhp.pem \
|
||||
-pkeyopt dh_paramgen_prime_len:1024
|
||||
-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
|
||||
|
||||
Output RFC5114 2048 bit DH parameters with 224 bit subgroup:
|
||||
|
||||
@@ -264,11 +284,12 @@ Generate an X25519 private key:
|
||||
=head1 HISTORY
|
||||
|
||||
The ability to use NIST curve names, and to generate an EC key directly,
|
||||
were added in OpenSSL 1.0.2.
|
||||
were added in OpenSSL 1.0.2. The ability to generate X25519 keys was added in
|
||||
OpenSSL 1.1.0.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2006-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2006-2018 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
|
||||
|
||||
@@ -99,6 +99,12 @@ Note that current versions will not use the old style.
|
||||
Do not remove existing links.
|
||||
This is needed when keeping new and old-style links in the same directory.
|
||||
|
||||
=item B<-compat>
|
||||
|
||||
Generate links for both old-style (MD5) and new-style (SHA1) hashing.
|
||||
This allows releases before 1.0.0 to use these links along-side newer
|
||||
releases.
|
||||
|
||||
=item B<-v>
|
||||
|
||||
Print messages about old links removed and new links created.
|
||||
@@ -130,7 +136,7 @@ L<x509(1)>.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2015-2018 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
|
||||
|
||||
@@ -281,8 +281,9 @@ be used as a test that session caching is working.
|
||||
|
||||
=item B<-showcerts>
|
||||
|
||||
display the whole server certificate chain: normally only the server
|
||||
certificate itself is displayed.
|
||||
Displays the server certificate list as sent by the server: it only consists of
|
||||
certificates the server has sent (in the order the server has sent them). It is
|
||||
B<not> a verified chain.
|
||||
|
||||
=item B<-prexit>
|
||||
|
||||
@@ -579,7 +580,8 @@ a client certificate. Therefor merely including a client certificate
|
||||
on the command line is no guarantee that the certificate works.
|
||||
|
||||
If there are problems verifying a server certificate then the
|
||||
B<-showcerts> option can be used to show the whole chain.
|
||||
B<-showcerts> option can be used to show all the certificates sent by the
|
||||
server.
|
||||
|
||||
The B<s_client> utility is a test tool and is designed to continue the
|
||||
handshake after any certificate verification errors. As a result it will
|
||||
@@ -609,7 +611,7 @@ The -no_alt_chains options was first added to OpenSSL 1.1.0.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2000-2018 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
|
||||
|
||||
@@ -11,10 +11,10 @@ ASN1_INTEGER_get_int64, ASN1_INTEGER_get, ASN1_INTEGER_set_int64, ASN1_INTEGER_s
|
||||
#include <openssl/asn1.h>
|
||||
|
||||
int ASN1_INTEGER_get_int64(int64_t *pr, const ASN1_INTEGER *a);
|
||||
int ASN1_INTEGER_get(const ASN1_INTEGER *a, long v);
|
||||
long ASN1_INTEGER_get(const ASN1_INTEGER *a);
|
||||
|
||||
int ASN1_INTEGER_set_int64(ASN1_INTEGER *a, int64_t r);
|
||||
long ASN1_INTEGER_set(const ASN1_INTEGER *a);
|
||||
int ASN1_INTEGER_set(const ASN1_INTEGER *a, long v);
|
||||
|
||||
int ASN1_INTEGER_get_uint64(uint64_t *pr, const ASN1_INTEGER *a);
|
||||
int ASN1_INTEGER_set_uint64(ASN1_INTEGER *a, uint64_t r);
|
||||
@@ -123,7 +123,7 @@ were added to OpenSSL 1.1.0.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2015-2018 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
|
||||
|
||||
@@ -17,26 +17,26 @@ BIO_meth_set_callback_ctrl - Routines to build up BIO methods
|
||||
int BIO_get_new_index(void);
|
||||
BIO_METHOD *BIO_meth_new(int type, const char *name);
|
||||
void BIO_meth_free(BIO_METHOD *biom);
|
||||
int (*BIO_meth_get_write(BIO_METHOD *biom)) (BIO *, const char *, int);
|
||||
int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int);
|
||||
int BIO_meth_set_write(BIO_METHOD *biom,
|
||||
int (*write) (BIO *, const char *, int));
|
||||
int (*BIO_meth_get_read(BIO_METHOD *biom)) (BIO *, char *, int);
|
||||
int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int);
|
||||
int BIO_meth_set_read(BIO_METHOD *biom,
|
||||
int (*read) (BIO *, char *, int));
|
||||
int (*BIO_meth_get_puts(BIO_METHOD *biom)) (BIO *, const char *);
|
||||
int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *);
|
||||
int BIO_meth_set_puts(BIO_METHOD *biom,
|
||||
int (*puts) (BIO *, const char *));
|
||||
int (*BIO_meth_get_gets(BIO_METHOD *biom)) (BIO *, char *, int);
|
||||
int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int);
|
||||
int BIO_meth_set_gets(BIO_METHOD *biom,
|
||||
int (*gets) (BIO *, char *, int));
|
||||
long (*BIO_meth_get_ctrl(BIO_METHOD *biom)) (BIO *, int, long, void *);
|
||||
long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *);
|
||||
int BIO_meth_set_ctrl(BIO_METHOD *biom,
|
||||
long (*ctrl) (BIO *, int, long, void *));
|
||||
int (*BIO_meth_get_create(BIO_METHOD *bion)) (BIO *);
|
||||
int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *);
|
||||
int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *));
|
||||
int (*BIO_meth_get_destroy(BIO_METHOD *biom)) (BIO *);
|
||||
int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *);
|
||||
int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *));
|
||||
long (*BIO_meth_get_callback_ctrl(BIO_METHOD *biom))
|
||||
long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom))
|
||||
(BIO *, int, BIO_info_cb *);
|
||||
int BIO_meth_set_callback_ctrl(BIO_METHOD *biom,
|
||||
long (*callback_ctrl) (BIO *, int,
|
||||
@@ -121,7 +121,7 @@ The functions described here were added in OpenSSL 1.1.0.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2016-2018 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
|
||||
|
||||
@@ -92,7 +92,9 @@ BN_exp() raises I<a> to the I<p>-th power and places the result in I<r>
|
||||
BN_mul().
|
||||
|
||||
BN_mod_exp() computes I<a> to the I<p>-th power modulo I<m> (C<r=a^p %
|
||||
m>). This function uses less time and space than BN_exp().
|
||||
m>). This function uses less time and space than BN_exp(). Do not call this
|
||||
function when B<m> is even and any of the parameters have the
|
||||
B<BN_FLG_CONSTTIME> flag set.
|
||||
|
||||
BN_gcd() computes the greatest common divisor of I<a> and I<b> and
|
||||
places the result in I<r>. I<r> may be the same B<BIGNUM> as I<a> or
|
||||
@@ -117,7 +119,7 @@ L<BN_add_word(3)>, L<BN_set_bit(3)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2000-2018 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
|
||||
|
||||
@@ -55,8 +55,8 @@ freed later using OPENSSL_free().
|
||||
BN_hex2bn() takes as many characters as possible from the string B<str>,
|
||||
including the leading character '-' which means negative, to form a valid
|
||||
hexadecimal number representation and converts them to a B<BIGNUM> and
|
||||
stores it in **B<bn>. If *B<bn> is NULL, a new B<BIGNUM> is created. If
|
||||
B<bn> is NULL, it only computes the length of valid representation.
|
||||
stores it in **B<a>. If *B<a> is NULL, a new B<BIGNUM> is created. If
|
||||
B<a> is NULL, it only computes the length of valid representation.
|
||||
A "negative zero" is converted to zero.
|
||||
BN_dec2bn() is the same using the decimal system.
|
||||
|
||||
@@ -106,7 +106,7 @@ L<BN_num_bytes(3)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2000-2018 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
|
||||
|
||||
@@ -100,7 +100,17 @@ If B<do_trial_division == 0>, this test is skipped.
|
||||
Both BN_is_prime_ex() and BN_is_prime_fasttest_ex() perform a Miller-Rabin
|
||||
probabilistic primality test with B<nchecks> iterations. If
|
||||
B<nchecks == BN_prime_checks>, a number of iterations is used that
|
||||
yields a false positive rate of at most 2^-80 for random input.
|
||||
yields a false positive rate of at most 2^-64 for random input.
|
||||
The error rate depends on the size of the prime and goes down for bigger primes.
|
||||
The rate is 2^-80 starting at 308 bits, 2^-112 at 852 bits, 2^-128 at 1080 bits,
|
||||
2^-192 at 3747 bits and 2^-256 at 6394 bits.
|
||||
|
||||
When the source of the prime is not random or not trusted, the number
|
||||
of checks needs to be much higher to reach the same level of assurance:
|
||||
It should equal half of the targeted security level in bits (rounded up to the
|
||||
next integer if necessary).
|
||||
For instance, to reach the 128 bit security level, B<nchecks> should be set to
|
||||
64.
|
||||
|
||||
If B<cb> is not B<NULL>, B<BN_GENCB_call(cb, 1, j)> is called
|
||||
after the j-th iteration (j = 0, 1, ...). B<ctx> is a
|
||||
@@ -184,7 +194,7 @@ and BN_GENCB_get_arg() were added in OpenSSL 1.1.0
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2000-2018 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
|
||||
|
||||
@@ -18,9 +18,8 @@ B<cipher> is the symmetric cipher to use. B<flags> is an optional set of flags.
|
||||
|
||||
=head1 NOTES
|
||||
|
||||
Only certificates carrying RSA keys are supported so the recipient certificates
|
||||
supplied to this function must all contain RSA public keys, though they do not
|
||||
have to be signed using the RSA algorithm.
|
||||
Only certificates carrying RSA, Diffie-Hellman or EC keys are supported by this
|
||||
function.
|
||||
|
||||
EVP_des_ede3_cbc() (triple DES) is the algorithm of choice for S/MIME use
|
||||
because most clients will support it.
|
||||
@@ -94,7 +93,7 @@ The B<CMS_STREAM> flag was first supported in OpenSSL 1.0.0.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2008-2018 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
|
||||
|
||||
@@ -54,7 +54,7 @@ CMS_SignerInfo_set1_signer_cert().
|
||||
|
||||
Once all signer certificates have been set CMS_verify() can be used.
|
||||
|
||||
Although CMS_get0_SignerInfos() can return NULL is an error occur B<or> if
|
||||
Although CMS_get0_SignerInfos() can return NULL if an error occurs B<or> if
|
||||
there are no signers this is not a problem in practice because the only
|
||||
error which can occur is if the B<cms> structure is not of type signedData
|
||||
due to application error.
|
||||
@@ -79,7 +79,7 @@ L<ERR_get_error(3)>, L<CMS_verify(3)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2008-2018 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
|
||||
|
||||
@@ -48,7 +48,7 @@ CMS_verify().
|
||||
CMS_ReceiptRequest_create0() returns a signed receipt request structure or
|
||||
NULL if an error occurred.
|
||||
|
||||
CMS_add1_ReceiptRequest() returns 1 for success or 0 is an error occurred.
|
||||
CMS_add1_ReceiptRequest() returns 1 for success or 0 if an error occurred.
|
||||
|
||||
CMS_get1_ReceiptRequest() returns 1 is a signed receipt request is found and
|
||||
decoded. It returns 0 if a signed receipt request is not present and -1 if
|
||||
@@ -62,7 +62,7 @@ L<CMS_verify_receipt(3)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2008-2018 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
|
||||
|
||||
@@ -19,7 +19,7 @@ DH_meth_set_generate_params - Routines to build up DH methods
|
||||
DH_METHOD *DH_meth_dup(const DH_METHOD *dhm);
|
||||
const char *DH_meth_get0_name(const DH_METHOD *dhm);
|
||||
int DH_meth_set1_name(DH_METHOD *dhm, const char *name);
|
||||
int DH_meth_get_flags(DH_METHOD *dhm);
|
||||
int DH_meth_get_flags(const DH_METHOD *dhm);
|
||||
int DH_meth_set_flags(DH_METHOD *dhm, int flags);
|
||||
void *DH_meth_get0_app_data(const DH_METHOD *dhm);
|
||||
int DH_meth_set0_app_data(DH_METHOD *dhm, void *app_data);
|
||||
@@ -146,7 +146,7 @@ The functions described here were added in OpenSSL 1.1.0.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2016-2018 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
|
||||
|
||||
@@ -21,7 +21,7 @@ DSA_meth_set_keygen - Routines to build up DSA methods
|
||||
DSA_METHOD *DSA_meth_dup(const DSA_METHOD *meth);
|
||||
const char *DSA_meth_get0_name(const DSA_METHOD *dsam);
|
||||
int DSA_meth_set1_name(DSA_METHOD *dsam, const char *name);
|
||||
int DSA_meth_get_flags(DSA_METHOD *dsam);
|
||||
int DSA_meth_get_flags(const DSA_METHOD *dsam);
|
||||
int DSA_meth_set_flags(DSA_METHOD *dsam, int flags);
|
||||
void *DSA_meth_get0_app_data(const DSA_METHOD *dsam);
|
||||
int DSA_meth_set0_app_data(DSA_METHOD *dsam, void *app_data);
|
||||
@@ -183,7 +183,7 @@ The functions described here were added in OpenSSL 1.1.0.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2016-2018 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
|
||||
|
||||
@@ -24,13 +24,12 @@ digest B<dgst> using the private key B<dsa> and places its ASN.1 DER
|
||||
encoding at B<sigret>. The length of the signature is places in
|
||||
*B<siglen>. B<sigret> must point to DSA_size(B<dsa>) bytes of memory.
|
||||
|
||||
DSA_sign_setup() may be used to precompute part of the signing
|
||||
operation in case signature generation is time-critical. It expects
|
||||
B<dsa> to contain DSA parameters. It places the precomputed values
|
||||
in newly allocated B<BIGNUM>s at *B<kinvp> and *B<rp>, after freeing
|
||||
the old ones unless *B<kinvp> and *B<rp> are NULL. These values may
|
||||
be passed to DSA_sign() in B<dsa-E<gt>kinv> and B<dsa-E<gt>r>.
|
||||
B<ctx> is a pre-allocated B<BN_CTX> or NULL.
|
||||
DSA_sign_setup() is defined only for backward binary compatibility and
|
||||
should not be used.
|
||||
Since OpenSSL 1.1.0 the DSA type is opaque and the output of
|
||||
DSA_sign_setup() cannot be used anyway: calling this function will only
|
||||
cause overhead, and does not affect the actual signature
|
||||
(pre-)computation.
|
||||
|
||||
DSA_verify() verifies that the signature B<sigbuf> of size B<siglen>
|
||||
matches a given message digest B<dgst> of size B<len>.
|
||||
@@ -60,7 +59,7 @@ L<DSA_do_sign(3)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2000-2018 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
|
||||
|
||||
@@ -114,6 +114,8 @@ returned as a newly allocated B<ECDSA_SIG> structure (or NULL on error).
|
||||
|
||||
=head1 RETURN VALUES
|
||||
|
||||
ECDSA_SIG_new() returns NULL if the allocation fails.
|
||||
|
||||
ECDSA_SIG_set0() returns 1 on success or 0 on failure.
|
||||
|
||||
ECDSA_size() returns the maximum length signature or 0 on error.
|
||||
@@ -197,7 +199,7 @@ L<EVP_DigestVerifyInit(3)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2004-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2004-2018 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
|
||||
|
||||
@@ -3,11 +3,12 @@
|
||||
=head1 NAME
|
||||
|
||||
EVP_MD_CTX_new, EVP_MD_CTX_reset, EVP_MD_CTX_free, EVP_MD_CTX_copy_ex,
|
||||
EVP_MD_CTX_set_flags, EVP_MD_CTX_clear_flags, EVP_MD_CTX_test_flags,
|
||||
EVP_DigestInit_ex, EVP_DigestUpdate, EVP_DigestFinal_ex,
|
||||
EVP_DigestInit, 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_md2, EVP_md5, EVP_sha1,
|
||||
EVP_sha224, EVP_sha256, EVP_sha384, EVP_sha512, EVP_mdc2,
|
||||
EVP_MD_CTX_block_size, EVP_MD_CTX_type, EVP_MD_CTX_md_data, EVP_md_null, EVP_md2,
|
||||
EVP_md5, EVP_sha1, EVP_sha224, EVP_sha256, EVP_sha384, EVP_sha512, EVP_mdc2,
|
||||
EVP_ripemd160, EVP_blake2b512, EVP_blake2s256, EVP_get_digestbyname,
|
||||
EVP_get_digestbynid, EVP_get_digestbyobj - EVP digest routines
|
||||
|
||||
@@ -18,6 +19,9 @@ EVP_get_digestbynid, EVP_get_digestbyobj - EVP digest routines
|
||||
EVP_MD_CTX *EVP_MD_CTX_new(void);
|
||||
int EVP_MD_CTX_reset(EVP_MD_CTX *ctx);
|
||||
void EVP_MD_CTX_free(EVP_MD_CTX *ctx);
|
||||
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 +45,7 @@ EVP_get_digestbynid, 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);
|
||||
const EVP_MD *EVP_md2(void);
|
||||
@@ -73,6 +78,9 @@ to reuse an already existing context.
|
||||
EVP_MD_CTX_free() cleans up digest context B<ctx> and frees up the
|
||||
space allocated to it.
|
||||
|
||||
EVP_MD_CTX_set_flags(), EVP_MD_CTX_clear_flags() and EVP_MD_CTX_test_flags()
|
||||
sets, clears and tests B<ctx> flags. See L</FLAGS> below for more information.
|
||||
|
||||
EVP_DigestInit_ex() sets up digest context B<ctx> to use a digest
|
||||
B<type> from ENGINE B<impl>. B<ctx> must be initialized before calling this
|
||||
function. B<type> will typically be supplied by a function such as EVP_sha1().
|
||||
@@ -117,6 +125,11 @@ representing the given message digest when passed an B<EVP_MD> structure.
|
||||
For example EVP_MD_type(EVP_sha1()) returns B<NID_sha1>. This function is
|
||||
normally used when setting ASN1 OIDs.
|
||||
|
||||
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().
|
||||
|
||||
EVP_MD_CTX_md() returns the B<EVP_MD> structure corresponding to the passed
|
||||
B<EVP_MD_CTX>.
|
||||
|
||||
@@ -139,6 +152,38 @@ EVP_get_digestbyname(), EVP_get_digestbynid() and EVP_get_digestbyobj()
|
||||
return an B<EVP_MD> structure when passed a digest name, a digest NID or
|
||||
an ASN1_OBJECT structure respectively.
|
||||
|
||||
=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
|
||||
|
||||
EVP_DigestInit_ex(), EVP_DigestUpdate() and EVP_DigestFinal_ex() return 1 for
|
||||
@@ -249,7 +294,7 @@ was removed in OpenSSL 1.1.0
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2000-2018 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
|
||||
|
||||
@@ -21,7 +21,48 @@ EVP_DigestSignInit() sets up signing context B<ctx> to use digest B<type> from
|
||||
ENGINE B<impl> and private key B<pkey>. B<ctx> must be created with
|
||||
EVP_MD_CTX_new() before calling this function. If B<pctx> is not NULL the
|
||||
EVP_PKEY_CTX of the signing operation will be written to B<*pctx>: this can
|
||||
be used to set alternative signing options.
|
||||
be used to set alternative signing options. The digest B<type> may be NULL if
|
||||
the signing algorithm supports it.
|
||||
|
||||
Only EVP_PKEY types that support signing can be used with these functions. This
|
||||
includes MAC algorithms where the MAC generation is considered as a form of
|
||||
"signing." Built-in EVP_PKEY types supported by these functions are CMAC, DSA,
|
||||
ECDSA, HMAC and RSA.
|
||||
|
||||
Not all digests can be used for all key types. The following combinations apply.
|
||||
|
||||
=over 4
|
||||
|
||||
=item DSA
|
||||
|
||||
Supports SHA1, SHA224, SHA256, SHA384 and SHA512
|
||||
|
||||
=item ECDSA
|
||||
|
||||
Supports SHA1, SHA224, SHA256, SHA384 and SHA512
|
||||
|
||||
=item RSA with no padding
|
||||
|
||||
Supports no digests (the digest B<type> must be NULL)
|
||||
|
||||
=item RSA with X931 padding
|
||||
|
||||
Supports SHA1, SHA256, SHA384 and SHA512
|
||||
|
||||
=item All other RSA padding types
|
||||
|
||||
Support SHA1, SHA224, SHA256, SHA384, SHA512, MD5, MD5_SHA1, MD2, MD4, MDC2,
|
||||
RIPEMD160
|
||||
|
||||
=item HMAC
|
||||
|
||||
Supports any digest
|
||||
|
||||
=item CMAC
|
||||
|
||||
Will ignore any digest provided.
|
||||
|
||||
=back
|
||||
|
||||
EVP_DigestSignUpdate() hashes B<cnt> bytes of data at B<d> into the
|
||||
signature context B<ctx>. This function can be called several times on the
|
||||
@@ -86,7 +127,7 @@ were first added to OpenSSL 1.0.0.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2006-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2006-2018 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
|
||||
|
||||
@@ -59,7 +59,7 @@ All these functions are implemented as macros.
|
||||
|
||||
A context for HKDF can be obtained by calling:
|
||||
|
||||
EVP_PKEY_CTX *pctx = EVP_PKEY_new_id(EVP_PKEY_HKDF, NULL);
|
||||
EVP_PKEY_CTX *pctx = EVP_PKEY_CTX_new_id(EVP_PKEY_HKDF, NULL);
|
||||
|
||||
The digest, key, salt and info values must be set before a key is derived or
|
||||
an error occurs.
|
||||
@@ -118,7 +118,7 @@ L<EVP_PKEY_derive(3)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2016-2018 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
|
||||
|
||||
@@ -50,7 +50,7 @@ All these functions are implemented as macros.
|
||||
|
||||
A context for the TLS PRF can be obtained by calling:
|
||||
|
||||
EVP_PKEY_CTX *pctx = EVP_PKEY_new_id(EVP_PKEY_TLS1_PRF, NULL);
|
||||
EVP_PKEY_CTX *pctx = EVP_PKEY_CTX_new_id(EVP_PKEY_TLS1_PRF, NULL);
|
||||
|
||||
The digest, secret value and seed must be set before a key is derived or an
|
||||
error occurs.
|
||||
@@ -98,7 +98,7 @@ L<EVP_PKEY_derive(3)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2016-2018 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
|
||||
|
||||
@@ -54,7 +54,7 @@ constants.
|
||||
|
||||
OBJ_nid2obj(), OBJ_nid2ln() and OBJ_nid2sn() convert the NID B<n> to
|
||||
an ASN1_OBJECT structure, its long name and its short name respectively,
|
||||
or B<NULL> is an error occurred.
|
||||
or B<NULL> if an error occurred.
|
||||
|
||||
OBJ_obj2nid(), OBJ_ln2nid(), OBJ_sn2nid() return the corresponding NID
|
||||
for the object B<o>, the long name <ln> or the short name <sn> respectively
|
||||
@@ -188,7 +188,7 @@ OBJ_cleanup() was deprecated in OpenSSL 1.1.0.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2002-2018 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
|
||||
|
||||
@@ -7,7 +7,8 @@ OCSP_resp_get0_signer,
|
||||
OCSP_resp_get0_id,
|
||||
OCSP_resp_get0_produced_at,
|
||||
OCSP_resp_find_status, OCSP_resp_count, OCSP_resp_get0, OCSP_resp_find,
|
||||
OCSP_single_get0_status, OCSP_check_validity
|
||||
OCSP_single_get0_status, OCSP_check_validity,
|
||||
OCSP_basic_verify
|
||||
- OCSP response utility functions
|
||||
|
||||
=head1 SYNOPSIS
|
||||
@@ -44,6 +45,9 @@ OCSP_single_get0_status, OCSP_check_validity
|
||||
ASN1_GENERALIZEDTIME *nextupd,
|
||||
long sec, long maxsec);
|
||||
|
||||
int OCSP_basic_verify(OCSP_BASICRESP *bs, STACK_OF(X509) *certs,
|
||||
X509_STORE *st, unsigned long flags);
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
OCSP_resp_find_status() searches B<bs> for an OCSP response for B<id>. If it is
|
||||
@@ -93,6 +97,27 @@ OCSP_single_get0_status(). If B<sec> is non-zero it indicates how many seconds
|
||||
leeway should be allowed in the check. If B<maxsec> is positive it indicates
|
||||
the maximum age of B<thisupd> in seconds.
|
||||
|
||||
OCSP_basic_verify() checks that the basic response message B<bs> is correctly
|
||||
signed and that the signer certificate can be validated. It takes B<st> as
|
||||
the trusted store and B<certs> as a set of untrusted intermediate certificates.
|
||||
The function first tries to find the signer certificate of the response
|
||||
in <certs>. It also searches the certificates the responder may have included
|
||||
in B<bs> unless the B<flags> contain B<OCSP_NOINTERN>.
|
||||
It fails if the signer certificate cannot be found.
|
||||
Next, the function checks the signature of B<bs> and fails on error
|
||||
unless the B<flags> contain B<OCSP_NOSIGS>. Then the function already returns
|
||||
success if the B<flags> contain B<OCSP_NOVERIFY> or if the signer certificate
|
||||
was found in B<certs> and the B<flags> contain B<OCSP_TRUSTOTHER>.
|
||||
Otherwise the function continues by validating the signer certificate.
|
||||
To this end, all certificates in B<cert> and in B<bs> are considered as
|
||||
untrusted certificates for the construction of the validation path for the
|
||||
signer certificate unless the B<OCSP_NOCHAIN> flag is set. After successful path
|
||||
validation the function returns success if the B<OCSP_NOCHECKS> flag is set.
|
||||
Otherwise it verifies that the signer certificate meets the OCSP issuer
|
||||
criteria including potential delegation. If this does not succeed and the
|
||||
B<flags> do not contain B<OCSP_NOEXPLICIT> the function checks for explicit
|
||||
trust for OCSP signing in the root CA certificate.
|
||||
|
||||
=head1 RETURN VALUES
|
||||
|
||||
OCSP_resp_find_status() returns 1 if B<id> is found in B<bs> and 0 otherwise.
|
||||
@@ -112,6 +137,9 @@ occurred.
|
||||
OCSP_resp_get0_signer() returns 1 if the signing certificate was located,
|
||||
or 0 on error.
|
||||
|
||||
OCSP_basic_verify() returns 1 on success, 0 on error, or -1 on fatal error such
|
||||
as malloc failure.
|
||||
|
||||
=head1 NOTES
|
||||
|
||||
Applications will typically call OCSP_resp_find_status() using the certificate
|
||||
@@ -142,7 +170,7 @@ L<OCSP_sendreq_new(3)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2015-2018 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
|
||||
|
||||
@@ -47,11 +47,6 @@ number was therefore 0x0090581f.
|
||||
|
||||
OpenSSL_version_num() returns the version number.
|
||||
|
||||
The macro OPENSSL_VERSION_AT_LEAST(major,minor) can be used at compile
|
||||
time test if the current version is at least as new as the version provided.
|
||||
The arguments major, minor and fix correspond to the version information
|
||||
as given above.
|
||||
|
||||
OpenSSL_version() returns different strings depending on B<t>:
|
||||
|
||||
=over 4
|
||||
|
||||
@@ -190,10 +190,10 @@ resources should be freed at an earlier time, or under the circumstances
|
||||
described in the NOTES section below.
|
||||
|
||||
The B<OPENSSL_INIT_LOAD_CONFIG> flag will load a default configuration
|
||||
file. To specify a different file, an B<OPENSSL_INIT_SETTINGS> must
|
||||
be created and used. The routines
|
||||
OPENSSL_init_new() and OPENSSL_INIT_set_config_appname() can be used to
|
||||
allocate the object and set the application name, and then the
|
||||
file. For optional configuration file settings, an B<OPENSSL_INIT_SETTINGS>
|
||||
must be created and used.
|
||||
The routines OPENSSL_init_new() and OPENSSL_INIT_set_config_appname() can
|
||||
be used to allocate the object and set the application name, and then the
|
||||
object can be released with OPENSSL_INIT_free() when done.
|
||||
|
||||
=head1 NOTES
|
||||
@@ -235,7 +235,7 @@ and OPENSSL_INIT_free() functions were added in OpenSSL 1.1.0.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2016-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2016-2018 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
|
||||
|
||||
@@ -68,8 +68,8 @@ CRYPTO_mem_leaks, CRYPTO_mem_leaks_fp - Memory allocation functions
|
||||
int CRYPTO_mem_debug_push(const char *info, const char *file, int line);
|
||||
int CRYPTO_mem_debug_pop(void);
|
||||
|
||||
void CRYPTO_mem_leaks(BIO *b);
|
||||
void CRYPTO_mem_leaks_fp(FILE *fp);
|
||||
int CRYPTO_mem_leaks(BIO *b);
|
||||
int CRYPTO_mem_leaks_fp(FILE *fp);
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
@@ -197,7 +197,7 @@ only, say, the malloc() implementation is outright dangerous.>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2016-2018 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
|
||||
|
||||
@@ -294,7 +294,7 @@ for it twice) if B<rwflag> is 1. The B<u> parameter has the same
|
||||
value as the B<u> parameter passed to the PEM routine. It allows
|
||||
arbitrary data to be passed to the callback by the application
|
||||
(for example a window handle in a GUI application). The callback
|
||||
B<must> return the number of characters in the passphrase or 0 if
|
||||
B<must> return the number of characters in the passphrase or -1 if
|
||||
an error occurred.
|
||||
|
||||
=head1 EXAMPLES
|
||||
@@ -348,17 +348,16 @@ Skeleton pass phrase callback:
|
||||
|
||||
int pass_cb(char *buf, int size, int rwflag, void *u)
|
||||
{
|
||||
int len;
|
||||
char *tmp;
|
||||
|
||||
/* We'd probably do something else if 'rwflag' is 1 */
|
||||
printf("Enter pass phrase for \"%s\"\n", (char *)u);
|
||||
|
||||
/* get pass phrase, length 'len' into 'tmp' */
|
||||
tmp = "hello";
|
||||
len = strlen(tmp);
|
||||
if (len <= 0)
|
||||
return 0;
|
||||
char *tmp = "hello";
|
||||
if (tmp == NULL) /* An error occurred */
|
||||
return -1;
|
||||
|
||||
size_t len = strlen(tmp);
|
||||
|
||||
if (len > size)
|
||||
len = size;
|
||||
@@ -471,7 +470,7 @@ L<EVP_EncryptInit(3)>, L<EVP_BytesToKey(3)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2001-2018 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
|
||||
|
||||
@@ -24,7 +24,7 @@ RSA_meth_set_verify, RSA_meth_get_keygen, RSA_meth_set_keygen
|
||||
RSA_METHOD *RSA_meth_dup(const RSA_METHOD *meth);
|
||||
const char *RSA_meth_get0_name(const RSA_METHOD *meth);
|
||||
int RSA_meth_set1_name(RSA_METHOD *meth, const char *name);
|
||||
int RSA_meth_get_flags(RSA_METHOD *meth);
|
||||
int RSA_meth_get_flags(const RSA_METHOD *meth);
|
||||
int RSA_meth_set_flags(RSA_METHOD *meth, int flags);
|
||||
void *RSA_meth_get0_app_data(const RSA_METHOD *meth);
|
||||
int RSA_meth_set0_app_data(RSA_METHOD *meth, void *app_data);
|
||||
@@ -225,7 +225,7 @@ The functions described here were added in OpenSSL 1.1.0.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2016-2018 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
|
||||
|
||||
@@ -57,7 +57,7 @@ streaming single pass option should be available.
|
||||
=head1 RETURN VALUES
|
||||
|
||||
SMIME_read_PKCS7() returns a valid B<PKCS7> structure or B<NULL>
|
||||
is an error occurred. The error can be obtained from ERR_get_error(3).
|
||||
if an error occurred. The error can be obtained from ERR_get_error(3).
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
@@ -68,7 +68,7 @@ L<PKCS7_decrypt(3)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2002-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2002-2018 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
|
||||
|
||||
@@ -117,10 +117,11 @@ L<PEM_read_PrivateKey(3)>,
|
||||
L<X509_STORE_load_locations(3)>,
|
||||
L<X509_store_add_lookup(3)>,
|
||||
L<SSL_CTX_load_verify_locations(3)>,
|
||||
L<X509_LOOKUP_meth_new(3)>,
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2015-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2015-2018 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
|
||||
|
||||
189
doc/crypto/X509_LOOKUP_meth_new.pod
Normal file
189
doc/crypto/X509_LOOKUP_meth_new.pod
Normal file
@@ -0,0 +1,189 @@
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
X509_LOOKUP_meth_new, X509_LOOKUP_meth_free, X509_LOOKUP_meth_set_new_item,
|
||||
X509_LOOKUP_meth_get_new_item, X509_LOOKUP_meth_set_free,
|
||||
X509_LOOKUP_meth_get_free, X509_LOOKUP_meth_set_init,
|
||||
X509_LOOKUP_meth_get_init, X509_LOOKUP_meth_set_shutdown,
|
||||
X509_LOOKUP_meth_get_shutdown,
|
||||
X509_LOOKUP_ctrl_fn, X509_LOOKUP_meth_set_ctrl, X509_LOOKUP_meth_get_ctrl,
|
||||
X509_LOOKUP_get_by_subject_fn, X509_LOOKUP_meth_set_get_by_subject,
|
||||
X509_LOOKUP_meth_get_get_by_subject,
|
||||
X509_LOOKUP_get_by_issuer_serial_fn, X509_LOOKUP_meth_set_get_by_issuer_serial,
|
||||
X509_LOOKUP_meth_get_get_by_issuer_serial,
|
||||
X509_LOOKUP_get_by_fingerprint_fn, X509_LOOKUP_meth_set_get_by_fingerprint,
|
||||
X509_LOOKUP_meth_get_get_by_fingerprint,
|
||||
X509_LOOKUP_get_by_alias_fn, X509_LOOKUP_meth_set_get_by_alias,
|
||||
X509_LOOKUP_meth_get_get_by_alias,
|
||||
X509_LOOKUP_set_method_data, X509_LOOKUP_get_method_data,
|
||||
X509_LOOKUP_get_store, X509_OBJECT_set1_X509, X509_OBJECT_set1_X509_CRL
|
||||
- Routines to build up X509_LOOKUP methods
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
#include <openssl/x509_vfy.h>
|
||||
|
||||
X509_LOOKUP_METHOD *X509_LOOKUP_meth_new(const char *name);
|
||||
void X509_LOOKUP_meth_free(X509_LOOKUP_METHOD *method);
|
||||
|
||||
int X509_LOOKUP_meth_set_new_item(X509_LOOKUP_METHOD *method,
|
||||
int (*new_item) (X509_LOOKUP *ctx));
|
||||
int (*X509_LOOKUP_meth_get_new_item(const X509_LOOKUP_METHOD* method))
|
||||
(X509_LOOKUP *ctx);
|
||||
|
||||
int X509_LOOKUP_meth_set_free(X509_LOOKUP_METHOD *method,
|
||||
void (*free) (X509_LOOKUP *ctx));
|
||||
void (*X509_LOOKUP_meth_get_free(const X509_LOOKUP_METHOD* method))
|
||||
(X509_LOOKUP *ctx);
|
||||
|
||||
int X509_LOOKUP_meth_set_init(X509_LOOKUP_METHOD *method,
|
||||
int (*init) (X509_LOOKUP *ctx));
|
||||
int (*X509_LOOKUP_meth_get_init(const X509_LOOKUP_METHOD* method))
|
||||
(X509_LOOKUP *ctx);
|
||||
|
||||
int X509_LOOKUP_meth_set_shutdown(X509_LOOKUP_METHOD *method,
|
||||
int (*shutdown) (X509_LOOKUP *ctx));
|
||||
int (*X509_LOOKUP_meth_get_shutdown(const X509_LOOKUP_METHOD* method))
|
||||
(X509_LOOKUP *ctx);
|
||||
|
||||
typedef int (*X509_LOOKUP_ctrl_fn)(X509_LOOKUP *ctx, int cmd, const char *argc,
|
||||
long argl, char **ret);
|
||||
int X509_LOOKUP_meth_set_ctrl(X509_LOOKUP_METHOD *method,
|
||||
X509_LOOKUP_ctrl_fn ctrl_fn);
|
||||
X509_LOOKUP_ctrl_fn X509_LOOKUP_meth_get_ctrl(const X509_LOOKUP_METHOD *method);
|
||||
|
||||
typedef int (*X509_LOOKUP_get_by_subject_fn)(X509_LOOKUP *ctx,
|
||||
X509_LOOKUP_TYPE type,
|
||||
X509_NAME *name,
|
||||
X509_OBJECT *ret);
|
||||
int X509_LOOKUP_meth_set_get_by_subject(X509_LOOKUP_METHOD *method,
|
||||
X509_LOOKUP_get_by_subject_fn fn);
|
||||
X509_LOOKUP_get_by_subject_fn X509_LOOKUP_meth_get_get_by_subject(
|
||||
const X509_LOOKUP_METHOD *method);
|
||||
|
||||
typedef int (*X509_LOOKUP_get_by_issuer_serial_fn)(X509_LOOKUP *ctx,
|
||||
X509_LOOKUP_TYPE type,
|
||||
X509_NAME *name,
|
||||
ASN1_INTEGER *serial,
|
||||
X509_OBJECT *ret);
|
||||
int X509_LOOKUP_meth_set_get_by_issuer_serial(
|
||||
X509_LOOKUP_METHOD *method, X509_LOOKUP_get_by_issuer_serial_fn fn);
|
||||
X509_LOOKUP_get_by_issuer_serial_fn X509_LOOKUP_meth_get_get_by_issuer_serial(
|
||||
const X509_LOOKUP_METHOD *method);
|
||||
|
||||
typedef int (*X509_LOOKUP_get_by_fingerprint_fn)(X509_LOOKUP *ctx,
|
||||
X509_LOOKUP_TYPE type,
|
||||
const unsigned char* bytes,
|
||||
int len,
|
||||
X509_OBJECT *ret);
|
||||
int X509_LOOKUP_meth_set_get_by_fingerprint(X509_LOOKUP_METHOD *method,
|
||||
X509_LOOKUP_get_by_fingerprint_fn fn);
|
||||
X509_LOOKUP_get_by_fingerprint_fn X509_LOOKUP_meth_get_get_by_fingerprint(
|
||||
const X509_LOOKUP_METHOD *method);
|
||||
|
||||
typedef int (*X509_LOOKUP_get_by_alias_fn)(X509_LOOKUP *ctx,
|
||||
X509_LOOKUP_TYPE type,
|
||||
const char *str,
|
||||
int len,
|
||||
X509_OBJECT *ret);
|
||||
int X509_LOOKUP_meth_set_get_by_alias(X509_LOOKUP_METHOD *method,
|
||||
X509_LOOKUP_get_by_alias_fn fn);
|
||||
X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias(
|
||||
const X509_LOOKUP_METHOD *method);
|
||||
|
||||
int X509_LOOKUP_set_method_data(X509_LOOKUP *ctx, void *data);
|
||||
void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx);
|
||||
|
||||
X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx);
|
||||
|
||||
int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj);
|
||||
int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj);
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
The B<X509_LOOKUP_METHOD> type is a structure used for the implementation of new
|
||||
X509_LOOKUP types. It provides a set of functions used by OpenSSL for the
|
||||
implementation of various X509 and X509_CRL lookup capabilities. One instance
|
||||
of an X509_LOOKUP_METHOD can be associated to many instantiations of an
|
||||
B<X509_LOOKUP> structure.
|
||||
|
||||
X509_LOOKUP_meth_new() creates a new B<X509_LOOKUP_METHOD> structure. It should
|
||||
be given a human-readable string containing a brief description of the lookup
|
||||
method.
|
||||
|
||||
X509_LOOKUP_meth_free() destroys a B<X509_LOOKUP_METHOD> structure.
|
||||
|
||||
X509_LOOKUP_get_new_item() and X509_LOOKUP_set_new_item() get and set the
|
||||
function that is called when an B<X509_LOOKUP> object is created with
|
||||
X509_LOOKUP_new(). If an X509_LOOKUP_METHOD requires any per-X509_LOOKUP
|
||||
specific data, the supplied new_item function should allocate this data and
|
||||
invoke X509_LOOKUP_set_method_data().
|
||||
|
||||
X509_LOOKUP_get_free() and X509_LOOKUP_set_free() get and set the function
|
||||
that is used to free any method data that was allocated and set from within
|
||||
new_item function.
|
||||
|
||||
X509_LOOKUP_meth_get_init() and X509_LOOKUP_meth_set_init() get and set the
|
||||
function that is used to initialize the method data that was set with
|
||||
X509_LOOKUP_set_method_data() as part of the new_item routine.
|
||||
|
||||
X509_LOOKUP_meth_get_shutdown() and X509_LOOKUP_meth_set_shutdown() get and set
|
||||
the function that is used to shut down the method data whose state was
|
||||
previously initialized in the init function.
|
||||
|
||||
X509_LOOKUP_meth_get_ctrl() and X509_LOOKUP_meth_set_ctrl() get and set a
|
||||
function to be used to handle arbitrary control commands issued by
|
||||
X509_LOOKUP_ctrl(). The control function is given the X509_LOOKUP
|
||||
B<ctx>, along with the arguments passed by X509_LOOKUP_ctrl. B<cmd> is
|
||||
an arbitrary integer that defines some operation. B<argc> is a pointer
|
||||
to an array of characters. B<argl> is an integer. B<ret>, if set,
|
||||
points to a location where any return data should be written to. How
|
||||
B<argc> and B<argl> are used depends entirely on the control function.
|
||||
|
||||
|
||||
X509_LOOKUP_set_get_by_subject(), X509_LOOKUP_set_get_by_issuer_serial(),
|
||||
X509_LOOKUP_set_get_by_fingerprint(), X509_LOOKUP_set_get_by_alias() set
|
||||
the functions used to retrieve an X509 or X509_CRL object by the object's
|
||||
subject, issuer, fingerprint, and alias respectively. These functions are given
|
||||
the X509_LOOKUP context, the type of the X509_OBJECT being requested, parameters
|
||||
related to the lookup, and an X509_OBJECT that will receive the requested
|
||||
object.
|
||||
|
||||
Implementations should use either X509_OBJECT_set1_X509() or
|
||||
X509_OBJECT_set1_X509_CRL() to set the result. Any method data that was
|
||||
created as a result of the new_item function set by
|
||||
X509_LOOKUP_meth_set_new_item() can be accessed with
|
||||
X509_LOOKUP_get_method_data(). The B<X509_STORE> object that owns the
|
||||
X509_LOOKUP may be accessed with X509_LOOKUP_get_store(). Successful lookups
|
||||
should return 1, and unsuccessful lookups should return 0.
|
||||
|
||||
X509_LOOKUP_get_get_by_subject(), X509_LOOKUP_get_get_by_issuer_serial(),
|
||||
X509_LOOKUP_get_get_by_fingerprint(), X509_LOOKUP_get_get_by_alias() retrieve
|
||||
the function set by the corresponding setter.
|
||||
|
||||
=head1 RETURN VALUES
|
||||
|
||||
The B<X509_LOOKUP_meth_set> functions return 1 on success or 0 on error.
|
||||
|
||||
The B<X509_LOOKUP_meth_get> functions return the corresponding function
|
||||
pointers.
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<X509_STORE_new(3)>, L<SSL_CTX_set_cert_store(3)>
|
||||
|
||||
=head1 HISTORY
|
||||
|
||||
The functions described here were added in OpenSSL 1.1.0i.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2018 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
|
||||
L<https://www.openssl.org/source/license.html>.
|
||||
|
||||
=cut
|
||||
@@ -11,7 +11,9 @@ X509_VERIFY_PARAM_get_auth_level, X509_VERIFY_PARAM_set_time,
|
||||
X509_VERIFY_PARAM_get_time,
|
||||
X509_VERIFY_PARAM_add0_policy, X509_VERIFY_PARAM_set1_policies,
|
||||
X509_VERIFY_PARAM_set1_host, X509_VERIFY_PARAM_add1_host,
|
||||
X509_VERIFY_PARAM_set_hostflags, X509_VERIFY_PARAM_get0_peername,
|
||||
X509_VERIFY_PARAM_set_hostflags,
|
||||
X509_VERIFY_PARAM_get_hostflags,
|
||||
X509_VERIFY_PARAM_get0_peername,
|
||||
X509_VERIFY_PARAM_set1_email, X509_VERIFY_PARAM_set1_ip,
|
||||
X509_VERIFY_PARAM_set1_ip_asc
|
||||
- X509 verification parameters
|
||||
@@ -54,6 +56,7 @@ X509_VERIFY_PARAM_set1_ip_asc
|
||||
const char *name, size_t namelen);
|
||||
void X509_VERIFY_PARAM_set_hostflags(X509_VERIFY_PARAM *param,
|
||||
unsigned int flags);
|
||||
unsigned int X509_VERIFY_PARAM_get_hostflags(const X509_VERIFY_PARAM *param);
|
||||
char *X509_VERIFY_PARAM_get0_peername(X509_VERIFY_PARAM *param);
|
||||
int X509_VERIFY_PARAM_set1_email(X509_VERIFY_PARAM *param,
|
||||
const char *email, size_t emaillen);
|
||||
@@ -130,14 +133,32 @@ B<name> clearing any previously specified host name or names. If
|
||||
B<name> is NULL, or empty the list of hostnames is cleared, and
|
||||
name checks are not performed on the peer certificate. If B<name>
|
||||
is NUL-terminated, B<namelen> may be zero, otherwise B<namelen>
|
||||
must be set to the length of B<name>. When a hostname is specified,
|
||||
must be set to the length of B<name>.
|
||||
|
||||
When a hostname is specified,
|
||||
certificate verification automatically invokes L<X509_check_host(3)>
|
||||
with flags equal to the B<flags> argument given to
|
||||
X509_VERIFY_PARAM_set_hostflags() (default zero). Applications
|
||||
are strongly advised to use this interface in preference to explicitly
|
||||
calling L<X509_check_host(3)>, hostname checks are out of scope
|
||||
calling L<X509_check_host(3)>, hostname checks may be out of scope
|
||||
with the DANE-EE(3) certificate usage, and the internal check will
|
||||
be suppressed as appropriate when DANE support is added to OpenSSL.
|
||||
be suppressed as appropriate when DANE verification is enabled.
|
||||
|
||||
When the subject CommonName will not be ignored, whether as a result of the
|
||||
B<X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT> host flag, or because no DNS subject
|
||||
alternative names are present in the certificate, any DNS name constraints in
|
||||
issuer certificates apply to the subject CommonName as well as the subject
|
||||
alternative name extension.
|
||||
|
||||
When the subject CommonName will be ignored, whether as a result of the
|
||||
B<X509_CHECK_FLAG_NEVER_CHECK_SUBJECT> host flag, or because some DNS subject
|
||||
alternative names are present in the certificate, DNS name constraints in
|
||||
issuer certificates will not be applied to the subject DN.
|
||||
As described in X509_check_host(3) the B<X509_CHECK_FLAG_NEVER_CHECK_SUBJECT>
|
||||
flag takes precendence over the B<X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT> flag.
|
||||
|
||||
X509_VERIFY_PARAM_get_hostflags() returns any host flags previously set via a
|
||||
call to X509_VERIFY_PARAM_set_hostflags().
|
||||
|
||||
X509_VERIFY_PARAM_add1_host() adds B<name> as an additional reference
|
||||
identifier that can match the peer's certificate. Any previous names
|
||||
@@ -186,6 +207,8 @@ failure.
|
||||
|
||||
X509_VERIFY_PARAM_get_flags() returns the current verification flags.
|
||||
|
||||
X509_VERIFY_PARAM_get_hostflags() returns any current host flags.
|
||||
|
||||
X509_VERIFY_PARAM_get_inh_flags() returns the current inheritance flags.
|
||||
|
||||
X509_VERIFY_PARAM_set_time() and X509_VERIFY_PARAM_set_depth() do not return
|
||||
@@ -347,6 +370,8 @@ The B<X509_V_FLAG_NO_ALT_CHAINS> flag was added in OpenSSL 1.1.0
|
||||
The legacy B<X509_V_FLAG_CB_ISSUER_CHECK> flag is deprecated as of
|
||||
OpenSSL 1.1.0, and has no effect.
|
||||
|
||||
X509_VERIFY_PARAM_get_hostflags() was added in OpenSSL 1.1.0i.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2009-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
@@ -93,6 +93,9 @@ consider the subject DN even if the certificate contains no subject alternative
|
||||
names of the right type (DNS name or email address as appropriate); the default
|
||||
is to use the subject DN when no corresponding subject alternative names are
|
||||
present.
|
||||
If both B<X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT> and
|
||||
B<X509_CHECK_FLAG_NEVER_CHECK_SUBJECT> are specified, the latter takes
|
||||
precedence and the subject DN is not checked for matching names.
|
||||
|
||||
If set, B<X509_CHECK_FLAG_NO_WILDCARDS> disables wildcard
|
||||
expansion; this only applies to B<X509_check_host>.
|
||||
@@ -128,9 +131,9 @@ NULs.
|
||||
|
||||
Applications are encouraged to use X509_VERIFY_PARAM_set1_host()
|
||||
rather than explicitly calling L<X509_check_host(3)>. Host name
|
||||
checks are out of scope with the DANE-EE(3) certificate usage,
|
||||
checks may be out of scope with the DANE-EE(3) certificate usage,
|
||||
and the internal checks will be suppressed as appropriate when
|
||||
DANE support is added to OpenSSL.
|
||||
DANE support is enabled.
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
@@ -147,7 +150,7 @@ These functions were added in OpenSSL 1.0.2.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2012-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2012-2018 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
|
||||
|
||||
39
doc/crypto/X509_cmp_time.pod
Normal file
39
doc/crypto/X509_cmp_time.pod
Normal file
@@ -0,0 +1,39 @@
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
X509_cmp_time - X509 time functions
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
X509_cmp_time(const ASN1_TIME *asn1_time, time_t *cmp_time);
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
X509_cmp_time() compares the ASN1_TIME in B<asn1_time> with the time in
|
||||
<cmp_time>.
|
||||
|
||||
B<asn1_time> must satisfy the ASN1_TIME format mandated by RFC 5280, i.e.,
|
||||
its format must be either YYMMDDHHMMSSZ or YYYYMMDDHHMMSSZ.
|
||||
|
||||
If B<cmp_time> is NULL the current time is used.
|
||||
|
||||
=head1 BUGS
|
||||
|
||||
Unlike many standard comparison functions, X509_cmp_time returns 0 on error.
|
||||
|
||||
=head1 RETURN VALUES
|
||||
|
||||
X509_cmp_time() returns -1 if B<asn1_time> is earlier than, or equal to,
|
||||
B<cmp_time>, and 1 otherwise. It returns 0 on error.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2017-2018 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
|
||||
L<https://www.openssl.org/source/license.html>.
|
||||
|
||||
=cut
|
||||
@@ -18,10 +18,7 @@ uid Richard Levitte <richard@opensslfoundation.com>
|
||||
uid Richard Levitte <levitte@openssl.org>
|
||||
uid Richard Levitte <richard@openssl.com>
|
||||
|
||||
pub 4096R/FA40E9E2 2005-03-19
|
||||
Key fingerprint = 6260 5AA4 334A F9F0 DDE5 D349 D357 7507 FA40 E9E2
|
||||
uid Dr Stephen N Henson <steve@openssl.org>
|
||||
|
||||
pub 2048R/0E604491 2013-04-30
|
||||
Key fingerprint = 8657 ABB2 60F0 56B1 E519 0839 D9C4 D26D 0E60 4491
|
||||
uid Matt Caswell <matt@openssl.org>
|
||||
uid Matt Caswell <frodo@baggins.org>
|
||||
|
||||
@@ -54,6 +54,7 @@
|
||||
(arglist-close . c-lineup-arglist) ; From "gnu" style
|
||||
(inline-open . 0) ; From "gnu" style
|
||||
(brace-list-open . +) ; From "gnu" style
|
||||
(inextern-lang . 0) ; Don't indent inside extern block
|
||||
(topmost-intro-cont first c-lineup-topmost-intro-cont
|
||||
c-lineup-gnu-DEFUN-intro-cont) ; From "gnu" style
|
||||
)
|
||||
|
||||
@@ -506,10 +506,6 @@ Set supported curves to P-256, P-384:
|
||||
|
||||
SSL_CONF_cmd(ctx, "Curves", "P-256:P-384");
|
||||
|
||||
Set automatic support for any elliptic curve for key exchange:
|
||||
|
||||
SSL_CONF_cmd(ctx, "ECDHParameters", "Automatic");
|
||||
|
||||
=head1 RETURN VALUES
|
||||
|
||||
SSL_CONF_cmd() returns 1 if the value of B<cmd> is recognised and B<value> is
|
||||
|
||||
@@ -153,6 +153,13 @@ L<SSL_CTX_set_default_passwd_cb(3)>.
|
||||
of view, it however does not make sense as the data in the certificate
|
||||
is considered public anyway.)
|
||||
|
||||
All of the functions to set a new certificate will replace any existing
|
||||
certificate of the same type that has already been set. Similarly all of the
|
||||
functions to set a new private key will replace any private key that has already
|
||||
been set. Applications should call L<SSL_CTX_check_private_key(3)> or
|
||||
L<SSL_check_private_key(3)> as appropriate after loading a new certificate and
|
||||
private key to confirm that the certificate and key match.
|
||||
|
||||
=head1 RETURN VALUES
|
||||
|
||||
On success, the functions return 1.
|
||||
@@ -170,7 +177,7 @@ L<SSL_CTX_add_extra_chain_cert(3)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2000-2018 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
|
||||
|
||||
@@ -2,8 +2,12 @@
|
||||
|
||||
=head1 NAME
|
||||
|
||||
SSL_get1_supported_ciphers, SSL_get_client_ciphers,
|
||||
SSL_get_ciphers, SSL_CTX_get_ciphers, SSL_get_cipher_list
|
||||
SSL_get1_supported_ciphers,
|
||||
SSL_get_client_ciphers,
|
||||
SSL_get_ciphers,
|
||||
SSL_CTX_get_ciphers,
|
||||
SSL_get_cipher_list,
|
||||
SSL_get_shared_ciphers
|
||||
- get list of available SSL_CIPHERs
|
||||
|
||||
=head1 SYNOPSIS
|
||||
@@ -15,6 +19,7 @@ SSL_get_ciphers, SSL_CTX_get_ciphers, SSL_get_cipher_list
|
||||
STACK_OF(SSL_CIPHER) *SSL_get1_supported_ciphers(SSL *s);
|
||||
STACK_OF(SSL_CIPHER) *SSL_get_client_ciphers(const SSL *ssl);
|
||||
const char *SSL_get_cipher_list(const SSL *ssl, int priority);
|
||||
char *SSL_get_shared_ciphers(const SSL *s, char *buf, int size);
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
@@ -25,16 +30,16 @@ is returned.
|
||||
SSL_CTX_get_ciphers() returns the stack of available SSL_CIPHERs for B<ctx>.
|
||||
|
||||
SSL_get1_supported_ciphers() returns the stack of enabled SSL_CIPHERs for
|
||||
B<ssl>, sorted by preference.
|
||||
B<ssl> as would be sent in a ClientHello (that is, sorted by preference).
|
||||
The list depends on settings like the cipher list, the supported protocol
|
||||
versions, the security level, and the enabled signature algorithms.
|
||||
SRP and PSK ciphers are only enabled if the appropriate callbacks or settings
|
||||
have been applied.
|
||||
This is the list that will be sent by the client to the server.
|
||||
The list supported by the server might include more ciphers in case there is a
|
||||
hole in the list of supported protocols.
|
||||
The server will also not use ciphers from this list depending on the
|
||||
configured certificates and DH parameters.
|
||||
The list of ciphers that would be sent in a ClientHello can differ from
|
||||
the list of ciphers that would be acceptable when acting as a server.
|
||||
For example, additional ciphers may be usable by a server if there is
|
||||
a gap in the list of supported protocols, and some ciphers may not be
|
||||
usable by a server if there is not a suitable certificate configured.
|
||||
If B<ssl> is NULL or no ciphers are available, NULL is returned.
|
||||
|
||||
SSL_get_client_ciphers() returns the stack of available SSL_CIPHERs matching the
|
||||
@@ -46,6 +51,19 @@ listed for B<ssl> with B<priority>. If B<ssl> is NULL, no ciphers are
|
||||
available, or there are less ciphers than B<priority> available, NULL
|
||||
is returned.
|
||||
|
||||
SSL_get_shared_ciphers() creates a colon separated and NUL terminated list of
|
||||
SSL_CIPHER names that are available in both the client and the server. B<buf> is
|
||||
the buffer that should be populated with the list of names and B<size> is the
|
||||
size of that buffer. A pointer to B<buf> is returned on success or NULL on
|
||||
error. If the supplied buffer is not large enough to contain the complete list
|
||||
of names then a truncated list of names will be returned. Note that just because
|
||||
a ciphersuite is available (i.e. it is configured in the cipher list) and shared
|
||||
by both the client and the server it does not mean that it is enabled (see the
|
||||
description of SSL_get1_supported_ciphers() above). This function will return
|
||||
available shared ciphersuites whether or not they are enabled. This is a server
|
||||
side function only and must only be called after the completion of the initial
|
||||
handshake.
|
||||
|
||||
=head1 NOTES
|
||||
|
||||
The details of the ciphers obtained by SSL_get_ciphers(), SSL_CTX_get_ciphers()
|
||||
@@ -74,7 +92,7 @@ L<SSL_CIPHER_get_name(3)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2000-2018 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
|
||||
|
||||
@@ -28,6 +28,11 @@ count of the B<SSL_SESSION> is incremented by one.
|
||||
The ssl session contains all information required to re-establish the
|
||||
connection without a new handshake.
|
||||
|
||||
A session will be automatically removed from the session cache and marked as
|
||||
non-resumable if the connection is not closed down cleanly, e.g. if a fatal
|
||||
error occurs on the connection or L<SSL_shutdown(3)> is not called prior to
|
||||
L<SSL_free(3)>.
|
||||
|
||||
SSL_get0_session() returns a pointer to the actual session. As the
|
||||
reference counter is not incremented, the pointer is only valid while
|
||||
the connection is in use. If L<SSL_clear(3)> or
|
||||
@@ -72,7 +77,7 @@ L<SSL_SESSION_free(3)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2000-2018 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
|
||||
|
||||
@@ -15,7 +15,9 @@ SSL_get_version, SSL_is_dtls - get the protocol information of a connection
|
||||
=head1 DESCRIPTION
|
||||
|
||||
SSL_get_version() returns the name of the protocol used for the
|
||||
connection B<ssl>.
|
||||
connection B<ssl>. It should only be called after the initial handshake has been
|
||||
completed. Prior to that the results returned from this function may be
|
||||
unreliable.
|
||||
|
||||
SSL_is_dtls() returns one if the connection is using DTLS, zero if not.
|
||||
|
||||
@@ -43,7 +45,7 @@ The connection uses the TLSv1.2 protocol.
|
||||
|
||||
=item unknown
|
||||
|
||||
This indicates that no version has been set (no connection established).
|
||||
This indicates an unknown protocol version.
|
||||
|
||||
=back
|
||||
|
||||
@@ -57,7 +59,7 @@ SSL_is_dtls() was added in OpenSSL 1.1.0.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2001-2018 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
|
||||
|
||||
@@ -56,7 +56,7 @@ is cleared or freed, or a renegotiation takes place. Applications
|
||||
must not free the return value.
|
||||
|
||||
SSL clients are advised to use these functions in preference to
|
||||
explicitly calling L<X509_check_host(3)>. Hostname checks are out
|
||||
explicitly calling L<X509_check_host(3)>. Hostname checks may be out
|
||||
of scope with the RFC7671 DANE-EE(3) certificate usage, and the
|
||||
internal check will be suppressed as appropriate when DANE is
|
||||
enabled.
|
||||
@@ -111,7 +111,7 @@ These functions were first added to OpenSSL 1.1.0.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2016-2018 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
|
||||
|
||||
@@ -91,12 +91,6 @@ includes both more private SSL headers and headers from the B<crypto> library.
|
||||
Whenever you need hard-core details on the internals of the SSL API, look
|
||||
inside this header file.
|
||||
|
||||
OPENSSL_VERSION_AT_LEAST(major,minor) can be
|
||||
used in C<#if> statements in order to determine which version of the library is
|
||||
being used. This can be used to either enable optional features at compile
|
||||
time, or work around issues with a previous version.
|
||||
See L<OPENSSL_VERSION_NUMBER(3)>.
|
||||
|
||||
=item B<ssl2.h>
|
||||
|
||||
Unused. Present for backwards compatibility only.
|
||||
@@ -574,7 +568,7 @@ fresh handle for each connection.
|
||||
|
||||
=item SSL_SESSION *B<SSL_get_session>(const SSL *ssl);
|
||||
|
||||
=item char *B<SSL_get_shared_ciphers>(const SSL *ssl, char *buf, int len);
|
||||
=item char *B<SSL_get_shared_ciphers>(const SSL *ssl, char *buf, int size);
|
||||
|
||||
=item int B<SSL_get_shutdown>(const SSL *ssl);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user