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; }