c2pa-rs

A fork of https://github.com/contentauth/c2pa-rs/
git clone git://archive.git.mtrnord.blog/mtrnords-photography-manager/c2pa-rs.git
Log | Files | Refs | README

commit c017f933d2e6747839ada386c189dabbae96134e
parent ec8095b6d7eec2db6c1be80649fd2fa15536843f
Author: Gavin  Peacock <gpeacock@adobe.com>
Date:   Wed,  1 May 2024 15:18:34 -0700

Move signer to first parameter on Builder.sign (#457)


Diffstat:
Mmake_test_images/src/make_test_images.rs | 4++--
Msdk/examples/v2api.rs | 2+-
Msdk/src/builder.rs | 20++++++++++----------
Msdk/src/lib.rs | 2+-
Msdk/src/resource_store.rs | 2+-
Msdk/tests/test_builder.rs | 9++++++++-
Msdk/tests/v2_api_integration.rs | 2+-
7 files changed, 24 insertions(+), 17 deletions(-)

diff --git a/make_test_images/src/make_test_images.rs b/make_test_images/src/make_test_images.rs @@ -430,7 +430,7 @@ impl MakeTestImages { let mut dest = fs::File::create(&dst_path)?; builder - .sign(format, &mut temp, &mut dest, signer.as_ref()) + .sign(signer.as_ref(), format, &mut temp, &mut dest) .context("signing")?; Ok(dst_path) @@ -503,7 +503,7 @@ impl MakeTestImages { let mut dest = fs::File::create(&dst_path)?; let signer = self.config.get_signer()?; builder - .sign(format, &mut source, &mut dest, signer.as_ref()) + .sign(signer.as_ref(), format, &mut source, &mut dest) .context("signing")?; Ok(dst_path) diff --git a/sdk/examples/v2api.rs b/sdk/examples/v2api.rs @@ -128,7 +128,7 @@ fn main() -> Result<()> { let mut builder = Builder::from_archive(&mut zipped)?; // sign the ManifestStoreBuilder and write it to the output stream let mut dest = Cursor::new(Vec::new()); - builder.sign(format, &mut source, &mut dest, &signer)?; + builder.sign(&signer, format, &mut source, &mut dest)?; // read and validate the signed manifest store dest.rewind()?; diff --git a/sdk/src/builder.rs b/sdk/src/builder.rs @@ -179,10 +179,10 @@ impl AssertionDefinition { /// /// // embed a manifest using the signer /// builder.sign( +/// signer.as_ref(), /// "image/jpeg", /// &mut std::fs::File::open(&source)?, /// &mut std::fs::File::create(&dest)?, -/// signer.as_ref(), /// )?; /// # Ok(()) /// # } @@ -695,17 +695,17 @@ impl Builder { /// * If the manifest cannot be signed. #[async_generic(async_signature( &mut self, + signer: &dyn AsyncSigner, format: &str, source: &mut R, dest: &mut W, - signer: &dyn AsyncSigner ))] pub fn sign<R, W>( &mut self, + signer: &dyn Signer, format: &str, source: &mut R, dest: &mut W, - signer: &dyn Signer, ) -> Result<Vec<u8>> where R: Read + Seek + Send, @@ -743,7 +743,7 @@ impl Builder { /// * The bytes of c2pa_manifest that was created. /// # Errors /// * If the manifest cannot be signed. - pub fn sign_file<S, D>(&mut self, source: S, dest: D, signer: &dyn Signer) -> Result<Vec<u8>> + pub fn sign_file<S, D>(&mut self, signer: &dyn Signer, source: S, dest: D) -> Result<Vec<u8>> where S: AsRef<std::path::Path>, D: AsRef<std::path::Path>, @@ -772,7 +772,7 @@ impl Builder { }; let mut dest = std::fs::File::create(dest)?; - self.sign(&format, &mut source, &mut dest, signer) + self.sign(signer, &format, &mut source, &mut dest) } } @@ -965,7 +965,7 @@ mod tests { // sign and write to the output stream let signer = temp_signer(); builder - .sign(format, &mut source, &mut dest, signer.as_ref()) + .sign(signer.as_ref(), format, &mut source, &mut dest) .unwrap(); // read and validate the signed manifest store @@ -996,7 +996,7 @@ mod tests { // sign and write to the output stream let signer = temp_signer(); - builder.sign_file(source, &dest, signer.as_ref()).unwrap(); + builder.sign_file(signer.as_ref(), source, &dest).unwrap(); // read and validate the signed manifest store let manifest_store = Reader::from_file(&dest).expect("from_bytes"); @@ -1048,7 +1048,7 @@ mod tests { // sign and write to the output stream let signer = temp_signer(); builder - .sign(format, &mut source, &mut dest, signer.as_ref()) + .sign(signer.as_ref(), format, &mut source, &mut dest) .unwrap(); // read and validate the signed manifest store @@ -1096,7 +1096,7 @@ mod tests { // sign the ManifestStoreBuilder and write it to the output stream let signer = crate::utils::test::temp_async_remote_signer(); builder - .sign_async(format, &mut source, &mut dest, signer.as_ref()) + .sign_async(signer.as_ref(), format, &mut source, &mut dest) .await .unwrap(); @@ -1130,7 +1130,7 @@ mod tests { // sign the ManifestStoreBuilder and write it to the output stream let signer = temp_signer(); let manifest_data = builder - .sign("image/jpeg", &mut source, &mut dest, signer.as_ref()) + .sign(signer.as_ref(), "image/jpeg", &mut source, &mut dest) .unwrap(); // check to make sure we have a remote url and no manifest data diff --git a/sdk/src/lib.rs b/sdk/src/lib.rs @@ -84,9 +84,9 @@ //! // embed a manifest using the signer //! std::fs::remove_file("../target/tmp/lib_sign.jpg"); // ensure the file does not exist //! builder.sign_file( +//! &*signer, //! "tests/fixtures/C.jpg", //! "../target/tmp/lib_sign.jpg", -//! &*signer, //! )?; //! # Ok(()) //! # } diff --git a/sdk/src/resource_store.rs b/sdk/src/resource_store.rs @@ -429,10 +429,10 @@ mod tests { let mut output_image = Cursor::new(Vec::new()); builder .sign( + &*signer, "image/jpeg", &mut Cursor::new(image), &mut output_image, - &*signer, ) .expect("sign"); diff --git a/sdk/tests/test_builder.rs b/sdk/tests/test_builder.rs @@ -28,7 +28,14 @@ fn test_builder_ca_jpg() -> Result<()> { let mut source = Cursor::new(TEST_IMAGE); let mut dest = Cursor::new(Vec::new()); - builder.sign(format, &mut source, &mut dest, &test_signer())?; + + builder.sign(&test_signer(), format, &mut source, &mut dest)?; + + // dest.set_position(0); + // let path = common::known_good_path("CA_test.json"); + // let reader = c2pa::Reader::from_stream(format, &mut dest)?; + // std::fs::write(path, reader.json())?; + dest.set_position(0); compare_stream_to_known_good(&mut dest, format, "CA_test.json") } diff --git a/sdk/tests/v2_api_integration.rs b/sdk/tests/v2_api_integration.rs @@ -107,7 +107,7 @@ mod integration_v2 { let mut builder = Builder::from_archive(&mut zipped)?; // sign the ManifestStoreBuilder and write it to the output stream let mut dest = Cursor::new(Vec::new()); - builder.sign(format, &mut source, &mut dest, &signer)?; + builder.sign(&signer, format, &mut source, &mut dest)?; // read and validate the signed manifest store dest.rewind()?;