diff options
-rw-r--r-- | include/asn1_obj.h | 2 | ||||
-rw-r--r-- | src/asn1_tm.cpp | 41 | ||||
-rw-r--r-- | src/x509stor.cpp | 18 |
3 files changed, 29 insertions, 32 deletions
diff --git a/include/asn1_obj.h b/include/asn1_obj.h index a2eb5fd45..22542e913 100644 --- a/include/asn1_obj.h +++ b/include/asn1_obj.h @@ -156,8 +156,6 @@ bool BOTAN_DLL operator<(const X509_DN&, const X509_DN&); /************************************************* * Helper Functions * *************************************************/ -s32bit BOTAN_DLL validity_check(const X509_Time&, const X509_Time&, u64bit); - bool BOTAN_DLL is_string_type(ASN1_Tag); } diff --git a/src/asn1_tm.cpp b/src/asn1_tm.cpp index ece8ccae4..7cd051af7 100644 --- a/src/asn1_tm.cpp +++ b/src/asn1_tm.cpp @@ -8,7 +8,6 @@ #include <botan/ber_dec.h> #include <botan/charset.h> #include <botan/parsing.h> -#include <botan/config.h> #include <ctime> namespace Botan { @@ -178,6 +177,17 @@ void X509_Time::encode_into(DER_Encoder& der) const } /************************************************* +* Decode a BER encoded X509_Time * +*************************************************/ +void X509_Time::decode_from(BER_Decoder& source) + { + BER_Object ber_time = source.get_next_object(); + set_to(Charset::transcode(ASN1::to_string(ber_time), + LATIN1_CHARSET, LOCAL_CHARSET), + ber_time.type_tag); + } + +/************************************************* * Return a string representation of the time * *************************************************/ std::string X509_Time::as_string() const @@ -282,33 +292,4 @@ bool operator<=(const X509_Time& t1, const X509_Time& t2) bool operator>=(const X509_Time& t1, const X509_Time& t2) { return (t1.cmp(t2) >= 0); } -/************************************************* -* Do a validity check * -*************************************************/ -s32bit validity_check(const X509_Time& start, const X509_Time& end, - u64bit current_time) - { - const u32bit ALLOWABLE_SLIP = - global_config().option_as_time("x509/validity_slack"); - - const s32bit NOT_YET_VALID = -1, VALID_TIME = 0, EXPIRED = 1; - - if(start.cmp(current_time + ALLOWABLE_SLIP) > 0) - return NOT_YET_VALID; - if(end.cmp(current_time - ALLOWABLE_SLIP) < 0) - return EXPIRED; - return VALID_TIME; - } - -/************************************************* -* Decode a BER encoded X509_Time * -*************************************************/ -void X509_Time::decode_from(BER_Decoder& source) - { - BER_Object ber_time = source.get_next_object(); - set_to(Charset::transcode(ASN1::to_string(ber_time), - LATIN1_CHARSET, LOCAL_CHARSET), - ber_time.type_tag); - } - } diff --git a/src/x509stor.cpp b/src/x509stor.cpp index 9614af21a..e1b498590 100644 --- a/src/x509stor.cpp +++ b/src/x509stor.cpp @@ -18,6 +18,24 @@ namespace Botan { namespace { /************************************************* +* Do a validity check * +*************************************************/ +s32bit validity_check(const X509_Time& start, const X509_Time& end, + u64bit current_time) + { + const u32bit ALLOWABLE_SLIP = + global_config().option_as_time("x509/validity_slack"); + + const s32bit NOT_YET_VALID = -1, VALID_TIME = 0, EXPIRED = 1; + + if(start.cmp(current_time + ALLOWABLE_SLIP) > 0) + return NOT_YET_VALID; + if(end.cmp(current_time - ALLOWABLE_SLIP) < 0) + return EXPIRED; + return VALID_TIME; + } + +/************************************************* * Compare the value of unique ID fields * *************************************************/ bool compare_ids(const MemoryVector<byte>& id1, |