| 
| std::unique_ptr< InputStream >  | CreateEncryptionInputStream (InputStream &inputStream, size_t inputLen, PdfEncryptContext &context, const PdfReference &objref) const override | 
|   | Create an InputStream that decrypts all data read from it using the current settings of the PdfEncrypt object.  
  | 
|   | 
| std::unique_ptr< OutputStream >  | CreateEncryptionOutputStream (OutputStream &outputStream, PdfEncryptContext &context, const PdfReference &objref) const override | 
|   | Create an OutputStream that encrypts all data written to it using the current settings of the PdfEncrypt object.  
  | 
|   | 
| size_t  | CalculateStreamOffset () const override | 
|   | Calculate stream offset.  
  | 
|   | 
| size_t  | CalculateStreamLength (size_t length) const override | 
|   | Calculate stream size.  
  | 
|   | 
| void  | CreateEncryptionDictionary (PdfDictionary &dictionary) const override | 
|   | Fill all keys into a encryption dictionary.  
  | 
|   | 
| void  | EnsureEncryptionInitialized (const PdfString &documentId, PdfEncryptContext &context) | 
|   | Ensure encryption key and /O, /U, /OE, /UE values are initialized.  
  | 
|   | 
| void  | Authenticate (const std::string_view &password, const PdfString &documentId, PdfEncryptContext &context) const | 
|   | Tries to authenticate a user using either the user or owner password.  
  | 
|   | 
| PdfEncryptionAlgorithm  | GetEncryptAlgorithm () const | 
|   | Get the encryption algorithm of this object.  
  | 
|   | 
| bool  | IsOwnerPasswordSet () const | 
|   | Checks if an owner password is set.  
  | 
|   | 
| bool  | IsPrintAllowed () const | 
|   | Checks if printing this document is allowed.  
  | 
|   | 
| bool  | IsEditAllowed () const | 
|   | Checks if modifying this document (besides annotations, form fields or changing pages) is allowed.  
  | 
|   | 
| bool  | IsCopyAllowed () const | 
|   | Checks if text and graphics extraction is allowed.  
  | 
|   | 
| bool  | IsEditNotesAllowed () const | 
|   | Checks if it is allowed to add or modify annotations or form fields Every PDF consuming applications has to adhere this value!  
  | 
|   | 
| bool  | IsFillAndSignAllowed () const | 
|   | Checks if it is allowed to fill in existing form or signature fields Every PDF consuming applications has to adhere this value!  
  | 
|   | 
| bool  | IsAccessibilityAllowed () const | 
|   | Checks if it is allowed to extract text and graphics to support users with disabilities Every PDF consuming applications has to adhere this value!  
  | 
|   | 
| bool  | IsDocAssemblyAllowed () const | 
|   | Checks if it is allowed to insert, create, rotate, delete pages or add bookmarks Every PDF consuming applications has to adhere this value!  
  | 
|   | 
| bool  | IsHighPrintAllowed () const | 
|   | Checks if it is allowed to print a high quality version of this document Every PDF consuming applications has to adhere this value!  
  | 
|   | 
| 
void  | EncryptTo (charbuff &out, const bufferview &view, PdfEncryptContext &context, const PdfReference &objref) const | 
|   | Encrypt a character span. 
  | 
|   | 
| 
void  | DecryptTo (charbuff &out, const bufferview &view, PdfEncryptContext &context, const PdfReference &objref) const | 
|   | Decrypt a character span. 
  | 
|   | 
| unsigned  | GetKeyLengthBytes () const | 
|   | Get the encryption key length in bytes.  
  | 
|   | 
| 
bufferview  | GetUValue () const | 
|   | Get the U object value (user) 
  | 
|   | 
| 
bufferview  | GetOValue () const | 
|   | Get the O object value (owner) 
  | 
|   | 
| 
PdfKeyLength  | GetKeyLength () const | 
|   | Get the length of the encryption key in bits. 
  | 
|   | 
| 
PdfPermissions  | GetPValue () const | 
|   | Get the P object value (protection) 
  | 
|   | 
| 
unsigned  | GetRevision () const | 
|   | Get the revision number of the encryption method. 
  | 
|   | 
| 
bool  | IsMetadataEncrypted () const | 
|   | 
| 
bool  | IsParsed () const | 
|   | 
 | 
