|  | // Copyright 2019 The Chromium Authors | 
|  | // | 
|  | // Licensed under the Apache License, Version 2.0 (the "License"); | 
|  | // you may not use this file except in compliance with the License. | 
|  | // You may obtain a copy of the License at | 
|  | // | 
|  | //     https://www.apache.org/licenses/LICENSE-2.0 | 
|  | // | 
|  | // Unless required by applicable law or agreed to in writing, software | 
|  | // distributed under the License is distributed on an "AS IS" BASIS, | 
|  | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
|  | // See the License for the specific language governing permissions and | 
|  | // limitations under the License. | 
|  |  | 
|  | #ifndef BSSL_PKI_REVOCATION_UTIL_H_ | 
|  | #define BSSL_PKI_REVOCATION_UTIL_H_ | 
|  |  | 
|  | #include <cstdint> | 
|  | #include <optional> | 
|  |  | 
|  | #include <openssl/base.h> | 
|  |  | 
|  | BSSL_NAMESPACE_BEGIN | 
|  |  | 
|  | namespace der { | 
|  | struct GeneralizedTime; | 
|  | } | 
|  |  | 
|  | // Returns true if a revocation status with |this_update| field and potentially | 
|  | // a |next_update| field, is valid at POSIX time |verify_time_epoch_seconds| and | 
|  | // not older than |max_age_seconds| seconds, if specified. Expressed | 
|  | // differently, returns true if |this_update <= verify_time < next_update|, and | 
|  | // |this_update >= verify_time - max_age|. | 
|  | [[nodiscard]] OPENSSL_EXPORT bool CheckRevocationDateValid( | 
|  | const der::GeneralizedTime &this_update, | 
|  | const der::GeneralizedTime *next_update, int64_t verify_time_epoch_seconds, | 
|  | std::optional<int64_t> max_age_seconds); | 
|  |  | 
|  | BSSL_NAMESPACE_END | 
|  |  | 
|  | #endif  // BSSL_PKI_REVOCATION_UTIL_H_ |