+ hash[1] == sighash[1]))) {
+ remove = true;
+ }
+
+#if HAVE_CRYPTO
+ if (fullverify && !remove) {
+ sig_info((*sigs)->packet, &sigid, NULL);
+
+ /* Start by assuming it's a bad sig */
+
+ remove = true;
+ if (sigid == keyid) {
+ ret = onak_check_hash_sig(key, (*sigs)->packet,
+ hash, hashtype);
+
+ /* We have a valid self signature */
+ if (ret == ONAK_E_OK) {
+ remove = false;
+ if (selfsig != NULL) {
+ *selfsig = true;
+ }
+ }
+ }
+
+ if (remove && dbctx->fetch_key_id(dbctx, sigid,
+ &sigkey, false)) {
+
+ ret = onak_check_hash_sig(sigkey,
+ (*sigs)->packet,
+ hash, hashtype);
+
+ /* Got a valid signature */
+ if (ret == ONAK_E_OK) {
+ remove = false;
+ if (othersig != NULL) {
+ *othersig = true;
+ }
+ }
+
+ free_publickey(sigkey);
+ sigkey = NULL;
+ }
+ }
+#endif
+
+ if (remove) {