diff options
-rw-r--r-- | src/regress/lib/libcrypto/asn1/rfc5280time.c | 68 |
1 files changed, 46 insertions, 22 deletions
diff --git a/src/regress/lib/libcrypto/asn1/rfc5280time.c b/src/regress/lib/libcrypto/asn1/rfc5280time.c index b74c5668d7..7ef4929e86 100644 --- a/src/regress/lib/libcrypto/asn1/rfc5280time.c +++ b/src/regress/lib/libcrypto/asn1/rfc5280time.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: rfc5280time.c,v 1.1 2015/09/29 04:54:23 beck Exp $ */ | 1 | /* $OpenBSD: rfc5280time.c,v 1.2 2015/09/30 14:11:22 beck Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2015 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2015 Joel Sing <jsing@openbsd.org> |
4 | * Copyright (c) 2015 Bob Beck <beck@opebsd.org> | 4 | * Copyright (c) 2015 Bob Beck <beck@opebsd.org> |
@@ -79,34 +79,39 @@ struct rfc5280_time_test rfc5280_invtime_tests[] = { | |||
79 | { | 79 | { |
80 | .str = "aaaaaaaaaaaaaaZ", | 80 | .str = "aaaaaaaaaaaaaaZ", |
81 | }, | 81 | }, |
82 | }; | ||
83 | |||
84 | struct rfc5280_time_test rfc5280_gentime_tests[] = { | ||
85 | { | 82 | { |
83 | /* Must be a UTC time per RFC 5280*/ | ||
86 | .str = "19700101000000Z", | 84 | .str = "19700101000000Z", |
87 | .data = "19700101000000Z", | 85 | .data = "19700101000000Z", |
88 | .time = 0, | 86 | .time = 0, |
89 | }, | 87 | }, |
90 | { | 88 | { |
89 | /* (times before 2050 must be UTCTIME) Per RFC 5280 4.1.2.5 */ | ||
91 | .str = "20150923032700Z", | 90 | .str = "20150923032700Z", |
92 | .data = "20150923032700Z", | 91 | .data = "20150923032700Z", |
93 | .time = 1442978820, | 92 | .time = 1442978820, |
94 | }, | 93 | }, |
95 | { | 94 | { |
96 | .str = "20150922162712Z", | 95 | /* (times before 2050 must be UTCTIME) Per RFC 5280 4.1.2.5 */ |
97 | .data = "20150922162712Z", | 96 | .str = "00000101000000Z", |
98 | .time = 1442939232, | 97 | .data = "00000101000000Z", |
98 | .time = -62167219200, | ||
99 | }, | 99 | }, |
100 | { | 100 | { |
101 | .str = "20150922161212Z", | 101 | /* (times before 2050 must be UTCTIME) Per RFC 5280 4.1.2.5 */ |
102 | .data = "20150922161212Z", | 102 | .str = "20491231235959Z", |
103 | .time = 1442938332, | 103 | .data = "20491231235959Z", |
104 | .time = 2524607999, | ||
104 | }, | 105 | }, |
105 | { | 106 | { |
106 | .str = "20150923032700Z", | 107 | /* (times before 2050 must be UTCTIME) Per RFC 5280 4.1.2.5 */ |
107 | .data = "20150923032700Z", | 108 | .str = "19500101000000Z", |
108 | .time = 1442978820, | 109 | .data = "19500101000000Z", |
110 | .time = -631152000, | ||
109 | }, | 111 | }, |
112 | }; | ||
113 | |||
114 | struct rfc5280_time_test rfc5280_gentime_tests[] = { | ||
110 | { | 115 | { |
111 | /* Biggest RFC 5280 time */ | 116 | /* Biggest RFC 5280 time */ |
112 | .str = "99991231235959Z", | 117 | .str = "99991231235959Z", |
@@ -114,15 +119,34 @@ struct rfc5280_time_test rfc5280_gentime_tests[] = { | |||
114 | .time = 253402300799, | 119 | .time = 253402300799, |
115 | }, | 120 | }, |
116 | { | 121 | { |
117 | /* Smallest RFC 5280 time */ | 122 | .str = "21600218104000Z", |
118 | .str = "00000101000000Z", | 123 | .data = "21600218104000Z", |
119 | .data = "00000101000000Z", | 124 | .time = 6000000000, |
120 | .time = -62167219200, | 125 | }, |
126 | { | ||
127 | /* Smallest RFC 5280 gen time */ | ||
128 | .str = "20500101000000Z", | ||
129 | .data = "20500101000000Z", | ||
130 | .time = 2524608000, | ||
121 | }, | 131 | }, |
122 | }; | 132 | }; |
123 | |||
124 | struct rfc5280_time_test rfc5280_utctime_tests[] = { | 133 | struct rfc5280_time_test rfc5280_utctime_tests[] = { |
125 | { | 134 | { |
135 | .str = "500101000000Z", | ||
136 | .data = "500101000000Z", | ||
137 | .time = -631152000, | ||
138 | }, | ||
139 | { | ||
140 | .str = "540226230640Z", | ||
141 | .data = "540226230640Z", | ||
142 | .time = -500000000, | ||
143 | }, | ||
144 | { | ||
145 | .str = "491231235959Z", | ||
146 | .data = "491231235959Z", | ||
147 | .time = 2524607999, | ||
148 | }, | ||
149 | { | ||
126 | .str = "700101000000Z", | 150 | .str = "700101000000Z", |
127 | .data = "700101000000Z", | 151 | .data = "700101000000Z", |
128 | .time = 0, | 152 | .time = 0, |
@@ -247,14 +271,14 @@ rfc5280_gentime_test(int test_no, struct rfc5280_time_test *att) | |||
247 | if (asn1_compare_str(test_no, gt, att->str) != 0) | 271 | if (asn1_compare_str(test_no, gt, att->str) != 0) |
248 | goto done; | 272 | goto done; |
249 | 273 | ||
250 | if ((i = X509_cmp_time(gt, &att->time) != -1)) { | 274 | if ((i = X509_cmp_time(gt, &att->time)) != -1) { |
251 | fprintf(stderr, "FAIL: test %i - X509_cmp_time failed - returned %d compared to %lld\n", | 275 | fprintf(stderr, "FAIL: test %i - X509_cmp_time failed - returned %d compared to %lld\n", |
252 | test_no, i, att->time); | 276 | test_no, i, att->time); |
253 | goto done; | 277 | goto done; |
254 | } | 278 | } |
255 | 279 | ||
256 | att->time--; | 280 | att->time--; |
257 | if ((i = X509_cmp_time(gt, &att->time) != 1)) { | 281 | if ((i = X509_cmp_time(gt, &att->time)) != 1) { |
258 | fprintf(stderr, "FAIL: test %i - X509_cmp_time failed - returned %d compared to %lld\n", | 282 | fprintf(stderr, "FAIL: test %i - X509_cmp_time failed - returned %d compared to %lld\n", |
259 | test_no, i, att->time); | 283 | test_no, i, att->time); |
260 | goto done; | 284 | goto done; |
@@ -299,14 +323,14 @@ rfc5280_utctime_test(int test_no, struct rfc5280_time_test *att) | |||
299 | if (asn1_compare_str(test_no, ut, att->str) != 0) | 323 | if (asn1_compare_str(test_no, ut, att->str) != 0) |
300 | goto done; | 324 | goto done; |
301 | 325 | ||
302 | if ((i = X509_cmp_time(ut, &att->time) != -1)) { | 326 | if ((i = X509_cmp_time(ut, &att->time)) != -1) { |
303 | fprintf(stderr, "FAIL: test %i - X509_cmp_time failed - returned %d compared to %lld\n", | 327 | fprintf(stderr, "FAIL: test %i - X509_cmp_time failed - returned %d compared to %lld\n", |
304 | test_no, i, att->time); | 328 | test_no, i, att->time); |
305 | goto done; | 329 | goto done; |
306 | } | 330 | } |
307 | 331 | ||
308 | att->time--; | 332 | att->time--; |
309 | if ((i = X509_cmp_time(ut, &att->time) != 1)) { | 333 | if ((i = X509_cmp_time(ut, &att->time)) != 1) { |
310 | fprintf(stderr, "FAIL: test %i - X509_cmp_time failed - returned %d compared to %lld\n", | 334 | fprintf(stderr, "FAIL: test %i - X509_cmp_time failed - returned %d compared to %lld\n", |
311 | test_no, i, att->time); | 335 | test_no, i, att->time); |
312 | goto done; | 336 | goto done; |