c2pa_crypto/cose/
certificate_info.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
// Copyright 2024 Adobe. All rights reserved.
// This file is licensed to you under the Apache License,
// Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0)
// or the MIT license (http://opensource.org/licenses/MIT),
// at your option.

// Unless required by applicable law or agreed to in writing,
// this software is distributed on an "AS IS" BASIS, WITHOUT
// WARRANTIES OR REPRESENTATIONS OF ANY KIND, either express or
// implied. See the LICENSE-MIT and LICENSE-APACHE files for the
// specific language governing permissions and limitations under
// each license.

//! Signature validation info.

use chrono::{DateTime, Utc};
use x509_parser::num_bigint::BigUint;

use crate::raw_signature::SigningAlg;

/// Summary information about an X.509 signing certificate and the validation
/// performed on it.
#[derive(Debug, Default)]
pub struct CertificateInfo {
    /// Algorithm used to validate the signature
    pub alg: Option<SigningAlg>,

    /// Date the signature was created
    pub date: Option<DateTime<Utc>>,

    /// Certificate serial number
    pub cert_serial_number: Option<BigUint>,

    /// Certificate issuer organization
    pub issuer_org: Option<String>,

    /// Signature validity
    ///
    /// TO REVIEW: What does this `bool` mean?
    pub validated: bool,

    /// Certificate chain used to validate the signature
    pub cert_chain: Vec<u8>,

    /// Signature revocation status
    ///
    /// TO REVIEW: What does this `bool` mean?
    pub revocation_status: Option<bool>,
}