Я играю с cryptopp и у меня проблемы с кодировкой/декодированием Base64.
В следующем коде гипотетически значение sig
должно быть равно tsig
, но они отличаются последним символом (sig
больше tsig
на один символ). Я пробовал также изменить параметр insertLineBreaks
в Base64Encoder
, но результат тот же. ...
RSASSA_PKCS1v15_SHA_Signer privkey(privateKey);
SecByteBlock sbbSignature(privkey.SignatureLength());
privkey.SignMessage(rng, (byte const*) strContents.data(),
strContents.size(),sbbSignature);
Base64Encoder b(new StringSink(signedData));
b.Put(sbbSignature.begin(), sbbSignature.size());
string sig;
StringSink sinksig(sig);
sinksig.Put(sbbSignature.begin(), sbbSignature.size());
string tsig;
StringSource ss(signedData, true,
new Base64Decoder(
new StringSink(tsig)
)
);
Где моя ошибка?