5 #ifndef OPENTITAN_SW_DEVICE_LIB_CRYPTO_IMPL_ECC_P384_H_
6 #define OPENTITAN_SW_DEVICE_LIB_CRYPTO_IMPL_ECC_P384_H_
12 #include "sw/device/lib/crypto/drivers/otbn.h"
26 kP384CoordBytes = kP384CoordBits / 8,
30 kP384CoordWords = kP384CoordBytes /
sizeof(uint32_t),
34 kP384ScalarBits = 384,
38 kP384ScalarBytes = kP384ScalarBits / 8,
42 kP384ScalarWords = kP384ScalarBytes /
sizeof(uint32_t),
48 kP384MaskedScalarShareBits = kP384ScalarBits + 64,
52 kP384MaskedScalarShareBytes = kP384MaskedScalarShareBits / 8,
56 kP384MaskedScalarShareWords = kP384MaskedScalarShareBytes /
sizeof(uint32_t),
71 uint32_t
share0[kP384MaskedScalarShareWords];
75 uint32_t
share1[kP384MaskedScalarShareWords];
85 uint32_t
x[kP384CoordWords];
89 uint32_t
y[kP384CoordWords];
98 uint32_t r[kP384ScalarWords];
99 uint32_t s[kP384ScalarWords];
108 uint32_t share0[kP384CoordWords];
109 uint32_t share1[kP384CoordWords];
148 status_t p384_sideload_keygen_start(
void);
172 status_t p384_ecdsa_sign_start(
const uint32_t digest[kP384ScalarWords],
185 status_t p384_ecdsa_sideload_sign_start(
186 const uint32_t digest[kP384ScalarWords]);
215 const uint32_t digest[kP384ScalarWords],