void Widget::on_decryptFile_clicked() { HCRYPTPROV cryptProv; HCRYPTKEY hKey; BYTE* key; QFile keyV("key.dat"); DWORD keyBlobLen = 0; if (!keyV.exists()) { QMessageBox::critical(0, "Ошибка", "Отсутствует ключ", QMessageBox::Ok); return; } keyV.open(QIODevice::ReadOnly); if (!CryptAcquireContext(&cryptProv, NULL, MS_DEF_RSA_SCHANNEL_PROV, PROV_RSA_SCHANNEL, CRYPT_VERIFYCONTEXT)) { QMessageBox::critical(0, "Ошибка", "Получение контекста криптопровайдера. " + GetErrorString(GetLastError()), QMessageBox::Ok); return; } keyV.read((char *)&keyBlobLen, sizeof(keyBlobLen)); key = new BYTE[keyBlobLen]; memset(key, 0, keyBlobLen); keyV.read((char *)key, keyBlobLen); keyV.close(); CryptImportKey(cryptProv, key, keyBlobLen, 0, 0, &hKey); delete[] key; DecodingFile(fName, hKey); QMessageBox::information(0, "Процесс завершён", "Файл успешно расшифрован", QMessageBox::Ok); }
void Widget::on_encryptFile_clicked() { HCRYPTPROV cryptProv; HCRYPTKEY hKey; QByteArray key; QFile keyV("key.dat"); DWORD keyBlobLen = 0; QDataStream writeToFileFrom(&keyV); if (keyV.exists()) keyV.remove(); keyV.open(QIODevice::WriteOnly); if (!CryptAcquireContext(&cryptProv, NULL, MS_DEF_RSA_SCHANNEL_PROV, PROV_RSA_SCHANNEL, CRYPT_VERIFYCONTEXT)) { QMessageBox::critical(0, "Ошибка", "Получение контекста криптопровайдера. " + GetErrorString(GetLastError()), QMessageBox::Ok); return; } hKey = GenKey(cryptProv, ui->keyVal->text(), &key, keyBlobLen, ui->randKeyVal->isChecked()); writeToFileFrom << (quint32)keyBlobLen; keyV.write(key); keyV.close(); key.clear(); EncodingFile(fName, hKey); QMessageBox::information(0, "Процесс завершён", "Файл успешно зашифрован", QMessageBox::Ok); }
//initializes a key matrix; //first parameter is rows, //second is columns keyM keyMInit(size_t rows, size_t cols) { keyM rv(cols); size_t i = 0; for (i = 0 ; i < cols ; i++) { rv[i] = keyV(rows); } return rv; }
//initializes a key matrix; //first parameter is rows, //second is columns keyM keyMInit(int rows, int cols) { keyM rv(cols); int i = 0; for (i = 0 ; i < cols ; i++) { rv[i] = keyV(rows); } return rv; }
std::map<string, string> AsyncInitializationPolicy::parse(string parameters) { std::map<string, string> retVal; vespalib::StringTokenizer tokenizer(parameters, ";"); for (uint32_t i = 0; i < tokenizer.size(); i++) { string keyValue = tokenizer[i]; vespalib::StringTokenizer keyV(keyValue, "="); if (keyV.size() == 1) { retVal[keyV[0]] = "true"; } else { retVal[keyV[0]] = keyV[1]; } } return retVal; }