mirror of https://github.com/openssl/openssl.git
				
				
				
			
		
			
	
	
		
			74 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			74 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | =pod | ||
|  | 
 | ||
|  | =head1 NAME | ||
|  | 
 | ||
|  | EVP_PKEY_check, EVP_PKEY_param_check, EVP_PKEY_public_check, | ||
|  | EVP_PKEY_private_check, EVP_PKEY_pairwise_check | ||
|  | - key and parameter validation functions | ||
|  | 
 | ||
|  | =head1 SYNOPSIS | ||
|  | 
 | ||
|  |  #include <openssl/evp.h> | ||
|  | 
 | ||
|  |  int EVP_PKEY_check(EVP_PKEY_CTX *ctx); | ||
|  |  int EVP_PKEY_param_check(EVP_PKEY_CTX *ctx); | ||
|  |  int EVP_PKEY_public_check(EVP_PKEY_CTX *ctx); | ||
|  |  int EVP_PKEY_private_check(EVP_PKEY_CTX *ctx); | ||
|  |  int EVP_PKEY_pairwise_check(EVP_PKEY_CTX *ctx); | ||
|  | 
 | ||
|  | =head1 DESCRIPTION | ||
|  | 
 | ||
|  | EVP_PKEY_param_check() validates the domain parameters component of the key | ||
|  | given by B<ctx>. | ||
|  | 
 | ||
|  | EVP_PKEY_public_check() validates the public component of the key given by B<ctx>. | ||
|  | 
 | ||
|  | EVP_PKEY_private_check() validates the private component of the key given by B<ctx>. | ||
|  | 
 | ||
|  | EVP_PKEY_pairwise_check() validates that the public and private components have | ||
|  | the correct mathematical relationship to each other for the key given by B<ctx>. | ||
|  | 
 | ||
|  | EVP_PKEY_check() validates all components of a key given by B<ctx>. | ||
|  | 
 | ||
|  | =head1 NOTES | ||
|  | 
 | ||
|  | Refer to SP800-56A and SP800-56B for rules relating to when these functions | ||
|  | should be called during key establishment. | ||
|  | It is not necessary to call these functions after locally calling an approved key | ||
|  | generation method, but may be required for assurance purposes when receiving | ||
|  | keys from a third party. | ||
|  | 
 | ||
|  | In OpenSSL an EVP_PKEY structure containing a private key also contains the | ||
|  | public key components and parameters (if any). An OpenSSL private key is | ||
|  | equivalent to what some libraries call a "key pair". A private key can be used | ||
|  | in functions which require the use of a public key or parameters. | ||
|  | 
 | ||
|  | =head1 RETURN VALUES | ||
|  | 
 | ||
|  | All functions return 1 for success or others for failure. | ||
|  | They return -2 if the operation is not supported for the specific algorithm. | ||
|  | 
 | ||
|  | =head1 SEE ALSO | ||
|  | 
 | ||
|  | L<EVP_PKEY_CTX_new(3)>, | ||
|  | L<EVP_PKEY_fromdata(3)>, | ||
|  | 
 | ||
|  | =head1 HISTORY | ||
|  | 
 | ||
|  | EVP_PKEY_check(), EVP_PKEY_public_check() and EVP_PKEY_param_check() were added | ||
|  | in OpenSSL 1.1.1. | ||
|  | 
 | ||
|  | EVP_PKEY_private_check() and EVP_PKEY_pairwise_check() were added | ||
|  | in OpenSSL 3.0. | ||
|  | 
 | ||
|  | =head1 COPYRIGHT | ||
|  | 
 | ||
|  | Copyright 2006-2020 The OpenSSL Project Authors. All Rights Reserved. | ||
|  | 
 | ||
|  | Licensed under the Apache License 2.0 (the "License").  You may not use | ||
|  | this file except in compliance with the License.  You can obtain a copy | ||
|  | in the file LICENSE in the source distribution or at | ||
|  | L<https://www.openssl.org/source/license.html>. | ||
|  | 
 | ||
|  | =cut |