本文整理汇总了C++中CryptoPP::ArraySource方法的典型用法代码示例。如果您正苦于以下问题:C++ CryptoPP::ArraySource方法的具体用法?C++ CryptoPP::ArraySource怎么用?C++ CryptoPP::ArraySource使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CryptoPP
的用法示例。
在下文中一共展示了CryptoPP::ArraySource方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: encrypt
QByteArray encrypt(QByteArray in) {
byte iv[CryptoPP::AES::BLOCKSIZE];
rnd.GenerateBlock(iv, CryptoPP::AES::BLOCKSIZE);
QByteArray out = QByteArray((char*)iv, CryptoPP::AES::BLOCKSIZE);
int inputSize = in.size();
string cipher;
CBC_Mode<AES>::Encryption aes(keyByte(), keySize(), iv);
ArraySource((byte *)in.data(), inputSize, true, new StreamTransformationFilter(aes, new StringSink(cipher)));
QByteArray encryptedBytes = QByteArray(cipher.c_str(), cipher.size());
out.append(encryptedBytes);
return out;
}
示例2: decrypt
QByteArray decrypt(QByteArray in) {
QByteArray iv = in.left(AES::BLOCKSIZE);
in.remove(0, AES::BLOCKSIZE);
string decrypted;
QByteArray result;
try {
CBC_Mode<AES>::Decryption aes_dec;
aes_dec.SetKeyWithIV((byte *)key().data(), keySize(), (byte *)iv.data());
ArraySource((byte *)in.data(), in.size(), true,
new StreamTransformationFilter(aes_dec,
new StringSink(decrypted)));
result = QByteArray(decrypted.c_str(), in.size());
} catch (CryptoPP::Exception err) {
result = "Failed to decrypt";
qDebug() << QString(err.GetWhat().c_str());
}
return result;
}