Esempio n. 1
0
inline void DecContent(std::string& dec, const std::string& data, const CipherParam& param, const std::string& key, const std::string& salt)
{
	const size_t blockSize = 4096;
	dec.reserve(data.size());
	const size_t n = (data.size() + blockSize - 1) / blockSize;
	for (size_t i = 0; i < n; i++) {
		const size_t len = (i < n - 1) ? blockSize : (data.size() % blockSize);
		std::string blockKey(4, 0);
		cybozu::Set32bitAsLE(&blockKey[0], static_cast<uint32_t>(i));
		const std::string iv = generateKey(param, salt, blockKey);
		dec.append(cipher(param.cipherName, data.c_str() + i * blockSize, len, key, iv, cybozu::crypto::Cipher::Decoding));
	}
}
Esempio n. 2
0
std::string decContent(const std::string& data, const std::string& key, const std::string& salt)
{
	std::string dec;
	dec.reserve(data.size());
	const size_t n = (data.size() + 4095) / 4096;
	for (size_t i = 0; i < n; i++) {
		const size_t len = (i < n - 1) ? 4096 : (data.size() % 4096);
		std::string blockKey(4, 0);
		cybozu::Set32bitAsLE(&blockKey[0], i);
		const std::string iv = generateKey(salt, blockKey);
		dec.append(cipher(data.c_str() + i * 4096, len, key, iv));
	}
	return dec;
}
Esempio n. 3
0
inline void EncContent(std::string& encryptedPackage, const std::string& org, const CipherParam& param, const std::string& key, const std::string& salt)
{
	uint64_t orgSize = org.size();
	const size_t blockSize = 4096;
	std::string data = org;
	data.resize(RoundUp(data.size(), size_t(16)));
#ifdef SAME_KEY
	data[data.size() - 2] = 0x4b; // QQQ remove this
	data[data.size() - 1] = 0x6a;
#endif
	encryptedPackage.reserve(data.size() + 8);
	encryptedPackage.resize(8);
	cybozu::Set64bitAsLE(&encryptedPackage[0], orgSize);

	const size_t n = (data.size() + blockSize - 1) / blockSize;
	for (size_t i = 0; i < n; i++) {
		const size_t len = (i < n - 1) ? blockSize : (data.size() % blockSize);
		std::string blockKey(4, 0);
		cybozu::Set32bitAsLE(&blockKey[0], static_cast<uint32_t>(i));
		const std::string iv = generateKey(param, salt, blockKey);
		encryptedPackage.append(cipher(param.cipherName, data.c_str() + i * blockSize, len, key, iv, cybozu::crypto::Cipher::Encoding));
	}
}
Esempio n. 4
0
void Key<keyHandlerClass>::keyPressed(void) {
	blockKey();
	(pKeyHandlerInstance->*pKeyHandlerFunction)();
}