19 #ifndef OPENSSL_HEADER_EC_P256_X86_64_H
20 #define OPENSSL_HEADER_EC_P256_X86_64_H
26 #include "../bn/internal.h"
28 #if defined(__cplusplus)
33 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86_64) && \
34 !defined(OPENSSL_SMALL)
44 #define P256_LIMBS (256 / BN_BITS2)
51 const BN_ULONG
a[P256_LIMBS],
52 const BN_ULONG
b[P256_LIMBS]);
56 const BN_ULONG
a[P256_LIMBS]);
60 static inline void ecp_nistz256_from_mont(BN_ULONG res[P256_LIMBS],
61 const BN_ULONG
in[P256_LIMBS]) {
62 static const BN_ULONG ONE[P256_LIMBS] = { 1 };
68 static inline void ecp_nistz256_to_mont(BN_ULONG res[P256_LIMBS],
69 const BN_ULONG
in[P256_LIMBS]) {
70 static const BN_ULONG RR[P256_LIMBS] = {
71 TOBN(0x00000000, 0x00000003), TOBN(0xfffffffb, 0xffffffff),
72 TOBN(0xffffffff, 0xfffffffe), TOBN(0x00000004, 0xfffffffd)};
85 const BN_ULONG
a[P256_LIMBS],
86 const BN_ULONG
b[P256_LIMBS]);
92 const BN_ULONG
a[P256_LIMBS], BN_ULONG
rep);
97 const BN_ULONG
a[P256_LIMBS],
98 const BN_ULONG
p[P256_LIMBS]);
108 BN_ULONG
X[P256_LIMBS];
109 BN_ULONG Y[P256_LIMBS];
110 BN_ULONG Z[P256_LIMBS];
116 BN_ULONG
X[P256_LIMBS];
117 BN_ULONG Y[P256_LIMBS];
130 const P256_POINT_AFFINE in_t[64],
int index);
137 const P256_POINT *
b);
143 const P256_POINT_AFFINE *
b);
149 #if defined(__cplusplus)
153 #endif // OPENSSL_HEADER_EC_P256_X86_64_H