17 if (!m_disable_time_checks && !m_runtime) {
18 return Verdict::Misconfiguration;
19 }
else if (!m_disable_location_checks && (!m_position_provider || !m_location_checker)) {
20 return Verdict::Misconfiguration;
21 }
else if (!signing_cert.valid_for_application(its_aid)) {
22 return Verdict::InsufficientPermission;
23 }
else if (m_runtime && !signing_cert.valid_at_timepoint(m_runtime->now())) {
24 return Verdict::Expired;
26 Verdict verdict = Verdict::Valid;
27 if (!m_disable_location_checks) {
28 if (m_position_provider) {
29 auto location = m_position_provider->position_fix();
30 if (signing_cert.has_region_restriction()) {
31 if (!signing_cert.valid_at_location(location, m_location_checker)) {
32 verdict = Verdict::OutsideRegion;
35 auto issuing_cert = find_issuer_certificate(signing_cert);
36 if (issuing_cert && !issuing_cert->valid_at_location(location, m_location_checker)) {
37 verdict = Verdict::OutsideRegion;