|
| 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 (AES-128)
Client code is working only with PdfEncrypt class and knows nothing about PdfEncryptAES*, it is created through CreatePdfEncrypt factory method