Rename OSSL_SERIALIZER / OSSL_DESERIALIZER to OSSL_ENCODE / OSSL_DECODE
[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_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b);
18  int EVP_PKEY_eq(const EVP_PKEY *a, const EVP_PKEY *b);
19  int EVP_PKEY_cmp(const EVP_PKEY *a, const EVP_PKEY *b);
20
21 =head1 DESCRIPTION
22
23 The function EVP_PKEY_missing_parameters() returns 1 if the public key
24 parameters of B<pkey> are missing and 0 if they are present or the algorithm
25 doesn't use parameters.
26
27 The function EVP_PKEY_copy_parameters() copies the parameters from key
28 B<from> to key B<to>. An error is returned if the parameters are missing in
29 B<from> or present in both B<from> and B<to> and mismatch. If the parameters
30 in B<from> and B<to> are both present and match this function has no effect.
31
32 The function EVP_PKEY_parameters_eq() checks the parameters of keys
33 B<a> and B<b> for equality.
34
35 The function EVP_PKEY_eq() checks the public key components and parameters
36 (if present) of keys B<a> and B<b> for equality.
37
38 =head1 NOTES
39
40 The main purpose of the functions EVP_PKEY_missing_parameters() and
41 EVP_PKEY_copy_parameters() is to handle public keys in certificates where the
42 parameters are sometimes omitted from a public key if they are inherited from
43 the CA that signed it.
44
45 Since OpenSSL private keys contain public key components too the function
46 EVP_PKEY_eq() can also be used to determine if a private key matches
47 a public key.
48
49 =head1 RETURN VALUES
50
51 The function EVP_PKEY_missing_parameters() returns 1 if the public key
52 parameters of B<pkey> are missing and 0 if they are present or the algorithm
53 doesn't use parameters.
54
55 These functions EVP_PKEY_copy_parameters() returns 1 for success and 0 for
56 failure.
57
58 The function EVP_PKEY_parameters_eq() and EVP_PKEY_eq() return 1 if their
59 inputs match, 0 if they don't match, -1 if the key types are different and
60 -2 if the operation is not supported.
61
62 =head1 SEE ALSO
63
64 L<EVP_PKEY_CTX_new(3)>,
65 L<EVP_PKEY_keygen(3)>
66
67 =head1 HISTORY
68
69 The function EVP_PKEY_cmp was deprecated and renamed to B<EVP_PKEY_eq> and
70 EVP_PKEY_cmp_parameters was deprecated and renamed to B<EVP_PKEY_parameters_eq>
71 (without changing semantics) in OpenSSL 3.0.
72 This was done to avoid confusion on their return values with other _cmp()
73 functions that return 0 in case their arguments are equal.
74
75 =head1 COPYRIGHT
76
77 Copyright 2006-2020 The OpenSSL Project Authors. All Rights Reserved.
78
79 Licensed under the Apache License 2.0 (the "License").  You may not use
80 this file except in compliance with the License.  You can obtain a copy
81 in the file LICENSE in the source distribution or at
82 L<https://www.openssl.org/source/license.html>.
83
84 =cut