4e1f78bed16167e4388d5ff5b99805875f07014e
[openssl.git] / doc / crypto / EVP_PKEY_cmp.pod
1 =pod
2
3 =head1 NAME
4
5 EVP_PKEY_copy_parameters, EVP_PKEY_missing_parameters, EVP_PKEY_cmp_parameters, EVP_PKEY_cmp - public key parameter and comparison functions
6
7 =head1 SYNOPSIS
8
9  #include <openssl/evp.h>
10
11  int EVP_PKEY_missing_parameters(const EVP_PKEY *pkey);
12  int EVP_PKEY_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from);
13
14  int EVP_PKEY_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b);
15  int EVP_PKEY_cmp(const EVP_PKEY *a, const EVP_PKEY *b);
16
17 =head1 DESCRIPTION
18
19 The function EVP_PKEY_missing_parameters() returns 1 if the public key
20 parameters of B<pkey> are missing and 0 if they are present or the algorithm
21 doesn't use parameters.
22
23 The function EVP_PKEY_copy_parameters() copies the parameters from key
24 B<from> to key B<to>.
25
26 The function EVP_PKEY_cmp_parameters() compares the parameters of keys
27 B<a> and B<b>.
28
29 The function EVP_PKEY_cmp() compares the public key components and parameters
30 (if present) of keys B<a> and B<b>.
31
32 =head1 NOTES
33
34 The main purpose of the functions EVP_PKEY_missing_parameters() and
35 EVP_PKEY_copy_parameters() is to handle public keys in certificates where the
36 parameters are sometimes omitted from a public key if they are inherited from
37 the CA that signed it.
38
39 Since OpenSSL private keys contain public key components too the function
40 EVP_PKEY_cmp() can also be used to determine if a private key matches
41 a public key.
42
43 =head1 RETURN VALUES
44
45 The function EVP_PKEY_missing_parameters() returns 1 if the public key
46 parameters of B<pkey> are missing and 0 if they are present or the algorithm
47 doesn't use parameters.
48
49 These functions EVP_PKEY_copy_parameters() returns 1 for success and 0 for
50 failure.
51
52 The function EVP_PKEY_cmp_parameters() and EVP_PKEY_cmp() return 1 if the
53 keys match, 0 if they don't match, -1 if the key types are different and
54 -2 if the operation is not supported.
55
56 =head1 SEE ALSO
57
58 L<EVP_PKEY_CTX_new(3)>,
59 L<EVP_PKEY_keygen(3)>
60
61 =head1 COPYRIGHT
62
63 Copyright 2006-2016 The OpenSSL Project Authors. All Rights Reserved.
64
65 Licensed under the OpenSSL license (the "License").  You may not use
66 this file except in compliance with the License.  You can obtain a copy
67 in the file LICENSE in the source distribution or at
68 L<https://www.openssl.org/source/license.html>.
69
70 =cut