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