From d87bf52f2bdb62d7ba466fe4d047670eaf51a309 Mon Sep 17 00:00:00 2001 From: "Neal H. Walfield" Date: Tue, 15 Dec 2020 13:05:27 +0100 Subject: openpgp: Use Feb. 1st instead of Jan. 1st as the cutoff day. - January 1st is a holiday in much of the world. - When we disable an algorithm, things will almost certainly break somewhere. - Reduce the chance that things break when people are on vacation by using February 1st as the cutoff day instead of January 1st. --- openpgp/src/policy.rs | 136 ++++++++++---------- openpgp/src/types/timestamp.rs | 275 +++++++++++++++++++++-------------------- 2 files changed, 206 insertions(+), 205 deletions(-) diff --git a/openpgp/src/policy.rs b/openpgp/src/policy.rs index 2842f9cb..939fd684 100644 --- a/openpgp/src/policy.rs +++ b/openpgp/src/policy.rs @@ -603,18 +603,18 @@ impl<'a> From<&'a StandardPolicy<'a>> for Option<&'a dyn Policy> { // for more details. a_cutoff_list!(CollisionResistantHashCutoffList, HashAlgorithm, 12, [ - REJECT, // 0. Not assigned. - Some(Timestamp::Y1997), // 1. MD5 - Some(Timestamp::Y2013), // 2. SHA-1 - Some(Timestamp::Y2013), // 3. RIPE-MD/160 - REJECT, // 4. Reserved. - REJECT, // 5. Reserved. - REJECT, // 6. Reserved. - REJECT, // 7. Reserved. - ACCEPT, // 8. SHA256 - ACCEPT, // 9. SHA384 - ACCEPT, // 10. SHA512 - ACCEPT, // 11. SHA224 + REJECT, // 0. Not assigned. + Some(Timestamp::Y1997M2), // 1. MD5 + Some(Timestamp::Y2013M2), // 2. SHA-1 + Some(Timestamp::Y2013M2), // 3. RIPE-MD/160 + REJECT, // 4. Reserved. + REJECT, // 5. Reserved. + REJECT, // 6. Reserved. + REJECT, // 7. Reserved. + ACCEPT, // 8. SHA256 + ACCEPT, // 9. SHA384 + ACCEPT, // 10. SHA512 + ACCEPT, // 11. SHA224 ]); // Signatures that *only* require a hash with Second Pre-image // Resistance. See the documentation for HashAlgoSecurity for more @@ -622,9 +622,9 @@ a_cutoff_list!(CollisionResistantHashCutoffList, HashAlgorithm, 12, a_cutoff_list!(SecondPreImageResistantHashCutoffList, HashAlgorithm, 12, [ REJECT, // 0. Not assigned. - Some(Timestamp::Y2004), // 1. MD5 - Some(Timestamp::Y2023), // 2. SHA-1 - Some(Timestamp::Y2013), // 3. RIPE-MD/160 + Some(Timestamp::Y2004M2), // 1. MD5 + Some(Timestamp::Y2023M2), // 2. SHA-1 + Some(Timestamp::Y2013M2), // 3. RIPE-MD/160 REJECT, // 4. Reserved. REJECT, // 5. Reserved. REJECT, // 6. Reserved. @@ -680,42 +680,42 @@ a_cutoff_list!(SubpacketTagCutoffList, SubpacketTag, 36, a_cutoff_list!(AsymmetricAlgorithmCutoffList, AsymmetricAlgorithm, 18, [ - Some(Timestamp::Y2014), // 0. RSA1024. - ACCEPT, // 1. RSA2048. - ACCEPT, // 2. RSA3072. - ACCEPT, // 3. RSA4096. - Some(Timestamp::Y2014), // 4. ElGamal1024. - ACCEPT, // 5. ElGamal2048. - ACCEPT, // 6. ElGamal3072. - ACCEPT, // 7. ElGamal4096. - Some(Timestamp::Y2014), // 8. DSA1024. - ACCEPT, // 9. DSA2048. - ACCEPT, // 10. DSA3072. - ACCEPT, // 11. DSA4096. - ACCEPT, // 12. NistP256. - ACCEPT, // 13. NistP384. - ACCEPT, // 14. NistP521. - ACCEPT, // 15. BrainpoolP256. - ACCEPT, // 16. BrainpoolP512. - ACCEPT, // 17. Cv25519. + Some(Timestamp::Y2014M2), // 0. RSA1024. + ACCEPT, // 1. RSA2048. + ACCEPT, // 2. RSA3072. + ACCEPT, // 3. RSA4096. + Some(Timestamp::Y2014M2), // 4. ElGamal1024. + ACCEPT, // 5. ElGamal2048. + ACCEPT, // 6. ElGamal3072. + ACCEPT, // 7. ElGamal4096. + Some(Timestamp::Y2014M2), // 8. DSA1024. + ACCEPT, // 9. DSA2048. + ACCEPT, // 10. DSA3072. + ACCEPT, // 11. DSA4096. + ACCEPT, // 12. NistP256. + ACCEPT, // 13. NistP384. + ACCEPT, // 14. NistP521. + ACCEPT, // 15. BrainpoolP256. + ACCEPT, // 16. BrainpoolP512. + ACCEPT, // 17. Cv25519. ]); a_cutoff_list!(SymmetricAlgorithmCutoffList, SymmetricAlgorithm, 14, [ - REJECT, // 0. Unencrypted. - ACCEPT, // 1. IDEA. - Some(Timestamp::Y2017), // 2. TripleDES. - ACCEPT, // 3. CAST5. - ACCEPT, // 4. Blowfish. - REJECT, // 5. Reserved. - REJECT, // 6. Reserved. - ACCEPT, // 7. AES128. - ACCEPT, // 8. AES192. - ACCEPT, // 9. AES256. - ACCEPT, // 10. Twofish. - ACCEPT, // 11. Camellia128. - ACCEPT, // 12. Camellia192. - ACCEPT, // 13. Camellia256. + REJECT, // 0. Unencrypted. + ACCEPT, // 1. IDEA. + Some(Timestamp::Y2017M2), // 2. TripleDES. + ACCEPT, // 3. CAST5. + ACCEPT, // 4. Blowfish. + REJECT, // 5. Reserved. + REJECT, // 6. Reserved. + ACCEPT, // 7. AES128. + ACCEPT, // 8. AES192. + ACCEPT, // 9. AES256. + ACCEPT, // 10. Twofish. + ACCEPT, // 11. Camellia128. + ACCEPT, // 12. Camellia192. + ACCEPT, // 13. Camellia256. ]); a_cutoff_list!(AEADAlgorithmCutoffList, AEADAlgorithm, 3, @@ -727,27 +727,27 @@ a_cutoff_list!(AEADAlgorithmCutoffList, AEADAlgorithm, 3, a_cutoff_list!(PacketTagCutoffList, Tag, 21, [ - REJECT, // 0. Reserved. - ACCEPT, // 1. PKESK. - ACCEPT, // 2. Signature. - ACCEPT, // 3. SKESK. - ACCEPT, // 4. OnePassSig. - ACCEPT, // 5. SecretKey. - ACCEPT, // 6. PublicKey. - ACCEPT, // 7. SecretSubkey. - ACCEPT, // 8. CompressedData. - Some(Timestamp::Y2004), // 9. SED. - ACCEPT, // 10. Marker. - ACCEPT, // 11. Literal. - ACCEPT, // 12. Trust. - ACCEPT, // 13. UserID. - ACCEPT, // 14. PublicSubkey. - REJECT, // 15. Not assigned. - REJECT, // 16. Not assigned. - ACCEPT, // 17. UserAttribute. - ACCEPT, // 18. SEIP. - ACCEPT, // 19. MDC. - ACCEPT, // 20. AED. + REJECT, // 0. Reserved. + ACCEPT, // 1. PKESK. + ACCEPT, // 2. Signature. + ACCEPT, // 3. SKESK. + ACCEPT, // 4. OnePassSig. + ACCEPT, // 5. SecretKey. + ACCEPT, // 6. PublicKey. + ACCEPT, // 7. SecretSubkey. + ACCEPT, // 8. CompressedData. + Some(Timestamp::Y2004M2), // 9. SED. + ACCEPT, // 10. Marker. + ACCEPT, // 11. Literal. + ACCEPT, // 12. Trust. + ACCEPT, // 13. UserID. + ACCEPT, // 14. PublicSubkey. + REJECT, // 15. Not assigned. + REJECT, // 16. Not assigned. + ACCEPT, // 17. UserAttribute. + ACCEPT, // 18. SEIP. + ACCEPT, // 19. MDC. + ACCEPT, // 20. AED. ]); // We need to convert a `SystemTime` to a `Timestamp` in diff --git a/openpgp/src/types/timestamp.rs b/openpgp/src/types/timestamp.rs index 4c630fca..a9374dcc 100644 --- a/openpgp/src/types/timestamp.rs +++ b/openpgp/src/types/timestamp.rs @@ -446,144 +446,145 @@ impl Timestamp { pub(crate) const UNIX_EPOCH : Timestamp = Timestamp(0); pub(crate) const MAX : Timestamp = Timestamp(u32::MAX); - // for y in $(seq 1970 2106); do echo " const Y$y : Timestamp = Timestamp($(date -u --date="Jan. 1, $y" '+%s'));"; done pub(crate) const Y1970 : Timestamp = Timestamp(0); - pub(crate) const Y1971 : Timestamp = Timestamp(31536000); - pub(crate) const Y1972 : Timestamp = Timestamp(63072000); - pub(crate) const Y1973 : Timestamp = Timestamp(94694400); - pub(crate) const Y1974 : Timestamp = Timestamp(126230400); - pub(crate) const Y1975 : Timestamp = Timestamp(157766400); - pub(crate) const Y1976 : Timestamp = Timestamp(189302400); - pub(crate) const Y1977 : Timestamp = Timestamp(220924800); - pub(crate) const Y1978 : Timestamp = Timestamp(252460800); - pub(crate) const Y1979 : Timestamp = Timestamp(283996800); - pub(crate) const Y1980 : Timestamp = Timestamp(315532800); - pub(crate) const Y1981 : Timestamp = Timestamp(347155200); - pub(crate) const Y1982 : Timestamp = Timestamp(378691200); - pub(crate) const Y1983 : Timestamp = Timestamp(410227200); - pub(crate) const Y1984 : Timestamp = Timestamp(441763200); - pub(crate) const Y1985 : Timestamp = Timestamp(473385600); - pub(crate) const Y1986 : Timestamp = Timestamp(504921600); - pub(crate) const Y1987 : Timestamp = Timestamp(536457600); - pub(crate) const Y1988 : Timestamp = Timestamp(567993600); - pub(crate) const Y1989 : Timestamp = Timestamp(599616000); - pub(crate) const Y1990 : Timestamp = Timestamp(631152000); - pub(crate) const Y1991 : Timestamp = Timestamp(662688000); - pub(crate) const Y1992 : Timestamp = Timestamp(694224000); - pub(crate) const Y1993 : Timestamp = Timestamp(725846400); - pub(crate) const Y1994 : Timestamp = Timestamp(757382400); - pub(crate) const Y1995 : Timestamp = Timestamp(788918400); - pub(crate) const Y1996 : Timestamp = Timestamp(820454400); - pub(crate) const Y1997 : Timestamp = Timestamp(852076800); - pub(crate) const Y1998 : Timestamp = Timestamp(883612800); - pub(crate) const Y1999 : Timestamp = Timestamp(915148800); - pub(crate) const Y2000 : Timestamp = Timestamp(946684800); - pub(crate) const Y2001 : Timestamp = Timestamp(978307200); - pub(crate) const Y2002 : Timestamp = Timestamp(1009843200); - pub(crate) const Y2003 : Timestamp = Timestamp(1041379200); - pub(crate) const Y2004 : Timestamp = Timestamp(1072915200); - pub(crate) const Y2005 : Timestamp = Timestamp(1104537600); - pub(crate) const Y2006 : Timestamp = Timestamp(1136073600); - pub(crate) const Y2007 : Timestamp = Timestamp(1167609600); - pub(crate) const Y2008 : Timestamp = Timestamp(1199145600); - pub(crate) const Y2009 : Timestamp = Timestamp(1230768000); - pub(crate) const Y2010 : Timestamp = Timestamp(1262304000); - pub(crate) const Y2011 : Timestamp = Timestamp(1293840000); - pub(crate) const Y2012 : Timestamp = Timestamp(1325376000); - pub(crate) const Y2013 : Timestamp = Timestamp(1356998400); - pub(crate) const Y2014 : Timestamp = Timestamp(1388534400); - pub(crate) const Y2015 : Timestamp = Timestamp(1420070400); - pub(crate) const Y2016 : Timestamp = Timestamp(1451606400); - pub(crate) const Y2017 : Timestamp = Timestamp(1483228800); - pub(crate) const Y2018 : Timestamp = Timestamp(1514764800); - pub(crate) const Y2019 : Timestamp = Timestamp(1546300800); - pub(crate) const Y2020 : Timestamp = Timestamp(1577836800); - pub(crate) const Y2021 : Timestamp = Timestamp(1609459200); - pub(crate) const Y2022 : Timestamp = Timestamp(1640995200); - pub(crate) const Y2023 : Timestamp = Timestamp(1672531200); - pub(crate) const Y2024 : Timestamp = Timestamp(1704067200); - pub(crate) const Y2025 : Timestamp = Timestamp(1735689600); - pub(crate) const Y2026 : Timestamp = Timestamp(1767225600); - pub(crate) const Y2027 : Timestamp = Timestamp(1798761600); - pub(crate) const Y2028 : Timestamp = Timestamp(1830297600); - pub(crate) const Y2029 : Timestamp = Timestamp(1861920000); - pub(crate) const Y2030 : Timestamp = Timestamp(1893456000); - pub(crate) const Y2031 : Timestamp = Timestamp(1924992000); - pub(crate) const Y2032 : Timestamp = Timestamp(1956528000); - pub(crate) const Y2033 : Timestamp = Timestamp(1988150400); - pub(crate) const Y2034 : Timestamp = Timestamp(2019686400); - pub(crate) const Y2035 : Timestamp = Timestamp(2051222400); - pub(crate) const Y2036 : Timestamp = Timestamp(2082758400); - pub(crate) const Y2037 : Timestamp = Timestamp(2114380800); - pub(crate) const Y2038 : Timestamp = Timestamp(2145916800); - pub(crate) const Y2039 : Timestamp = Timestamp(2177452800); - pub(crate) const Y2040 : Timestamp = Timestamp(2208988800); - pub(crate) const Y2041 : Timestamp = Timestamp(2240611200); - pub(crate) const Y2042 : Timestamp = Timestamp(2272147200); - pub(crate) const Y2043 : Timestamp = Timestamp(2303683200); - pub(crate) const Y2044 : Timestamp = Timestamp(2335219200); - pub(crate) const Y2045 : Timestamp = Timestamp(2366841600); - pub(crate) const Y2046 : Timestamp = Timestamp(2398377600); - pub(crate) const Y2047 : Timestamp = Timestamp(2429913600); - pub(crate) const Y2048 : Timestamp = Timestamp(2461449600); - pub(crate) const Y2049 : Timestamp = Timestamp(2493072000); - pub(crate) const Y2050 : Timestamp = Timestamp(2524608000); - pub(crate) const Y2051 : Timestamp = Timestamp(2556144000); - pub(crate) const Y2052 : Timestamp = Timestamp(2587680000); - pub(crate) const Y2053 : Timestamp = Timestamp(2619302400); - pub(crate) const Y2054 : Timestamp = Timestamp(2650838400); - pub(crate) const Y2055 : Timestamp = Timestamp(2682374400); - pub(crate) const Y2056 : Timestamp = Timestamp(2713910400); - pub(crate) const Y2057 : Timestamp = Timestamp(2745532800); - pub(crate) const Y2058 : Timestamp = Timestamp(2777068800); - pub(crate) const Y2059 : Timestamp = Timestamp(2808604800); - pub(crate) const Y2060 : Timestamp = Timestamp(2840140800); - pub(crate) const Y2061 : Timestamp = Timestamp(2871763200); - pub(crate) const Y2062 : Timestamp = Timestamp(2903299200); - pub(crate) const Y2063 : Timestamp = Timestamp(2934835200); - pub(crate) const Y2064 : Timestamp = Timestamp(2966371200); - pub(crate) const Y2065 : Timestamp = Timestamp(2997993600); - pub(crate) const Y2066 : Timestamp = Timestamp(3029529600); - pub(crate) const Y2067 : Timestamp = Timestamp(3061065600); - pub(crate) const Y2068 : Timestamp = Timestamp(3092601600); - pub(crate) const Y2069 : Timestamp = Timestamp(3124224000); - pub(crate) const Y2070 : Timestamp = Timestamp(3155760000); - pub(crate) const Y2071 : Timestamp = Timestamp(3187296000); - pub(crate) const Y2072 : Timestamp = Timestamp(3218832000); - pub(crate) const Y2073 : Timestamp = Timestamp(3250454400); - pub(crate) const Y2074 : Timestamp = Timestamp(3281990400); - pub(crate) const Y2075 : Timestamp = Timestamp(3313526400); - pub(crate) const Y2076 : Timestamp = Timestamp(3345062400); - pub(crate) const Y2077 : Timestamp = Timestamp(3376684800); - pub(crate) const Y2078 : Timestamp = Timestamp(3408220800); - pub(crate) const Y2079 : Timestamp = Timestamp(3439756800); - pub(crate) const Y2080 : Timestamp = Timestamp(3471292800); - pub(crate) const Y2081 : Timestamp = Timestamp(3502915200); - pub(crate) const Y2082 : Timestamp = Timestamp(3534451200); - pub(crate) const Y2083 : Timestamp = Timestamp(3565987200); - pub(crate) const Y2084 : Timestamp = Timestamp(3597523200); - pub(crate) const Y2085 : Timestamp = Timestamp(3629145600); - pub(crate) const Y2086 : Timestamp = Timestamp(3660681600); - pub(crate) const Y2087 : Timestamp = Timestamp(3692217600); - pub(crate) const Y2088 : Timestamp = Timestamp(3723753600); - pub(crate) const Y2089 : Timestamp = Timestamp(3755376000); - pub(crate) const Y2090 : Timestamp = Timestamp(3786912000); - pub(crate) const Y2091 : Timestamp = Timestamp(3818448000); - pub(crate) const Y2092 : Timestamp = Timestamp(3849984000); - pub(crate) const Y2093 : Timestamp = Timestamp(3881606400); - pub(crate) const Y2094 : Timestamp = Timestamp(3913142400); - pub(crate) const Y2095 : Timestamp = Timestamp(3944678400); - pub(crate) const Y2096 : Timestamp = Timestamp(3976214400); - pub(crate) const Y2097 : Timestamp = Timestamp(4007836800); - pub(crate) const Y2098 : Timestamp = Timestamp(4039372800); - pub(crate) const Y2099 : Timestamp = Timestamp(4070908800); - pub(crate) const Y2100 : Timestamp = Timestamp(4102444800); - pub(crate) const Y2101 : Timestamp = Timestamp(4133980800); - pub(crate) const Y2102 : Timestamp = Timestamp(4165516800); - pub(crate) const Y2103 : Timestamp = Timestamp(4197052800); - pub(crate) const Y2104 : Timestamp = Timestamp(4228588800); - pub(crate) const Y2105 : Timestamp = Timestamp(4260211200); - pub(crate) const Y2106 : Timestamp = Timestamp(4291747200); + // for y in $(seq 1970 2106); do echo " pub(crate) const Y${y}M2 : Timestamp = Timestamp($(date -u --date="Feb. 1, $y" '+%s'));"; done + pub(crate) const Y1970M2 : Timestamp = Timestamp(2678400); + pub(crate) const Y1971M2 : Timestamp = Timestamp(34214400); + pub(crate) const Y1972M2 : Timestamp = Timestamp(65750400); + pub(crate) const Y1973M2 : Timestamp = Timestamp(97372800); + pub(crate) const Y1974M2 : Timestamp = Timestamp(128908800); + pub(crate) const Y1975M2 : Timestamp = Timestamp(160444800); + pub(crate) const Y1976M2 : Timestamp = Timestamp(191980800); + pub(crate) const Y1977M2 : Timestamp = Timestamp(223603200); + pub(crate) const Y1978M2 : Timestamp = Timestamp(255139200); + pub(crate) const Y1979M2 : Timestamp = Timestamp(286675200); + pub(crate) const Y1980M2 : Timestamp = Timestamp(318211200); + pub(crate) const Y1981M2 : Timestamp = Timestamp(349833600); + pub(crate) const Y1982M2 : Timestamp = Timestamp(381369600); + pub(crate) const Y1983M2 : Timestamp = Timestamp(412905600); + pub(crate) const Y1984M2 : Timestamp = Timestamp(444441600); + pub(crate) const Y1985M2 : Timestamp = Timestamp(476064000); + pub(crate) const Y1986M2 : Timestamp = Timestamp(507600000); + pub(crate) const Y1987M2 : Timestamp = Timestamp(539136000); + pub(crate) const Y1988M2 : Timestamp = Timestamp(570672000); + pub(crate) const Y1989M2 : Timestamp = Timestamp(602294400); + pub(crate) const Y1990M2 : Timestamp = Timestamp(633830400); + pub(crate) const Y1991M2 : Timestamp = Timestamp(665366400); + pub(crate) const Y1992M2 : Timestamp = Timestamp(696902400); + pub(crate) const Y1993M2 : Timestamp = Timestamp(728524800); + pub(crate) const Y1994M2 : Timestamp = Timestamp(760060800); + pub(crate) const Y1995M2 : Timestamp = Timestamp(791596800); + pub(crate) const Y1996M2 : Timestamp = Timestamp(823132800); + pub(crate) const Y1997M2 : Timestamp = Timestamp(854755200); + pub(crate) const Y1998M2 : Timestamp = Timestamp(886291200); + pub(crate) const Y1999M2 : Timestamp = Timestamp(917827200); + pub(crate) const Y2000M2 : Timestamp = Timestamp(949363200); + pub(crate) const Y2001M2 : Timestamp = Timestamp(980985600); + pub(crate) const Y2002M2 : Timestamp = Timestamp(1012521600); + pub(crate) const Y2003M2 : Timestamp = Timestamp(1044057600); + pub(crate) const Y2004M2 : Timestamp = Timestamp(1075593600); + pub(crate) const Y2005M2 : Timestamp = Timestamp(1107216000); + pub(crate) const Y2006M2 : Timestamp = Timestamp(1138752000); + pub(crate) const Y2007M2 : Timestamp = Timestamp(1170288000); + pub(crate) const Y2008M2 : Timestamp = Timestamp(1201824000); + pub(crate) const Y2009M2 : Timestamp = Timestamp(1233446400); + pub(crate) const Y2010M2 : Timestamp = Timestamp(1264982400); + pub(crate) const Y2011M2 : Timestamp = Timestamp(1296518400); + pub(crate) const Y2012M2 : Timestamp = Timestamp(1328054400); + pub(crate) const Y2013M2 : Timestamp = Timestamp(1359676800); + pub(crate) const Y2014M2 : Timestamp = Timestamp(1391212800); + pub(crate) const Y2015M2 : Timestamp = Timestamp(1422748800); + pub(crate) const Y2016M2 : Timestamp = Timestamp(1454284800); + pub(crate) const Y2017M2 : Timestamp = Timestamp(1485907200); + pub(crate) const Y2018M2 : Timestamp = Timestamp(1517443200); + pub(crate) const Y2019M2 : Timestamp = Timestamp(1548979200); + pub(crate) const Y2020M2 : Timestamp = Timestamp(1580515200); + pub(crate) const Y2021M2 : Timestamp = Timestamp(1612137600); + pub(crate) const Y2022M2 : Timestamp = Timestamp(1643673600); + pub(crate) const Y2023M2 : Timestamp = Timestamp(1675209600); + pub(crate) const Y2024M2 : Timestamp = Timestamp(1706745600); + pub(crate) const Y2025M2 : Timestamp = Timestamp(1738368000); + pub(crate) const Y2026M2 : Timestamp = Timestamp(1769904000); + pub(crate) const Y2027M2 : Timestamp = Timestamp(1801440000); + pub(crate) const Y2028M2 : Timestamp = Timestamp(1832976000); + pub(crate) const Y2029M2 : Timestamp = Timestamp(1864598400); + pub(crate) const Y2030M2 : Timestamp = Timestamp(1896134400); + pub(crate) const Y2031M2 : Timestamp = Timestamp(1927670400); + pub(crate) const Y2032M2 : Timestamp = Timestamp(1959206400); + pub(crate) const Y2033M2 : Timestamp = Timestamp(1990828800); + pub(crate) const Y2034M2 : Timestamp = Timestamp(2022364800); + pub(crate) const Y2035M2 : Timestamp = Timestamp(2053900800); + pub(crate) const Y2036M2 : Timestamp = Timestamp(2085436800); + pub(crate) const Y2037M2 : Timestamp = Timestamp(2117059200); + pub(crate) const Y2038M2 : Timestamp = Timestamp(2148595200); + pub(crate) const Y2039M2 : Timestamp = Timestamp(2180131200); + pub(crate) const Y2040M2 : Timestamp = Timestamp(2211667200); + pub(crate) const Y2041M2 : Timestamp = Timestamp(2243289600); + pub(crate) const Y2042M2 : Timestamp = Timestamp(2274825600); + pub(crate) const Y2043M2 : Timestamp = Timestamp(2306361600); + pub(crate) const Y2044M2 : Timestamp = Timestamp(2337897600); + pub(crate) const Y2045M2 : Timestamp = Timestamp(2369520000); + pub(crate) const Y2046M2 : Timestamp = Timestamp(2401056000); + pub(crate) const Y2047M2 : Timestamp = Timestamp(2432592000); + pub(crate) const Y2048M2 : Timestamp = Timestamp(2464128000); + pub(crate) const Y2049M2 : Timestamp = Timestamp(2495750400); + pub(crate) const Y2050M2 : Timestamp = Timestamp(2527286400); + pub(crate) const Y2051M2 : Timestamp = Timestamp(2558822400); + pub(crate) const Y2052M2 : Timestamp = Timestamp(2590358400); + pub(crate) const Y2053M2 : Timestamp = Timestamp(2621980800); + pub(crate) const Y2054M2 : Timestamp = Timestamp(2653516800); + pub(crate) const Y2055M2 : Timestamp = Timestamp(2685052800); + pub(crate) const Y2056M2 : Timestamp = Timestamp(2716588800); + pub(crate) const Y2057M2 : Timestamp = Timestamp(2748211200); + pub(crate) const Y2058M2 : Timestamp = Timestamp(2779747200); + pub(crate) const Y2059M2 : Timestamp = Timestamp(2811283200); + pub(crate) const Y2060M2 : Timestamp = Timestamp(2842819200); + pub(crate) const Y2061M2 : Timestamp = Timestamp(2874441600); + pub(crate) const Y2062M2 : Timestamp = Timestamp(2905977600); + pub(crate) const Y2063M2 : Timestamp = Timestamp(2937513600); + pub(crate) const Y2064M2 : Timestamp = Timestamp(2969049600); + pub(crate) const Y2065M2 : Timestamp = Timestamp(3000672000); + pub(crate) const Y2066M2 : Timestamp = Timestamp(3032208000); + pub(crate) const Y2067M2 : Timestamp = Timestamp(3063744000); + pub(crate) const Y2068M2 : Timestamp = Timestamp(3095280000); + pub(crate) const Y2069M2 : Timestamp = Timestamp(3126902400); + pub(crate) const Y2070M2 : Timestamp = Timestamp(3158438400); + pub(crate) const Y2071M2 : Timestamp = Timestamp(3189974400); + pub(crate) const Y2072M2 : Timestamp = Timestamp(3221510400); + pub(crate) const Y2073M2 : Timestamp = Timestamp(3253132800); + pub(crate) const Y2074M2 : Timestamp = Timestamp(3284668800); + pub(crate) const Y2075M2 : Timestamp = Timestamp(3316204800); + pub(crate) const Y2076M2 : Timestamp = Timestamp(3347740800); + pub(crate) const Y2077M2 : Timestamp = Timestamp(3379363200); + pub(crate) const Y2078M2 : Timestamp = Timestamp(3410899200); + pub(crate) const Y2079M2 : Timestamp = Timestamp(3442435200); + pub(crate) const Y2080M2 : Timestamp = Timestamp(3473971200); + pub(crate) const Y2081M2 : Timestamp = Timestamp(3505593600); + pub(crate) const Y2082M2 : Timestamp = Timestamp(3537129600); + pub(crate) const Y2083M2 : Timestamp = Timestamp(3568665600); + pub(crate) const Y2084M2 : Timestamp = Timestamp(3600201600); + pub(crate) const Y2085M2 : Timestamp = Timestamp(3631824000); + pub(crate) const Y2086M2 : Timestamp = Timestamp(3663360000); + pub(crate) const Y2087M2 : Timestamp = Timestamp(3694896000); + pub(crate) const Y2088M2 : Timestamp = Timestamp(3726432000); + pub(crate) const Y2089M2 : Timestamp = Timestamp(3758054400); + pub(crate) const Y2090M2 : Timestamp = Timestamp(3789590400); + pub(crate) const Y2091M2 : Timestamp = Timestamp(3821126400); + pub(crate) const Y2092M2 : Timestamp = Timestamp(3852662400); + pub(crate) const Y2093M2 : Timestamp = Timestamp(3884284800); + pub(crate) const Y2094M2 : Timestamp = Timestamp(3915820800); + pub(crate) const Y2095M2 : Timestamp = Timestamp(3947356800); + pub(crate) const Y2096M2 : Timestamp = Timestamp(3978892800); + pub(crate) const Y2097M2 : Timestamp = Timestamp(4010515200); + pub(crate) const Y2098M2 : Timestamp = Timestamp(4042051200); + pub(crate) const Y2099M2 : Timestamp = Timestamp(4073587200); + pub(crate) const Y2100M2 : Timestamp = Timestamp(4105123200); + pub(crate) const Y2101M2 : Timestamp = Timestamp(4136659200); + pub(crate) const Y2102M2 : Timestamp = Timestamp(4168195200); + pub(crate) const Y2103M2 : Timestamp = Timestamp(4199731200); + pub(crate) const Y2104M2 : Timestamp = Timestamp(4231267200); + pub(crate) const Y2105M2 : Timestamp = Timestamp(4262889600); + pub(crate) const Y2106M2 : Timestamp = Timestamp(4294425600); } #[cfg(test)] -- cgit v1.2.3