wxPdfDocument 0.9.2
|
Class representing PDF encryption methods. (For internal use only) More...
#include <pdfencrypt.h>
Public Member Functions | |
wxPdfEncrypt (int revision=2, int keyLength=40) | |
Constructor. | |
virtual | ~wxPdfEncrypt () |
Default destructor. | |
void | GenerateEncryptionKey (const wxString &userPassword, const wxString &ownerPassword, int protection, const wxString &documentId=wxEmptyString) |
Generate encryption key from user and owner passwords and protection key. | |
bool | Authenticate (const wxString &documentID, const wxString &password, const wxString &uValue, const wxString &oValue, int pValue, int lengthValue, int rValue) |
Authenticate a document. | |
const unsigned char * | GetUValue () const |
Get the U object value (user) | |
const unsigned char * | GetOValue () const |
Get the O object value (owner) | |
int | GetPValue () const |
Get the P object value (protection) | |
int | GetRevision () const |
Get the revision number of the encryption method. | |
unsigned int | GetKeyLength () const |
Get the key length of the encryption key in bits. | |
void | Encrypt (int n, int g, wxString &str) |
Encrypt a wxString. | |
void | Encrypt (int n, int g, unsigned char *str, unsigned int len) |
Encrypt a character string. | |
size_t | CalculateStreamLength (size_t length) |
Calculate stream size. | |
size_t | CalculateStreamOffset () |
Calculate stream offset. | |
wxString | CreateDocumentId () |
Create document id. | |
wxString | GetDocumentId () const |
Get document id. | |
Protected Member Functions | |
void | PadPassword (const wxString &password, unsigned char pswd[32]) |
Pad a password to 32 characters. | |
void | ComputeOwnerKey (unsigned char userPad[32], unsigned char ownerPad[32], unsigned int keylength, int revision, bool authenticate, unsigned char ownerKey[32]) |
Compute owner key. | |
void | ComputeEncryptionKey (const wxString &documentID, unsigned char userPad[32], unsigned char ownerKey[32], int pValue, unsigned int keyLength, int revision, unsigned char userKey[32]) |
Compute encryption key and user key. | |
bool | CheckKey (unsigned char key1[32], unsigned char key2[32]) |
Check two keys for equality. | |
void | RC4 (unsigned char *key, unsigned int keylen, unsigned char *textin, unsigned int textlen, unsigned char *textout) |
RC4 encryption. | |
void | GetMD5Binary (const unsigned char *data, unsigned int length, unsigned char *digest) |
Calculate the binary MD5 message digest of the given data. | |
void | AES (unsigned char *key, unsigned int keylen, unsigned char *textin, unsigned int textlen, unsigned char *textout) |
AES encryption. | |
void | GenerateInitialVector (unsigned char iv[16]) |
Generate initial vector. |
Class representing PDF encryption methods. (For internal use only)
wxPdfEncrypt::wxPdfEncrypt | ( | int | revision = 2 , |
int | keyLength = 40 |
||
) |
Constructor.
revision | revision of the encryption algorithm |
keyLength | length of the key for the encryption |
virtual wxPdfEncrypt::~wxPdfEncrypt | ( | ) | [virtual] |
Default destructor.
void wxPdfEncrypt::AES | ( | unsigned char * | key, |
unsigned int | keylen, | ||
unsigned char * | textin, | ||
unsigned int | textlen, | ||
unsigned char * | textout | ||
) | [protected] |
AES encryption.
bool wxPdfEncrypt::Authenticate | ( | const wxString & | documentID, |
const wxString & | password, | ||
const wxString & | uValue, | ||
const wxString & | oValue, | ||
int | pValue, | ||
int | lengthValue, | ||
int | rValue | ||
) |
Authenticate a document.
documentID | the identification of the document |
password | the password given by the user |
uValue | the U value from the document's encryption dictionary |
oValue | the O value from the document's encryption dictionary |
pValue | the P value from the document's encryption dictionary |
lengthValue | the length value from the document's encryption dictionary |
rValue | the R value from the document's encryption dictionary |
size_t wxPdfEncrypt::CalculateStreamLength | ( | size_t | length | ) |
Calculate stream size.
length | lenght of the original stream |
size_t wxPdfEncrypt::CalculateStreamOffset | ( | ) |
Calculate stream offset.
bool wxPdfEncrypt::CheckKey | ( | unsigned char | key1[32], |
unsigned char | key2[32] | ||
) | [protected] |
Check two keys for equality.
void wxPdfEncrypt::ComputeEncryptionKey | ( | const wxString & | documentID, |
unsigned char | userPad[32], | ||
unsigned char | ownerKey[32], | ||
int | pValue, | ||
unsigned int | keyLength, | ||
int | revision, | ||
unsigned char | userKey[32] | ||
) | [protected] |
Compute encryption key and user key.
void wxPdfEncrypt::ComputeOwnerKey | ( | unsigned char | userPad[32], |
unsigned char | ownerPad[32], | ||
unsigned int | keylength, | ||
int | revision, | ||
bool | authenticate, | ||
unsigned char | ownerKey[32] | ||
) | [protected] |
Compute owner key.
wxString wxPdfEncrypt::CreateDocumentId | ( | ) |
Create document id.
void wxPdfEncrypt::Encrypt | ( | int | n, |
int | g, | ||
unsigned char * | str, | ||
unsigned int | len | ||
) |
Encrypt a character string.
n | number of the associated PDF object |
g | generation of the associated PDF object |
str | string to encrypt |
len | length of the string to encrypt |
void wxPdfEncrypt::Encrypt | ( | int | n, |
int | g, | ||
wxString & | str | ||
) |
Encrypt a wxString.
n | number of the associated PDF object |
g | generation of the associated PDF object |
str | string to encrypt |
void wxPdfEncrypt::GenerateEncryptionKey | ( | const wxString & | userPassword, |
const wxString & | ownerPassword, | ||
int | protection, | ||
const wxString & | documentId = wxEmptyString |
||
) |
Generate encryption key from user and owner passwords and protection key.
userPassword | password of the user |
ownerPassword | password of the owner |
protection | protection flags |
documentId | optional document identification |
void wxPdfEncrypt::GenerateInitialVector | ( | unsigned char | iv[16] | ) | [protected] |
Generate initial vector.
wxString wxPdfEncrypt::GetDocumentId | ( | ) | const [inline] |
Get document id.
unsigned int wxPdfEncrypt::GetKeyLength | ( | ) | const [inline] |
Get the key length of the encryption key in bits.
void wxPdfEncrypt::GetMD5Binary | ( | const unsigned char * | data, |
unsigned int | length, | ||
unsigned char * | digest | ||
) | [protected] |
Calculate the binary MD5 message digest of the given data.
const unsigned char* wxPdfEncrypt::GetOValue | ( | ) | const [inline] |
Get the O object value (owner)
int wxPdfEncrypt::GetPValue | ( | ) | const [inline] |
Get the P object value (protection)
int wxPdfEncrypt::GetRevision | ( | ) | const [inline] |
Get the revision number of the encryption method.
const unsigned char* wxPdfEncrypt::GetUValue | ( | ) | const [inline] |
Get the U object value (user)
void wxPdfEncrypt::PadPassword | ( | const wxString & | password, |
unsigned char | pswd[32] | ||
) | [protected] |
Pad a password to 32 characters.
void wxPdfEncrypt::RC4 | ( | unsigned char * | key, |
unsigned int | keylen, | ||
unsigned char * | textin, | ||
unsigned int | textlen, | ||
unsigned char * | textout | ||
) | [protected] |
RC4 encryption.