| /* |
| * Copyright (c) 2018 Nordic Semiconductor ASA |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| #include <kernel.h> |
| #include <string.h> |
| #include <openthread/types.h> |
| #include <openthread/platform/random.h> |
| |
| #include "platform-zephyr.h" |
| |
| uint32_t otPlatRandomGet(void) |
| { |
| return sys_rand32_get(); |
| } |
| |
| otError otPlatRandomGetTrue(u8_t *aOutput, u16_t aOutputLength) |
| { |
| int i; |
| u32_t random; |
| |
| if (!aOutput) { |
| return OT_ERROR_INVALID_ARGS; |
| } |
| |
| for (i = 0; i < (aOutputLength & 0xFFFC); i += 4) { |
| random = sys_rand32_get(); |
| memcpy(&aOutput[i], &random, sizeof(random)); |
| } |
| |
| random = sys_rand32_get(); |
| memcpy(&aOutput[i], &random, aOutputLength & 0x0003); |
| |
| return OT_ERROR_NONE; |
| } |