Seeker::Seeker(std::string theAddress): Benchmark(theAddress) { this->device = theAddress; this->testName = "seeker"; this->fd = open64(theAddress.data(), O_RDWR | O_SYNC); perror("open"); measureSize(); blockSize = 0; int rc = ioctl(fd, BLKSSZGET, &blockSize); if(fd == -1) perror("IOCTL BLKSSZGET"); }
void Label::setText(const std::string &text) { mText = text; measureSize(); }
void benchmarkHIBE(Hibe & hibe, ofstream & outfile0, ofstream & outfile1, ofstream & outfile2, int ID_string_len, int iterationCount, CharmListStr & keygenResults, CharmListStr & transformResults, CharmListStr & decoutResults) { int l = 5; int z = 32; Benchmark benchT, benchD, benchK; CharmList mk, mpk, pk, skBlinded, skBlinded2, ct, transformOutputList; // CharmListStr S; GT M, newM; ZR uf0, bf0; string id = getID(ID_string_len); // "*****@*****.**"; double tf_in_ms, de_in_ms, kg_in_ms; stringstream s0; hibe.setup(l, z, mpk, mk); // BENCHMARK KEYGEN SETUP for(int i = 0; i < iterationCount; i++) { benchK.start(); hibe.keygen(mpk, mk, id, pk, uf0, bf0, skBlinded2); benchK.stop(); kg_in_ms = benchK.computeTimeInMilliseconds(); } cout << "Keygen avg: " << benchK.getAverage() << " ms" << endl; s0 << ID_string_len << " " << benchK.getAverage() << endl; outfile0 << s0.str(); keygenResults[ID_string_len] = benchK.getRawResultString(); // BENCHMARK KEYGEN SETUP hibe.keygen(mpk, mk, id, pk, uf0, bf0, skBlinded); M = hibe.group.random(GT_t); hibe.encrypt(mpk, pk, M, ct); stringstream s1, s2; //cout << "ct =\n" << ct << endl; for(int i = 0; i < iterationCount; i++) { // run TRANSFORM benchT.start(); hibe.transform(pk, skBlinded, ct, transformOutputList); benchT.stop(); //cout << "transformCT =\n" << transformOutputList << endl; tf_in_ms = benchT.computeTimeInMilliseconds(); benchD.start(); hibe.decout(pk, transformOutputList, bf0, uf0, newM); benchD.stop(); de_in_ms = benchD.computeTimeInMilliseconds(); } cout << "Transform avg: " << benchT.getAverage() << endl; s1 << iterationCount << " " << benchT.getAverage() << endl; outfile1 << s1.str(); transformResults[ID_string_len] = benchT.getRawResultString(); cout << "Decout avg: " << benchD.getAverage() << endl; s2 << iterationCount << " " << benchD.getAverage() << endl; outfile2 << s2.str(); decoutResults[ID_string_len] = benchD.getRawResultString(); // measure ciphertext size cout << "CT size: " << measureSize(ct) << " bytes" << endl; cout << "CTOut size: " << measureSize(transformOutputList) << " bytes" << endl; // cout << convert_str(M) << endl; // cout << convert_str(newM) << endl; if(M == newM) { cout << "Successful Decryption!" << endl; } else { cout << "FAILED Decryption." << endl; } return; }
void benchmarkBGW(Bgw05 & bgw, ofstream & outfile0, ofstream & outfile1, ofstream & outfile2, int numOfRecs, int iterationCount, CharmListStr & keygenResults, CharmListStr & transformResults, CharmListStr & decoutResults) { Benchmark benchT, benchD, benchK; CharmList pk, msk, Hdr, ct, skCompleteBlinded, skCompleteBlinded2, transformOutputList; CharmListInt S; // int receivers[] = {1, 3, 5, 12, 14}; // S.init(receivers, 5); // int n = 15, i = 1; GT K, KDecrypt; ZR bf0; getRandomReceivers(S, numOfRecs); int n = numOfRecs, i = S[(rand() % numOfRecs)]; double kg_in_ms; bgw.setup(n, pk, msk); // cout << "pk: " << pk << endl; // cout << "msk: " << msk << endl; // BENCHMARK KEYGEN SETUP for(int i = 0; i < iterationCount; i++) { benchK.start(); bgw.keygen(pk, msk, n, bf0, skCompleteBlinded2); benchK.stop(); kg_in_ms = benchK.computeTimeInMilliseconds(); } cout << "Keygen avg: " << benchK.getAverage() << " ms" << endl; stringstream s0; s0 << numOfRecs << " " << benchK.getAverage() << endl; outfile0 << s0.str(); keygenResults[numOfRecs] = benchK.getRawResultString(); // BENCHMARK KEYGEN SETUP bgw.keygen(pk, msk, n, bf0, skCompleteBlinded); // cout << "tk: " << skCompleteBlinded << endl; // cout << "bf: " << bf0 << endl; cout << "receiver: " << i << endl; bgw.encrypt(S, pk, n, ct); Hdr = ct[0].getList(); K = ct[1].getGT(); double tf_in_ms, de_in_ms; stringstream s1, s2; for(int j = 0; j < iterationCount; j++) { benchT.start(); bgw.transform(S, i, n, Hdr, pk, skCompleteBlinded, transformOutputList); benchT.stop(); tf_in_ms = benchT.computeTimeInMilliseconds(); benchD.start(); bgw.decout(S, i, n, Hdr, pk, skCompleteBlinded, transformOutputList, bf0, KDecrypt); benchD.stop(); de_in_ms = benchD.computeTimeInMilliseconds(); } cout << "Transform avg: " << benchT.getAverage() << endl; s1 << numOfRecs << " " << benchT.getAverage() << endl; outfile1 << s1.str(); transformResults[numOfRecs] = benchT.getRawResultString(); cout << "Decout avg: " << benchD.getAverage() << endl; s2 << numOfRecs << " " << benchD.getAverage() << endl; outfile2 << s2.str(); decoutResults[numOfRecs] = benchD.getRawResultString(); // measure ciphertext size cout << "CT size: " << measureSize(ct) << " bytes" << endl; cout << "CTOut size: " << measureSize(transformOutputList) << " bytes" << endl; // cout << convert_str(K) << endl; // cout << convert_str(KDecrypt) << endl; if(K == KDecrypt) { cout << "Successful Decryption!" << endl; } else { cout << "FAILED Decryption." << endl; } }
bool PointAttenuationTest::testPointRendering(GLboolean smooth) { // epsilon is the allowed size difference in pixels between the // expected and actual rendering. const GLfloat epsilon = (smooth ? 1.5 : 1.0) + 0.0; GLfloat atten[3]; int count = 0; // Enable front buffer if you want to see the rendering glDrawBuffer(GL_FRONT); glReadBuffer(GL_FRONT); if (smooth) { glEnable(GL_POINT_SMOOTH); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); } else { glDisable(GL_POINT_SMOOTH); glDisable(GL_BLEND); } for (int a = 0; a < 3; a++) { atten[0] = pow(10.0, -a); for (int b = -2; b < 3; b++) { atten[1] = (b == -1) ? 0.0 : pow(10.0, -b); for (int c = -2; c < 3; c++) { atten[2] = (c == -1) ? 0.0 : pow(10.0, -c); PointParameterfvARB(GL_POINT_DISTANCE_ATTENUATION_ARB, atten); for (float min = 1.0; min < MAX_SIZE; min += 10) { PointParameterfARB(GL_POINT_SIZE_MIN_ARB, min); for (float max = min; max < MAX_SIZE; max += 10) { PointParameterfARB(GL_POINT_SIZE_MAX_ARB, max); for (float size = 1.0; size < MAX_SIZE; size += 8) { glPointSize(size); // draw column of points glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_POINTS); for (float z = -6.0; z <= 6.0; z += 1.0) { glVertex3f(0, z, z); } glEnd(); // test the column of points for (float z = -6.0; z <= 6.0; z += 1.0) { count++; float expected = expectedSize(size, atten, min, max, z, smooth); float actual = measureSize(z); if (fabs(expected - actual) > epsilon) { reportFailure(size, atten, min, max, z, smooth, expected, actual); return false; } else if(0){ printf("pass z=%f exp=%f act=%f\n", z, expected, actual); } } } } } } } } reportSuccess(count, smooth); return true; }
void benchmarkBSW(Bsw07 & bsw, ofstream & outfile0, ofstream & outfile1, ofstream & outfile2, int attributeCount, int iterationCount, CharmListStr & keygenResults, CharmListStr & transformResults, CharmListStr & decoutResults) { Benchmark benchT, benchD, benchK; CharmList mk, pk, skBlinded, skBlinded2, ct, transformOutputList; CharmListStr S; GT M, newM; ZR uf0, bf0; stringstream s0; double tf_in_ms, de_in_ms, kg_in_ms; bsw.setup(mk, pk); getAttributes(S, attributeCount); // BENCHMARK KEYGEN SETUP for(int i = 0; i < iterationCount; i++) { benchK.start(); bsw.keygen(pk, mk, S, uf0, bf0, skBlinded2); benchK.stop(); kg_in_ms = benchK.computeTimeInMilliseconds(); } cout << "Keygen avg: " << benchK.getAverage() << " ms" << endl; s0 << attributeCount << " " << benchK.getAverage() << endl; outfile0 << s0.str(); keygenResults[attributeCount] = benchK.getRawResultString(); // BENCHMARK KEYGEN SETUP bsw.keygen(pk, mk, S, uf0, bf0, skBlinded); M = bsw.group.random(GT_t); string policy_str = getPolicy(attributeCount); // get a policy string bsw.encrypt(pk, M, policy_str, ct); stringstream s1, s2; //cout << "ct =\n" << ct << endl; for(int i = 0; i < iterationCount; i++) { // run TRANSFORM benchT.start(); bsw.transform(pk, skBlinded, S, ct, transformOutputList); benchT.stop(); //cout << "transformCT =\n" << transformOutputList << endl; tf_in_ms = benchT.computeTimeInMilliseconds(); benchD.start(); bsw.decout(pk, S, transformOutputList, bf0, uf0, newM); benchD.stop(); de_in_ms = benchD.computeTimeInMilliseconds(); } cout << "Transform avg: " << benchT.getAverage() << endl; s1 << attributeCount << " " << benchT.getAverage() << endl; outfile1 << s1.str(); transformResults[attributeCount] = benchT.getRawResultString(); cout << "Decout avg: " << benchD.getAverage() << endl; s2 << attributeCount << " " << benchD.getAverage() << endl; outfile2 << s2.str(); decoutResults[attributeCount] = benchD.getRawResultString(); // measure ciphertext size cout << "CT size: " << measureSize(ct) << " bytes" << endl; cout << "CTOut size: " << measureSize(transformOutputList) << " bytes" << endl; // cout << convert_str(M) << endl; // cout << convert_str(newM) << endl; if(M == newM) { cout << "Successful Decryption!" << endl; } else { cout << "FAILED Decryption." << endl; } return; }
void benchmarkSW(Sw05 & sw, ofstream & outfile0, ofstream & outfile1, ofstream & outfile2, int attributeCount, int iterationCount, CharmListStr & keygenResults, CharmListStr & transformResults, CharmListStr & decoutResults) { Benchmark benchT, benchD, benchK; CharmList pk, skBlinded, skBlinded2, CT, transformOutputList, transformOutputListForLoop; CharmListStr w, wPrime; GT M, newM; ZR bf0, uf0, mk; int n = attributeCount, dParam = 1; double tf_in_ms, de_in_ms, kg_in_ms; sw.setup(n, pk, mk); getAttributes(w, attributeCount); //cout << "w :\n" << w << endl; getAttributes(wPrime, attributeCount); //cout << "wPrime :\n" << wPrime << endl; // BENCHMARK KEYGEN SETUP for(int i = 0; i < iterationCount; i++) { benchK.start(); sw.extract(mk, w, pk, dParam, n, uf0, bf0, skBlinded2); benchK.stop(); kg_in_ms = benchK.computeTimeInMilliseconds(); } cout << "Keygen avg: " << benchK.getAverage() << " ms" << endl; stringstream s0; s0 << attributeCount << " " << benchK.getAverage() << endl; outfile0 << s0.str(); keygenResults[attributeCount] = benchK.getRawResultString(); // BENCHMARK KEYGEN SETUP sw.extract(mk, w, pk, dParam, n, uf0, bf0, skBlinded); M = sw.group.random(GT_t); sw.encrypt(pk, wPrime, M, n, CT); stringstream s1, s2; //cout << "ct =\n" << CT << endl; for(int i = 0; i < iterationCount; i++) { // run TRANSFORM CharmListStr SKeys; int SLen; benchT.start(); sw.transform(pk, skBlinded, CT, dParam, transformOutputList, SKeys, SLen, transformOutputListForLoop); benchT.stop(); tf_in_ms = benchT.computeTimeInMilliseconds(); benchD.start(); sw.decout(pk, dParam, transformOutputList, bf0, uf0, SKeys, SLen, transformOutputListForLoop, newM); benchD.stop(); de_in_ms = benchD.computeTimeInMilliseconds(); } cout << "Transform avg: " << benchT.getAverage() << endl; s1 << attributeCount << " " << benchT.getAverage() << endl; outfile1 << s1.str(); transformResults[attributeCount] = benchT.getRawResultString(); cout << "Decout avg: " << benchD.getAverage() << endl; s2 << attributeCount << " " << benchD.getAverage() << endl; outfile2 << s2.str(); decoutResults[attributeCount] = benchD.getRawResultString(); cout << "CT size: " << measureSize(CT) << " bytes" << endl; cout << "CTOut size: " << measureSize(transformOutputList) + measureSize(transformOutputListForLoop) << " bytes" << endl; // cout << convert_str(M) << endl; // cout << convert_str(newM) << endl; if(M == newM) { cout << "Successful Decryption!" << endl; } else { cout << "FAILED Decryption." << endl; } return; }