【发布时间】:2014-04-17 07:26:58
【问题描述】:
我正在玩 cryptopp,但遇到 Base64 编码/解码问题。
在下面的代码中,假设sig 的值应该等于tsig,但它们在最后一个字符上是不同的(sig 比tsig 大一个符号)。我也试过在Base64Encoder 中更改insertLineBreaks 参数,但结果是一样的。
...
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)
)
);
我的错误在哪里?
【问题讨论】: