From: Job Snijders Subject: rpki-client: zap trailing ';' when using certain asn1t.h macros To: tech@openbsd.org Date: Sat, 6 Sep 2025 12:08:26 +0000 I learned that the openssl/asn1t.h ASN1_SEQUENCE_END and ASN1_ITEM_TEMPLATE_END macros already add a semi-colon. OK? Index: aspa.c =================================================================== RCS file: /cvs/src/usr.sbin/rpki-client/aspa.c,v diff -u -p -r1.39 aspa.c --- aspa.c 25 Aug 2025 04:13:56 -0000 1.39 +++ aspa.c 6 Sep 2025 12:04:17 -0000 @@ -43,7 +43,7 @@ ASN1_SEQUENCE(ASProviderAttestation) = { ASN1_EXP_OPT(ASProviderAttestation, version, ASN1_INTEGER, 0), ASN1_SIMPLE(ASProviderAttestation, customerASID, ASN1_INTEGER), ASN1_SEQUENCE_OF(ASProviderAttestation, providers, ASN1_INTEGER), -} ASN1_SEQUENCE_END(ASProviderAttestation); +} ASN1_SEQUENCE_END(ASProviderAttestation) IMPLEMENT_ASN1_FUNCTIONS(ASProviderAttestation); Index: ccr.c =================================================================== RCS file: /cvs/src/usr.sbin/rpki-client/ccr.c,v diff -u -p -r1.3 ccr.c --- ccr.c 6 Sep 2025 11:55:44 -0000 1.3 +++ ccr.c 6 Sep 2025 12:04:17 -0000 @@ -128,7 +128,7 @@ ASN1_ITEM_EXP SubjectKeyIdentifier_it; ASN1_SEQUENCE(ContentInfo) = { ASN1_SIMPLE(ContentInfo, contentType, ASN1_OBJECT), ASN1_EXP(ContentInfo, content, ASN1_OCTET_STRING, 0), -} ASN1_SEQUENCE_END(ContentInfo); +} ASN1_SEQUENCE_END(ContentInfo) IMPLEMENT_ASN1_FUNCTIONS(ContentInfo); @@ -141,7 +141,7 @@ ASN1_SEQUENCE(CanonicalCacheRepresentati ASN1_EXP_OPT(CanonicalCacheRepresentation, vrps, ROAPayloadState, 2), ASN1_EXP_OPT(CanonicalCacheRepresentation, vaps, ASPAPayloadState, 3), ASN1_EXP_OPT(CanonicalCacheRepresentation, tas, TrustAnchorState, 4), -} ASN1_SEQUENCE_END(CanonicalCacheRepresentation); +} ASN1_SEQUENCE_END(CanonicalCacheRepresentation) IMPLEMENT_ASN1_FUNCTIONS(CanonicalCacheRepresentation); @@ -149,7 +149,7 @@ ASN1_SEQUENCE(ManifestState) = { ASN1_SEQUENCE_OF(ManifestState, mftrefs, ManifestRef), ASN1_SIMPLE(ManifestState, mostRecentUpdate, ASN1_GENERALIZEDTIME), ASN1_SIMPLE(ManifestState, hash, ASN1_OCTET_STRING), -} ASN1_SEQUENCE_END(ManifestState); +} ASN1_SEQUENCE_END(ManifestState) IMPLEMENT_ASN1_FUNCTIONS(ManifestState); @@ -165,14 +165,14 @@ ASN1_SEQUENCE(ManifestRef) = { ASN1_SIMPLE(ManifestRef, aki, ASN1_OCTET_STRING), ASN1_SIMPLE(ManifestRef, manifestNumber, ASN1_INTEGER), ASN1_SEQUENCE_OF(ManifestRef, location, ACCESS_DESCRIPTION), -} ASN1_SEQUENCE_END(ManifestRef); +} ASN1_SEQUENCE_END(ManifestRef) IMPLEMENT_ASN1_FUNCTIONS(ManifestRef); ASN1_SEQUENCE(ROAPayloadState) = { ASN1_SEQUENCE_OF(ROAPayloadState, rps, ROAPayloadSet), ASN1_SIMPLE(ROAPayloadState, hash, ASN1_OCTET_STRING), -} ASN1_SEQUENCE_END(ROAPayloadState); +} ASN1_SEQUENCE_END(ROAPayloadState) IMPLEMENT_ASN1_FUNCTIONS(ROAPayloadState); @@ -186,7 +186,7 @@ IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(RO ASN1_SEQUENCE(ROAPayloadSet) = { ASN1_SIMPLE(ROAPayloadSet, asID, ASN1_INTEGER), ASN1_SEQUENCE_OF(ROAPayloadSet, ipAddrBlocks, ROAIPAddressFamily), -} ASN1_SEQUENCE_END(ROAPayloadSet); +} ASN1_SEQUENCE_END(ROAPayloadSet) IMPLEMENT_ASN1_FUNCTIONS(ROAPayloadSet); IMPLEMENT_ASN1_FUNCTIONS(ROAIPAddressFamily); @@ -195,7 +195,7 @@ IMPLEMENT_ASN1_FUNCTIONS(ROAIPAddress); ASN1_SEQUENCE(ASPAPayloadState) = { ASN1_SEQUENCE_OF(ASPAPayloadState, aps, ASPAPayloadSet), ASN1_SIMPLE(ASPAPayloadState, hash, ASN1_OCTET_STRING), -} ASN1_SEQUENCE_END(ASPAPayloadState); +} ASN1_SEQUENCE_END(ASPAPayloadState) IMPLEMENT_ASN1_FUNCTIONS(ASPAPayloadState); @@ -209,7 +209,7 @@ IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(AS ASN1_SEQUENCE(ASPAPayloadSet) = { ASN1_SIMPLE(ASPAPayloadSet, asID, ASN1_INTEGER), ASN1_SEQUENCE_OF(ASPAPayloadSet, providers, ASN1_INTEGER), -} ASN1_SEQUENCE_END(ASPAPayloadSet); +} ASN1_SEQUENCE_END(ASPAPayloadSet) IMPLEMENT_ASN1_FUNCTIONS(ASPAPayloadSet); @@ -219,7 +219,7 @@ IMPLEMENT_ASN1_FUNCTIONS(SubjectKeyIdent ASN1_SEQUENCE(TrustAnchorState) = { ASN1_SEQUENCE_OF(TrustAnchorState, skis, SubjectKeyIdentifier), ASN1_SIMPLE(TrustAnchorState, hash, ASN1_OCTET_STRING), -} ASN1_SEQUENCE_END(TrustAnchorState); +} ASN1_SEQUENCE_END(TrustAnchorState) IMPLEMENT_ASN1_FUNCTIONS(TrustAnchorState); Index: mft.c =================================================================== RCS file: /cvs/src/usr.sbin/rpki-client/mft.c,v diff -u -p -r1.130 mft.c --- mft.c 24 Aug 2025 12:17:12 -0000 1.130 +++ mft.c 6 Sep 2025 12:04:17 -0000 @@ -49,14 +49,14 @@ ASN1_SEQUENCE(Manifest) = { ASN1_SIMPLE(Manifest, nextUpdate, ASN1_GENERALIZEDTIME), ASN1_SIMPLE(Manifest, fileHashAlg, ASN1_OBJECT), ASN1_SEQUENCE_OF(Manifest, fileList, FileAndHash), -} ASN1_SEQUENCE_END(Manifest); +} ASN1_SEQUENCE_END(Manifest) IMPLEMENT_ASN1_FUNCTIONS(Manifest); ASN1_SEQUENCE(FileAndHash) = { ASN1_SIMPLE(FileAndHash, file, ASN1_IA5STRING), ASN1_SIMPLE(FileAndHash, hash, ASN1_BIT_STRING), -} ASN1_SEQUENCE_END(FileAndHash); +} ASN1_SEQUENCE_END(FileAndHash) #define GENTIME_LENGTH 15 Index: roa.c =================================================================== RCS file: /cvs/src/usr.sbin/rpki-client/roa.c,v diff -u -p -r1.86 roa.c --- roa.c 24 Aug 2025 11:52:20 -0000 1.86 +++ roa.c 6 Sep 2025 12:04:17 -0000 @@ -45,19 +45,19 @@ ASN1_SEQUENCE(RouteOriginAttestation) = ASN1_SIMPLE(RouteOriginAttestation, asid, ASN1_INTEGER), ASN1_SEQUENCE_OF(RouteOriginAttestation, ipAddrBlocks, ROAIPAddressFamily), -} ASN1_SEQUENCE_END(RouteOriginAttestation); +} ASN1_SEQUENCE_END(RouteOriginAttestation) IMPLEMENT_ASN1_FUNCTIONS(RouteOriginAttestation); ASN1_SEQUENCE(ROAIPAddressFamily) = { ASN1_SIMPLE(ROAIPAddressFamily, addressFamily, ASN1_OCTET_STRING), ASN1_SEQUENCE_OF(ROAIPAddressFamily, addresses, ROAIPAddress), -} ASN1_SEQUENCE_END(ROAIPAddressFamily); +} ASN1_SEQUENCE_END(ROAIPAddressFamily) ASN1_SEQUENCE(ROAIPAddress) = { ASN1_SIMPLE(ROAIPAddress, address, ASN1_BIT_STRING), ASN1_OPT(ROAIPAddress, maxLength, ASN1_INTEGER), -} ASN1_SEQUENCE_END(ROAIPAddress); +} ASN1_SEQUENCE_END(ROAIPAddress) /* * Parses the eContent section of an ROA file, RFC 9582, section 4. Index: rsc.c =================================================================== RCS file: /cvs/src/usr.sbin/rpki-client/rsc.c,v diff -u -p -r1.42 rsc.c --- rsc.c 24 Aug 2025 12:34:39 -0000 1.42 +++ rsc.c 6 Sep 2025 12:04:17 -0000 @@ -49,36 +49,36 @@ ASN1_SEQUENCE(RpkiSignedChecklist) = { ASN1_SIMPLE(RpkiSignedChecklist, resources, ResourceBlock), ASN1_SIMPLE(RpkiSignedChecklist, digestAlgorithm, X509_ALGOR), ASN1_SEQUENCE_OF(RpkiSignedChecklist, checkList, FileNameAndHash), -} ASN1_SEQUENCE_END(RpkiSignedChecklist); +} ASN1_SEQUENCE_END(RpkiSignedChecklist) IMPLEMENT_ASN1_FUNCTIONS(RpkiSignedChecklist); ASN1_SEQUENCE(FileNameAndHash) = { ASN1_OPT(FileNameAndHash, fileName, ASN1_IA5STRING), ASN1_SIMPLE(FileNameAndHash, hash, ASN1_OCTET_STRING), -} ASN1_SEQUENCE_END(FileNameAndHash); +} ASN1_SEQUENCE_END(FileNameAndHash) ASN1_SEQUENCE(ResourceBlock) = { ASN1_EXP_OPT(ResourceBlock, asID, ConstrainedASIdentifiers, 0), ASN1_EXP_SEQUENCE_OF_OPT(ResourceBlock, ipAddrBlocks, ConstrainedIPAddressFamily, 1) -} ASN1_SEQUENCE_END(ResourceBlock); +} ASN1_SEQUENCE_END(ResourceBlock) ASN1_ITEM_TEMPLATE(ConstrainedIPAddrBlocks) = ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, ConstrainedIPAddrBlocks, ConstrainedIPAddressFamily) -ASN1_ITEM_TEMPLATE_END(ConstrainedIPAddrBlocks); +ASN1_ITEM_TEMPLATE_END(ConstrainedIPAddrBlocks) ASN1_SEQUENCE(ConstrainedIPAddressFamily) = { ASN1_SIMPLE(ConstrainedIPAddressFamily, addressFamily, ASN1_OCTET_STRING), ASN1_SEQUENCE_OF(ConstrainedIPAddressFamily, addressesOrRanges, IPAddressOrRange), -} ASN1_SEQUENCE_END(ConstrainedIPAddressFamily); +} ASN1_SEQUENCE_END(ConstrainedIPAddressFamily) ASN1_SEQUENCE(ConstrainedASIdentifiers) = { ASN1_EXP_SEQUENCE_OF(ConstrainedASIdentifiers, asnum, ASIdOrRange, 0), -} ASN1_SEQUENCE_END(ConstrainedASIdentifiers); +} ASN1_SEQUENCE_END(ConstrainedASIdentifiers) /* * Parse asID (inside ResourceBlock) Index: spl.c =================================================================== RCS file: /cvs/src/usr.sbin/rpki-client/spl.c,v diff -u -p -r1.16 spl.c --- spl.c 24 Aug 2025 12:34:39 -0000 1.16 +++ spl.c 6 Sep 2025 12:04:17 -0000 @@ -45,7 +45,7 @@ ASN1_SEQUENCE(SignedPrefixList) = { ASN1_EXP_OPT(SignedPrefixList, version, ASN1_INTEGER, 0), ASN1_SIMPLE(SignedPrefixList, asid, ASN1_INTEGER), ASN1_SEQUENCE_OF(SignedPrefixList, prefixBlocks, AddressFamilyPrefixes) -} ASN1_SEQUENCE_END(SignedPrefixList); +} ASN1_SEQUENCE_END(SignedPrefixList) IMPLEMENT_ASN1_FUNCTIONS(SignedPrefixList); @@ -53,7 +53,7 @@ ASN1_SEQUENCE(AddressFamilyPrefixes) = { ASN1_SIMPLE(AddressFamilyPrefixes, addressFamily, ASN1_OCTET_STRING), ASN1_SEQUENCE_OF(AddressFamilyPrefixes, addressPrefixes, ASN1_BIT_STRING), -} ASN1_SEQUENCE_END(AddressFamilyPrefixes); +} ASN1_SEQUENCE_END(AddressFamilyPrefixes) /* * Comparator to help sorting elements in SPL prefixBlocks and VSPs. Index: tak.c =================================================================== RCS file: /cvs/src/usr.sbin/rpki-client/tak.c,v diff -u -p -r1.27 tak.c --- tak.c 19 Aug 2025 11:30:20 -0000 1.27 +++ tak.c 6 Sep 2025 12:04:17 -0000 @@ -45,14 +45,14 @@ ASN1_SEQUENCE(TAKey) = { ASN1_SEQUENCE_OF(TAKey, comments, ASN1_UTF8STRING), ASN1_SEQUENCE_OF(TAKey, certificateURIs, ASN1_IA5STRING), ASN1_SIMPLE(TAKey, subjectPublicKeyInfo, X509_PUBKEY), -} ASN1_SEQUENCE_END(TAKey); +} ASN1_SEQUENCE_END(TAKey) ASN1_SEQUENCE(TAK) = { ASN1_EXP_OPT(TAK, version, ASN1_INTEGER, 0), ASN1_SIMPLE(TAK, current, TAKey), ASN1_EXP_OPT(TAK, predecessor, TAKey, 0), ASN1_EXP_OPT(TAK, successor, TAKey, 1), -} ASN1_SEQUENCE_END(TAK); +} ASN1_SEQUENCE_END(TAK) IMPLEMENT_ASN1_FUNCTIONS(TAK);