LWS_VISIBLE int lws_get_random(struct lws_context *context, void *buf, int len) { TEE_GenerateRandom(buf, len); return len; }
TEE_Result ta_entry_random_number_generate(uint32_t param_type, TEE_Param params[4]) { ASSERT_PARAM_TYPE(TEE_PARAM_TYPES (TEE_PARAM_TYPE_MEMREF_OUTPUT, TEE_PARAM_TYPE_NONE, TEE_PARAM_TYPE_NONE, TEE_PARAM_TYPE_NONE)); TEE_GenerateRandom(params[0].memref.buffer, params[0].memref.size); return TEE_SUCCESS; }
int rand(void) { int rc; TEE_GenerateRandom(&rc, sizeof(rc)); /* * RAND_MAX is the larges int, INT_MAX which is all bits but the * highest bit set. */ return rc & RAND_MAX; }
static TEE_Result invoke_get_random(uint32_t param_types, TEE_Param params[4]) { uint8_t *random_data; uint32_t data_length; uint32_t exp_param_types = TEE_PARAM_TYPES(TEE_PARAM_TYPE_MEMREF_INOUT, TEE_PARAM_TYPE_NONE, TEE_PARAM_TYPE_NONE, TEE_PARAM_TYPE_NONE); DMSG("has been called"); if (param_types != exp_param_types) return TEE_ERROR_BAD_PARAMETERS; random_data = params[0].memref.buffer; data_length = params[0].memref.size; TEE_GenerateRandom(random_data, data_length); return TEE_SUCCESS; }