certain_certificate/
lib.rs

1pub mod certificate;
2pub use certificate::{
3    
4    CertificateAlternateName,
5    CertificateValidity,
6    CertificateData,
7    Certificate,
8};
9
10#[cfg(test)]
11mod tests {
12
13    use super::{Certificate};
14
15    #[test]
16    fn parse_certificate() {
17        let data = include_bytes!("../assets/test/certificate.cer");
18        assert!(Certificate::parse(data).is_some());
19    }
20
21    #[test]
22    fn read_certificate_authority() {
23        let data = include_bytes!("../assets/test/certificate.cer");
24        let certificate = Certificate::parse(data);
25        assert!(certificate.is_some());
26    }
27
28    #[test]
29    fn read_certificate_issuer_name() {
30        let data = include_bytes!("../assets/test/certificate.cer");
31        let certificate = Certificate::parse(data);
32
33        if let Some(certificate) = certificate {
34            assert_eq!(certificate.issuer_name(), Some("GTS CA 1C3"));
35        }
36    }
37
38    #[test]
39    fn read_certificate_issuer_country() {
40        let data = include_bytes!("../assets/test/certificate.cer");
41        let certificate = Certificate::parse(data);
42
43        if let Some(certificate) = certificate {
44            assert_eq!(certificate.issuer_country(), Some("US"));
45        }
46    }
47
48    #[test]
49    fn read_certificate_issuer_state() {
50        let data = include_bytes!("../assets/test/certificate.cer");
51        let certificate = Certificate::parse(data);
52
53        if let Some(certificate) = certificate {
54            assert_eq!(certificate.issuer_state(), None);
55        }
56    }
57
58    #[test]
59    fn read_certificate_issuer_organization() {
60        let data = include_bytes!("../assets/test/certificate.cer");
61        let certificate = Certificate::parse(data);
62
63        if let Some(certificate) = certificate {
64            assert_eq!(certificate.issuer_organization(), Some("Google Trust Services LLC"));
65        }
66    }
67
68    #[test]
69    fn read_certificate_issuer_organizational_unit() {
70        let data = include_bytes!("../assets/test/certificate.cer");
71        let certificate = Certificate::parse(data);
72
73        if let Some(certificate) = certificate {
74            assert_eq!(certificate.issuer_organizational_unit(), None);
75        }
76    }
77
78    #[test]
79    fn read_certificate_subject_name() {
80        let data = include_bytes!("../assets/test/certificate.cer");
81        let certificate = Certificate::parse(data);
82
83        if let Some(certificate) = certificate {
84            assert_eq!(certificate.subject_name(), Some("www.google.com"));
85        }
86    }
87
88    #[test]
89    fn read_certificate_subject_alternate_names() {
90        let data = include_bytes!("../assets/test/certificate.cer");
91        let certificate = Certificate::parse(data);
92
93        if let Some(certificate) = certificate {
94            assert!(certificate.subject_alternate_names().is_empty());
95        }
96    }
97
98    #[test]
99    fn read_certificate_subject_country() {
100        let data = include_bytes!("../assets/test/certificate.cer");
101        let certificate = Certificate::parse(data);
102
103        if let Some(certificate) = certificate {
104            assert_eq!(certificate.subject_country(), None);
105        }
106    }
107
108    #[test]
109    fn read_certificate_subject_state() {
110        let data = include_bytes!("../assets/test/certificate.cer");
111        let certificate = Certificate::parse(data);
112
113        if let Some(certificate) = certificate {
114            assert_eq!(certificate.subject_state(), None);
115        }
116    }
117
118    #[test]
119    fn read_certificate_subject_organization() {
120        let data = include_bytes!("../assets/test/certificate.cer");
121        let certificate = Certificate::parse(data);
122
123        if let Some(certificate) = certificate {
124            assert_eq!(certificate.subject_organization(), None);
125        }
126    }
127
128    #[test]
129    fn read_certificate_subject_organizational_unit() {
130        let data = include_bytes!("../assets/test/certificate.cer");
131        let certificate = Certificate::parse(data);
132
133        if let Some(certificate) = certificate {
134            assert_eq!(certificate.subject_organizational_unit(), None);
135        }
136    }
137
138    #[test]
139    fn read_certificate_validity() {
140        let data = include_bytes!("../assets/test/certificate.cer");
141        let certificate = Certificate::parse(data);
142
143        if let Some(certificate) = certificate {
144            assert_eq!(certificate.validity().timestamp_begin() , 1675280639);
145            assert_eq!(certificate.validity().timestamp_end() , 1682538238);
146        }
147    }
148
149    #[test]
150    fn read_certificate_serial() {
151        let data = include_bytes!("../assets/test/certificate.cer");
152        let certificate = Certificate::parse(data);
153
154        if let Some(certificate) = certificate {
155            assert_eq!(certificate.serial(), &[
156                0xC3, 0x2C, 0x47, 0x55, 0x63, 0x03, 0x66, 0xDD,
157                0x0A, 0x1C, 0x6E, 0x61, 0x0F, 0xA4, 0x65, 0x97,
158            ]);
159        }
160    }
161}