Exemple #1
0
QByteArray File::hashFile(QByteArray contents, int blockSize, QMap<QByteArray, QByteArray> *hashToBlock,
                          QMap<QByteArray, QByteArray> *blockToHash) {
    QByteArray result;    

    while (contents.size() != 0) {        
        QByteArray block = contents.left(blockSize);
        qDebug() << "computed block of size " << block.size();
        if (!QCA::isSupported("sha256")) {
            qDebug() << "SHA256 not supported!";
        }

        QCA::Hash shaHash("sha256");
        QByteArray blockHash = shaHash.hash(block).toByteArray();

        hashToBlock->insert(blockHash, block);
        blockToHash->insert(block, blockHash);

        result.append(blockHash);
        if (blockSize > contents.size())
            return result;
        contents = contents.mid(blockSize);
    }

    return result;
}
Exemple #2
0
QByteArray Authentication::saltHashPassword(const std::string &password, const QByteArray &salt) const
{
    QCA::Hash shaHash("sha1");

    shaHash.update(password.c_str(), password.size());
    for (int i = 0; i < SALT_ITERATIONS; i++) {
        shaHash.update(salt);
    }

    return shaHash.final().toByteArray();
}
QByteArray QCACryptoInterface::sha2Hash(const QByteArray &string) const
{
    QCA::Hash shaHash("sha256");
    shaHash.update(string);
    return shaHash.final().toByteArray();
}