libnx/nx/source/services/csrng.c

27 lines
591 B
C

#define NX_SERVICE_ASSUME_NON_DOMAIN
#include "service_guard.h"
#include "services/csrng.h"
static Service g_csrngSrv;
NX_GENERATE_SERVICE_GUARD(csrng);
Result _csrngInitialize(void) {
return smGetService(&g_csrngSrv, "csrng");
}
void _csrngCleanup(void) {
serviceClose(&g_csrngSrv);
}
Service* csrngGetServiceSession(void) {
return &g_csrngSrv;
}
Result csrngGetRandomBytes(void *out, size_t out_size) {
return serviceDispatch(&g_csrngSrv, 0,
.buffer_attrs = { SfBufferAttr_HipcMapAlias | SfBufferAttr_Out },
.buffers = { { out, out_size } },
);
}