summaryrefslogtreecommitdiffstats
path: root/libc-bottom-half/sources/getentropy.c
blob: e540e7e319d6b8f3463993da6ed93e3303b8d801 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <errno.h>
#include <unistd.h>
#include <wasi/api.h>

int __getentropy(void *buffer, size_t len) {
    if (len > 256) {
        errno = EIO;
        return -1;
    }

    int r = __wasi_random_get(buffer, len);

    if (r != 0) {
        errno = r;
        return -1;
    }

    return 0;
}
weak_alias(__getentropy, getentropy);