Require platform TRNG to provide requested output length or error. (#1650)

This commit is contained in:
Jonathan Hui
2017-04-25 09:22:53 -07:00
committed by GitHub
parent adbef3b820
commit 115b52e6c4
10 changed files with 56 additions and 69 deletions
+2 -4
View File
@@ -430,14 +430,14 @@ uint32_t otPlatRandomGet()
return (uint32_t)RtlRandomEx(&Counter.LowPart);
}
ThreadError otPlatRandomSecureGet(uint16_t aInputLength, uint8_t *aOutput, uint16_t *aOutputLength)
ThreadError otPlatRandomGetTrue(uint8_t *aOutput, uint16_t aOutputLength)
{
// Just use the system-preferred random number generator algorithm
NTSTATUS status =
BCryptGenRandom(
NULL,
aOutput,
(ULONG)aInputLength,
(ULONG)aOutputLength,
BCRYPT_USE_SYSTEM_PREFERRED_RNG
);
NT_ASSERT(NT_SUCCESS(status));
@@ -447,8 +447,6 @@ ThreadError otPlatRandomSecureGet(uint16_t aInputLength, uint8_t *aOutput, uint1
return kThreadError_Failed;
}
*aOutputLength = aInputLength;
return kThreadError_None;
}