Skip to content

Commit 526479f

Browse files
committed
test: add max valid/invalid generalized time
1 parent 60d0dea commit 526479f

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

der/src/asn1/generalized_time.rs

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -347,4 +347,52 @@ mod tests {
347347
utc_time.encode(&mut encoder).unwrap();
348348
assert_eq!(example_bytes, encoder.finish().unwrap());
349349
}
350+
351+
#[test]
352+
fn max_valid_generalized_time() {
353+
let example_bytes = "\x18\x0f99991231235959Z".as_bytes();
354+
let utc_time = GeneralizedTime::from_der(&example_bytes).unwrap();
355+
assert_eq!(utc_time.to_unix_duration().as_secs(), 253402300799);
356+
357+
let mut buf = [0u8; 128];
358+
let mut encoder = SliceWriter::new(&mut buf);
359+
utc_time.encode(&mut encoder).unwrap();
360+
assert_eq!(example_bytes, encoder.finish().unwrap());
361+
}
362+
363+
#[test]
364+
fn invalid_year_generalized_time() {
365+
let example_bytes = "\x18\x0f999@1231235959Z".as_bytes();
366+
assert!(GeneralizedTime::from_der(&example_bytes).is_err());
367+
}
368+
369+
#[test]
370+
fn invalid_month_generalized_time() {
371+
let example_bytes = "\x18\x0f99991331235959Z".as_bytes();
372+
assert!(GeneralizedTime::from_der(&example_bytes).is_err());
373+
}
374+
375+
#[test]
376+
fn invalid_day_generalized_time() {
377+
let example_bytes = "\x18\x0f99991232235959Z".as_bytes();
378+
assert!(GeneralizedTime::from_der(&example_bytes).is_err());
379+
}
380+
381+
#[test]
382+
fn invalid_hour_generalized_time() {
383+
let example_bytes = "\x18\x0f99991231245959Z".as_bytes();
384+
assert!(GeneralizedTime::from_der(&example_bytes).is_err());
385+
}
386+
387+
#[test]
388+
fn invalid_minute_generalized_time() {
389+
let example_bytes = "\x18\x0f99991231236059Z".as_bytes();
390+
assert!(GeneralizedTime::from_der(&example_bytes).is_err());
391+
}
392+
393+
#[test]
394+
fn invalid_second_generalized_time() {
395+
let example_bytes = "\x18\x0f99991231235960Z".as_bytes();
396+
assert!(GeneralizedTime::from_der(&example_bytes).is_err());
397+
}
350398
}

0 commit comments

Comments
 (0)