[sw/dif] Move AES to a single error space.

Part of lowrisc/opentitan#6137

Signed-off-by: Miguel Osorio <miguelosorio@google.com>
diff --git a/sw/device/lib/dif/dif_aes.c b/sw/device/lib/dif/dif_aes.c
index 9a1acdf..e37199d 100644
--- a/sw/device/lib/dif/dif_aes.c
+++ b/sw/device/lib/dif/dif_aes.c
@@ -134,12 +134,12 @@
  * @param cipher_mode_val Cipher Mode register write value.
  * @return `dif_aes_start_result_t`.
  */
-static dif_aes_start_result_t configure(
-    const dif_aes_t *aes, const dif_aes_transaction_t *transaction,
-    aes_mode_field_val_t cipher_mode_val) {
+static dif_aes_result_t configure(const dif_aes_t *aes,
+                                  const dif_aes_transaction_t *transaction,
+                                  aes_mode_field_val_t cipher_mode_val) {
   aes_key_field_val_t key_len_val = key_to_field(transaction->key_len);
   if (key_len_val == kAesKeyFieldValInvalid) {
-    return kDifAesStartError;
+    return kDifAesError;
   }
 
   uint32_t reg =
@@ -172,7 +172,7 @@
 
   aes_shadowed_write(aes->params.base_addr, AES_CTRL_SHADOWED_REG_OFFSET, reg);
 
-  return kDifAesStartOk;
+  return kDifAesOk;
 }
 
 /**
@@ -202,9 +202,9 @@
   return kDifAesOk;
 }
 
-dif_aes_reset_result_t dif_aes_reset(const dif_aes_t *aes) {
+dif_aes_result_t dif_aes_reset(const dif_aes_t *aes) {
   if (aes == NULL) {
-    return kDifAesResetBadArg;
+    return kDifAesBadArg;
   }
 
   aes_clear_internal_state(aes);
@@ -221,23 +221,22 @@
 
   aes_shadowed_write(aes->params.base_addr, AES_CTRL_SHADOWED_REG_OFFSET, reg);
 
-  return kDifAesResetOk;
+  return kDifAesOk;
 }
 
-dif_aes_start_result_t dif_aes_start_ecb(
-    const dif_aes_t *aes, const dif_aes_transaction_t *transaction,
-    dif_aes_key_share_t key) {
+dif_aes_result_t dif_aes_start_ecb(const dif_aes_t *aes,
+                                   const dif_aes_transaction_t *transaction,
+                                   dif_aes_key_share_t key) {
   if (aes == NULL || transaction == NULL) {
-    return kDifAesStartBadArg;
+    return kDifAesBadArg;
   }
 
   if (!aes_idle(aes)) {
-    return kDifAesStartBusy;
+    return kDifAesBusy;
   }
 
-  dif_aes_start_result_t result =
-      configure(aes, transaction, kAesModeFieldValEcb);
-  if (result != kDifAesStartOk) {
+  dif_aes_result_t result = configure(aes, transaction, kAesModeFieldValEcb);
+  if (result != kDifAesOk) {
     return result;
   }
 
@@ -247,23 +246,22 @@
   aes_set_multireg(aes, &key.share1[0], AES_KEY_SHARE1_MULTIREG_COUNT,
                    AES_KEY_SHARE1_0_REG_OFFSET);
 
-  return kDifAesStartOk;
+  return kDifAesOk;
 }
 
-dif_aes_start_result_t dif_aes_start_cbc(
-    const dif_aes_t *aes, const dif_aes_transaction_t *transaction,
-    dif_aes_key_share_t key, dif_aes_iv_t iv) {
+dif_aes_result_t dif_aes_start_cbc(const dif_aes_t *aes,
+                                   const dif_aes_transaction_t *transaction,
+                                   dif_aes_key_share_t key, dif_aes_iv_t iv) {
   if (aes == NULL || transaction == NULL) {
-    return kDifAesStartBadArg;
+    return kDifAesBadArg;
   }
 
   if (!aes_idle(aes)) {
-    return kDifAesStartBusy;
+    return kDifAesBusy;
   }
 
-  dif_aes_start_result_t result =
-      configure(aes, transaction, kAesModeFieldValCbc);
-  if (result != kDifAesStartOk) {
+  dif_aes_result_t result = configure(aes, transaction, kAesModeFieldValCbc);
+  if (result != kDifAesOk) {
     return result;
   }
 
@@ -275,23 +273,22 @@
 
   aes_set_multireg(aes, &iv.iv[0], AES_IV_MULTIREG_COUNT, AES_IV_0_REG_OFFSET);
 
-  return kDifAesStartOk;
+  return kDifAesOk;
 }
 
-dif_aes_start_result_t dif_aes_start_ctr(
-    const dif_aes_t *aes, const dif_aes_transaction_t *transaction,
-    dif_aes_key_share_t key, dif_aes_iv_t iv) {
+dif_aes_result_t dif_aes_start_ctr(const dif_aes_t *aes,
+                                   const dif_aes_transaction_t *transaction,
+                                   dif_aes_key_share_t key, dif_aes_iv_t iv) {
   if (aes == NULL || transaction == NULL) {
-    return kDifAesStartBadArg;
+    return kDifAesBadArg;
   }
 
   if (!aes_idle(aes)) {
-    return kDifAesStartBusy;
+    return kDifAesBusy;
   }
 
-  dif_aes_start_result_t result =
-      configure(aes, transaction, kAesModeFieldValCtr);
-  if (result != kDifAesStartOk) {
+  dif_aes_result_t result = configure(aes, transaction, kAesModeFieldValCtr);
+  if (result != kDifAesOk) {
     return result;
   }
 
@@ -303,47 +300,47 @@
 
   aes_set_multireg(aes, &iv.iv[0], AES_IV_MULTIREG_COUNT, AES_IV_0_REG_OFFSET);
 
-  return kDifAesStartOk;
+  return kDifAesOk;
 }
 
-dif_aes_end_result_t dif_aes_end(const dif_aes_t *aes) {
+dif_aes_result_t dif_aes_end(const dif_aes_t *aes) {
   if (aes == NULL) {
-    return kDifAesEndBadArg;
+    return kDifAesBadArg;
   }
 
   if (!aes_idle(aes)) {
-    return kDifAesEndBusy;
+    return kDifAesBusy;
   }
 
   aes_clear_internal_state(aes);
 
-  return kDifAesEndOk;
+  return kDifAesOk;
 }
 
-dif_aes_load_data_result_t dif_aes_load_data(const dif_aes_t *aes,
-                                             const dif_aes_data_t data) {
+dif_aes_result_t dif_aes_load_data(const dif_aes_t *aes,
+                                   const dif_aes_data_t data) {
   if (aes == NULL) {
-    return kDifAesLoadDataBadArg;
+    return kDifAesBadArg;
   }
 
   if (!aes_input_ready(aes)) {
-    return kDifAesLoadDataBusy;
+    return kDifAesBusy;
   }
 
   aes_set_multireg(aes, &data.data[0], AES_DATA_IN_MULTIREG_COUNT,
                    AES_DATA_IN_0_REG_OFFSET);
 
-  return kDifAesLoadDataOk;
+  return kDifAesOk;
 }
 
-dif_aes_read_output_result_t dif_aes_read_output(const dif_aes_t *aes,
-                                                 dif_aes_data_t *data) {
+dif_aes_result_t dif_aes_read_output(const dif_aes_t *aes,
+                                     dif_aes_data_t *data) {
   if (aes == NULL || data == NULL) {
-    return kDifAesReadOutputBadArg;
+    return kDifAesBadArg;
   }
 
   if (!aes_output_valid(aes)) {
-    return kDifAesReadOutputInvalid;
+    return kDifAesOutputInvalid;
   }
 
   for (int i = 0; i < AES_DATA_OUT_MULTIREG_COUNT; ++i) {
@@ -352,7 +349,7 @@
     data->data[i] = mmio_region_read32(aes->params.base_addr, offset);
   }
 
-  return kDifAesReadOutputOk;
+  return kDifAesOk;
 }
 
 dif_aes_result_t dif_aes_trigger(const dif_aes_t *aes,
diff --git a/sw/device/lib/dif/dif_aes.h b/sw/device/lib/dif/dif_aes.h
index 968d3f1..bca4e5f 100644
--- a/sw/device/lib/dif/dif_aes.h
+++ b/sw/device/lib/dif/dif_aes.h
@@ -5,11 +5,6 @@
 #ifndef OPENTITAN_SW_DEVICE_LIB_DIF_DIF_AES_H_
 #define OPENTITAN_SW_DEVICE_LIB_DIF_DIF_AES_H_
 
-/**
- * @file
- * @brief <a href="/hw/ip/aes/doc/">AES</a> Device Interface Functions
- */
-
 #include <stdbool.h>
 #include <stdint.h>
 
@@ -21,6 +16,10 @@
 #endif  // __cplusplus
 
 /**
+ *
+ * @file
+ * @brief <a href="/hw/ip/aes/doc/">AES</a> Device Interface Functions
+ *
  * This API assumes transactional nature of work, where the peripheral is
  * configured once per message (data consisting of 1..N 128-bit blocks), and
  * then "de-initialised" when this message has been fully encrypted/decrypted.
@@ -212,6 +211,14 @@
    * When this value is returned, no hardware operations occurred.
    */
   kDifAesBadArg = 2,
+  /**
+   * Device is busy, and cannot perform the requested operation.
+   */
+  kDifAesBusy,
+  /**
+   * The AES unit has no valid output.
+   */
+  kDifAesOutputInvalid,
 } dif_aes_result_t;
 
 /**
@@ -227,31 +234,6 @@
 dif_aes_result_t dif_aes_init(dif_aes_params_t params, dif_aes_t *aes);
 
 /**
- * The result of a AES reset operation.
- */
-typedef enum dif_aes_reset_result {
-  /**
-   * Indicates that the operation succeeded.
-   */
-  kDifAesResetOk = kDifAesOk,
-  /**
-   * Indicates some unspecified failure.
-   */
-  kDifAesResetError = kDifAesError,
-  /**
-   * Indicates that some parameter passed into a function failed a
-   * precondition.
-   *
-   * When this value is returned, no hardware operations occurred.
-   */
-  kDifAesResetBadArg = kDifAesBadArg,
-  /**
-   * Device is busy, and cannot perform the requested operation.
-   */
-  kDifAesResetBusy,
-} dif_aes_reset_result_t;
-
-/**
  * Resets an instance of AES.
  *
  * Clears the internal state along with the interface registers.
@@ -260,32 +242,7 @@
  * @return The result of the operation.
  */
 DIF_WARN_UNUSED_RESULT
