summaryrefslogtreecommitdiffstats
path: root/3rd_party/ed25519/seed.c
diff options
context:
space:
mode:
authorGravatar Nikias Bassen2022-02-09 04:04:36 +0100
committerGravatar Nikias Bassen2022-02-09 04:04:36 +0100
commite41dbc3ddbe30a414e73fa25d9c7c304ffe6989e (patch)
tree599c99a2f32bc18f1e9ebc740d0a12d71c49bb10 /3rd_party/ed25519/seed.c
parentee9104bcb8d494b579e122a2dcc94a2b79d38e4b (diff)
downloadlibimobiledevice-e41dbc3ddbe30a414e73fa25d9c7c304ffe6989e.tar.gz
libimobiledevice-e41dbc3ddbe30a414e73fa25d9c7c304ffe6989e.tar.bz2
Add support for wireless pairing
Diffstat (limited to '3rd_party/ed25519/seed.c')
-rw-r--r--3rd_party/ed25519/seed.c40
1 files changed, 40 insertions, 0 deletions
diff --git a/3rd_party/ed25519/seed.c b/3rd_party/ed25519/seed.c
new file mode 100644
index 0000000..11a2e3e
--- /dev/null
+++ b/3rd_party/ed25519/seed.c
@@ -0,0 +1,40 @@
1#include "ed25519.h"
2
3#ifndef ED25519_NO_SEED
4
5#ifdef _WIN32
6#include <windows.h>
7#include <wincrypt.h>
8#else
9#include <stdio.h>
10#endif
11
12int ed25519_create_seed(unsigned char *seed) {
13#ifdef _WIN32
14 HCRYPTPROV prov;
15
16 if (!CryptAcquireContext(&prov, NULL, NULL, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT)) {
17 return 1;
18 }
19
20 if (!CryptGenRandom(prov, 32, seed)) {
21 CryptReleaseContext(prov, 0);
22 return 1;
23 }
24
25 CryptReleaseContext(prov, 0);
26#else
27 FILE *f = fopen("/dev/urandom", "rb");
28
29 if (f == NULL) {
30 return 1;
31 }
32
33 fread(seed, 1, 32, f);
34 fclose(f);
35#endif
36
37 return 0;
38}
39
40#endif