Enhance otPlatRandomGet API to provide random stream (#471)

* Enhance otPlatRandomGet API to provide random stream
This commit is contained in:
Lu Wang
2016-08-25 23:41:40 -07:00
committed by Jonathan Hui
parent 4d37d0098e
commit 3d04344cc9
3 changed files with 55 additions and 0 deletions
+20
View File
@@ -34,6 +34,9 @@
* This implementation is not a true random number generator and does @em satisfy the Thread requirements.
*/
#include <openthread-types.h>
#include <common/code_utils.hpp>
#include <platform/random.h>
#include "platform-cc2538.h"
@@ -66,3 +69,20 @@ uint32_t otPlatRandomGet(void)
return mlcg;
}
ThreadError otPlatSecureRandomGet(uint16_t aInputLength, uint8_t *aOutput, uint16_t *aOutputLength)
{
ThreadError error = kThreadError_None;
VerifyOrExit(aOutput && aOutputLength, error = kThreadError_InvalidArgs);
for (uint16_t length = 0; length < aInputLength; length++)
{
aOutput[length] = (uint8_t)otPlatRandomGet();
}
*aOutputLength = aInputLength;
exit:
return error;
}
+20
View File
@@ -34,6 +34,9 @@
* This implementation is not a true random number generator and does @em satisfy the Thread requirements.
*/
#include <openthread-types.h>
#include <common/code_utils.hpp>
#include <platform/random.h>
#include "platform-posix.h"
@@ -65,3 +68,20 @@ uint32_t otPlatRandomGet(void)
return mlcg;
}
ThreadError otPlatSecureRandomGet(uint16_t aInputLength, uint8_t *aOutput, uint16_t *aOutputLength)
{
ThreadError error = kThreadError_None;
VerifyOrExit(aOutput && aOutputLength, error = kThreadError_InvalidArgs);
for (uint16_t length = 0; length < aInputLength; length++)
{
aOutput[length] = (uint8_t)otPlatRandomGet();
}
*aOutputLength = aInputLength;
exit:
return error;
}