-dif_aes_reset_result_t dif_aes_reset(const dif_aes_t *aes);
-
-/**
- * The result of a AES start operation.
- */
-typedef enum dif_aes_start_result {
-  /**
-   * Indicates that the operation succeeded.
-   */
-  kDifAesStartOk = kDifAesOk,
-  /**
-   * Indicates some unspecified failure.
-   */
-  kDifAesStartError = kDifAesError,
-  /**
-   * Indicates that some parameter passed into a function failed a
-   * precondition.
-   *
-   * When this value is returned, no hardware operations occurred.
-   */
-  kDifAesStartBadArg = kDifAesBadArg,
-  /**
-   * Device is busy, and cannot perform the requested operation.
-   */
-  kDifAesStartBusy,
-} dif_aes_start_result_t;
+dif_aes_result_t dif_aes_reset(const dif_aes_t *aes);
 
 /**
  * Begins an AES transaction in ECB mode.
@@ -299,18 +256,17 @@
  * Note: it is discouraged to use this cipher mode, due to inpractical amount
  *       of different keys required to encrypt/decrypt multi-block messages.
  *
- * The peripheral must be in IDLE state for this operation to take
- * effect, and will return `kDifAesStartBusy` if this condition is not
- * met.
+ * The peripheral must be in IDLE state for this operation to take effect, and
+ * will return `kDifAesBusy` if this condition is not met.
  *
  * @param aes AES state data.
  * @param transaction Configuration data.
  * @return The result of the operation.
  */
 DIF_WARN_UNUSED_RESULT
