bigint.h 839 B

1234567891011121314151617181920212223242526272829303132333435
  1. /*
  2. * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. */
  6. #ifndef _ROM_BIGINT_H_
  7. #define _ROM_BIGINT_H_
  8. #include <stdint.h>
  9. #include <stdbool.h>
  10. #ifdef __cplusplus
  11. extern "C" {
  12. #endif
  13. void ets_bigint_enable(void);
  14. void ets_bigint_disable(void);
  15. int ets_bigint_multiply(const uint32_t *x, const uint32_t *y, uint32_t len_words);
  16. int ets_bigint_modmult(const uint32_t *x, const uint32_t *y, const uint32_t *m, uint32_t m_dash, const uint32_t *rb, uint32_t len_words);
  17. int ets_bigint_modexp(const uint32_t *x, const uint32_t *y, const uint32_t *m, uint32_t m_dash, const uint32_t *rb, bool constant_time, uint32_t len_words);
  18. void ets_bigint_wait_finish(void);
  19. int ets_bigint_getz(uint32_t *z, uint32_t len_words);
  20. #ifdef __cplusplus
  21. }
  22. #endif
  23. #endif /* _ROM_BIGINT_H_ */