Witam
Z kryptograii dostałem zadanie by zrobic program szyfrujacy asymetrycznie.
Program ma szyfrować i deszyfrować oraz generować parę kluczy (publiczny i prywatny) do pliku. Do szyfrowania należy wykorzystać odpowiednie biblioteki kryptograficzne.
Znalazłem bibliotekę Crypto++ http://www.cryptopp.com/ tylko nie wiem w jaki sposób ją wykorzystać w projekcie.
Używam Dev-C++ oraz Visual C++ 2005 Expres Edition
Znalazłem na necie gotowy program z wykorzystaniem Crypto++
Przy kompilacji wywala mi pełno różnych blędów związanych pewnie z tą biblioteką.
Proszę o wytłumaczenie mi w jaki sposób mam dodać tą bibliotekę do Visuala c++ lub do Dev C++ żeby ten program mógł skompilować.
Z kryptograii dostałem zadanie by zrobic program szyfrujacy asymetrycznie.
Program ma szyfrować i deszyfrować oraz generować parę kluczy (publiczny i prywatny) do pliku. Do szyfrowania należy wykorzystać odpowiednie biblioteki kryptograficzne.
Znalazłem bibliotekę Crypto++ http://www.cryptopp.com/ tylko nie wiem w jaki sposób ją wykorzystać w projekcie.
Używam Dev-C++ oraz Visual C++ 2005 Expres Edition
Znalazłem na necie gotowy program z wykorzystaniem Crypto++
Przyklad szyfrowania kluczem publicznym i
deszyfrowania kluczem prywatnym RSA
(zastosowanie: ustalanie symetrycznych kluczy sesyjnych)
Biblioteka Crypto++ v.5.1
*/
#include "stdafx.h"
#include <iostream>
#include "cryptopp/rsa.h"
#include "cryptopp/filters.h"
#include "cryptopp/osrng.h"
#include "cryptopp/base64.h"
#include "cryptopp/files.h"
#include "cryptopp/sha.h"
using namespace CryptoPP;
using namespace std;
int main(int argc, char* argv[])
{
//jakas informacja (domyslnie losowy klucz sesyjny)
string shortMessage =
"Wiadomosc musi byc krotsza niz rozmiar klucza RSA minus zalacznik OAEP";
string file;
cout << "Szyfrowanie wiadomosci" << endl;
cout << "Klucz publiczny: ";
getline(cin, file);
RSAES_OAEP_SHA_Encryptor pubkey( FileSource(file.c_str(), true,
new Base64Decoder()));
//ustalamy potrzebny rozmiar bloku korzystajac z metody pubkey.CiphertextLength(),
//po podaniu rozmiaru bloku niezaszyfrowanego, zwraca ona rozmiar jaki zajmie kryptogram
SecByteBlock sbbCipherText(pubkey.CiphertextLength(shortMessage.size()));
AutoSeededRandomPool rng;
pubkey.Encrypt(rng, (byte const*)shortMessage.data(), shortMessage.size(),
sbbCipherText.begin());
FileSink(".\\encrypted.dat").Put(sbbCipherText.begin(), sbbCipherText.size());
cout << "Kryptogram umieszczono w pliku \'encrypted.dat\'" << endl;
cout << "Deszyfrowanie" << endl;
cout << "Klucz prywatny: ";
getline(cin, file);
RSAES_OAEP_SHA_Decryptor privkey( FileSource(file.c_str(), true, new Base64Decoder()));
//ustalamy wymagany rozmiar bloku korzystajac z metody privkey.MaxPlaintextLength(),
//po podaniu rozmiaru kryptogramu, zwraca ona maksymalny rozmiar jaki moze przyjac
//odszyfrowana wiadomosc
SecByteBlock sbbPlainText(privkey.MaxPlaintextLength(sbbCipherText.size()));
FileSource(".\\encrypted.dat", true, new ArraySink(sbbPlainText.begin(), sbbPlainText.size() ));
DecodingResult dec = privkey.Decrypt(rng, sbbCipherText.begin(), sbbCipherText.size(),
sbbPlainText.begin());
FileSink(".\\decrypted.dat").Put(sbbPlainText.begin(), dec.messageLength);
cout << "Odszyfrowana wiadomosc zostala umieszczona w pliku \'decrypted.dat\'" << endl;
return 0;
}
Przy kompilacji wywala mi pełno różnych blędów związanych pewnie z tą biblioteką.
Proszę o wytłumaczenie mi w jaki sposób mam dodać tą bibliotekę do Visuala c++ lub do Dev C++ żeby ten program mógł skompilować.