-dif_aes_start_result_t dif_aes_start_ecb(
-    const dif_aes_t *aes, const dif_aes_transaction_t *transaction,
-    dif_aes_key_share_t key);
+dif_aes_result_t dif_aes_start_ecb(const dif_aes_t *aes,
+                                   const dif_aes_transaction_t *transaction,
+                                   dif_aes_key_share_t key);
 
 /**
  * Begins an AES transaction in CBC mode.
@@ -335,9 +291,9 @@
  * @return The result of the operation.
  */
 DIF_WARN_UNUSED_RESULT
-dif_aes_start_result_t dif_aes_start_cbc(
-    const dif_aes_t *aes, const dif_aes_transaction_t *transaction,
-    dif_aes_key_share_t key, dif_aes_iv_t iv);
+dif_aes_result_t dif_aes_start_cbc(const dif_aes_t *aes,
+                                   const dif_aes_transaction_t *transaction,
+                                   dif_aes_key_share_t key, dif_aes_iv_t iv);
 
 /**
  * Begins an AES transaction in CTR mode.
@@ -360,34 +316,9 @@
  * @return The result of the operation.
  */
 DIF_WARN_UNUSED_RESULT
-dif_aes_start_result_t dif_aes_start_ctr(
-    const dif_aes_t *aes, const dif_aes_transaction_t *transaction,
-    dif_aes_key_share_t key, dif_aes_iv_t iv);
-
-/**
- * The result of an AES end operation.
- */
-typedef enum dif_aes_end_result {
-  /**
-   * Indicates that the operation succeeded.
-   */
-  kDifAesEndOk = kDifAesOk,
-  /**
-   * Indicates some unspecified failure.
-   */
-  kDifAesEndError = kDifAesError,
-  /**
-   * Indicates that some parameter passed into a function failed a
-   * precondition.
-   *
-   * When this value is returned, no hardware operations occurred.
-   */
-  kDifAesEndBadArg = kDifAesBadArg,
-  /**
-   * Device is busy, and cannot perform the requested operation.
-   */
-  kDifAesEndBusy,
-} dif_aes_end_result_t;
+dif_aes_result_t dif_aes_start_ctr(const dif_aes_t *aes,
+                                   const dif_aes_transaction_t *transaction,
+                                   dif_aes_key_share_t key, dif_aes_iv_t iv);
 
 /**
  * Ends an AES transaction.
@@ -402,32 +333,7 @@
  * @return The result of the operation.
  */
 DIF_WARN_UNUSED_RESULT
