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.

Reply via email to