OpenBSD manual page server

Manual Page Search Parameters

EVP_PKEY_CMP(3) Library Functions Manual EVP_PKEY_CMP(3)

EVP_PKEY_missing_parameters, EVP_PKEY_copy_parameters, EVP_PKEY_cmp_parameters, EVP_PKEY_cmppublic key parameter and comparison functions

#include <openssl/evp.h>

int
EVP_PKEY_missing_parameters(const EVP_PKEY *pkey);

int
EVP_PKEY_copy_parameters(EVP_PKEY *destination, const EVP_PKEY *source);

int
EVP_PKEY_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b);

int
EVP_PKEY_cmp(const EVP_PKEY *a, const EVP_PKEY *b);

() checks whether any public key parameters are missing from pkey.

() copies all public key parameters from the source to the destination. If the algorithm does not use parameters, no action occurs.

() compares the public key parameters of a and b. This is only supported for algorithms that use parameters.

() compares the public key components of a and b. If the algorithm uses public key parameters, it also compares the parameters.

The main purpose of the functions () and EVP_PKEY_copy_parameters() is to handle public keys in certificates where the parameters are sometimes omitted from a public key if they are inherited from the CA that signed it.

Since OpenSSL private keys contain public key components too, the function () can also be used to determine if a private key matches a public key.

EVP_PKEY_missing_parameters() returns 1 if the public key parameters of pkey are missing or incomplete or 0 if they are present and complete or if the algorithm doesn't use parameters.

EVP_PKEY_copy_parameters() returns 1 for success or 0 for failure. In particular, it fails if the key types mismatch or if the public key parameters in the source are missing or incomplete.

EVP_PKEY_cmp_parameters() and EVP_PKEY_cmp() return 1 if the keys match, 0 if they don't match, -1 if the key types are different and -2 if the operation is not supported.

EVP_PKEY_CTX_new(3), EVP_PKEY_keygen(3), EVP_PKEY_new(3), X509_get_pubkey_parameters(3)

EVP_PKEY_missing_parameters() and EVP_PKEY_copy_parameters() first appeared in SSLeay 0.8.0. EVP_PKEY_cmp_parameters() first appeared in SSLeay 0.9.0. These functions have been available since OpenBSD 2.4.

EVP_PKEY_cmp() first appeared in OpenSSL 0.9.8 and has been available since OpenBSD 4.5.

December 6, 2024 OpenBSD-current