As discussed in the previous thread, we can simplify the verify callback
by getting rid of the extremely noisy warnx at the end. Fail directly on
encountering an unknown critical extension and succeed otherwise.

Index: parser.c
===================================================================
RCS file: /cvs/src/usr.sbin/rpki-client/parser.c,v
retrieving revision 1.30
diff -u -p -r1.30 parser.c
--- parser.c    4 Jan 2022 13:39:01 -0000       1.30
+++ parser.c    4 Jan 2022 13:44:35 -0000
@@ -55,9 +55,6 @@ verify_cb(int ok, X509_STORE_CTX *store_
        ASN1_OBJECT                     *obj;
        char                            *file;
        int                              depth, error, i, nid;
-       int                              saw_ipAddrBlock = 0;
-       int                              saw_autonomousSysNum = 0;
-       int                              saw_unknown = 0;
 
        error = X509_STORE_CTX_get_error(store_ctx);
        depth = X509_STORE_CTX_get_error_depth(store_ctx);
@@ -94,25 +91,16 @@ verify_cb(int ok, X509_STORE_CTX *store_
                nid = OBJ_obj2nid(obj);
                switch (nid) {
                case NID_sbgp_ipAddrBlock:
-                       saw_ipAddrBlock = 1;
-                       break;
                case NID_sbgp_autonomousSysNum:
-                       saw_autonomousSysNum = 1;
-                       break;
+                       continue;
                default:
                        warnx("%s: depth %d: unknown extension: nid %d",
                            file, depth, nid);
-                       saw_unknown = 1;
-                       break;
+                       return 0;
                }
        }
 
-       if (verbose > 1)
-               warnx("%s: depth %d, ipAddrBlock %d, autonomousSysNum %d",
-                   file, depth, saw_ipAddrBlock, saw_autonomousSysNum);
-
-       /* Fail if we saw an unknown extension. */
-       return !saw_unknown;
+       return 1;
 }
 
 /*

Reply via email to