[sw/sca] Refactor and rename constants and params, cleanup some related code

Signed-off-by: Alphan Ulusoy <alphan@google.com>
diff --git a/sw/device/sca/aes_serial/aes_serial.c b/sw/device/sca/aes_serial/aes_serial.c
index a691056..c9d0366 100644
--- a/sw/device/sca/aes_serial/aes_serial.c
+++ b/sw/device/sca/aes_serial/aes_serial.c
@@ -25,14 +25,38 @@
 static dif_rv_timer_t timer;
 static dif_uart_t uart;
 
-// UART input maximum buffer sizes
-static const uint32_t kMaxInputLengthText = 128;
-static const uint32_t kMaxInputLengthBin = 64;
-
-// AES Configuration parameters. These values must match the test driving
-// side.
-static const uint32_t kAesBlockSize = 16;
-static const uint32_t kAesKeySize = 16;
+enum {
+  kAesKeySize = 16,
+  /**
+   * Number of cycles (at `kClockFreqCpuHz`) that Ibex should sleep to minimize
+   * noise during AES operations. Caution: This number should be chosen to
+   * provide enough time. Otherwise, Ibex might wake up while AES is still busy
+   * and disturb the capture. Currently, we use a start trigger delay of 40
+   * clock cycles and the scope captures 18 clock cycles at kClockFreqCpuHz (180
+   * samples). The latter number will likely increase as we improve the security
+   * hardening.
+   */
+  kIbexAesSleepCycles = 200,
+  /**
+   * GPIO capture trigger values.
+   */
+  kGpioCaptureTriggerHigh = 0x08200,
+  kGpioCaptureTriggerLow = 0x00000,
+  /**
+   * RV timer settings.
+   */
+  kRvTimerComparator = 0,
+  kRvTimerHart = kTopEarlgreyPlicTargetIbex0,
+  /**
+   * UART constants.
+   */
+  kUartMaxRxSizeText = 128,
+  kUartMaxRxSizeBin = 64,
+  /**
+   * Simple serial protocol version 1.1.
+   */
+  kSimpleSerialProtocolVersion = 1,
+};
 
 // Simple serial status codes
 typedef enum simple_serial_result {
@@ -40,23 +64,6 @@
   kSimpleSerialError = 1
 } simple_serial_result_t;
 
-// Simple serial protocol version 1.1
-static const uint32_t kSimpleSerialProtocolVersion = 1;
-
-// GPIO capture trigger values
-static const uint32_t kGpioCaptureTriggerHigh = 0x08200;
-static const uint32_t kGpioCaptureTriggerLow = 0x00000;
-
-// RV Timer settings
-static const uint32_t kHart = (uint32_t)kTopEarlgreyPlicTargetIbex0;
-static const uint32_t kComparator = 0;
-static const uint64_t kDeadline = 200;  // 200 clock cycles at kClockFreqCpuHz
-// Caution: This number should be chosen to provide enough time. Otherwise,
-// Ibex might wake up while AES is still busy and disturb the capture.
-// Currently, we use a start trigger delay of 40 clock cycles and the scope
-// captures 18 clock cycles at kClockFreqCpuHz (180 samples). The latter number
-// will likely increase as we improve the security hardening.
-
 // TODO: Remove once there is a CHECK version that does not require test
 // library dependencies.
 #define CHECK(condition, ...)                             \
