Skip to main content

Decryptor

Struct Decryptor 

Source
pub struct Decryptor { /* private fields */ }
Expand description

A configured Standard-handler decryptor for a document opened with the empty user password.

Implementations§

Source§

impl Decryptor

Source

pub fn from_standard(enc: &Dict, id0: &[u8]) -> Option<Decryptor>

Builds a decryptor from the resolved /Encrypt dictionary and the first /ID element, assuming the empty user password. Returns None when the handler or its parameters are unsupported, or the empty password does not open the file (so the caller can report it as unsupported).

This is low-level: crate::Document configures decryption itself, and a caller only reaches for this when driving object reads directly — as the asynchronous API does.

use pdfboss_core::{Decryptor, Dict};

// An empty dictionary names no handler, so there is nothing to build.
assert!(Decryptor::from_standard(&Dict::default(), &[]).is_none());
Source

pub fn decrypt_object(&self, obj: &mut Object, num: u32, gen: u16)

Decrypts one indirect object’s strings and stream data in place. Objects extracted from object streams are already plaintext and must not be passed here.

Low-level, like Decryptor::from_standard: crate::Document applies this itself as it loads objects, and a caller only reaches for it when driving object reads directly — as the asynchronous API does.

use pdfboss_core::{Decryptor, Object};

// Reachable from outside the crate; exercising it needs an encrypted
// document, so this only pins the signature and the visibility.
let apply: fn(&Decryptor, &mut Object, u32, u16) = Decryptor::decrypt_object;
let _ = apply;

Trait Implementations§

Source§

impl Clone for Decryptor

Source§

fn clone(&self) -> Decryptor

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.