-- SE: Semantic error

-- iso.org.dod.internet.private.enterprise (1.3.6.1.4.1)
-- .spelio.software.asn1c.test (9363.1.5.1)
-- .149

ModuleComplexWithComponents
	{ iso org(3) dod(6) internet(1) private(4) enterprise(1)
		spelio(9363) software(1) asn1c(5) test(1) 149 }
DEFINITIONS ::= BEGIN

Certificate ::= ExplicitCertificate (WITH COMPONENTS { ...,
  issuer (WITH COMPONENTS {sha256AndDigest}),
  toBeSigned (WITH COMPONENTS { ...,
    id (WITH COMPONENTS {
      name ("foo" | "bar") -- Some comment
    }),
    crlSeries(ScmsSpclComponentCrlSeries),
    validityPeriod (WITH COMPONENTS { ...,
      duration (CrlgCertExpiration)
    }),
    region (WITH COMPONENTS {
      identifiedRegion (SequenceOfIdentifiedRegion (SIZE(3)) (CONSTRAINED BY {
        IdentifiedRegion ( WITH COMPONENTS { countryOnly(Canada) }),
        IdentifiedRegion ( WITH COMPONENTS { countryOnly(Mexico) }),
        IdentifiedRegion ( WITH COMPONENTS { countryOnly(USA) })
      }))
    }),
    canRequestRollover (NULL),
    encryptionKey ABSENT,
    verifyKeyIndicator (WITH COMPONENTS {
      verificationKey (WITH COMPONENTS {
        ecdsaNistP256 (WITH COMPONENTS {
          compressed-y-0, compressed-y-1
        })
      })
    })
  })
})


END
