Raise an error on syscall failure in tls_retry_write_records
[openssl.git] / doc / man3 / EVP_PKEY_copy_parameters.pod
1 =pod
2
3 =head1 NAME
4
5 EVP_PKEY_missing_parameters, EVP_PKEY_copy_parameters, EVP_PKEY_parameters_eq,
6 EVP_PKEY_cmp_parameters, EVP_PKEY_eq,
7 EVP_PKEY_cmp - public key parameter and comparison functions
8
9 =head1 SYNOPSIS
10
11  #include <openssl/evp.h>
12
13  int EVP_PKEY_missing_parameters(const EVP_PKEY *pkey);
14  int EVP_PKEY_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from);
15
16  int EVP_PKEY_parameters_eq(const EVP_PKEY *a, const EVP_PKEY *b);
17  int EVP_PKEY_eq(const EVP_PKEY *a, const EVP_PKEY *b);
18
19 Deprecated since OpenSSL 3.0, can be hidden entirely by defining
20 B<OPENSSL_API_COMPAT> with a suitable version value, see
21 L<openssl_user_macros(7)>:
22
23  int EVP_PKEY_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b);
24  int EVP_PKEY_cmp(const EVP_PKEY *a, const EVP_PKEY *b);
25
26 =head1 DESCRIPTION
27
28 The function EVP_PKEY_missing_parameters() returns 1 if the public key
29 parameters of B<pkey> are missing and 0 if they are present or the algorithm
30 doesn't use parameters.
31
32 The function EVP_PKEY_copy_parameters() copies the parameters from key
33 B<from> to key B<to>. An error is returned if the parameters are missing in
34 B<from> or present in both B<from> and B<to> and mismatch. If the parameters
35 in B<from> and B<to> are both present and match this function has no effect.
36
37 The function EVP_PKEY_parameters_eq() checks the parameters of keys
38 B<a> and B<b> for equality.
39
40 The function EVP_PKEY_eq() checks the public key components and parameters
41 (if present) of keys B<a> and B<b> for equality.
42
43 =head1 NOTES
44
45 The main purpose of the functions EVP_PKEY_missing_parameters() and
46 EVP_PKEY_copy_parameters() is to handle public keys in certificates where the
47 parameters are sometimes omitted from a public key if they are inherited from
48 the CA that signed it.
49
50 Since OpenSSL private keys contain public key components too the function
51 EVP_PKEY_eq() can also be used to determine if a private key matches
52 a public key.
53
54 The deprecated functions EVP_PKEY_cmp() and EVP_PKEY_cmp_parameters() differ in
55 their return values  compared to other _cmp() functions. They are aliases for
56 EVP_PKEY_eq() and EVP_PKEY_parameters_eq().
57
58 =head1 RETURN VALUES
59
60 The function EVP_PKEY_missing_parameters() returns 1 if the public key
61 parameters of B<pkey> are missing and 0 if they are present or the algorithm
62 doesn't use parameters.
63
64 These functions EVP_PKEY_copy_parameters() returns 1 for success and 0 for
65 failure.
66
67 The functions EVP_PKEY_cmp_parameters(), EVP_PKEY_parameters_eq(), 
68 EVP_PKEY_cmp() and EVP_PKEY_eq() return 1 if their
69 inputs match, 0 if they don't match, -1 if the key types are different and
70 -2 if the operation is not supported.
71
72 =head1 SEE ALSO
73
74 L<EVP_PKEY_CTX_new(3)>,
75 L<EVP_PKEY_keygen(3)>
76
77 =head1 HISTORY
78
79 The EVP_PKEY_cmp() and EVP_PKEY_cmp_parameters() functions were deprecated in
80 OpenSSL 3.0.
81
82 The EVP_PKEY_eq() and EVP_PKEY_parameters_eq() were added in OpenSSL 3.0 to
83 replace EVP_PKEY_cmp() and EVP_PKEY_cmp_parameters().
84
85 =head1 COPYRIGHT
86
87 Copyright 2006-2021 The OpenSSL Project Authors. All Rights Reserved.
88
89 Licensed under the Apache License 2.0 (the "License").  You may not use
90 this file except in compliance with the License.  You can obtain a copy
91 in the file LICENSE in the source distribution or at
92 L<https://www.openssl.org/source/license.html>.
93
94 =cut