Example #1
0
bool QCACryptoInterface::verifySignatur(const QByteArray &message, const QByteArray &signature,
                                     const QString &publicKeyString)
{
    QCA::PublicKey publicKey;
    QCA::ConvertResult convRes;
    publicKey = QCA::PublicKey::fromPEM(publicKeyString, &convRes);
    if (convRes != QCA::ConvertGood) {
        std::cout << "Sorry, could not import Public Key" << std::endl;
        return false;
    }
    // to check a signature, we must check that the key is
    // appropriate
    if(publicKey.canVerify()) {
        publicKey.startVerify(QCA::EMSA3_MD5);
        publicKey.update(message);
        if (publicKey.validSignature(signature) )
            return true;
        else
            return false;
    }
    return true;
}