tlsn_core/
lib.rs

1//! TLSNotary core library.
2
3#![deny(missing_docs, unreachable_pub, unused_must_use)]
4#![deny(clippy::all)]
5#![forbid(unsafe_code)]
6
7pub mod connection;
8#[cfg(any(test, feature = "fixtures"))]
9pub mod fixtures;
10pub mod hash;
11pub mod merkle;
12pub mod transcript;
13pub mod webpki;
14pub use rangeset;
15pub mod config;
16pub(crate) mod display;
17
18use serde::{Deserialize, Serialize};
19
20use crate::{
21    connection::ServerName,
22    transcript::{
23        encoding::EncoderSecret, PartialTranscript, TranscriptCommitment, TranscriptSecret,
24    },
25};
26
27/// Prover output.
28#[derive(Serialize, Deserialize)]
29pub struct ProverOutput {
30    /// Transcript commitments.
31    pub transcript_commitments: Vec<TranscriptCommitment>,
32    /// Transcript commitment secrets.
33    pub transcript_secrets: Vec<TranscriptSecret>,
34}
35
36opaque_debug::implement!(ProverOutput);
37
38/// Verifier output.
39#[derive(Serialize, Deserialize)]
40pub struct VerifierOutput {
41    /// Server identity.
42    pub server_name: Option<ServerName>,
43    /// Transcript data.
44    pub transcript: Option<PartialTranscript>,
45    /// Encoding commitment secret.
46    pub encoder_secret: Option<EncoderSecret>,
47    /// Transcript commitments.
48    pub transcript_commitments: Vec<TranscriptCommitment>,
49}
50
51opaque_debug::implement!(VerifierOutput);