| // Copyright lowRISC contributors. |
| // Licensed under the Apache License, Version 2.0, see LICENSE for details. |
| // SPDX-License-Identifier: Apache-2.0 |
| |
| #ifndef OPENTITAN_SW_DEVICE_TESTS_OTBN_RANDOMNESS_IMPL_H_ |
| #define OPENTITAN_SW_DEVICE_TESTS_OTBN_RANDOMNESS_IMPL_H_ |
| |
| #include <stdbool.h> |
| |
| #include "sw/device/lib/dif/dif_otbn.h" |
| |
| /** |
| * Starts OTBN randomness test. |
| * |
| * Requires EDN0 and EDN1 to be serving entropy, as well as an initialized |
| * `otbn` runtime handle. A Randomness test is loaded into OTBN. Use the |
| * `otbn_randomness_test_end()` function to check the test status. This function |
| * is non-blocking. |
| * |
| * @param otbn A OTBN dif handle. |
| */ |
| void otbn_randomness_test_start(dif_otbn_t *otbn); |
| |
| /** |
| * Checks the OTBN randomness test result. |
| * |
| * This function must be called after `otbn_randomness_test_start()`. |
| * |
| * @param otbn A OTBN dif handle. |
| * @param skip_otbn_done_check Set to true to skip OTBN done execution check. |
| * The check is blocking. |
| * @returns true on test pass, false otherwise. |
| */ |
| bool otbn_randomness_test_end(dif_otbn_t *otbn, bool skip_otbn_done_check); |
| |
| /** |
| * Prints the randomness data generated by the test. |
| * |
| * This function must be called after OTBN is done executing the program loaded |
| * by the `otbn_randomness_test_start()` function. |
| * |
| * @param otbn A OTBN dif handle. |
| */ |
| void otbn_randomness_test_log_results(dif_otbn_t *otbn); |
| |
| #endif // OPENTITAN_SW_DEVICE_TESTS_OTBN_RANDOMNESS_IMPL_H_ |