| 
									
										
										
										
											2000-01-28 03:31:26 +08:00
										 |  |  | =pod | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | =head1 NAME | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-02-24 19:55:57 +08:00
										 |  |  | DSA_do_sign, DSA_do_verify - raw DSA signature operations | 
					
						
							| 
									
										
										
										
											2000-01-28 03:31:26 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | =head1 SYNOPSIS | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |  #include <openssl/dsa.h> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |  DSA_SIG *DSA_do_sign(const unsigned char *dgst, int dlen, DSA *dsa); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |  int DSA_do_verify(const unsigned char *dgst, int dgst_len, | 
					
						
							| 
									
										
										
										
											2016-05-20 20:11:46 +08:00
										 |  |  |              DSA_SIG *sig, DSA *dsa); | 
					
						
							| 
									
										
										
										
											2000-01-28 03:31:26 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | =head1 DESCRIPTION | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | DSA_do_sign() computes a digital signature on the B<len> byte message | 
					
						
							|  |  |  | digest B<dgst> using the private key B<dsa> and returns it in a | 
					
						
							|  |  |  | newly allocated B<DSA_SIG> structure. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-18 03:21:33 +08:00
										 |  |  | L<DSA_sign_setup(3)> may be used to precompute part | 
					
						
							| 
									
										
										
										
											2000-01-28 03:31:26 +08:00
										 |  |  | of the signing operation in case signature generation is | 
					
						
							|  |  |  | time-critical. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | DSA_do_verify() verifies that the signature B<sig> matches a given | 
					
						
							|  |  |  | message digest B<dgst> of size B<len>.  B<dsa> is the signer's public | 
					
						
							|  |  |  | key. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | =head1 RETURN VALUES | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | DSA_do_sign() returns the signature, NULL on error.  DSA_do_verify() | 
					
						
							|  |  |  | returns 1 for a valid signature, 0 for an incorrect signature and -1 | 
					
						
							|  |  |  | on error. The error codes can be obtained by | 
					
						
							| 
									
										
										
										
											2015-08-18 03:21:33 +08:00
										 |  |  | L<ERR_get_error(3)>. | 
					
						
							| 
									
										
										
										
											2000-01-28 03:31:26 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | =head1 SEE ALSO | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-11-11 16:33:09 +08:00
										 |  |  | L<DSA_new(3)>, L<ERR_get_error(3)>, L<RAND_bytes(3)>, | 
					
						
							| 
									
										
										
										
											2015-08-18 03:21:33 +08:00
										 |  |  | L<DSA_SIG_new(3)>, | 
					
						
							|  |  |  | L<DSA_sign(3)> | 
					
						
							| 
									
										
										
										
											2000-01-28 03:31:26 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-18 23:44:05 +08:00
										 |  |  | =head1 COPYRIGHT | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Licensed under the OpenSSL license (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 |