lib

Core libraries for Radroots
git clone https://radroots.dev/git/lib.git
Log | Files | Refs | README

verified_descriptor.rs (775B)


      1 use radroots_blossom::{BlobDescriptor, BlobUrl, MediaType, Sha256};
      2 
      3 fn main() -> Result<(), radroots_blossom::Error> {
      4     let bytes = b"hello";
      5     let hash = Sha256::digest(bytes);
      6     let media_type = MediaType::parse("text/plain")?;
      7     let url = BlobUrl::parse(&format!("https://media.example/{hash}.txt"))?;
      8     let descriptor = BlobDescriptor::new(
      9         url,
     10         hash,
     11         bytes.len() as u64,
     12         media_type.clone(),
     13         1_725_105_921,
     14     )?;
     15 
     16     let verified = descriptor
     17         .approve_reference()?
     18         .verify_bytes(bytes, &media_type)?;
     19 
     20     assert_eq!(verified.sha256(), hash);
     21     assert_eq!(verified.size(), 5);
     22     assert_eq!(
     23         verified.url().as_str(),
     24         format!("https://media.example/{hash}.txt")
     25     );
     26     Ok(())
     27 }