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 (64 bit) and Windows Server 2016/2019 (64 bit)