1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
/* Copyright (c) Fortanix, Inc.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

use pkix::pkcs10::DerCertificationRequest;
use sgx_isa::Report;

use super::attestation::{AttestationInlineSgxLocal, reconstruct_sgx_report};
use super::{Error, Result};

pub fn csr_to_sgx_report(csr: &DerCertificationRequest) -> Result<Report> {
    let attestation: AttestationInlineSgxLocal = csr.get_singular_attribute().ok_or(Error::MissingAttestation)?;
    reconstruct_sgx_report(&csr.reqinfo.subject, &attestation)
}