No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 

42 líneas
701 B

  1. /*
  2. This code was taken from the SPHINCS reference implementation and is public domain.
  3. */
  4. #include <fcntl.h>
  5. #include <unistd.h>
  6. static int fd = -1;
  7. void randombytes(unsigned char *x, unsigned long long xlen)
  8. {
  9. int i;
  10. if (fd == -1) {
  11. for (;;) {
  12. fd = open("/dev/urandom", O_RDONLY);
  13. if (fd != -1) {
  14. break;
  15. }
  16. sleep(1);
  17. }
  18. }
  19. while (xlen > 0) {
  20. if (xlen < 1048576) {
  21. i = xlen;
  22. }
  23. else {
  24. i = 1048576;
  25. }
  26. i = read(fd, x, i);
  27. if (i < 1) {
  28. sleep(1);
  29. continue;
  30. }
  31. x += i;
  32. xlen -= i;
  33. }
  34. }