MOTION
0.01
Framework for mixed-protocol multi-party computation
|
Go to the documentation of this file.
40 #if defined(BORINGSSL_HAS_UINT128)
42 #define BORINGSSL_CURVE25519_64BIT
45 #if defined(BORINGSSL_CURVE25519_64BIT)
130 const uint8_t precomp_table[15 * 2 * 32]);
void x25519_ge_p3_to_cached(ge_cached *r, const ge_p3 *p)
Definition: mycurve25519.cpp:3846
static void fe_sq_tt(fe *h, const fe *f)
Definition: mycurve25519.cpp:2840
static uint8_t addcarryx_u26(uint8_t c, uint32_t a, uint32_t b, uint32_t *low)
Definition: mycurve25519.cpp:108
void Add(const communication::TransportStatistics &statistics)
Definition: analysis.cpp:125
void x25519_ge_p1p1_to_p3(ge_p3 *r, const ge_p1p1 *p)
Definition: mycurve25519.cpp:3861
static uint8_t subborrow_u26(uint8_t c, uint32_t a, uint32_t b, uint32_t *low)
Definition: mycurve25519.cpp:124
#define assert_fe_loose(f)
Definition: mycurve25519.cpp:1101
uint32_t v[10]
Definition: mycurve25519.h:67
static void fe_tobytes(uint8_t s[32], const fe *f)
Definition: mycurve25519.cpp:1323
Definition: analysis.h:43
static void fe_add(fe_loose *h, const fe *f, const fe *g)
Definition: mycurve25519.cpp:1462
static void fe_copy_ll(fe_loose *h, const fe_loose *f)
Definition: mycurve25519.cpp:3582
static void slide(signed char *r, const uint8_t *a)
Definition: mycurve25519.cpp:4195
void x25519_ge_scalarmult(ge_p2 *r, const uint8_t *scalar, const ge_p3 *A)
Definition: mycurve25519.cpp:4143
static void fe_add_impl(uint32_t out[10], const uint32_t in1[10], const uint32_t in2[10])
Definition: mycurve25519.cpp:1387
static void fe_sub(fe_loose *h, const fe *f, const fe *g)
Definition: mycurve25519.cpp:1544
static void fe_sq2_tt(fe *h, const fe *f)
Definition: mycurve25519.cpp:3673
fe_loose yminusx
Definition: mycurve25519.h:111
static void ge_madd(ge_p1p1 *r, const ge_p3 *p, const ge_precomp *q)
Definition: mycurve25519.cpp:3902
fe X
Definition: mycurve25519.h:96
static void table_select(ge_precomp *t, int pos, signed char b)
Definition: mycurve25519.cpp:4053
static void fe_mul_ltt(fe_loose *h, const fe *f, const fe *g)
Definition: mycurve25519.cpp:2346
static void fe_mul_tll(fe *h, const fe_loose *f, const fe_loose *g)
Definition: mycurve25519.cpp:2358
fe X
Definition: mycurve25519.h:90
int main(int ac, char *av[])
Definition: mult3_main.cpp:49
static void fe_mul121666(fe *h, const fe_loose *f)
Definition: mycurve25519.cpp:3466
const std::regex kPartyArgumentRegex("([012]),([^,]+),(\\d{1,5})")
fe_loose xy2d
Definition: mycurve25519.h:112
uint32_t v[10]
Definition: mycurve25519.h:73
std::unique_ptr< Party > PartyPointer
Definition: party.h:387
void ge_cached_0(ge_cached *h)
Definition: mycurve25519.cpp:3825
Definition: mycurve25519.h:135
fe_loose T2d
Definition: mycurve25519.h:119
static void fe_loose_invert(fe *out, const fe_loose *z)
Definition: mycurve25519.cpp:3588
Definition: mycurve25519.h:102
fe T
Definition: mycurve25519.h:99
static const fe d2
Definition: mycurve25519_tables.h:46
static void fe_invert(fe *out, const fe *z)
Definition: mycurve25519.cpp:3646
static const fe sqrtm1
Definition: mycurve25519_tables.h:38
int x25519_ge_frombytes_vartime(ge_p3 *h, const uint8_t *s)
Definition: mycurve25519.cpp:3766
void x25519_ge_scalarmult_base(ge_p3 *h, const uint8_t *a)
Definition: mycurve25519.cpp:4084
static void fe_mul_ttl(fe *h, const fe *f, const fe_loose *g)
Definition: mycurve25519.cpp:2356
static void fe_loose_1(fe_loose *h)
Definition: mycurve25519.cpp:1381
Definition: mycurve25519.h:89
std::pair< program_options::variables_map, std::vector< bool > > ParseProgramOptions(int ac, char *av[])
Definition: mult3_main.cpp:120
static void fe_copy_lt(fe_loose *h, const fe *f)
Definition: mycurve25519.cpp:3575
static void fe_neg_impl(uint32_t out[10], const uint32_t in2[10])
Definition: mycurve25519.cpp:3473
fe_loose Y
Definition: mycurve25519.h:104
static void fe_mul_impl(uint32_t out[10], const uint32_t in1[10], const uint32_t in2[10])
Definition: mycurve25519.cpp:1735
void x25519_sc_reduce(uint8_t s[64])
Definition: mycurve25519.cpp:4312
fe_loose X
Definition: mycurve25519.h:103
static void fe_sqr_impl(uint32_t out[10], const uint32_t in1[10])
Definition: mycurve25519.cpp:2362
static void fe_mul_tlt(fe *h, const fe_loose *f, const fe *g)
Definition: mycurve25519.cpp:2354
static void cmov_cached(ge_cached *t, ge_cached *u, uint8_t b)
Definition: mycurve25519.cpp:4134
Definition: tcp_transport.h:69
static void fe_frombytes(fe *h, const uint8_t *s)
Definition: mycurve25519.cpp:1138
static void fe_cmov(fe_loose *f, const fe_loose *g, unsigned b)
Definition: mycurve25519.cpp:3557
fe_loose yplusx
Definition: mycurve25519.h:110
static int fe_isnegative(const fe *f)
Definition: mycurve25519.cpp:3667
fe Z
Definition: mycurve25519.h:92
fe Z
Definition: mycurve25519.h:98
static void sc_muladd(uint8_t *s, const uint8_t *a, const uint8_t *b, const uint8_t *c)
Definition: mycurve25519.cpp:4654
static const ge_precomp Bi[8]
Definition: mycurve25519_tables.h:7453
static void ge_msub(ge_p1p1 *r, const ge_p3 *p, const ge_precomp *q)
Definition: mycurve25519.cpp:3919
fe_loose YminusX
Definition: mycurve25519.h:117
__uint128_t uint128_t
Definition: pseudo_random_generator.h:37
void x25519_ge_tobytes(uint8_t s[32], const ge_p2 *h)
Definition: mycurve25519.cpp:3742
std::vector< TcpConnectionConfiguration > TcpPartiesConfiguration
Definition: tcp_transport.h:62
static void fe_sub_impl(uint32_t out[10], const uint32_t in1[10], const uint32_t in2[10])
Definition: mycurve25519.cpp:1469
static uint8_t subborrow_u25(uint8_t c, uint32_t a, uint32_t b, uint32_t *low)
Definition: mycurve25519.cpp:116
Definition: mycurve25519.h:115
static void fe_freeze(uint32_t out[10], const uint32_t in1[10])
Definition: mycurve25519.cpp:1140
static void fe_carry(fe *h, const fe_loose *f)
Definition: mycurve25519.cpp:1729
static void fe_mul_llt(fe_loose *h, const fe_loose *f, const fe *g)
Definition: mycurve25519.cpp:2348
void ge_p3_0(ge_p3 *h)
Definition: mycurve25519.cpp:3818
static void fe_mul_ttt(fe *h, const fe *f, const fe *g)
Definition: mycurve25519.cpp:2352
static void ge_p2_dbl(ge_p1p1 *r, const ge_p2 *p)
Definition: mycurve25519.cpp:3876
static void cmov(ge_precomp *t, const ge_precomp *u, uint8_t b)
Definition: mycurve25519.cpp:3981
static void ge_p1p1_to_cached(ge_cached *r, const ge_p1p1 *p)
Definition: mycurve25519.cpp:3869
static uint64_t load_3(const uint8_t *in)
Definition: mycurve25519.cpp:46
void ge_p2_0(ge_p2 *h)
Definition: mycurve25519.cpp:3812
static void ge_p3_to_p2(ge_p2 *r, const ge_p3 *p)
Definition: mycurve25519.cpp:3839
help
Definition: geninput.py:150
static void fe_frombytes_impl(uint32_t h[10], const uint8_t *s)
Definition: mycurve25519.cpp:1115
static uint8_t addcarryx_u25(uint8_t c, uint32_t a, uint32_t b, uint32_t *low)
Definition: mycurve25519.cpp:100
static void x25519_scalar_mult_generic(uint8_t out[32], const uint8_t scalar[32], const uint8_t point[32])
Definition: mycurve25519.cpp:5130
static void fe_sq_tl(fe *h, const fe_loose *f)
Definition: mycurve25519.cpp:2838
void ge_precomp_0(ge_precomp *h)
Definition: mycurve25519.cpp:3832
Definition: mycurve25519.h:72
std::tuple< std::size_t, std::string, std::uint16_t > ParsePartyArgument(const std::string &party_argument)
Definition: mult3_main.cpp:109
void x25519_ge_scalarmult_small_precomp(ge_p3 *h, const uint8_t a[32], const uint8_t precomp_table[15 *2 *32])
Definition: mycurve25519.cpp:3987
static void fe_carry_impl(uint32_t out[10], const uint32_t in1[10])
Definition: mycurve25519.cpp:1551
Definition: mycurve25519.h:109
std::string PrintStatistics(const std::string &experiment_name, const AccumulatedRunTimeStatistics &execution_statistics, const AccumulatedCommunicationStatistics &communication_statistics)
Definition: analysis.cpp:176
bool CheckPartyArgumentSyntax(const std::string &party_argument)
Definition: mult3_main.cpp:104
encrypto::motion::RunTimeStatistics EvaluateProtocol(encrypto::motion::PartyPointer &party, std::size_t number_of_simd, encrypto::motion::MpcProtocol protocol, bool check)
Definition: aes128.cpp:56
static uint8_t negative(signed char b)
Definition: mycurve25519.cpp:4047
Definition: mycurve25519.cpp:41
MpcProtocol
Definition: typedefs.h:140
static uint8_t equal(signed char b, signed char c)
Definition: mycurve25519.cpp:3971
void sc_random(uint8_t s[32])
Definition: mycurve25519.cpp:5238
Definition: mycurve25519.h:95
void x25519_ge_sub(ge_p1p1 *r, const ge_p3 *p, const ge_cached *q)
Definition: mycurve25519.cpp:3954
void x25519_ge_add(ge_p1p1 *r, const ge_p3 *p, const ge_cached *q)
Definition: mycurve25519.cpp:3936
Definition: mycurve25519.h:66
static uint32_t cmovznz32(uint32_t t, uint32_t z, uint32_t nz)
Definition: mycurve25519.cpp:132
fe_loose T
Definition: mycurve25519.h:106
fe_loose Z
Definition: mycurve25519.h:105
fe Y
Definition: mycurve25519.h:91
static void fe_cswap(fe *f, fe *g, unsigned int b)
Definition: mycurve25519.cpp:2846
static const fe d
Definition: mycurve25519_tables.h:30
fe Y
Definition: mycurve25519.h:97
void swap(ReusablePromise< R, MutexType, ConditionVariableType > &lhs, ReusablePromise< R, MutexType, ConditionVariableType > &rhs) noexcept
Definition: reusable_future.h:270
static void fe_neg(fe_loose *h, const fe *f)
Definition: mycurve25519.cpp:3547
#define assert_fe_frozen(f)
Definition: mycurve25519.cpp:1108
static void fe_mul_121666_impl(uint32_t out[10], const uint32_t in1[10])
Definition: mycurve25519.cpp:2858
void RandomBytes(void *buf, size_t nbytes)
Definition: mycurve25519.cpp:5229
static void fe_1(fe *h)
Definition: mycurve25519.cpp:1375
static void fe_loose_0(fe_loose *h)
Definition: mycurve25519.cpp:1369
static int fe_isnonzero(const fe_loose *f)
Definition: mycurve25519.cpp:3654
static const ge_precomp k25519Precomp[32][8]
Definition: mycurve25519_tables.h:130
static void x25519_scalar_mult(uint8_t out[32], const uint8_t scalar[32], const uint8_t point[32])
Definition: mycurve25519.cpp:5215
fe_loose Z
Definition: mycurve25519.h:118
static void fe_copy(fe *h, const fe *f)
Definition: mycurve25519.cpp:3570
encrypto::motion::PartyPointer CreateParty(const program_options::variables_map &user_options)
Definition: mult3_main.cpp:208
void ge_double_scalarmult_vartime(ge_p2 *r, const uint8_t *a, const ge_p3 *A, const uint8_t *b)
Definition: mycurve25519.cpp:4233
void x25519_ge_p2_to_p3(ge_p3 *r, const ge_p2 *p)
Definition: mycurve25519.cpp:5246
#define assert_fe(f)
Definition: mycurve25519.cpp:1094
Definition: analysis.h:65
static void ge_p3_dbl(ge_p1p1 *r, const ge_p3 *p)
Definition: mycurve25519.cpp:3895
static void fe_0(fe *h)
Definition: mycurve25519.cpp:1364
static uint64_t load_4(const uint8_t *in)
Definition: mycurve25519.cpp:54
std::vector< std::unique_ptr< Transport > > SetupConnections()
Definition: tcp_transport.cpp:203
static void fe_pow22523(fe *out, const fe *z)
Definition: mycurve25519.cpp:3683
fe_loose YplusX
Definition: mycurve25519.h:116
void ge_p3_tobytes(uint8_t s[32], const ge_p3 *h)
Definition: mycurve25519.cpp:3754
void x25519_ge_p1p1_to_p2(ge_p2 *r, const ge_p1p1 *p)
Definition: mycurve25519.cpp:3854