blob: 786ec8697ac172309aaeb3706673e5496c0ed6ad (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "net/cert/internal/revocation_util.h"
#include "base/time/time.h"
#include "net/der/encode_values.h"
#include "net/der/parse_values.h"
namespace net {
bool CheckRevocationDateValid(const der::GeneralizedTime& this_update,
const der::GeneralizedTime* next_update,
const base::Time& verify_time,
const base::TimeDelta& max_age) {
der::GeneralizedTime verify_time_der;
if (!der::EncodeTimeAsGeneralizedTime(verify_time, &verify_time_der))
return false;
if (this_update > verify_time_der)
return false; // Response is not yet valid.
if (next_update && (*next_update <= verify_time_der))
return false; // Response is no longer valid.
der::GeneralizedTime earliest_this_update;
if (!der::EncodeTimeAsGeneralizedTime(verify_time - max_age,
&earliest_this_update)) {
return false;
}
if (this_update < earliest_this_update)
return false; // Response is too old.
return true;
}
} // namespace net
|