1#![no_std]
18#![forbid(unsafe_code)]
19
20#[cfg(feature = "alloc")]
21extern crate alloc;
22#[cfg(feature = "std")]
23extern crate std;
24
25#[cfg(feature = "alloc")]
26mod canonical_example;
27#[cfg(feature = "alloc")]
28mod chain;
29#[cfg(feature = "alloc")]
30mod cwt;
31#[cfg(feature = "alloc")]
32mod digest;
33#[cfg(feature = "alloc")]
34mod entry;
35#[cfg(feature = "alloc")]
36mod envelope;
37#[cfg(feature = "alloc")]
38mod error;
39#[cfg(feature = "alloc")]
40mod payload;
41#[cfg(feature = "alloc")]
42mod receipt;
43#[cfg(feature = "alloc")]
44pub mod testvectors;
45
46#[cfg(feature = "alloc")]
47pub use canonical_example::{canonical_example, canonical_example_06};
48#[cfg(feature = "alloc")]
49pub use chain::{AffiliationChange, ChainReport, verify_chain};
50#[cfg(feature = "alloc")]
51pub use digest::{sha256_prefixed, validate_sha256};
52#[cfg(feature = "alloc")]
53pub use entry::{candidate_leaf_hash, derive_candidate_entry};
54#[cfg(feature = "alloc")]
55pub use envelope::{CONTENT_TYPE, CONTENT_TYPE_06, produce_ed25519, verify_ed25519};
56#[cfg(feature = "es256")]
57pub use envelope::{produce_es256, verify_es256};
58#[cfg(feature = "alloc")]
59pub use error::{Error, Result};
60#[cfg(feature = "alloc")]
61pub use payload::{
62 AckProvenance, BindingMode, IssuerAffiliation, Payload, SPEC_VERSION, SPEC_VERSION_06,
63 canonicalize_json, is_supported_spec,
64};
65#[cfg(feature = "alloc")]
66pub use receipt::{
67 AttachedReceipts, INCLUSION_PROOF_LABEL, InclusionProof, RECEIPTS_LABEL, RFC9162_SHA256,
68 Receipt, VDP_LABEL, VDS_LABEL, VerifiedInclusion, attached_receipts, leaf_hash,
69 verify_inclusion,
70};
71
72#[cfg(feature = "alloc")]
73mod receipt_cbor;
74#[cfg(feature = "alloc")]
75mod receipt_inspection;
76#[cfg(feature = "alloc")]
77pub use receipt_inspection::{
78 EnvelopeReport, InspectionFinding, InspectionLimits, InspectionPolicy, InspectionStatus,
79 UnauthenticatedReceiptClaims, inspect_scitt_receipt,
80};
81
82#[cfg(feature = "alloc")]
83mod receipt_verification;
84#[cfg(feature = "alloc")]
85pub use receipt_verification::{
86 BindingProvenance, ProofVerification, ReceiptVerificationPolicy, ReceiptVerificationReport,
87 RotationPolicy, TrustInputOrigin, TsKeyAssociation, TsPublicKey, TsTrustContext,
88 VerificationLimits, VerifyingKeyEvidence, verify_scitt_receipt,
89};
90
91#[cfg(feature = "alloc")]
92mod transparent_statement;
93#[cfg(feature = "alloc")]
94pub use transparent_statement::{
95 DigestTarget, ExpectedDigest, IssuerKeyInput, OuterStatementReport, ReceiptContainerState,
96 SOFTWARE_SITE_CONTENT_TYPE, StatementApplicationPolicy, StatementReceiptOutcome,
97 StatementVerificationInputs, SubjectMapping, SubjectPolicy, TransparentStatementPolicy,
98 TransparentStatementReport, inspect_transparent_statement, verify_transparent_statement,
99};