Я получаю ошибку сегментации при попытке распечатать буфер, который был заполнен функцией:
int ret = 0;
unsigned char plaintext;
/* ret will contain the length of the "plaintext" output buffer */
ret = gcm_decrypt( &ciphertext[0], ciphertext_len, &aad[0], aad_len, &tag[0], (unsigned char*)decoded_key.c_str(), &iv[0], iv_len, &plaintext );
/* This will segfault BUT it actually prints out the correct data */
std::string sName(reinterpret_cast<char*>(&plaintext)
cout << "ret: " << ret << endl;
cout << "plaintext: " << sName << endl;
Я пробовал много вещей, чтобы получить std :: string из этого буфера открытого текста, но я не могу это понять.
функция требует unsigned char *
int gcm_decrypt(unsigned char *ciphertext, int ciphertext_len, unsigned char *aad, int aad_len, unsigned char *tag, unsigned char *key, unsigned char *iv, int iv_len, unsigned char *plaintext)