On Wed, Jun 16, 2021 at 6:38 AM Vinay Kumar <wini.d.b...@gmail.com> wrote: > > Thanq. > > Here is the code snippet(tested with sample application): > > unsigned char temprpl[4] = { '\0' }; > unsigned __int32 Value = 3957804565; > CryptoPP::RandomPool vRandPool; > > memset((CryptoPP::byte *)&temprpl, 0, 4); > memcpy((CryptoPP::byte *)&temprpl, (CryptoPP::byte *)&Value, 4); > > cout << "VALUE=" << Value << endl; > > vRandPool.Put( reinterpret_cast<unsigned char*>(&temprpl), sizeof(Value) ); > /* For Crypto++ 5.4 */ > // vRandPool.IncorporateEntropy( (const CryptoPP::byte *)&temprpl, 4 ); /* > For Cryptopp850 */ > > CryptoPP::word32 t1 = vRandPool.GenerateWord32(); > > cout << "FIRST RAND=" << t1 << endl; > > CryptoPP::word32 t2 = vRandPool.GenerateWord32(); > > cout << "SECOND RAND=" << t2 << endl; > > CryptoPP::word32 t3 = vRandPool.GenerateWord32(); > > cout << "THIRD RAND=" << t3 << endl; > > With Crypto++ 5.4 it always returns 'fixed RAND' values for specific 'Value' > as follows: > > VALUE=3957804565 > FIRST RAND=123224688 > SECOND RAND=3565820466 > THIRD RAND=2141184933 > > > VALUE=15201583 > FIRST RAND=2446881748 > SECOND RAND=653021931 > THIRD RAND=31285341 > > VALUE=1947237586 > FIRST RAND=4090363092 > SECOND RAND=1687243401 > THIRD RAND=1878929729 > > But, with Cryptopp850, it returns 'different RAND' values(and it is different > for every run). This is causing issues after upgrading to Cryptopp850. > This change in behavior is observed only on Windows platform and it works > perfectly fine on Linux. > > Do you think it is a bug? Any workaround or other solution available to > resolve this problem.
For Crypto++ 8.5 (or anything greater than Crypto++ 5.5), you should use OldRandPool instead of RandPool if you want the old behavior. Actually OldRandPool was added at Crypto++ 6.0, so it is available for Crypto++ 6.0 and above. OldRandPool should work for you out of the box. We have a test for it using data generated by Crypto++ 5.4. Also see https://github.com/weidai11/cryptopp/blob/master/validat3.cpp#L633 . If the OldRandPool is not returning correct results for you, then copy/paste Crypto++ 5.4 RandPool into Crypto++ 8.5. Rename the class to something like LegacyRandPool or FixedOldRandPool, and then use it instead. Also see the head notes at https://www.cryptopp.com/docs/ref/randpool_8h.html, and the docs at https://www.cryptopp.com/wiki/OldRandomPool. Jeff -- You received this message because you are subscribed to the Google Groups "Crypto++ Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to cryptopp-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/cryptopp-users/CAH8yC8m5Of65ZW9AeVcxQ2qEKoOzXPp9sTydFhjnaDLKhuoGQw%40mail.gmail.com.