/* MatrixSSL PRNG retrieval */ int32 matrixSslGetPrngData(unsigned char *bytes, uint32 size) { int32 rc; #ifdef USE_MULTITHREADING psLockMutex(&prngLock); #endif /* USE_MULTITHREADING */ rc = psGetPrng(&gMatrixsslPrng, bytes, size); #ifdef USE_MULTITHREADING psUnlockMutex(&prngLock); #endif /* USE_MULTITHREADING */ return rc; }
/* Main PRNG retrieval API for Matrix based apps to lock all PRNG and entropy fetches */ int32 matrixCryptoGetPrngData(unsigned char *bytes, uint32 size, void *userPtr) { int32 rc; if (gPrngInit == 0) { return PS_FAILURE; } #ifdef USE_MULTITHREADING psLockMutex(&prngLock); #endif /* USE_MULTITHREADING */ rc = psGetPrng(&gMatrixPrng, bytes, size, userPtr); #ifdef USE_MULTITHREADING psUnlockMutex(&prngLock); #endif /* USE_MULTITHREADING */ return rc; }