ed25519-donna-portable.h 580 B

123456789101112131415161718192021222324
  1. #define mul32x32_64(a,b) (((uint64_t)(a))*(b))
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <stdint.h>
  5. #define DONNA_INLINE
  6. #undef ALIGN
  7. #define ALIGN(x) __attribute__((aligned(x)))
  8. static inline void U32TO8_LE(unsigned char *p, const uint32_t v) {
  9. p[0] = (unsigned char)(v );
  10. p[1] = (unsigned char)(v >> 8);
  11. p[2] = (unsigned char)(v >> 16);
  12. p[3] = (unsigned char)(v >> 24);
  13. }
  14. static inline uint32_t U8TO32_LE(const unsigned char *p) {
  15. return
  16. (((uint32_t)(p[0]) ) |
  17. ((uint32_t)(p[1]) << 8) |
  18. ((uint32_t)(p[2]) << 16) |
  19. ((uint32_t)(p[3]) << 24));
  20. }