diff --git a/ring/src/lib.rs b/ring/src/lib.rs index 2c1cb6b..9b7ea69 100644 --- a/ring/src/lib.rs +++ b/ring/src/lib.rs @@ -11,7 +11,7 @@ use common::Proof; pub use piop::index; use crate::piop::{RingCommitments, RingEvaluations}; -pub use crate::piop::{params::PiopParams, ProverKey, VerifierKey}; +pub use crate::piop::{params::PiopParams, ProverKey, VerifierKey, FixedColumnsCommitted}; mod piop; pub mod ring; diff --git a/ring/src/piop/mod.rs b/ring/src/piop/mod.rs index 3a6ad65..c5a0daf 100644 --- a/ring/src/piop/mod.rs +++ b/ring/src/piop/mod.rs @@ -139,12 +139,23 @@ impl VerifierKey> { pub fn from_ring_and_kzg_vk>( ring: &Ring, kzg_vk: RawKzgVerifierKey, + ) -> Self { + Self::from_commitment_and_kzg_vk(FixedColumnsCommitted::from_ring(ring), kzg_vk) + } + + pub fn from_commitment_and_kzg_vk( + commitment: FixedColumnsCommitted>, + kzg_vk: RawKzgVerifierKey, ) -> Self { Self { pcs_raw_vk: kzg_vk, - fixed_columns_committed: FixedColumnsCommitted::from_ring(ring), + fixed_columns_committed: commitment, } } + + pub fn commitment(&self) -> FixedColumnsCommitted> { + self.fixed_columns_committed.clone() + } }