Skip to main content

oxidize_pdf/encryption/
mod.rs

1//! PDF encryption support according to ISO 32000-1 Chapter 7.6
2//!
3//! This module provides encryption using RC4 40-bit and 128-bit algorithms,
4//! AES-128 and AES-256 encryption, supporting Standard Security Handler
5//! (Revision 2, 3, 4, 5, and 6) and Public Key Security Handler.
6
7mod aes;
8mod crypt_filters;
9mod embedded_files;
10mod encryption_dict;
11mod object_encryption;
12mod permissions;
13mod permissions_enforcement;
14mod public_key;
15mod rc4;
16mod standard_security;
17
18pub use aes::{generate_iv, Aes, AesError, AesKey, AesKeySize};
19pub use crypt_filters::{AuthEvent, CryptFilterManager, FunctionalCryptFilter, SecurityHandler};
20pub use embedded_files::{EmbeddedFileEncryption, ExtendedEncryptionDict};
21pub use encryption_dict::{
22    CryptFilter, CryptFilterMethod, EncryptionAlgorithm, EncryptionDictionary, StreamFilter,
23    StringFilter,
24};
25pub use object_encryption::{DocumentEncryption, ObjectEncryptor};
26pub use permissions::{PermissionFlags, Permissions};
27pub use permissions_enforcement::{
28    LogLevel, PermissionCallback, PermissionCheckResult, PermissionEvent, PermissionOperation,
29    PermissionsValidator, RuntimePermissions, RuntimePermissionsBuilder,
30};
31pub use public_key::{PublicKeyEncryptionDict, PublicKeySecurityHandler, Recipient, SubFilter};
32pub use rc4::{Rc4, Rc4Key};
33pub use standard_security::{
34    compute_hash_r6_algorithm_2b, EncryptionKey, OwnerPassword, SecurityHandlerRevision,
35    StandardSecurityHandler, UserPassword,
36};
37
38#[cfg(test)]
39mod tests;