1 // Copyright 2023 The Chromium Authors 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "net/cert/time_conversions.h" 6 7 #include "base/time/time.h" 8 #include "third_party/boringssl/src/pki/encode_values.h" 9 #include "third_party/boringssl/src/pki/parse_values.h" 10 11 #include "third_party/boringssl/src/include/openssl/time.h" 12 13 namespace net { 14 EncodeTimeAsGeneralizedTime(const base::Time & time,bssl::der::GeneralizedTime * generalized_time)15bool EncodeTimeAsGeneralizedTime(const base::Time& time, 16 bssl::der::GeneralizedTime* generalized_time) { 17 return bssl::der::EncodePosixTimeAsGeneralizedTime( 18 (time - base::Time::UnixEpoch()).InSecondsFloored(), generalized_time); 19 } 20 GeneralizedTimeToTime(const bssl::der::GeneralizedTime & generalized,base::Time * result)21bool GeneralizedTimeToTime(const bssl::der::GeneralizedTime& generalized, 22 base::Time* result) { 23 int64_t posix_time; 24 if (bssl::der::GeneralizedTimeToPosixTime(generalized, &posix_time)) { 25 *result = base::Time::UnixEpoch() + base::Seconds(posix_time); 26 return true; 27 } 28 return false; 29 } 30 31 } // namespace net 32