5 #ifndef OPENTITAN_SW_DEVICE_LIB_CRYPTO_IMPL_ECC_P256_H_
6 #define OPENTITAN_SW_DEVICE_LIB_CRYPTO_IMPL_ECC_P256_H_
12 #include "sw/device/lib/crypto/drivers/otbn.h"
26 kP256CoordBytes = kP256CoordBits / 8,
30 kP256CoordWords = kP256CoordBytes /
sizeof(uint32_t),
34 kP256ScalarBits = 256,
38 kP256ScalarBytes = kP256ScalarBits / 8,
42 kP256ScalarWords = kP256ScalarBytes /
sizeof(uint32_t),
48 kP256MaskedScalarShareBits = kP256ScalarBits + 64,
52 kP256MaskedScalarShareBytes = kP256MaskedScalarShareBits / 8,
56 kP256MaskedScalarShareWords = kP256MaskedScalarShareBytes /
sizeof(uint32_t),
71 uint32_t
share0[kP256MaskedScalarShareWords];
75 uint32_t
share1[kP256MaskedScalarShareWords];
85 uint32_t
x[kP256CoordWords];
89 uint32_t
y[kP256CoordWords];
98 uint32_t r[kP256ScalarWords];
99 uint32_t s[kP256ScalarWords];
108 uint32_t share0[kP256CoordWords];
109 uint32_t share1[kP256CoordWords];
148 status_t p256_sideload_keygen_start(
void);
172 status_t p256_ecdsa_sign_start(
const uint32_t digest[kP256ScalarWords],
185 status_t p256_ecdsa_sideload_sign_start(
186 const uint32_t digest[kP256ScalarWords]);
215 const uint32_t digest[kP256ScalarWords],