Ejemplo n.º 1
0
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);
}
Ejemplo n.º 2
0
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);
}
Ejemplo n.º 3
0
 //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;
 }
Ejemplo n.º 5
0
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;
}