-dif_aes_end_result_t dif_aes_end(const dif_aes_t *aes);
-
-/**
- * The result of an AES load data operation.
- */
-typedef enum dif_aes_load_data_result {
-  /**
-   * Indicates that the operation succeeded.
-   */
-  kDifAesLoadDataOk = kDifAesOk,
-  /**
-   * Indicates some unspecified failure.
-   */
-  kDifAesLoadDataError = kDifAesError,
-  /**
-   * Indicates that some parameter passed into a function failed a
-   * precondition.
-   *
-   * When this value is returned, no hardware operations occurred.
-   */
-  kDifAesLoadDataBadArg = kDifAesBadArg,
-  /**
-   * Device is busy, and cannot perform the requested operation.
-   */
-  kDifAesLoadDataBusy,
-} dif_aes_load_data_result_t;
+dif_aes_result_t dif_aes_end(const dif_aes_t *aes);
 
 /**
  * Loads AES Input Data.
@@ -443,33 +349,8 @@
  * @return The result of the operation.
  */
 DIF_WARN_UNUSED_RESULT
-dif_aes_load_data_result_t dif_aes_load_data(const dif_aes_t *aes,
-                                             const dif_aes_data_t data);
-
-/**
- * The result of an AES data read operation.
- */
-typedef enum dif_aes_read_data_result {
-  /**
-   * Indicates that the operation succeeded.
-   */
-  kDifAesReadOutputOk = kDifAesOk,
-  /**
-   * Indicates some unspecified failure.
-   */
-  kDifAesReadOutputError = kDifAesError,
-  /**
-   * Indicates that some parameter passed into a function failed a
-   * precondition.
-   *
-   * When this value is returned, no hardware operations occurred.
-   */
-  kDifAesReadOutputBadArg = kDifAesBadArg,
-  /**
-   * The AES unit has no valid output.
-   */
-  kDifAesReadOutputInvalid,
-} dif_aes_read_output_result_t;
+dif_aes_result_t dif_aes_load_data(const dif_aes_t *aes,
+                                   const dif_aes_data_t data);
 
 /**
  * Reads AES Output Data.
@@ -483,8 +364,8 @@
  * @return The result of the operation.
  */
 DIF_WARN_UNUSED_RESULT
