The entropy-server
is a Windows based pipe server
that uses a duplex named pipe for distributing random bytes generated by a single SwiftRNG device (including Z, LE and Pro models). Windows applications can concurrently access entropy-server
through provided SwiftRNG.dll
.
Applications written in languages such as C/C++, C#, Java, VBA can concurrently retrieve true random bytes generated by SwiftRNG devices by connecting with the entropy-server
directly through the named pipe. For source code examples visit this address. Information on Entropy Server API can be found at this location.
The entropy-server
can be started using the following command:
entropy-server.exe -dn 0
The output may look like this:
Entropy server started using device SwiftRNG with S/N: 123456789012345 and Ver: V1.3, post processing: 'SHA256', embedded correction method: 'none', statistical tests enabled, on named pipe: \\.\pipe\SwiftRNG
By default, the entropy-server
can handle up to 10 concurrent connections. Beginning with SwiftRNG Software Kit version 4.5.3, the max number of concurrent connections can be increased using ‘-pi’ command line option. The following example demonstrates how to start the entropy-server
and allow up to 50 concurrent connections:
entropy-server.exe -dn 0 -pi 50
The availability and performance of the entropy-server
can be verified with entropy-client-test
utility using the following command:
entropy-client-test.exe
The output may look like this:
----------------------------------------------------------------------------
-------------------------- entropy-client-test -----------------------------
--- A program utility for testing the connectivity to the entropy server. --
--- Usage: entropy-client-test [pipe endpoint] -----------------------------
----------------------------------------------------------------------------
Using named pipe: \\.\pipe\SwiftRNG
-------- Testing connectivity to the entropy server using named pipes ------
Connecting to the entropy server pipe .............................. SUCCESS
Retrieving 100000 bytes from the entropy server .................... SUCCESS
Running pipe communication diagnostics ............................. SUCCESS
Calculating entropy download speed ................................. 114.29 Mbps
------------ Testing connectivity to the entropy server using DLL ----------
Loading SwiftRNG.dll ............................................... SUCCESS
Getting proc addr swftSetEntropyServerPipeEndpointSynchronized() ... SUCCESS
Calling swftSetEntropyServerPipeEndpointSynchronized() ............. SUCCESS
Getting proc address swftGetByteFromEntropyServerSynchronized() .... SUCCESS
Testing swftGetByteFromEntropyServerSynchronized() ................. SUCCESS
swftGetByteFromEntropyServerSynchronized() download speed .......... 100.00 Mbps
Testing swftGetByteFromEntropyServerSynchronized() 50 threads ----- SUCCESS
Getting proc address swftGetEntropyFromEntropyServer() ............. SUCCESS
swftGetEntropyFromEntropyServer() download speed ................... 114.29 Mbps
Pre-built versions of entropy-server
and entropy-client-test
applications are already available in the latest release. Alternatively, the applications can be re-built from sources with Visual Studio 2015, Visual Studio 2017, Visual Studio 2019 or newer.
Note: SwiftRNG devices manufactured after March 2020 are compatible with Windows 10/11 (64 bit) and Windows Server 2016/2019 (64 bit)