INNER CODE UNIT · C++

signStartPos

QuasarApp/Qt-Secret · src/Qt-RSA/qrsaencryption.cpp:386

    auto signStartPos = rawData.lastIndexOf(QString(SIGN_MARKER).toLatin1(), rawData.length() - signMarkerLength - 1);

    // length of signature in rawData
    auto signLength   = rawData.length() - signStartPos - signMarkerLength * 2;

    // message, that was recieved from channel
    QByteArray message = rawData.left(signStartPos);

    // hash, that was decrypt from recieved signature
    QByteArray recievedHash = decode(QByteArray::fromHex(rawData.mid(signStartPos + signMarkerLength, signLength)),
                                     pubKey, BlockSize::OneByte);

    // if recievedHash == hashAlgorithm(recived message), then signed message is valid
    return recievedHash == QCryptographicHash::hash(message, HashAlgorithm::Sha256);
}

bool QRSAEncryption::save(const QString &file, const QByteArray& key) {
    QFile keyFile(file);

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…