aboutsummaryrefslogtreecommitdiff
path: root/sw/cryptech.h
diff options
context:
space:
mode:
Diffstat (limited to 'sw/cryptech.h')
-rw-r--r--sw/cryptech.h73
1 files changed, 70 insertions, 3 deletions
diff --git a/sw/cryptech.h b/sw/cryptech.h
index 509c4e9..5afd08c 100644
--- a/sw/cryptech.h
+++ b/sw/cryptech.h
@@ -43,6 +43,7 @@
#define SEGMENT_OFFSET_HASHES 1 * SEGMENT_SIZE
#define SEGMENT_OFFSET_RNGS 2 * SEGMENT_SIZE
#define SEGMENT_OFFSET_CIPHERS 3 * SEGMENT_SIZE
+#define SEGMENT_OFFSET_MATH 4 * SEGMENT_SIZE
// addresses and codes common to all cores
@@ -74,6 +75,18 @@
#define COMM_ADDR_NAME1 COMM_ADDR_BASE + ADDR_NAME1
#define COMM_ADDR_VERSION COMM_ADDR_BASE + ADDR_VERSION
+#define NOVENA_BOARD_NAME0 "PVT1"
+#define NOVENA_BOARD_NAME1 " "
+#define NOVENA_BOARD_VERSION "0.10"
+
+#define EIM_INTERFACE_NAME0 "eim "
+#define EIM_INTERFACE_NAME1 " "
+#define EIM_INTERFACE_VERSION "0.10"
+
+#define I2C_INTERFACE_NAME0 "i2c "
+#define I2C_INTERFACE_NAME1 " "
+#define I2C_INTERFACE_VERSION "0.10"
+
//------------------------------------------------------------------
// Hashes segment.
@@ -134,6 +147,18 @@
#define MODE_SHA_384 2 << 2
#define MODE_SHA_512 3 << 2
+#define SHA1_NAME0 "sha1"
+#define SHA1_NAME1 " "
+#define SHA1_VERSION "0.50"
+
+#define SHA256_NAME0 "sha2"
+#define SHA256_NAME1 "-256"
+#define SHA256_VERSION "0.80"
+
+#define SHA512_NAME0 "sha2"
+#define SHA512_NAME1 "-512"
+#define SHA512_VERSION "0.80"
+
//-----------------------------------------------------------------
// TRNG segment.
@@ -141,7 +166,7 @@
#define TRNG_CORE_SIZE 0x100
// addresses and codes for the TRNG cores */
-#define TRNG_ADDR_BASE SEGMENT_OFFSET_RNGS + (0 * TRNG_CORE_SIZE)
+#define TRNG_ADDR_BASE SEGMENT_OFFSET_RNGS + (0x00 * TRNG_CORE_SIZE)
#define TRNG_ADDR_NAME0 TRNG_ADDR_BASE + ADDR_NAME0
#define TRNG_ADDR_NAME1 TRNG_ADDR_BASE + ADDR_NAME1
#define TRNG_ADDR_VERSION TRNG_ADDR_BASE + ADDR_VERSION
@@ -152,7 +177,7 @@
// no status bits defined (yet)
#define TRNG_ADDR_DELAY TRNG_ADDR_BASE + 0x13
-#define ENTROPY1_ADDR_BASE SEGMENT_OFFSET_RNGS + (5 * TRNG_CORE_SIZE)
+#define ENTROPY1_ADDR_BASE SEGMENT_OFFSET_RNGS + (0x05 * TRNG_CORE_SIZE)
#define ENTROPY1_ADDR_NAME0 ENTROPY1_ADDR_BASE + ADDR_NAME0
#define ENTROPY1_ADDR_NAME1 ENTROPY1_ADDR_BASE + ADDR_NAME1
#define ENTROPY1_ADDR_VERSION ENTROPY1_ADDR_BASE + ADDR_VERSION
@@ -163,7 +188,7 @@
#define ENTROPY1_ADDR_ENTROPY ENTROPY1_ADDR_BASE + 0x20
#define ENTROPY1_ADDR_DELTA ENTROPY1_ADDR_BASE + 0x30
-#define ENTROPY2_ADDR_BASE SEGMENT_OFFSET_RNGS + (6 * TRNG_CORE_SIZE)
+#define ENTROPY2_ADDR_BASE SEGMENT_OFFSET_RNGS + (0x06 * TRNG_CORE_SIZE)
#define ENTROPY2_ADDR_NAME0 ENTROPY2_ADDR_BASE + ADDR_NAME0
#define ENTROPY2_ADDR_NAME1 ENTROPY2_ADDR_BASE + ADDR_NAME1
#define ENTROPY2_ADDR_VERSION ENTROPY2_ADDR_BASE + ADDR_VERSION
@@ -202,6 +227,48 @@
#define CSPRNG_ADDR_NBLOCKS_LO CSPRNG_ADDR_BASE + 0x41
#define CSPRNG_ADDR_NBLOCKS_HI CSPRNG_ADDR_BASE + 0x42
+#define TRNG_NAME0 "trng"
+#define TRNG_NAME1 " "
+#define TRNG_VERSION "0.50"
+
+#define AVALANCHE_ENTROPY_NAME0 "extn"
+#define AVALANCHE_ENTROPY_NAME1 "oise"
+#define AVALANCHE_ENTROPY_VERSION "0.10"
+
+#define ROSC_ENTROPY_NAME0 "rosc"
+#define ROSC_ENTROPY_NAME1 " ent"
+#define ROSC_ENTROPY_VERSION "0.10"
+
+#define CSPRNG_NAME0 "cspr"
+#define CSPRNG_NAME1 "ng "
+#define CSPRNG_VERSION "0.50"
+
+
+// -----------------------------------------------------------------
+// MATH segment.
+// -----------------------------------------------------------------
+#define MATH_CORE_SIZE 0x100
+
+// addresses and codes for the MATH cores */
+#define MODEXP_ADDR_BASE SEGMENT_OFFSET_MATH + (0x00 * MATH_CORE_SIZE)
+#define MODEXP_ADDR_NAME0 MODEXP_ADDR_BASE + ADDR_NAME0
+#define MODEXP_ADDR_NAME1 MODEXP_ADDR_BASE + ADDR_NAME1
+#define MODEXP_ADDR_VERSION MODEXP_ADDR_BASE + ADDR_VERSION
+#define MODEXP_ADDR_CTRL MODEXP_ADDR_BASE + 0x08
+#define MODEXP_CTRL_INIT 1
+#define MODEXP_CTRL_NEXT 2
+#define MODEXP_ADDR_STATUS MODEXP_ADDR_BASE + 0x09
+
+#define MODEXP_ADDR_DELAY MODEXP_ADDR_BASE + 0x13
+#define MODEXP_STATUS_READY 1
+
+#define MODEXP_MODULUS_LENGTH MODEXP_ADDR_BASE + 0x20
+#define MODEXP_EXPONENT_LENGTH MODEXP_ADDR_BASE + 0x21
+
+#define MODEXP_NAME0 "mode"
+#define MODEXP_NAME1 "xp "
+#define MODEXP_VERSION "0.50"
+
//------------------------------------------------------------------
// Test case public functions