bool Test0(){ cout << "Test0:\t"; VaultMethod* method; // method = new VaultBF(); method = new VaultTriangles(); Vault* vault = new Vault(method); //Generate random secret vec_ZZ_p secret; secret.SetLength(POLYNOMIAL_TERMS); for(int i=0; i<POLYNOMIAL_TERMS; i++){ secret[i] = random_ZZ_p(); } vector<minutia> fingerprint = readFingerprintFromFile("../../CUBS_FP_DATA/FVC2002/DB2/features/27_3.fp"); vault->lock(fingerprint, secret); polyResults result = vault->unlock(fingerprint); if(result.score > 10.0){ cout << "passed" << endl; return true; } cout << "failed"<<endl; return false; }
ZZ PaillierParty::getRandomInNStar(const ZZ& mod) { ZZ value; ZZ_p::init(mod); do { value = conv<ZZ>(random_ZZ_p()); } while (GCD(value,mod)!=1); return value; }
bool TestBF(){ cout << "TestBF:\t\t\t\t"; VaultMethod* method; method = new VaultBF(); Vault* vault = new Vault(method); //Generate random secret vec_ZZ_p secret; secret.SetLength(POLYNOMIAL_TERMS); for(int i=0; i<POLYNOMIAL_TERMS; i++){ secret[i] = random_ZZ_p(); } vector<minutia> fingerprint; vector<minutia> fingerprintTransformed; minutia m; m.x = 180; m.y = 125; m.theta = 16; fingerprint.push_back(m); m.x = 360; m.y = 12; m.theta = 64; fingerprint.push_back(m); m.x = 432; m.y = 491; m.theta = 269; fingerprint.push_back(m); m.x = 56; m.y = 12; m.theta = 90; fingerprint.push_back(m); m.x = 4; m.y = 412; m.theta = 55; fingerprint.push_back(m); //rotate 6 degrees clockwise about the origin the translate (12,-5) m.x = 204; m.y = 101; m.theta = 10; fingerprintTransformed.push_back(m); m.x = 371; m.y = -31; m.theta = 58; fingerprintTransformed.push_back(m); m.x = 493; m.y = 438; m.theta = 263; fingerprintTransformed.push_back(m); m.x = 69; m.y = 1; m.theta = 84; fingerprintTransformed.push_back(m); m.x = 59; m.y = 404; m.theta = 49; fingerprintTransformed.push_back(m); vault->lock(fingerprint, secret); polyResults result = vault->unlock(fingerprintTransformed); //cout << " score: " << result.score << "- "; if(result.score > 2.9 && result.score < 100.0) { cout << "passed" << endl; return true; } cout << "failed: " << result.score << endl; return false; }