Witam ,
Korzystam z Visaula Studio 2017 community i mam w tym lokalny debuger windows
Pobrałem paczkę ** Crypto++** z Github'a: https://github.com/weidai11/cryptopp/releases/tag/CRYPTOPP_6_1_0
Skompilowałem projekt cryptest.sln i musiałem dociągnąć paczkę WindowsSDK 8.1 oraz Uniwersalny zestaw SDK środowiska CRT dla systemu Windows - koniec dygresji .
Finalnie skompilowałem projekt cryptest.sln z paczki Crypto++ w wyniku czego tworzy się folder o nazwie win32 lub x64 - zależy co wybiorę ,oby dwa powstają w trybie Debug. Wygląda to tak jak w załącznikach ,które dodałem . Ale skupmy się na razie na folderze win32.
Po zbadaniu folderu win32 w katalogu output/debug/ - tworzą się pliki .lib ,* .exe* i inne, ale plik cryptest.exe nie działa .. w załączniku jest komunikat o błędzie :/ .Czy to może oznaczać ,że mimo pozytywnego komunikatu o ukończeniu kompilacji projekt się nie skompilował poprawnie ??....
W właściwościach projektu dokonałem też dodatkowych kilku zmian :
-
ppm(nazwa projektu)->właściwości-> konsolidator->dane wejściowe->dodatkowe zależności->**i dodaje bibliotekę cryptlib.lib jako dodatkowa zależność **
-
C/C++-> Ogólne->Dodatkowe katalogi plików nagłówkowych ->**dodaje katalog z wszystkimi plikami nagłówkowymi - .h - jakie były wykorzystywane podczas kompilacji projektucryptest.sln
Próbowałem zrobić test z tej strony :
https://www.cryptopp.com/wiki/Benchmarks // <- jest tam zakładka sample program
Skopiowałem całą zawartość z zakładki Sample program do nowego projektu o nazwie cryptotes++ i z początku nie znajdywało bibliotek ,które są użyte w tym kodzie :
#include "cryptlib.h"
#include "secblock.h"
#include "hrtimer.h"
#include "osrng.h"
#include "modes.h"
#include "aes.h"
#include <iostream>
const double runTimeInSeconds = 3.0;
const double cpuFreq = 2.7 * 1000 * 1000 * 1000;
int main(int argc, char* argv[])
{
using namespace CryptoPP;
AutoSeededRandomPool prng;
SecByteBlock key(16);
prng.GenerateBlock(key, key.size());
<u>CTR<AES>::Encryption cipher;
cipher.SetKeyWithIV(key, key.size(), key);</u>
const int BUF_SIZE = RoundUpToMultipleOf(2048U,
dynamic_cast<StreamTransformation&>(cipher).OptimalBlockSize());
AlignedSecByteBlock buf(BUF_SIZE);
prng.GenerateBlock(buf, buf.size());
double elapsedTimeInSeconds;
unsigned long i=0, blocks=1;
ThreadUserTimer timer;
timer.StartTimer();
do
{
blocks *= 2;
for (; i<blocks; i++)
cipher.ProcessString(buf, BUF_SIZE);
elapsedTimeInSeconds = timer.ElapsedTimeAsDouble();
}
while (elapsedTimeInSeconds < runTimeInSeconds);
const double bytes = static_cast<double>(BUF_SIZE) * blocks;
const double ghz = cpuFreq / 1000 / 1000 / 1000;
const double mbs = bytes / elapsedTimeInSeconds / 1024 / 1024;
const double cpb = elapsedTimeInSeconds * cpuFreq / bytes;
std::cout << cipher.AlgorithmName() << " benchmarks..." << std::endl;
std::cout << " " << ghz << " GHz cpu frequency" << std::endl;
std::cout << " " << cpb << " cycles per byte (cpb)" << std::endl;
std::cout << " " << mbs << " MiB per second (MiB)" << std::endl;
// std::cout << " " << elapsedTimeInSeconds << " seconds passed" << std::endl;
// std::cout << " " << (word64) bytes << " bytes processed" << std::endl;
return 0;
}
Efekt kompilacji jest w załączniku nr.7 i nr.8
Coś źle rozumuje w całym procesie dodawania statycznych libek .. tylko nie wiem co .Napiszcie czy jest to w miarę zrozumiałe . Dziękuje wszystkim za przeczytanie tych wypocin :)
Jeśli czegoś nie dodałem napiszcie, chętnie uzupełnię informacje .. dodam tylko ,że stackoverflow i google był grany od 2 dni -_- ..zaraz strace wszystkie włosy
Jeśli komuś przeszkadza forma załącznikowa również postaram się to zmienić .