// 2-way variable base scalar multiplication #include "fe25519.h" #include "crypto_uint64_vec2x1.h" #include "mont25519_batch.h" #include "crypto_powbatch_inv25519.h" int crypto_nP_2x1(unsigned char q[2][CRYPTO_BYTES], const unsigned char n[2][CRYPTO_BYTES], const unsigned char p[2][CRYPTO_BYTES]) { crypto_uint64_vec2x1 r[10] = {{0}}; crypto_uint64_vec2x1 t[20] = {{0}}; crypto_uint64_vec2x1 s[4] = {{0}}; fe25519_10l e[4]; fe25519_10l_dense a[4],c; fe25519 b[4],d; unsigned char i,j,m[2][CRYPTO_BYTES]; for (i=0;i<2;++i) { for (j=0;j