From 43c1de33b4a4e562168c8fc27ca6d39573f53075 Mon Sep 17 00:00:00 2001 From: John Sebastian Peterson Date: Tue, 10 Mar 2015 02:23:30 +0100 Subject: [PATCH] use cryptgenrandom successor in winrt --- ed25519/src/seed.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/ed25519/src/seed.cpp b/ed25519/src/seed.cpp index 63da924c0..e6478a293 100644 --- a/ed25519/src/seed.cpp +++ b/ed25519/src/seed.cpp @@ -3,11 +3,18 @@ #include #include +#include "libtorrent/config.hpp" #include "libtorrent/ed25519.hpp" #ifndef ED25519_NO_SEED -#ifdef _WIN32 +#ifdef TORRENT_WINRT +#include +#include +using namespace Windows::Security::Cryptography; +using namespace Windows::Storage::Streams; +using namespace Microsoft::WRL; +#elif defined _WIN32 #include #include #else @@ -15,7 +22,12 @@ #endif void ed25519_create_seed(unsigned char *seed) { -#ifdef _WIN32 +#ifdef TORRENT_WINRT + IBuffer^ seedBuffer = CryptographicBuffer::GenerateRandom(32); + ComPtr bufferByteAccess; + reinterpret_cast(seedBuffer)->QueryInterface(IID_PPV_ARGS(&bufferByteAccess)); + bufferByteAccess->Buffer(&seed); +#elif defined _WIN32 HCRYPTPROV prov; if (!CryptAcquireContext(&prov, NULL, NULL, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT)) {