$OpenBSD: patch-ed25519_src_seed_c,v 1.1 2021/09/09 11:53:11 bluhm Exp $

Use arc4random(3) instead of /dev/urandom.

Index: ed25519/src/seed.c
--- ed25519/src/seed.c.orig
+++ ed25519/src/seed.c
@@ -2,37 +2,10 @@
 
 #ifndef ED25519_NO_SEED
 
-#ifdef _WIN32
-#include <windows.h>
-#include <wincrypt.h>
-#else
-#include <stdio.h>
-#endif
+#include <stdlib.h>
 
 int ed25519_create_seed(unsigned char *seed) {
-#ifdef _WIN32
-    HCRYPTPROV prov;
-
-    if (!CryptAcquireContext(&prov, NULL, NULL, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT))  {
-        return 1;
-    }
-
-    if (!CryptGenRandom(prov, 32, seed))  {
-        CryptReleaseContext(prov, 0);
-        return 1;
-    }
-
-    CryptReleaseContext(prov, 0);
-#else
-    FILE *f = fopen("/dev/urandom", "rb");
-
-    if (f == NULL) {
-        return 1;
-    }
-
-    fread(seed, 1, 32, f);
-    fclose(f);
-#endif
+    arc4random_buf(seed, 32);
 
     return 0;
 }
