free NULL cleanup.
[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)|EVP_PKEY_CTX_new(3)>,
59 L<EVP_PKEY_keygen(3)|EVP_PKEY_keygen(3)> 
60
61 =cut