Just load file data into memory buffer (std::vector<CryptoPP::byte>) and use filter pipeline with VectorSource and VectorSink. https://cryptopp.com/docs/ref/class_vector_source.html https://cryptopp.com/docs/ref/class_vector_sink.html
четверг, 22 сентября 2022 г. в 00:59:54 UTC+7, kakaa...@gmail.com: > I'm encrypting a file this way: > > > #include <cryptopp/files.h> > #include <cryptopp/modes.h> > #include <cryptopp/osrng.h> > #include <cryptopp/base64.h> > #include <cryptopp/hex.h> > #include <Windows.h> > #include <iostream> > #include <fstream> > > > void FileEncrypt(byte key[], byte iv[] > , const std::string& file, const std::string& dest) > { > CTR_Mode< AES >::Encryption cipher; > cipher.SetKeyWithIV(key, strlen((char*)key), iv, > strlen((char*)iv)); > > std::ifstream in{file, std::ios::binary}; > std::ofstream out{dest, std::ios::binary}; > > CryptoPP::FileSource{in, true, > new CryptoPP::StreamTransformationFilter{ > cipher, new CryptoPP::FileSink{out}}}; > } > > INT main(INT argc, PCHAR* argv) > { > std::string file = "..."; > std::string dest = "..."; > > unsigned char* key[] = "p3s6v9y$B&E)H@Mc"; > unsigned char* iv[] = "VkXp2s5v8y/B?E(H"; > > FileEncrypt(key, iv, file, dest); > FileDecrypt(key, iv, file, dest); > } > > > Then when needed i'm downloading the encrypted file from my repo. > > I've been able to decrypt it with: > > ```c++ > void FileDecrypt(byte key[], byte iv[] > , const std::string& file, const std::string& dest) > { > CTR_Mode< AES >::Decryption cipher; > cipher.SetKeyWithIV(key, strlen((char*)key), iv, > strlen((char*)iv)); > > std::ifstream in{file, std::ios::binary}; > std::ofstream out{dest, std::ios::binary}; > > CryptoPP::FileSource{in, true, > new CryptoPP::StreamTransformationFilter{ > cipher, new CryptoPP::FileSink{out}}}; > } > ``` > But this way the decrypted file is saved to disk, how could i decrypt it > on memory without saving to disk? > -- You received this message because you are subscribed to the Google Groups "Crypto++ Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to cryptopp-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/cryptopp-users/15333873-9cf5-428e-a22b-82b9f9b5b5e8n%40googlegroups.com.