| 
									
										
										
										
											2015-09-28 17:46:17 +02:00
										 |  |  | #ifndef _SECP256K1_ECDH_
 | 
					
						
							|  |  |  | # define _SECP256K1_ECDH_
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # include "secp256k1.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # ifdef __cplusplus
 | 
					
						
							|  |  |  | extern "C" { | 
					
						
							|  |  |  | # endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /** Compute an EC Diffie-Hellman secret in constant time
 | 
					
						
							|  |  |  |  *  Returns: 1: exponentiation was successful | 
					
						
							|  |  |  |  *           0: scalar was invalid (zero or overflow) | 
					
						
							| 
									
										
										
										
											2017-01-12 21:29:11 +01:00
										 |  |  |  *  Args:    ctx:        pointer to a context object (cannot be NULL) | 
					
						
							|  |  |  |  *  Out:     result:     a 32-byte array which will be populated by an ECDH | 
					
						
							|  |  |  |  *                       secret computed from the point and scalar | 
					
						
							|  |  |  |  *  In:      pubkey:     a pointer to a secp256k1_pubkey containing an | 
					
						
							|  |  |  |  *                       initialized public key | 
					
						
							|  |  |  |  *           privkey:    a 32-byte scalar with which to multiply the point | 
					
						
							| 
									
										
										
										
											2015-09-28 17:46:17 +02:00
										 |  |  |  */ | 
					
						
							|  |  |  | SECP256K1_API SECP256K1_WARN_UNUSED_RESULT int secp256k1_ecdh( | 
					
						
							|  |  |  |   const secp256k1_context* ctx, | 
					
						
							|  |  |  |   unsigned char *result, | 
					
						
							| 
									
										
										
										
											2017-01-12 21:29:11 +01:00
										 |  |  |   const secp256k1_pubkey *pubkey, | 
					
						
							|  |  |  |   const unsigned char *privkey | 
					
						
							| 
									
										
										
										
											2015-09-28 17:46:17 +02:00
										 |  |  | ) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3) SECP256K1_ARG_NONNULL(4); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # ifdef __cplusplus
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | # endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif
 |