libsignal-protocol-c
master
curve.h
1
#ifndef CURVE_H
2
#define CURVE_H
3
4
#include <stdint.h>
5
#include <stddef.h>
6
#include "signal_protocol_types.h"
7
8
#ifdef __cplusplus
9
extern
"C"
{
10
#endif
11
12
#define CURVE_SIGNATURE_LEN 64
13
#define VRF_SIGNATURE_LEN 96
14
15
int
curve_internal_fast_tests(
int
silent);
16
17
int
curve_decode_point(
ec_public_key
**public_key,
const
uint8_t *key_data,
size_t
key_len,
signal_context
*global_context);
18
int
ec_public_key_compare(
const
ec_public_key
*key1,
const
ec_public_key
*key2);
19
int
ec_public_key_memcmp(
const
ec_public_key
*key1,
const
ec_public_key
*key2);
20
32
int
ec_public_key_serialize(
signal_buffer
**buffer,
const
ec_public_key
*key);
33
34
void
ec_public_key_destroy(
signal_type_base
*type);
35
36
int
curve_decode_private_point(
ec_private_key
**private_key,
const
uint8_t *key_data,
size_t
key_len,
signal_context
*global_context);
37
int
ec_private_key_compare(
const
ec_private_key
*key1,
const
ec_private_key
*key2);
38
50
int
ec_private_key_serialize(
signal_buffer
**buffer,
const
ec_private_key
*key);
51
52
void
ec_private_key_destroy(
signal_type_base
*type);
53
54
int
ec_key_pair_create(
ec_key_pair
**key_pair,
ec_public_key
*public_key,
ec_private_key
*private_key);
55
ec_public_key
*ec_key_pair_get_public(
const
ec_key_pair
*key_pair);
56
ec_private_key
*ec_key_pair_get_private(
const
ec_key_pair
*key_pair);
57
void
ec_key_pair_destroy(
signal_type_base
*type);
58
59
int
curve_generate_private_key(
signal_context
*context,
ec_private_key
**private_key);
60
int
curve_generate_public_key(
ec_public_key
**public_key,
const
ec_private_key
*private_key);
61
68
int
curve_generate_key_pair(
signal_context
*context,
ec_key_pair
**key_pair);
69
75
ec_public_key_list
*ec_public_key_list_alloc(
void
);
76
82
ec_public_key_list
*ec_public_key_list_copy(
const
ec_public_key_list
*list);
83
91
int
ec_public_key_list_push_back(
ec_public_key_list
*list,
ec_public_key
*value);
92
99
unsigned
int
ec_public_key_list_size(
const
ec_public_key_list
*list);
100
108
ec_public_key
*ec_public_key_list_at(
const
ec_public_key_list
*list,
unsigned
int
index);
109
115
void
ec_public_key_list_sort(
ec_public_key_list
*list);
116
121
void
ec_public_key_list_free(
ec_public_key_list
*list);
122
131
int
curve_calculate_agreement(uint8_t **shared_key_data,
const
ec_public_key
*public_key,
const
ec_private_key
*private_key);
132
143
int
curve_verify_signature(
const
ec_public_key
*signing_key,
144
const
uint8_t *message_data,
size_t
message_len,
145
const
uint8_t *signature_data,
size_t
signature_len);
146
156
int
curve_calculate_signature(
signal_context
*context,
157
signal_buffer
**signature,
158
const
ec_private_key
*signing_key,
159
const
uint8_t *message_data,
size_t
message_len);
160
172
int
curve_verify_vrf_signature(
signal_context
*context,
173
signal_buffer
**vrf_output,
174
const
ec_public_key
*signing_key,
175
const
uint8_t *message_data,
size_t
message_len,
176
const
uint8_t *signature_data,
size_t
signature_len);
177
187
int
curve_calculate_vrf_signature(
signal_context
*context,
188
signal_buffer
**signature,
189
const
ec_private_key
*signing_key,
190
const
uint8_t *message_data,
size_t
message_len);
191
192
#ifdef __cplusplus
193
}
194
#endif
195
196
#endif
/* CURVE_H */
ec_public_key
Definition:
curve.c:19
signal_type_base
Definition:
signal_protocol_internal.h:8
signal_context
Definition:
signal_protocol_internal.h:23
signal_buffer
Definition:
signal_protocol_internal.h:18
ec_public_key_list
Definition:
curve.c:38
ec_key_pair
Definition:
curve.c:31
ec_private_key
Definition:
curve.c:25
src
curve.h
Generated by
1.8.13