crypton-2.1.2: cbits/include64/p256/p256_s2n.h
/*
* The vendored s2n-bignum assembly, behind one call that picks the variant
* the machine wants. See cbits/s2n/README.md for which and why.
*
* Only declared in the 64-bit field build: s2n-bignum is x86-64 and AArch64
* only, and this interface is the four little-endian 64-bit words those
* architectures give crypton_p256_int anyway.
*/
#ifndef CRYPTON_P256_S2N_H
#define CRYPTON_P256_S2N_H
#include <stdint.h>
/* res = scalar * point, all of them affine and not in Montgomery form:
* point is x then y, four words each, and res the same. The point at
* infinity goes in and comes out as (0, 0). */
void crypton_s2n_p256_scalarmul(uint64_t res[8], const uint64_t scalar[4],
const uint64_t point[8]);
/* res = scalar * G, the same shape out. The table it reads and the window
* width it was built for are in cbits/p256/p256_base_table.c, which
* cbits/p256/gen_base_table.py writes. */
void crypton_s2n_p256_scalarmulbase(uint64_t res[8], const uint64_t scalar[4]);
#endif