PRCYCoin  2.0.0.7rc1
P2P Digital Currency
secp256k1_whitelist.h
Go to the documentation of this file.
1 /**********************************************************************
2  * Copyright (c) 2016 Andrew Poelstra *
3  * Distributed under the MIT software license, see the accompanying *
4  * file COPYING or http://www.opensource.org/licenses/mit-license.php.*
5  **********************************************************************/
6 
7 #ifndef _SECP256K1_WHITELIST_
8 #define _SECP256K1_WHITELIST_
9 
10 #include "secp256k1_2.h"
11 
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15 
16 #define SECP256K1_WHITELIST_MAX_N_KEYS 256
17 
34 typedef struct {
35  size_t n_keys;
36  /* e0, scalars */
37  unsigned char data[32 * (1 + SECP256K1_WHITELIST_MAX_N_KEYS)];
39 
61  const secp256k1_context2* ctx,
63  const unsigned char *input,
64  size_t input_len
66 
75 
87  const secp256k1_context2* ctx,
88  unsigned char *output,
89  size_t *output_len,
92 
116  const secp256k1_context2* ctx,
118  const secp256k1_pubkey2 *online_pubkeys,
119  const secp256k1_pubkey2 *offline_pubkeys,
120  const size_t n_keys,
121  const secp256k1_pubkey2 *sub_pubkey,
122  const unsigned char *online_seckey,
123  const unsigned char *summed_seckey,
124  const size_t index,
126  const void *noncedata
128 
140  const secp256k1_context2* ctx,
142  const secp256k1_pubkey2 *online_pubkeys,
143  const secp256k1_pubkey2 *offline_pubkeys,
144  const size_t n_keys,
145  const secp256k1_pubkey2 *sub_pubkey
147 
148 #ifdef __cplusplus
149 }
150 #endif
151 
152 #endif
secp256k1_whitelist_signature_parse
SECP256K1_API int secp256k1_whitelist_signature_parse(const secp256k1_context2 *ctx, secp256k1_whitelist_signature *sig, const unsigned char *input, size_t input_len) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3)
Parse a whitelist signature.
Definition: main_impl.h:139
secp256k1_whitelist_signature::n_keys
size_t n_keys
Definition: secp256k1_whitelist.h:35
secp256k1_pubkey2
Opaque data structure that holds a parsed and valid public key.
Definition: secp256k1_2.h:66
SECP256K1_API
#define SECP256K1_API
Definition: secp256k1_2.h:139
secp256k1_whitelist_sign
SECP256K1_API int secp256k1_whitelist_sign(const secp256k1_context2 *ctx, secp256k1_whitelist_signature *sig, const secp256k1_pubkey2 *online_pubkeys, const secp256k1_pubkey2 *offline_pubkeys, const size_t n_keys, const secp256k1_pubkey2 *sub_pubkey, const unsigned char *online_seckey, const unsigned char *summed_seckey, const size_t index, secp256k1_nonce_function2 noncefp, const void *noncedata) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3) SECP256K1_ARG_NONNULL(4) SECP256K1_ARG_NONNULL(6) SECP256K1_ARG_NONNULL(7) SECP256K1_ARG_NONNULL(8)
Compute a whitelist signature Returns 1: signature was successfully created 0: signature was not succ...
Definition: main_impl.h:15
SECP256K1_WHITELIST_MAX_N_KEYS
#define SECP256K1_WHITELIST_MAX_N_KEYS
Definition: secp256k1_whitelist.h:16
secp256k1_nonce_function2
int(* secp256k1_nonce_function2)(unsigned char *nonce32, const unsigned char *msg32, const unsigned char *key32, const unsigned char *algo16, void *data, unsigned int attempt)
A pointer to a function to deterministically generate a nonce.
Definition: secp256k1_2.h:99
secp256k1_whitelist_verify
SECP256K1_API int secp256k1_whitelist_verify(const secp256k1_context2 *ctx, const secp256k1_whitelist_signature *sig, const secp256k1_pubkey2 *online_pubkeys, const secp256k1_pubkey2 *offline_pubkeys, const size_t n_keys, const secp256k1_pubkey2 *sub_pubkey) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3) SECP256K1_ARG_NONNULL(4) SECP256K1_ARG_NONNULL(6)
Verify a whitelist signature Returns 1: signature is valid 0: signature is not valid In: ctx: pointer...
Definition: main_impl.h:103
secp256k1_whitelist_signature
Opaque data structure that holds a parsed whitelist proof.
Definition: secp256k1_whitelist.h:34
secp256k1_context_struct2
Definition: secp256k1_types.h:15
secp256k1_2.h
secp256k1_whitelist_signature_n_keys
SECP256K1_API size_t secp256k1_whitelist_signature_n_keys(const secp256k1_whitelist_signature *sig) SECP256K1_ARG_NONNULL(1)
Returns the number of keys a signature expects to have.
Definition: main_impl.h:135
SECP256K1_ARG_NONNULL
#define SECP256K1_ARG_NONNULL(_x)
Definition: secp256k1.h:40
secp256k1_whitelist_signature_serialize
SECP256K1_API int secp256k1_whitelist_signature_serialize(const secp256k1_context2 *ctx, unsigned char *output, size_t *output_len, const secp256k1_whitelist_signature *sig) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3) SECP256K1_ARG_NONNULL(4)
Serialize a whitelist signature.
Definition: main_impl.h:157