I'm exploring the RNG facilities of Crypto++5.1 (on Linux 2.4.18, using the gcc 3.2 compiler).
1) Is any block cipher preferred for use with the AutoSeededX917RNG class?
2) I tried to use the MaurerRandomnessTest class to process the output of the /dev/random device supplied by the OS (alleged randomness is coming from the i810_rng driver), which is seeding the X917 rng.
I ran cryptest.exe fips-rand to generate "a few" random files.
Then I tried to write a filter to test for randomness. However, compilation fails at the declaration of the MaurerRandomnessTest object with the following error messages:
/opt/gcc32/bin/g++ -NDEBUG --ffunction-sections -fdata-sections -o maurer_test -I./lib -L./lib maurer_test.cpp -Wl,--gcc-sections -lcryptopp
maurer_test.cpp: In function `void Maurer_Test(const char*)':
maurer_test.cpp:112: cannot declare variable `mrTest' to be of type `
CryptoPP::MaurerRandomnessTest'
maurer_test.cpp:112: because the following virtual functions are abstract:
lib/cryptlib.h:715: virtual unsigned int
CryptoPP::BufferedTransformation::Put2(const byte*, unsigned int, int, bool)
lib/cryptlib.h:735: virtual bool
CryptoPP::BufferedTransformation::IsolatedFlush(bool, bool)
make: *** [maurer_test] Error 1
The offending function (which doesn't yet perform the test) is:
void Maurer_Test(const char *rnd_file)
{
SecByteBlock rndBuf(20000);
ArraySink *rndArr;// Read the random number file from cryptest.exe fips-rand
FileSource inFile(rnd_file, true, rndArr = new ArraySink(rndBuf, 20000);
MaurerRandomnessTest mrTest;
}How and where should I define the abstract virtual BufferedTransformation functions (Put2 and IsolatedFlush)? I tried defining simple "do-nothing" functions with the appropriate signature, but without success. I guess this is more a problem with my knowledge and understanding of C++.
Also, as the MaurerRandomnessTest class inherits from the Sink class, can I simply insert it in the FileSource statement in some way, to pipe the file contents straight into it, instead of first reading the file into an array?
Eventually, I would just like to produce a list of the random file names with the corresponding result of the Maurer test on the file's contents.
Thanks in advance. --
_____________________________________________ James Bishop Institute for the Protection and Security of the Citizen (IPSC) European Commission - Joint Research Centre I - 21020 Ispra, Italy Tel.: +39 0332 786225 Fax.: +39 0332 789757 e-mail: [EMAIL PROTECTED]
