wxPdfDocument 0.9.2
Public Member Functions | Protected Member Functions
wxPdfEncrypt Class Reference

Class representing PDF encryption methods. (For internal use only) More...

#include <pdfencrypt.h>

List of all members.

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.

Detailed Description

Class representing PDF encryption methods. (For internal use only)


Constructor & Destructor Documentation

wxPdfEncrypt::wxPdfEncrypt ( int  revision = 2,
int  keyLength = 40 
)

Constructor.

Parameters:
revisionrevision of the encryption algorithm
keyLengthlength of the key for the encryption
virtual wxPdfEncrypt::~wxPdfEncrypt ( ) [virtual]

Default destructor.


Member Function Documentation

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.

Parameters:
documentIDthe identification of the document
passwordthe password given by the user
uValuethe U value from the document's encryption dictionary
oValuethe O value from the document's encryption dictionary
pValuethe P value from the document's encryption dictionary
lengthValuethe length value from the document's encryption dictionary
rValuethe R value from the document's encryption dictionary
Returns:
TRUE if the document could be authenticated successfully, FALSE otherwise
size_t wxPdfEncrypt::CalculateStreamLength ( size_t  length)

Calculate stream size.

Parameters:
lengthlenght of the original stream
Returns:
the length of the encrypted stream
size_t wxPdfEncrypt::CalculateStreamOffset ( )

Calculate stream offset.

Returns:
the offset of the stream
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.

Returns:
the created document identifier
void wxPdfEncrypt::Encrypt ( int  n,
int  g,
unsigned char *  str,
unsigned int  len 
)

Encrypt a character string.

Parameters:
nnumber of the associated PDF object
ggeneration of the associated PDF object
strstring to encrypt
lenlength of the string to encrypt
void wxPdfEncrypt::Encrypt ( int  n,
int  g,
wxString &  str 
)

Encrypt a wxString.

Parameters:
nnumber of the associated PDF object
ggeneration of the associated PDF object
strstring 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.

Parameters:
userPasswordpassword of the user
ownerPasswordpassword of the owner
protectionprotection flags
documentIdoptional document identification
void wxPdfEncrypt::GenerateInitialVector ( unsigned char  iv[16]) [protected]

Generate initial vector.

wxString wxPdfEncrypt::GetDocumentId ( ) const [inline]

Get document id.

Returns:
the associated document identifier
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.


The documentation for this class was generated from the following file: