Bitcoin ABC  0.22.13
P2P Digital Currency
secp256k1_multiset.h
Go to the documentation of this file.
1 /**********************************************************************
2  * Copyright (c) 2017 Tomas van der Wansem *
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 
8 #ifndef _SECP256K1_MULTISET__
9 # define _SECP256K1_MULTISET__
10 
11 # include "secp256k1.h"
12 
13 
14 # ifdef __cplusplus
15 extern "C" {
16 # endif
17 
18 
20 typedef struct {
21  unsigned char d[96];
23 
24 
25 
35  const secp256k1_context* ctx,
36  secp256k1_multiset *multiset
38 
39 
50  const secp256k1_context* ctx,
51  secp256k1_multiset *multiset,
52  const unsigned char *input,
53  size_t inputLen
55 
66  const secp256k1_context* ctx,
67  secp256k1_multiset *multiset,
68  const unsigned char *input,
69  size_t inputLen
70 ) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3);
71 
72 
73 
83  const secp256k1_context* ctx,
84  secp256k1_multiset *multiset,
85  const secp256k1_multiset *input
86 
87 ) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3);
88 
89 
99  const secp256k1_context* ctx,
100  unsigned char *resultHash,
101  const secp256k1_multiset *multiset
102 ) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3);
103 
104 
105 
106 # ifdef __cplusplus
107 }
108 # endif
109 
110 #endif
SECP256K1_API int secp256k1_multiset_combine(const secp256k1_context *ctx, secp256k1_multiset *multiset, const secp256k1_multiset *input) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3)
Combines two multisets.
Definition: main_impl.h:137
secp256k1_context * ctx
Opaque multiset; this is actually a group element.
SECP256K1_API int secp256k1_multiset_remove(const secp256k1_context *ctx, secp256k1_multiset *multiset, const unsigned char *input, size_t inputLen) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3)
Removes an element from a multiset.
Definition: main_impl.h:132
SECP256K1_API int secp256k1_multiset_add(const secp256k1_context *ctx, secp256k1_multiset *multiset, const unsigned char *input, size_t inputLen) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3)
Adds an element to a multiset from single data element.
Definition: main_impl.h:127
SECP256K1_API int secp256k1_multiset_finalize(const secp256k1_context *ctx, unsigned char *resultHash, const secp256k1_multiset *multiset) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3)
Converts a multiset to a hash.
Definition: main_impl.h:165
#define SECP256K1_ARG_NONNULL(_x)
Definition: secp256k1.h:155
SECP256K1_API int secp256k1_multiset_init(const secp256k1_context *ctx, secp256k1_multiset *multiset) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2)
Initialize a multiset The resulting multiset the multiset for no data elements.
Definition: main_impl.h:200
#define SECP256K1_API
Definition: secp256k1.h:140