3

他の暗号化のニーズに Crypto++ を使用しています。ただし、バイナリ情報を ascii テキストとして保存する必要もあります。そのために、Crypto++ の base 64 フィルターの例を次のコード ブロックに合成しました。

bool saveData(const unsigned char * buffer, size_t length)
{

    int lenb64 = (ceil(length / 3.0) * 4) + 1;
    unsigned char * temp_str = (unsigned char *)malloc(lenb64);

    CryptoPP::ArraySource as(buffer, length, new CryptoPP::Base64Encoder(
        new CryptoPP::ArraySink(temp_str, lenb64)));

    //do something with temp_str.
    free(temp_str); //Then free the tempstr.
    //Return true if do something worked, else false.
}

私が抱えている問題は、この操作の後、temp_str がまだゴミでいっぱいになっていることです。私は周りを見回しましたが、上記で行ったこと以外のことを行う例は見つかりません。足りないものはありますか?

4

2 に答える 2