| void  | Encrypt (const char *inStr, size_t inLen, PdfEncryptContext &context, const PdfReference &objref, char *outStr, size_t outLen) const override | 
|   | 
| void  | Decrypt (const char *inStr, size_t inLen, PdfEncryptContext &context, const PdfReference &objref, char *outStr, size_t &outLen) const override | 
|   | 
| void  | GenerateEncryptionKey (const std::string_view &documentId, PdfAuthResult authResult, PODOFO_CRYPT_CTX *ctx, unsigned char uValue[48], unsigned char oValue[48], unsigned char encryptionKey[32]) override | 
|   | 
| PdfAuthResult  | Authenticate (const std::string_view &password, const std::string_view &documentId, PODOFO_CRYPT_CTX *ctx, unsigned char encryptionKey[32]) const override | 
|   | 
| void  | CreateObjKey (unsigned char objkey[16], unsigned &pnKeyLen, const unsigned char m_encryptionKey[32], const PdfReference &objref) const | 
|   | Create the encryption key for the current object.  
  | 
|   | 
| 
const unsigned char *  | GetUValueRaw () const | 
|   | 
| 
const unsigned char *  | GetOValueRaw () const | 
|   | 
| 
const std::string &  | GetUserPassword () const | 
|   | 
| 
const std::string &  | GetOwnerPassword () const | 
|   | 
| 
int64_t  | GetPValueForSerialization () const | 
|   | 
| 
void  | InitFromValues (PdfEncryptionAlgorithm algorithm, PdfKeyLength keyLength, unsigned char revision, PdfPermissions pValue, const bufferview &uValue, const bufferview &oValue, bool encryptedMetadata) | 
|   | Init from parsed values. 
  | 
|   | 
| void  | InitFromScratch (const std::string_view &userPassword, const std::string_view &ownerPassword, PdfEncryptionAlgorithm algorithm, PdfKeyLength keyLength, unsigned char revision, PdfPermissions pValue, bool encryptedMetadata) | 
|   | Init from scratch with user/owner password.  
  | 
|   | 
| 
bool  | CheckKey (const unsigned char key1[32], const unsigned char key2[32]) const | 
|   | 
 | 
| static std::unique_ptr< PdfEncrypt >  | Create (const std::string_view &userPassword, const std::string_view &ownerPassword, PdfPermissions protection=PdfPermissions::Default, PdfEncryptionAlgorithm algorithm=PdfEncryptionAlgorithm::AESV3R6, PdfKeyLength keyLength=PdfKeyLength::Unknown) | 
|   | Create a PdfEncrypt object which can be used to encrypt a PDF file.  
  | 
|   | 
| static std::unique_ptr< PdfEncrypt >  | CreateFromObject (const PdfObject &obj) | 
|   | Initialize a PdfEncrypt object from an encryption dictionary in a PDF file.  
  | 
|   | 
| static PdfEncryptionAlgorithm  | GetEnabledEncryptionAlgorithms () | 
|   | Retrieve the list of encryption algorithms that are used when loading a PDF document.  
  | 
|   | 
| static bool  | IsEncryptionEnabled (PdfEncryptionAlgorithm algorithm) | 
|   | Test if a certain encryption algorithm is enabled for loading PDF documents.  
  | 
|   | 
| enum class   | PdfRC4Revision : uint8_t { R2 = 2
, R3 = 3
 } | 
|   | 
| enum class   | PdfAESV3Revision : uint8_t { R5 = 5
, R6 = 6
 } | 
|   | 
| 
static void  | ComputeOwnerKey (const unsigned char userPad[32], const unsigned char ownerPad[32], unsigned keylength, unsigned revision, bool authenticate, PODOFO_CRYPT_CTX *ctx, unsigned char ownerKey[32]) | 
|   | 
| 
static void  | PadPassword (const std::string_view &password, unsigned char pswd[32]) | 
|   | 
| 
static void  | ComputeEncryptionKey (const std::string_view &documentID, const unsigned char userPad[32], const unsigned char ownerKey[32], PdfPermissions pValue, unsigned keyLength, unsigned revision, bool encryptMetadata, PODOFO_CRYPT_CTX *ctx, unsigned char userKey[32], unsigned char encryptionKey[32]) | 
|   | 
A class that is used to encrypt a PDF file (RC4 40-bit and 128-bit) 
Client code is working only with PdfEncrypt class and knows nothing about PdfEncryptRC4, it is created through CreatePdfEncrypt factory method