Changeset View
Changeset View
Standalone View
Standalone View
src/secp256k1/include/secp256k1_ecdh.h
Show All 35 Lines | |||||
/** 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) or hashfp returned 0 | * 0: scalar was invalid (zero or overflow) or hashfp returned 0 | ||||
* Args: ctx: pointer to a context object (cannot be NULL) | * Args: ctx: pointer to a context object (cannot be NULL) | ||||
* Out: output: pointer to an array to be filled by hashfp | * Out: output: pointer to an array to be filled by hashfp | ||||
* 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 | * seckey: a 32-byte scalar with which to multiply the point | ||||
* hashfp: pointer to a hash function. If NULL, secp256k1_ecdh_hash_function_sha256 is used | * hashfp: pointer to a hash function. If NULL, secp256k1_ecdh_hash_function_sha256 is used | ||||
* (in which case, 32 bytes will be written to output) | * (in which case, 32 bytes will be written to output) | ||||
* data: arbitrary data pointer that is passed through to hashfp | * data: arbitrary data pointer that is passed through to hashfp | ||||
*/ | */ | ||||
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 *output, | unsigned char *output, | ||||
const secp256k1_pubkey *pubkey, | const secp256k1_pubkey *pubkey, | ||||
const unsigned char *privkey, | const unsigned char *seckey, | ||||
secp256k1_ecdh_hash_function hashfp, | secp256k1_ecdh_hash_function hashfp, | ||||
void *data | void *data | ||||
) 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 /* SECP256K1_ECDH_H */ | #endif /* SECP256K1_ECDH_H */ |