-dif_aes_read_output_result_t dif_aes_read_output(const dif_aes_t *aes,
-                                                 dif_aes_data_t *data);
+dif_aes_result_t dif_aes_read_output(const dif_aes_t *aes,
+                                     dif_aes_data_t *data);
 
 /**
  * AES Trigger flags.
diff --git a/sw/device/tests/dif/dif_aes_smoketest.c b/sw/device/tests/dif/dif_aes_smoketest.c
index 318c09c..4daf33b 100644
--- a/sw/device/tests/dif/dif_aes_smoketest.c
+++ b/sw/device/tests/dif/dif_aes_smoketest.c
@@ -83,7 +83,7 @@
       .base_addr = mmio_region_from_addr(TOP_EARLGREY_AES_BASE_ADDR),
   };
   CHECK(dif_aes_init(params, &aes) == kDifAesOk);
-  CHECK(dif_aes_reset(&aes) == kDifAesResetOk);
+  CHECK(dif_aes_reset(&aes) == kDifAesOk);
 
   // Mask the key. Note that this should not be done manually. Software is
   // expected to get the key in two shares right from the beginning.
@@ -103,7 +103,7 @@
       .mode = kDifAesModeEncrypt,
       .operation = kDifAesOperationAuto,
   };
-  CHECK(dif_aes_start_ecb(&aes, &transaction, key) == kDifAesStartOk);
+  CHECK(dif_aes_start_ecb(&aes, &transaction, key) == kDifAesOk);
 
   // "Convert" plain data byte arrays to `dif_aes_data_t`.
   dif_aes_data_t in_data_plain;
@@ -112,16 +112,16 @@
   // Load the plain text to trigger the encryption operation.
   while (!aes_input_ready(&aes)) {
   }
-  CHECK(dif_aes_load_data(&aes, in_data_plain) == kDifAesLoadDataOk);
+  CHECK(dif_aes_load_data(&aes, in_data_plain) == kDifAesOk);
 
   // Read out the produced cipher text.
   dif_aes_data_t out_data_cipher;
   while (!aes_output_valid(&aes)) {
   }
-  CHECK(dif_aes_read_output(&aes, &out_data_cipher) == kDifAesReadOutputOk);
+  CHECK(dif_aes_read_output(&aes, &out_data_cipher) == kDifAesOk);
 
   // Finish the ECB encryption transaction.
-  CHECK(dif_aes_end(&aes) == kDifAesEndOk);
+  CHECK(dif_aes_end(&aes) == kDifAesOk);
 
   // Check the produced cipher text against the reference.
   uint32_t cipher_text_gold_words[TEXT_LENGTH_IN_WORDS];
@@ -134,22 +134,22 @@
 
   // Setup ECB decryption transaction.
   transaction.mode = kDifAesModeDecrypt;
-  CHECK(dif_aes_start_ecb(&aes, &transaction, key) == kDifAesStartOk);
+  CHECK(dif_aes_start_ecb(&aes, &transaction, key) == kDifAesOk);
 
   // Load the previously produced cipher text to start the decryption operation.
   while (!aes_input_ready(&aes)) {
   }
-  CHECK(dif_aes_load_data(&aes, out_data_cipher) == kDifAesLoadDataOk);
+  CHECK(dif_aes_load_data(&aes, out_data_cipher) == kDifAesOk);
 
   // Read out the produced plain text.
 
   dif_aes_data_t out_data_plain;
   while (!aes_output_valid(&aes)) {
   }
-  CHECK(dif_aes_read_output(&aes, &out_data_plain) == kDifAesReadOutputOk);
+  CHECK(dif_aes_read_output(&aes, &out_data_plain) == kDifAesOk);
 
   // Finish the ECB encryption transaction.
-  CHECK(dif_aes_end(&aes) == kDifAesEndOk);
+  CHECK(dif_aes_end(&aes) == kDifAesOk);
 
   // Check the produced plain text against the reference.
   uint32_t plain_text_gold_words[TEXT_LENGTH_IN_WORDS];