@@ -143,17 +150,6 @@
 }
 
 /**
- * Return number of AES blocks from `plain_text_len`.
- */
-static size_t get_num_blocks(size_t plain_text_len) {
-  size_t num_blocks = plain_text_len / kAesBlockSize;
-  if ((plain_text_len - (num_blocks * kAesBlockSize)) > 0) {
-    ++num_blocks;
-  }
-  return num_blocks;
-}
-
-/**
  * Simple serial set AES key command.
  *
  * @param aes_cfg AES configuration object.
@@ -186,25 +182,24 @@
  * Simple serial trigger AES encryption command.
  *
  * @param aes_cfg        AES configuration object.
- * @param plain_text     plain text to be encrypted.
- * @param plain_text_len plain text length.
+ * @param plaintext     plain text to be encrypted.
+ * @param plaintext_len plain text length.
  *
  * @return kSimpleSerialOk on success, kSimpleSerialError otherwise.
  */
 static simple_serial_result_t simple_serial_trigger_encryption(
-    const uint8_t *plain_text, size_t plain_text_len) {
-  if (plain_text_len > kMaxInputLengthBin) {
+    const uint8_t *plaintext, size_t plaintext_len) {
+  if (plaintext_len > kUartMaxRxSizeBin) {
     return kSimpleSerialError;
   }
 
-  uint8_t cipher_text[64];
-  size_t num_blocks = get_num_blocks(plain_text_len);
-  if (num_blocks != 1) {
+  uint8_t ciphertext[64];
+  if (plaintext_len != kAesKeySize) {
     return kSimpleSerialError;
   }
 
   // Provide input data to AES.
-  aes_data_put_wait(plain_text);
+  aes_data_put_wait(plaintext);
 
   // Arm capture trigger. The actual trigger signal used for capture is a
   // combination (logical AND) of:
@@ -216,12 +211,13 @@
 
   // Start timer to wake up Ibex after AES is done.
   uint64_t current_time;
-  SS_CHECK(dif_rv_timer_counter_read(&timer, kHart, &current_time) ==
+  SS_CHECK(dif_rv_timer_counter_read(&timer, kRvTimerHart, &current_time) ==
            kDifRvTimerOk);
-  SS_CHECK(dif_rv_timer_arm(&timer, kHart, kComparator,
-                            current_time + kDeadline) == kDifRvTimerOk);
+  SS_CHECK(dif_rv_timer_arm(&timer, kRvTimerHart, kRvTimerComparator,
+                            current_time + kIbexAesSleepCycles) ==
+           kDifRvTimerOk);
   SS_CHECK(dif_rv_timer_counter_set_enabled(
-               &timer, kHart, kDifRvTimerEnabled) == kDifRvTimerOk);
+               &timer, kRvTimerHart, kDifRvTimerEnabled) == kDifRvTimerOk);
 
   // Start AES operation (this triggers the capture) and go to sleep.
   // Using the SecAesStartTriggerDelay hardware parameter, the AES unit is
@@ -234,9 +230,9 @@
   SS_CHECK(dif_gpio_write_all(&gpio, kGpioCaptureTriggerLow) == kDifGpioOk);
 
   // Retrieve output data from AES.
-  aes_data_get_wait(cipher_text);
+  aes_data_get_wait(ciphertext);
 
-  print_cmd_response('r', cipher_text, plain_text_len);
+  print_cmd_response('r', ciphertext, plaintext_len);
   return kSimpleSerialOk;
 }
 
@@ -251,7 +247,7 @@
                                          const uint8_t *cmd, size_t cmd_len) {
   // Data length is half the size of the hex encoded string.
   const size_t data_len = cmd_len >> 1;
-  if (data_len >= kMaxInputLengthBin) {
+  if (data_len >= kUartMaxRxSizeBin) {
     return;
   }
   uint8_t data[64] = {0};
@@ -263,7 +259,7 @@
   }
 
   if (cmd[0] == 'v') {
-    print_cmd_response('z', (const uint8_t *)&kSimpleSerialProtocolVersion,
+    print_cmd_response('z', (uint8_t[1]){kSimpleSerialProtocolVersion},
                        /*data_len=*/1);
     return;
   }
@@ -312,9 +308,9 @@
   CHECK(dif_rv_timer_approximate_tick_params(kClockFreqPeripheralHz,
                                              kClockFreqCpuHz, &tick_params) ==
         kDifRvTimerApproximateTickParamsOk);
-  CHECK(dif_rv_timer_set_tick_params(&timer, kHart, tick_params) ==
+  CHECK(dif_rv_timer_set_tick_params(&timer, kRvTimerHart, tick_params) ==
         kDifRvTimerOk);
-  CHECK(dif_rv_timer_irq_enable(&timer, kHart, kComparator,
+  CHECK(dif_rv_timer_irq_enable(&timer, kRvTimerHart, kRvTimerComparator,
                                 kDifRvTimerEnabled) == kDifRvTimerOk);
 
   dif_gpio_params_t gpio_params = {
@@ -351,18 +347,19 @@
       // Going over the maxium buffer size will result in corrupting the input
       // buffer. This is okay in this case since we control the script used
       // to drive the UART input.
-      pos = (pos + 1) % kMaxInputLengthText;
+      pos = (pos + 1) % kUartMaxRxSizeText;
     }
   }
 }
 
 void handler_irq_timer(void) {
   bool irq_flag;
-  CHECK(dif_rv_timer_irq_get(&timer, kHart, kComparator, &irq_flag) ==
-        kDifRvTimerOk);
+  CHECK(dif_rv_timer_irq_get(&timer, kRvTimerHart, kRvTimerComparator,
+                             &irq_flag) == kDifRvTimerOk);
   CHECK(irq_flag, "Entered IRQ handler but the expected IRQ flag wasn't set!");
 
-  CHECK(dif_rv_timer_counter_set_enabled(&timer, kHart, kDifRvTimerDisabled) ==
+  CHECK(dif_rv_timer_counter_set_enabled(&timer, kRvTimerHart,
+                                         kDifRvTimerDisabled) == kDifRvTimerOk);
+  CHECK(dif_rv_timer_irq_clear(&timer, kRvTimerHart, kRvTimerComparator) ==
         kDifRvTimerOk);
-  CHECK(dif_rv_timer_irq_clear(&timer, kHart, kComparator) == kDifRvTimerOk);
 }