Всегда лучше не писать крипто самостоятельно.Вы можете написать обертку вокруг вызовов gnupg и просто выполнить gpg --verify pub.key file
?
Сказав это, похоже, что qca проделала некоторую часть этой работы, смотрите qca_securemessage.h, вы, вероятно, хотите вызвать void startVerify(const QByteArray &detachedSig = QByteArray());