PK_DecryptorFilter Returns empty string

Vikalp Parashar <[email protected]> Wed, 8 Jun 2022 19:10:40 -0700 (PDT)
Newsgroups gmane.comp.encryption.cryptopp
Message-ID <[email protected]>
Hi there 
i have two functions encrypt and decrypt as follows

*ENCRYPT()*
ECIES<ECP>::Decryptor d0(prng, ASN1::secp256r1());
    PrintPrivateKey(d0.GetKey());

    ECIES<ECP>::Encryptor e0(d0);
    PrintPublicKey(e0.GetKey());
    SavePrivateKey(d0.GetPrivateKey());
    SavePublicKey(e0.GetPublicKey());

    ifstream infile;
    ofstream outfile;
    string sen,sen1,line,enc;
    sen.clear();
    line.clear();
    enc.clear();
    infile.open("Me/text.txt");
    if(infile.is_open()){
        while(!infile.eof()){
            getline(infile,line);
            sen1 = sen1 + line;                                 
        }
    }
    StringSource ss1(sen,true,new PK_EncryptorFilter(prng,e0,new 
StringSink(enc)));
    cout<<"Encrypted:"<<endl<<enc<<endl;
    infile.close();    
    string encoded;
    StringSource ss3(enc, true, new HexEncoder(new StringSink(encoded)));
    outfile.open("Me/e1nc_text.txt");
    outfile<<encoded;
    outfile.close();
    cout<<"Encoded: "<< encoded<<endl;

*--------------------------------------------------------------------------------------------------------*
In the above function  a file is opened and all the content is first 
ENCRYPTED using ECIES
and the ENCODED WITH HEXENCODER and Saved in an another file.


------------------------------------------------------------------------------------------------------------------------------------------------
*DECRYPT()*

ECIES<ECP>::Decryptor d1;
    ECIES<ECP>::Decryptor d0(prng, ASN1::secp256r1());
    LoadPrivateKey(d1.AccessPrivateKey());
    d1.GetPrivateKey().ThrowIfInvalid(prng, 3);
    
    ECIES<ECP>::Encryptor e1;
    LoadPublicKey(e1.AccessPublicKey());
    e1.GetPublicKey(). ThrowIfInvalid(prng, 3);
 
    PrintPrivateKey(d1.GetKey());
     PrintPublicKey(e1.GetKey());
        
    ifstream file;
    string sen,line,dec,decoded;
    sen.clear();
    line.clear();
    file.open("Me/e1nc_text.txt");
    if(file.is_open()){
        while(!file.eof()){
            getline(file,line);
            sen = sen + line;                                 
        }
    }
    StringSource ss7 (sen,true, new HexDecoder(new StringSink(decoded)));
    cout<<"Decoded"<<endl<<decoded;
    StringSource ss8 (decoded,true,new PK_DecryptorFilter(prng,d1,new 
StringSink(dec)));
    cout<<endl<<"Decrypted:"<<endl;
    cout<<dec;
    ofstream outfile("Me/decrypt.txt");
    outfile<<dec;
--------------------------------------------------------------------------------------------------------------------------------------------------
The encrypted and encoded file is extracted and first decoded after that at 
decryption part
the string variable dec is the one in which the decrypted string should be 
stored but when out putted  it shows empty string

The output of the above is the following:[image: Screenshot from 2022-06-09 
07-37-06.png]
THE ENCRYPTED and THE DECODED OUTPUTS ARE the same thus its not an invalid 
cipher text yet At the last line the *Decrypted :  *as we can see is empty.

KINDLY HELP>>
Yours Sincerly
Vikalp

-- 
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 [email protected].
To view this discussion on the web visit https://groups.google.com/d/msgid/cryptopp-users/b8d3aee8-f0a9-40b0-9bba-f18a8eb7c636n%40googlegroups.com.
Screenshot from 2022-06-09 07-37-06.png (image/png, 229.2 KB) - not displayed