bool ElGamalValidate() { cout << "\nElGamal validation suite running...\n\n"; bool pass = true; { FileSource fc("elgc2048.dat", true, new HexDecoder); ElGamalDecryptor privC(fc); ElGamalEncryptor pubC(privC); privC.Precompute(); ByteQueue queue; privC.SavePrecomputation(queue); pubC.LoadPrecomputation(queue); pass = CryptoSystemValidate(privC, pubC) && pass; } { LC_RNG rng(4780); cout << "Generating new encryption key..." << endl; ElGamalDecryptor privC(rng, 128); ElGamalEncryptor pubC(privC); pass = CryptoSystemValidate(privC, pubC) && pass; } return pass; }
bool ValidateElGamal() { cout << "\nElGamal validation suite running...\n\n"; bool pass = true; { FileSource fc("TestData/elgc1024.dat", true, new HexDecoder); ElGamalDecryptor privC(fc); ElGamalEncryptor pubC(privC); privC.AccessKey().Precompute(); ByteQueue queue; privC.AccessKey().SavePrecomputation(queue); privC.AccessKey().LoadPrecomputation(queue); pass = CryptoSystemValidate(privC, pubC) && pass; } return pass; }
bool ValidateLUC_DL() { cout << "\nLUC-HMP validation suite running...\n\n"; FileSource f("TestData/lucs512.dat", true, new HexDecoder); LUC_HMP<SHA>::Signer privS(f); LUC_HMP<SHA>::Verifier pubS(privS); bool pass = SignatureValidate(privS, pubS); cout << "\nLUC-IES validation suite running...\n\n"; FileSource fc("TestData/lucc512.dat", true, new HexDecoder); LUC_IES<>::Decryptor privC(fc); LUC_IES<>::Encryptor pubC(privC); pass = CryptoSystemValidate(privC, pubC) && pass; return pass; }
bool LUCELGValidate() { cout << "\nLUCELG validation suite running...\n\n"; FileSource f("lucs512.dat", true, new HexDecoder); LUCELG_Signer<SHA> privS(f); LUCELG_Verifier<SHA> pubS(privS); bool pass = SignatureValidate(privS, pubS); FileSource fc("lucc512.dat", true, new HexDecoder); LUCELG_Decryptor privC(fc); LUCELG_Encryptor pubC(privC); pass = CryptoSystemValidate(privC, pubC) && pass; return pass; }
bool ValidateDLIES() { cout << "\nDLIES validation suite running...\n\n"; bool pass = true; { FileSource fc("TestData/dlie1024.dat", true, new HexDecoder); DLIES<>::Decryptor privC(fc); DLIES<>::Encryptor pubC(privC); pass = CryptoSystemValidate(privC, pubC) && pass; } { cout << "Generating new encryption key..." << endl; DLIES<>::GroupParameters gp; gp.GenerateRandomWithKeySize(GlobalRNG(), 128); DLIES<>::Decryptor decryptor; decryptor.AccessKey().GenerateRandom(GlobalRNG(), gp); DLIES<>::Encryptor encryptor(decryptor); pass = CryptoSystemValidate(decryptor, encryptor) && pass; } return pass; }