Main Page | Namespace List | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals

libpst.c File Reference

#include "define.h"

Include dependency graph for libpst.c:

Include dependency graph

Go to the source code of this file.

Data Structures

struct  pst_table_ptr_struct32
struct  pst_table_ptr_structn
struct  pst_block_header
struct  pst_id2_assoc32
struct  pst_id2_assoc
struct  pst_table3_rec32
struct  pst_table3_rec
struct  pst_block_hdr
struct  pst_x_attrib

Defines

#define ASSERT(x)   { if(!(x)) raise( SIGSEGV ); }
#define INDEX_TYPE32   0x0E
#define INDEX_TYPE32A   0x0F
#define INDEX_TYPE64   0x17
#define INDEX_TYPE64A   0x15
#define INDEX_TYPE_OFFSET   (int64_t)0x0A
#define FILE_SIZE_POINTER32   (int64_t)0xA8
#define INDEX_POINTER32   (int64_t)0xC4
#define INDEX_BACK32   (int64_t)0xC0
#define SECOND_POINTER32   (int64_t)0xBC
#define SECOND_BACK32   (int64_t)0xB8
#define ENC_TYPE32   (int64_t)0x1CD
#define FILE_SIZE_POINTER64   (int64_t)0xB8
#define INDEX_POINTER64   (int64_t)0xF0
#define INDEX_BACK64   (int64_t)0xE8
#define SECOND_POINTER64   (int64_t)0xE0
#define SECOND_BACK64   (int64_t)0xD8
#define ENC_TYPE64   (int64_t)0x201
#define FILE_SIZE_POINTER   ((pf->do_read64) ? FILE_SIZE_POINTER64 : FILE_SIZE_POINTER32)
#define INDEX_POINTER   ((pf->do_read64) ? INDEX_POINTER64 : INDEX_POINTER32)
#define INDEX_BACK   ((pf->do_read64) ? INDEX_BACK64 : INDEX_BACK32)
#define SECOND_POINTER   ((pf->do_read64) ? SECOND_POINTER64 : SECOND_POINTER32)
#define SECOND_BACK   ((pf->do_read64) ? SECOND_BACK64 : SECOND_BACK32)
#define ENC_TYPE   ((pf->do_read64) ? ENC_TYPE64 : ENC_TYPE32)
#define PST_SIGNATURE   0x4E444221
#define ITEM_COUNT_OFFSET32   0x1f0
#define LEVEL_INDICATOR_OFFSET32   0x1f3
#define BACKLINK_OFFSET32   0x1f8
#define ITEM_SIZE32   12
#define DESC_SIZE32   16
#define INDEX_COUNT_MAX32   41
#define DESC_COUNT_MAX32   31
#define ITEM_COUNT_OFFSET64   0x1e8
#define LEVEL_INDICATOR_OFFSET64   0x1eb
#define BACKLINK_OFFSET64   0x1f8
#define ITEM_SIZE64   24
#define DESC_SIZE64   32
#define INDEX_COUNT_MAX64   20
#define DESC_COUNT_MAX64   15
#define BLOCK_SIZE   512
#define DESC_BLOCK_SIZE   512
#define ITEM_COUNT_OFFSET   (size_t)((pf->do_read64) ? ITEM_COUNT_OFFSET64 : ITEM_COUNT_OFFSET32)
#define LEVEL_INDICATOR_OFFSET   (size_t)((pf->do_read64) ? LEVEL_INDICATOR_OFFSET64 : LEVEL_INDICATOR_OFFSET32)
#define BACKLINK_OFFSET   (size_t)((pf->do_read64) ? BACKLINK_OFFSET64 : BACKLINK_OFFSET32)
#define ITEM_SIZE   (size_t)((pf->do_read64) ? ITEM_SIZE64 : ITEM_SIZE32)
#define DESC_SIZE   (size_t)((pf->do_read64) ? DESC_SIZE64 : DESC_SIZE32)
#define INDEX_COUNT_MAX   (int32_t)((pf->do_read64) ? INDEX_COUNT_MAX64 : INDEX_COUNT_MAX32)
#define DESC_COUNT_MAX   (int32_t)((pf->do_read64) ? DESC_COUNT_MAX64 : DESC_COUNT_MAX32)
#define SAFE_FREE(x)   {if (x) free(x);}
#define MALLOC_EMAIL(x)   { if (!x->email) { x->email = (pst_item_email*) xmalloc(sizeof(pst_item_email)); memset(x->email, 0, sizeof(pst_item_email) );} }
#define MALLOC_FOLDER(x)   { if (!x->folder) { x->folder = (pst_item_folder*) xmalloc(sizeof(pst_item_folder)); memset(x->folder, 0, sizeof(pst_item_folder) );} }
#define MALLOC_CONTACT(x)   { if (!x->contact) { x->contact = (pst_item_contact*) xmalloc(sizeof(pst_item_contact)); memset(x->contact, 0, sizeof(pst_item_contact) );} }
#define MALLOC_MESSAGESTORE(x)   { if (!x->message_store) { x->message_store = (pst_item_message_store*) xmalloc(sizeof(pst_item_message_store)); memset(x->message_store, 0, sizeof(pst_item_message_store));} }
#define MALLOC_JOURNAL(x)   { if (!x->journal) { x->journal = (pst_item_journal*) xmalloc(sizeof(pst_item_journal)); memset(x->journal, 0, sizeof(pst_item_journal) );} }
#define MALLOC_APPOINTMENT(x)   { if (!x->appointment) { x->appointment = (pst_item_appointment*) xmalloc(sizeof(pst_item_appointment)); memset(x->appointment, 0, sizeof(pst_item_appointment) );} }
#define LIST_COPY(targ, type)
#define LIST_COPY_TIME(targ)
#define LIST_COPY_SIZE(targ, type, mysize)
#define NULL_CHECK(x)   { if (!x) { DEBUG_EMAIL(("NULL_CHECK: Null Found\n")); break;} }
#define PST_PTR_BLOCK_SIZE   0x120

Typedefs

typedef pst_block_header pst_block_header
typedef pst_id2_assoc32 pst_id2_assoc32
typedef pst_id2_assoc pst_id2_assoc
typedef pst_table3_rec32 pst_table3_rec32
typedef pst_table3_rec pst_table3_rec
typedef pst_block_hdr pst_block_hdr
typedef pst_x_attrib pst_x_attrib

Functions

int pst_open (pst_file *pf, char *name)
int pst_close (pst_file *pf)
void add_descriptor_to_list (pst_desc_ll *node, pst_desc_ll **head, pst_desc_ll **tail)
 add a pst descriptor node to a linked list of such nodes.
void record_descriptor (pst_file *pf, pst_desc_ll *node)
 add a pst descriptor node into the global tree.
pst_index2_lldeep_copy (pst_index2_ll *head)
 make a deep copy of part of the id2 mapping tree, for use by an attachment containing an embedded rfc822 message.
pst_desc_llpst_getTopOfFolders (pst_file *pf, pst_item *root)
size_t pst_attach_to_mem (pst_file *pf, pst_item_attach *attach, char **b)
size_t pst_attach_to_file (pst_file *pf, pst_item_attach *attach, FILE *fp)
size_t pst_attach_to_file_base64 (pst_file *pf, pst_item_attach *attach, FILE *fp)
int pst_load_index (pst_file *pf)
pst_desc_llpst_getNextDptr (pst_desc_ll *d)
int pst_load_extended_attributes (pst_file *pf)
size_t pst_decode_desc (pst_file *pf, pst_descn *desc, char *buf)
size_t pst_decode_table (pst_file *pf, struct pst_table_ptr_structn *table, char *buf)
size_t pst_decode_index (pst_file *pf, pst_index *index, char *buf)
size_t pst_decode_assoc (pst_file *pf, pst_id2_assoc *assoc, char *buf)
size_t pst_decode_type3 (pst_file *pf, pst_table3_rec *table3_rec, char *buf)
int pst_build_id_ptr (pst_file *pf, int64_t offset, int32_t depth, uint64_t linku1, uint64_t start_val, uint64_t end_val)
int pst_build_desc_ptr (pst_file *pf, int64_t offset, int32_t depth, uint64_t linku1, uint64_t start_val, uint64_t end_val)
pst_itempst_parse_item (pst_file *pf, pst_desc_ll *d_ptr, pst_index2_ll *m_head)
void freeall (pst_subblocks *subs, pst_block_offset_pointer *p1, pst_block_offset_pointer *p2, pst_block_offset_pointer *p3, pst_block_offset_pointer *p4, pst_block_offset_pointer *p5, pst_block_offset_pointer *p6, pst_block_offset_pointer *p7)
pst_num_arraypst_parse_block (pst_file *pf, uint64_t block_id, pst_index2_ll *i2_head, pst_num_array *na_head)
int pst_process (pst_num_array *list, pst_item *item, pst_item_attach *attach)
 process the list of items produced from parse_block()
void pst_free_list (pst_num_array *list)
void pst_free_id2 (pst_index2_ll *head)
void pst_free_id (pst_index_ll *head)
void pst_free_desc (pst_desc_ll *head)
void pst_free_xattrib (pst_x_attrib_ll *x)
pst_index2_llpst_build_id2 (pst_file *pf, pst_index_ll *list)
void pst_free_attach (pst_item_attach *attach)
void pst_freeItem (pst_item *item)
int pst_getBlockOffsetPointer (pst_file *pf, pst_index2_ll *i2_head, pst_subblocks *subblocks, uint32_t offset, pst_block_offset_pointer *p)
 The offset might be zero, in which case we have no data, so return a pair of null pointers.
int pst_getBlockOffset (char *buf, size_t read_size, uint32_t i_offset, uint32_t offset, pst_block_offset *p)
pst_index_llpst_getID (pst_file *pf, uint64_t id)
pst_index2_llpst_getID2 (pst_index2_ll *head, uint64_t id2)
pst_desc_llpst_getDptr (pst_file *pf, uint64_t id)
 find the id in the descriptor tree rooted at pf->d_head
void pst_printDptr (pst_file *pf, pst_desc_ll *ptr)
void pst_printIDptr (pst_file *pf)
void pst_printID2ptr (pst_index2_ll *ptr)
size_t pst_read_block_size (pst_file *pf, int64_t offset, size_t size, char **buf)
 Read a block of data from file into memory.
int pst_decrypt (uint64_t id, char *buf, size_t size, unsigned char type)
uint64_t pst_getIntAt (pst_file *pf, char *buf)
uint64_t pst_getIntAtPos (pst_file *pf, int64_t pos)
size_t pst_getAtPos (pst_file *pf, int64_t pos, void *buf, size_t size)
 Read part of the pst file.
size_t pst_ff_getIDblock_dec (pst_file *pf, uint64_t id, char **buf)
 Get an ID block from file using _pst_ff_getIDblock and decrypt if necessary.
size_t pst_ff_getIDblock (pst_file *pf, uint64_t id, char **buf)
 Read a block of data from file into memory.
size_t pst_ff_getID2block (pst_file *pf, uint64_t id2, pst_index2_ll *id2_head, char **buf)
size_t pst_ff_getID2data (pst_file *pf, pst_index_ll *ptr, pst_holder *h)
size_t pst_ff_compile_ID (pst_file *pf, uint64_t id, pst_holder *h, size_t size)
int pst_stricmp (char *a, char *b)
int pst_strincmp (char *a, char *b, size_t x)
size_t pst_fwrite (const void *ptr, size_t size, size_t nmemb, FILE *stream)
char * pst_wide_to_single (char *wt, size_t size)
char * pst_rfc2426_escape (char *str)
int pst_chr_count (char *str, char x)
char * pst_rfc2425_datetime_format (FILETIME *ft)
char * pst_rfc2445_datetime_format (FILETIME *ft)

Variables

unsigned char comp_enc []
unsigned char comp_high1 []
unsigned char comp_high2 []


Define Documentation

#define ASSERT  )     { if(!(x)) raise( SIGSEGV ); }
 

Definition at line 21 of file libpst.c.

Referenced by vb_utf16to8(), vbcheck(), vbgrow(), vbskip(), vsncat(), vsnprepend(), and vsskip().

#define BACKLINK_OFFSET   (size_t)((pf->do_read64) ? BACKLINK_OFFSET64 : BACKLINK_OFFSET32)
 

Definition at line 671 of file libpst.c.

Referenced by pst_build_desc_ptr(), and pst_build_id_ptr().

#define BACKLINK_OFFSET32   0x1f8
 

Definition at line 653 of file libpst.c.

#define BACKLINK_OFFSET64   0x1f8
 

Definition at line 661 of file libpst.c.

#define BLOCK_SIZE   512
 

Definition at line 667 of file libpst.c.

Referenced by pst_build_id_ptr().

#define DESC_BLOCK_SIZE   512
 

Definition at line 668 of file libpst.c.

Referenced by pst_build_desc_ptr().

#define DESC_COUNT_MAX   (int32_t)((pf->do_read64) ? DESC_COUNT_MAX64 : DESC_COUNT_MAX32)
 

Definition at line 675 of file libpst.c.

Referenced by pst_build_desc_ptr().

#define DESC_COUNT_MAX32   31
 

Definition at line 657 of file libpst.c.

#define DESC_COUNT_MAX64   15
 

Definition at line 665 of file libpst.c.

#define DESC_SIZE   (size_t)((pf->do_read64) ? DESC_SIZE64 : DESC_SIZE32)
 

Definition at line 673 of file libpst.c.

#define DESC_SIZE32   16
 

Definition at line 655 of file libpst.c.

Referenced by pst_build_desc_ptr().

#define DESC_SIZE64   32
 

Definition at line 663 of file libpst.c.

#define ENC_TYPE   ((pf->do_read64) ? ENC_TYPE64 : ENC_TYPE32)
 

Definition at line 48 of file libpst.c.

Referenced by pst_open().

#define ENC_TYPE32   (int64_t)0x1CD
 

Definition at line 34 of file libpst.c.

#define ENC_TYPE64   (int64_t)0x201
 

Definition at line 41 of file libpst.c.

#define FILE_SIZE_POINTER   ((pf->do_read64) ? FILE_SIZE_POINTER64 : FILE_SIZE_POINTER32)
 

Definition at line 43 of file libpst.c.

Referenced by pst_open().

#define FILE_SIZE_POINTER32   (int64_t)0xA8
 

Definition at line 29 of file libpst.c.

#define FILE_SIZE_POINTER64   (int64_t)0xB8
 

Definition at line 36 of file libpst.c.

#define INDEX_BACK   ((pf->do_read64) ? INDEX_BACK64 : INDEX_BACK32)
 

Definition at line 45 of file libpst.c.

Referenced by pst_open().

#define INDEX_BACK32   (int64_t)0xC0
 

Definition at line 31 of file libpst.c.

#define INDEX_BACK64   (int64_t)0xE8
 

Definition at line 38 of file libpst.c.

#define INDEX_COUNT_MAX   (int32_t)((pf->do_read64) ? INDEX_COUNT_MAX64 : INDEX_COUNT_MAX32)
 

Definition at line 674 of file libpst.c.

Referenced by pst_build_desc_ptr(), and pst_build_id_ptr().

#define INDEX_COUNT_MAX32   41
 

Definition at line 656 of file libpst.c.

#define INDEX_COUNT_MAX64   20
 

Definition at line 664 of file libpst.c.

#define INDEX_POINTER   ((pf->do_read64) ? INDEX_POINTER64 : INDEX_POINTER32)
 

Definition at line 44 of file libpst.c.

Referenced by pst_open().

#define INDEX_POINTER32   (int64_t)0xC4
 

Definition at line 30 of file libpst.c.

#define INDEX_POINTER64   (int64_t)0xF0
 

Definition at line 37 of file libpst.c.

#define INDEX_TYPE32   0x0E
 

Definition at line 23 of file libpst.c.

Referenced by pst_open().

#define INDEX_TYPE32A   0x0F
 

Definition at line 24 of file libpst.c.

Referenced by pst_open().

#define INDEX_TYPE64   0x17
 

Definition at line 25 of file libpst.c.

Referenced by pst_open().

#define INDEX_TYPE64A   0x15
 

Definition at line 26 of file libpst.c.

Referenced by pst_open().

#define INDEX_TYPE_OFFSET   (int64_t)0x0A
 

Definition at line 27 of file libpst.c.

Referenced by pst_open().

#define ITEM_COUNT_OFFSET   (size_t)((pf->do_read64) ? ITEM_COUNT_OFFSET64 : ITEM_COUNT_OFFSET32)
 

Definition at line 669 of file libpst.c.

#define ITEM_COUNT_OFFSET32   0x1f0
 

Definition at line 651 of file libpst.c.

#define ITEM_COUNT_OFFSET64   0x1e8
 

Definition at line 659 of file libpst.c.

#define ITEM_SIZE   (size_t)((pf->do_read64) ? ITEM_SIZE64 : ITEM_SIZE32)
 

Definition at line 672 of file libpst.c.

#define ITEM_SIZE32   12
 

Definition at line 654 of file libpst.c.

Referenced by pst_build_desc_ptr(), and pst_build_id_ptr().

#define ITEM_SIZE64   24
 

Definition at line 662 of file libpst.c.

#define LEVEL_INDICATOR_OFFSET   (size_t)((pf->do_read64) ? LEVEL_INDICATOR_OFFSET64 : LEVEL_INDICATOR_OFFSET32)
 

Definition at line 670 of file libpst.c.

#define LEVEL_INDICATOR_OFFSET32   0x1f3
 

Definition at line 652 of file libpst.c.

#define LEVEL_INDICATOR_OFFSET64   0x1eb
 

Definition at line 660 of file libpst.c.

#define LIST_COPY targ,
type   ) 
 

Value:

{                               \
    targ = type realloc(targ, list->items[x]->size+1);        \
    memcpy(targ, list->items[x]->data, list->items[x]->size); \
    memset(((char*)targ)+list->items[x]->size, 0, (size_t)1); \
}

Definition at line 1711 of file libpst.c.

Referenced by pst_process().

#define LIST_COPY_SIZE targ,
type,
mysize   ) 
 

Value:

{        \
    mysize = list->items[x]->size;                  \
    if (mysize) {                                   \
        targ = type realloc(targ, mysize);          \
        memcpy(targ, list->items[x]->data, mysize); \
    }                                               \
    else {                                          \
        SAFE_FREE(targ);                            \
        targ = NULL;                                \
    }                                               \
}

Definition at line 1724 of file libpst.c.

Referenced by pst_process().

#define LIST_COPY_TIME targ   ) 
 

Value:

{                                \
    targ = (FILETIME*) realloc(targ, sizeof(FILETIME));       \
    memcpy(targ, list->items[x]->data, list->items[x]->size); \
    LE32_CPU(targ->dwLowDateTime);                            \
    LE32_CPU(targ->dwHighDateTime);                           \
}

Definition at line 1717 of file libpst.c.

Referenced by pst_process().

#define MALLOC_APPOINTMENT  )     { if (!x->appointment) { x->appointment = (pst_item_appointment*) xmalloc(sizeof(pst_item_appointment)); memset(x->appointment, 0, sizeof(pst_item_appointment) );} }
 

Definition at line 1709 of file libpst.c.

Referenced by pst_process().

#define MALLOC_CONTACT  )     { if (!x->contact) { x->contact = (pst_item_contact*) xmalloc(sizeof(pst_item_contact)); memset(x->contact, 0, sizeof(pst_item_contact) );} }
 

Definition at line 1706 of file libpst.c.

Referenced by pst_process().

#define MALLOC_EMAIL  )     { if (!x->email) { x->email = (pst_item_email*) xmalloc(sizeof(pst_item_email)); memset(x->email, 0, sizeof(pst_item_email) );} }
 

Definition at line 1704 of file libpst.c.

Referenced by pst_process().

#define MALLOC_FOLDER  )     { if (!x->folder) { x->folder = (pst_item_folder*) xmalloc(sizeof(pst_item_folder)); memset(x->folder, 0, sizeof(pst_item_folder) );} }
 

Definition at line 1705 of file libpst.c.

Referenced by pst_process().

#define MALLOC_JOURNAL  )     { if (!x->journal) { x->journal = (pst_item_journal*) xmalloc(sizeof(pst_item_journal)); memset(x->journal, 0, sizeof(pst_item_journal) );} }
 

Definition at line 1708 of file libpst.c.

Referenced by pst_process().

#define MALLOC_MESSAGESTORE  )     { if (!x->message_store) { x->message_store = (pst_item_message_store*) xmalloc(sizeof(pst_item_message_store)); memset(x->message_store, 0, sizeof(pst_item_message_store));} }
 

Definition at line 1707 of file libpst.c.

Referenced by pst_process().

#define NULL_CHECK  )     { if (!x) { DEBUG_EMAIL(("NULL_CHECK: Null Found\n")); break;} }
 

Definition at line 1736 of file libpst.c.

Referenced by pst_process().

#define PST_PTR_BLOCK_SIZE   0x120
 

Definition at line 4418 of file libpst.c.

#define PST_SIGNATURE   0x4E444221
 

Definition at line 50 of file libpst.c.

#define SAFE_FREE  )     {if (x) free(x);}
 

Definition at line 1700 of file libpst.c.

Referenced by pst_free_attach(), and pst_freeItem().

#define SECOND_BACK   ((pf->do_read64) ? SECOND_BACK64 : SECOND_BACK32)
 

Definition at line 47 of file libpst.c.

Referenced by pst_open().

#define SECOND_BACK32   (int64_t)0xB8
 

Definition at line 33 of file libpst.c.

#define SECOND_BACK64   (int64_t)0xD8
 

Definition at line 40 of file libpst.c.

#define SECOND_POINTER   ((pf->do_read64) ? SECOND_POINTER64 : SECOND_POINTER32)
 

Definition at line 46 of file libpst.c.

Referenced by pst_open().

#define SECOND_POINTER32   (int64_t)0xBC
 

Definition at line 32 of file libpst.c.

#define SECOND_POINTER64   (int64_t)0xE0
 

Definition at line 39 of file libpst.c.


Typedef Documentation

typedef struct pst_block_hdr pst_block_hdr
 

typedef struct pst_block_header pst_block_header
 

typedef struct pst_id2_assoc pst_id2_assoc
 

Referenced by pst_decode_assoc().

typedef struct pst_id2_assoc32 pst_id2_assoc32
 

Referenced by pst_decode_assoc().

typedef struct pst_table3_rec pst_table3_rec
 

Referenced by pst_decode_type3().

typedef struct pst_table3_rec32 pst_table3_rec32
 

Referenced by pst_decode_type3().

typedef struct pst_x_attrib pst_x_attrib
 


Function Documentation

void add_descriptor_to_list pst_desc_ll node,
pst_desc_ll **  head,
pst_desc_ll **  tail
[static]
 

add a pst descriptor node to a linked list of such nodes.

Parameters:
node pointer to the node to be added to the list
head pointer to the list head pointer
tail pointer to the list tail pointer

Definition at line 271 of file libpst.c.

References DEBUG_ENT, DEBUG_RET, pst_desc_tree::next, pst_desc_tree::prev, and pst_desc_ll.

Referenced by record_descriptor().

pst_index2_ll * deep_copy pst_index2_ll head  )  [static]
 

make a deep copy of part of the id2 mapping tree, for use by an attachment containing an embedded rfc822 message.

Parameters:
head pointer to the subtree to be copied
Returns:
pointer to the new copy of the subtree

Definition at line 360 of file libpst.c.

References pst_index2_tree::child, pst_index2_tree::id, pst_index2_tree::id2, pst_index2_tree::next, pst_index2_ll, and xmalloc().

Referenced by pst_parse_item().

Here is the call graph for this function:

void freeall pst_subblocks subs,
pst_block_offset_pointer p1,
pst_block_offset_pointer p2,
pst_block_offset_pointer p3,
pst_block_offset_pointer p4,
pst_block_offset_pointer p5,
pst_block_offset_pointer p6,
pst_block_offset_pointer p7
[static]
 

Definition at line 1219 of file libpst.c.

References pst_subblock::buf, pst_block_offset_pointer::from, pst_block_offset_pointer::needfree, pst_subblocks::subblock_count, and pst_subblocks::subs.

Referenced by pst_parse_block().

size_t pst_attach_to_file pst_file pf,
pst_item_attach attach,
FILE *  fp
 

Definition at line 426 of file libpst.c.

References pst_item_attach::data, DEBUG_ENT, DEBUG_RET, DEBUG_WARN, pst_item_attach::id_val, pst_ff_getID2data(), pst_fwrite(), pst_getID(), pst_index_ll, and pst_item_attach::size.

Referenced by write_separate_attachment().

Here is the call graph for this function:

size_t pst_attach_to_file_base64 pst_file pf,
pst_item_attach attach,
FILE *  fp
 

Definition at line 449 of file libpst.c.

References base64_encode(), pst_item_attach::data, DEBUG_ENT, DEBUG_RET, DEBUG_WARN, pst_item_attach::id_val, pst_ff_getID2data(), pst_fwrite(), pst_getID(), pst_index_ll, and pst_item_attach::size.

Referenced by write_inline_attachment().

Here is the call graph for this function:

size_t pst_attach_to_mem pst_file pf,
pst_item_attach attach,
char **  b
 

Definition at line 404 of file libpst.c.

References DEBUG_ENT, DEBUG_RET, DEBUG_WARN, pst_item_attach::id_val, pst_ff_getID2data(), pst_getID(), pst_index_ll, and pst_item_attach::size.

Here is the call graph for this function:

int pst_build_desc_ptr pst_file pf,
int64_t  offset,
int32_t  depth,
uint64_t  linku1,
uint64_t  start_val,
uint64_t  end_val
 

Definition at line 936 of file libpst.c.

References BACKLINK_OFFSET, DEBUG_ENT, DEBUG_HEXDUMPC, DEBUG_INDEX, DEBUG_RET, DEBUG_WARN, pst_desc_tree::desc, DESC_BLOCK_SIZE, DESC_COUNT_MAX, DESC_SIZE32, pst_desc_tree::id, INDEX_COUNT_MAX, ITEM_SIZE32, pst_desc_tree::list_index, pst_table_ptr_structn::offset, pst_desc_tree::parent_id, pst_decode_desc(), pst_decode_table(), pst_desc_ll, pst_descn, pst_getID(), pst_getIntAt(), pst_read_block_size(), record_descriptor(), pst_table_ptr_structn::start, pst_table_ptr_structn::u1, and xmalloc().

Referenced by pst_load_index().

Here is the call graph for this function:

pst_index2_ll* pst_build_id2 pst_file pf,
pst_index_ll list
 

Definition at line 3727 of file libpst.c.

References pst_index2_tree::child, DEBUG_ENT, DEBUG_HEXDUMPC, DEBUG_INDEX, DEBUG_RET, DEBUG_WARN, pst_file::do_read64, pst_index_tree::id, pst_id2_assoc::id, pst_index2_tree::id, pst_id2_assoc::id2, pst_index2_tree::id2, LE16_CPU, pst_index2_tree::next, pst_index_tree::offset, pst_decode_assoc(), pst_getID(), pst_index2_ll, pst_index_ll, pst_read_block_size(), pst_index_tree::size, pst_id2_assoc::table2, pst_index_tree::u1, WARN, and xmalloc().

Referenced by pst_load_extended_attributes(), and pst_parse_item().

Here is the call graph for this function:

int pst_build_id_ptr pst_file pf,
int64_t  offset,
int32_t  depth,
uint64_t  linku1,
uint64_t  start_val,
uint64_t  end_val
 

Definition at line 823 of file libpst.c.

References BACKLINK_OFFSET, BLOCK_SIZE, DEBUG_ENT, DEBUG_HEXDUMPC, DEBUG_INDEX, DEBUG_RET, DEBUG_WARN, pst_file::i_head, pst_file::i_tail, pst_index_struct::id, INDEX_COUNT_MAX, ITEM_SIZE32, pst_index_tree::next, pst_index_struct::offset, pst_table_ptr_structn::offset, pst_decode_index(), pst_decode_table(), pst_getIntAt(), pst_index, pst_index_ll, pst_read_block_size(), pst_index_struct::size, pst_table_ptr_structn::start, pst_index_struct::u1, pst_table_ptr_structn::u1, and xmalloc().

Referenced by pst_load_index().

Here is the call graph for this function:

int pst_chr_count char *  str,
char  x
 

Definition at line 4738 of file libpst.c.

Referenced by pst_rfc2426_escape().

int pst_close pst_file pf  ) 
 

Definition at line 242 of file libpst.c.

References pst_file::d_head, DEBUG_ENT, DEBUG_RET, pst_file::fp, pst_file::i_head, pst_free_desc(), pst_free_id(), pst_free_xattrib(), WARN, and pst_file::x_head.

Referenced by main().

Here is the call graph for this function:

size_t pst_decode_assoc pst_file pf,
pst_id2_assoc assoc,
char *  buf
[static]
 

Definition at line 774 of file libpst.c.

References DEBUG_HEXDUMPC, DEBUG_INDEX, pst_file::do_read64, pst_id2_assoc32::id, pst_id2_assoc::id, pst_id2_assoc32::id2, pst_id2_assoc::id2, LE32_CPU, LE64_CPU, pst_id2_assoc, pst_id2_assoc32, pst_id2_assoc32::table2, and pst_id2_assoc::table2.

Referenced by pst_build_id2().

size_t pst_decode_desc pst_file pf,
pst_descn desc,
char *  buf
[static]
 

Definition at line 679 of file libpst.c.

References pst_desc_struct32::d_id, pst_desc_structn::d_id, DEBUG_HEXDUMPC, DEBUG_INDEX, pst_desc_struct32::desc_id, pst_desc_structn::desc_id, pst_file::do_read64, LE32_CPU, LE64_CPU, pst_desc_struct32::list_id, pst_desc_structn::list_id, pst_desc_struct32::parent_id, pst_desc_structn::parent_id, pst_desc32, pst_descn, and pst_desc_structn::u1.

Referenced by pst_build_desc_ptr().

size_t pst_decode_index pst_file pf,
pst_index index,
char *  buf
[static]
 

Definition at line 742 of file libpst.c.

References DEBUG_HEXDUMPC, DEBUG_INDEX, pst_file::do_read64, pst_index_struct32::id, pst_index_struct::id, LE16_CPU, LE32_CPU, LE64_CPU, pst_index_struct32::offset, pst_index_struct::offset, pst_index, pst_index32, pst_index_struct32::size, pst_index_struct::size, pst_index_struct::u0, pst_index_struct32::u1, and pst_index_struct::u1.

Referenced by pst_build_id_ptr().

size_t pst_decode_table pst_file pf,
struct pst_table_ptr_structn table,
char *  buf
[static]
 

Definition at line 713 of file libpst.c.

References DEBUG_HEXDUMPC, DEBUG_INDEX, pst_file::do_read64, LE32_CPU, LE64_CPU, pst_table_ptr_struct32::offset, pst_table_ptr_structn::offset, pst_table_ptr_struct32::start, pst_table_ptr_structn::start, pst_table_ptr_struct32::u1, and pst_table_ptr_structn::u1.

Referenced by pst_build_desc_ptr(), and pst_build_id_ptr().

size_t pst_decode_type3 pst_file pf,
pst_table3_rec table3_rec,
char *  buf
[static]
 

Definition at line 802 of file libpst.c.

References DEBUG_HEXDUMPC, DEBUG_INDEX, pst_file::do_read64, pst_table3_rec32::id, pst_table3_rec::id, LE32_CPU, LE64_CPU, pst_table3_rec, and pst_table3_rec32.

Referenced by pst_ff_compile_ID(), and pst_parse_block().

int pst_decrypt uint64_t  id,
char *  buf,
size_t  size,
unsigned char  type
 

Definition at line 4245 of file libpst.c.

References comp_enc, comp_high1, comp_high2, DEBUG_ENT, DEBUG_RET, and WARN.

Referenced by dumper(), main(), pst_ff_compile_ID(), and pst_ff_getIDblock_dec().

size_t pst_ff_compile_ID pst_file pf,
uint64_t  id,
pst_holder h,
size_t  size
 

Definition at line 4469 of file libpst.c.

References pst_holder::base64, base64_encode(), base64_encode_multiple(), pst_holder::buf, DEBUG_EMAIL, DEBUG_ENT, DEBUG_HEXDUMPC, DEBUG_READ, DEBUG_RET, DEBUG_WARN, pst_file::encryption, pst_holder::fp, pst_table3_rec::id, LE16_CPU, LE32_CPU, pst_decode_type3(), pst_decrypt(), pst_ff_getIDblock(), pst_ff_getIDblock_dec(), and pst_fwrite().

Referenced by pst_ff_getID2data().

Here is the call graph for this function:

size_t pst_ff_getID2block pst_file pf,
uint64_t  id2,
pst_index2_ll id2_head,
char **  buf
 

Definition at line 4419 of file libpst.c.

References DEBUG_ENT, DEBUG_INDEX, DEBUG_RET, pst_index2_tree::id, pst_ff_getID2data(), pst_getID2(), and pst_index2_ll.

Referenced by pst_getBlockOffsetPointer(), and pst_parse_block().

Here is the call graph for this function:

size_t pst_ff_getID2data pst_file pf,
pst_index_ll ptr,
pst_holder h
 

Definition at line 4437 of file libpst.c.

References pst_holder::base64, base64_encode(), pst_holder::buf, DEBUG_ENT, DEBUG_READ, DEBUG_RET, pst_holder::fp, pst_index_tree::id, pst_ff_compile_ID(), pst_ff_getIDblock_dec(), pst_fwrite(), and pst_index_ll.

Referenced by pst_attach_to_file(), pst_attach_to_file_base64(), pst_attach_to_mem(), and pst_ff_getID2block().

Here is the call graph for this function:

size_t pst_ff_getIDblock pst_file pf,
uint64_t  id,
char **  buf
 

Read a block of data from file into memory.

Parameters:
pf PST file
id identifier of block to read
buf reference to pointer to buffer. If this pointer is non-NULL, it will first be free()d
Returns:
size of block read into memory

Definition at line 4401 of file libpst.c.

References DEBUG_ENT, DEBUG_INDEX, DEBUG_RET, pst_index_tree::offset, pst_getID(), pst_index_ll, pst_read_block_size(), and pst_index_tree::size.

Referenced by dumper(), main(), pst_ff_compile_ID(), and pst_ff_getIDblock_dec().

Here is the call graph for this function:

size_t pst_ff_getIDblock_dec pst_file pf,
uint64_t  id,
char **  buf
 

Get an ID block from file using _pst_ff_getIDblock and decrypt if necessary.

Parameters:
pf PST file structure
id ID of block to retrieve
buf Reference to pointer that will be set to new block. Any memory pointed to by buffer will be free()d beforehand
Returns:
Size of block pointed to by *b

Definition at line 4378 of file libpst.c.

References DEBUG_ENT, DEBUG_HEXDUMPC, DEBUG_INDEX, DEBUG_RET, pst_file::encryption, pst_decrypt(), and pst_ff_getIDblock().

Referenced by main(), pst_ff_compile_ID(), pst_ff_getID2data(), and pst_parse_block().

Here is the call graph for this function:

void pst_free_attach pst_item_attach attach  ) 
 

Definition at line 3797 of file libpst.c.

References pst_item_attach::data, pst_item_attach::filename1, pst_item_attach::filename2, pst_item_attach::id2_head, pst_item_attach::mimetype, pst_item_attach::next, pst_free_id2(), and SAFE_FREE.

Referenced by pst_freeItem().

Here is the call graph for this function:

void pst_free_desc pst_desc_ll head  ) 
 

Definition at line 3690 of file libpst.c.

References pst_desc_tree::child, DEBUG_ENT, DEBUG_RET, DIE, pst_desc_tree::next, pst_desc_tree::parent, and pst_desc_ll.

Referenced by pst_close().

void pst_free_id pst_index_ll head  ) 
 

Definition at line 3678 of file libpst.c.

References DEBUG_ENT, DEBUG_RET, pst_index_tree::next, and pst_index_ll.

Referenced by pst_close().

void pst_free_id2 pst_index2_ll head  ) 
 

Definition at line 3665 of file libpst.c.

References pst_index2_tree::child, DEBUG_ENT, DEBUG_RET, pst_index2_tree::next, and pst_index2_ll.

Referenced by pst_free_attach(), pst_load_extended_attributes(), and pst_parse_item().

void pst_free_list pst_num_array list  ) 
 

Definition at line 3643 of file libpst.c.

References pst_num_item::data, DEBUG_ENT, DEBUG_RET, pst_num_array::items, pst_num_array::next, and pst_num_array::orig_count.

Referenced by pst_load_extended_attributes(), pst_parse_block(), and pst_parse_item().

void pst_free_xattrib pst_x_attrib_ll x  ) 
 

Definition at line 3714 of file libpst.c.

References pst_x_attrib_ll::data, DEBUG_ENT, DEBUG_RET, and pst_x_attrib_ll::next.

Referenced by pst_close().

void pst_freeItem pst_item item  ) 
 

Definition at line 3812 of file libpst.c.

References pst_item_contact::access_method, pst_item_contact::account_name, pst_item_contact::address1, pst_item_contact::address1_desc, pst_item_contact::address1_transport, pst_item_contact::address1a, pst_item_contact::address2, pst_item_contact::address2_desc, pst_item_contact::address2_transport, pst_item_contact::address2a, pst_item_contact::address3, pst_item_contact::address3_desc, pst_item_contact::address3_transport, pst_item_contact::address3a, pst_item_appointment::alarm_filename, pst_item::appointment, pst_item_email::arrival_date, pst_item::ascii_type, pst_item_contact::assistant_name, pst_item_contact::assistant_phone, pst_item::attach, pst_item_email::bcc_address, pst_item_contact::billing_information, pst_item_contact::birthday, pst_item_email::body, pst_item_email::body_charset, pst_item_contact::business_address, pst_item_contact::business_city, pst_item_contact::business_country, pst_item_contact::business_fax, pst_item_contact::business_homepage, pst_item_contact::business_phone, pst_item_contact::business_phone2, pst_item_contact::business_po_box, pst_item_contact::business_postal_code, pst_item_contact::business_state, pst_item_contact::business_street, pst_item_contact::callback_phone, pst_item_contact::car_phone, pst_item_email::cc_address, pst_item::comment, pst_item_email::common_name, pst_item_message_store::common_view_folder, pst_item_contact::company_main_phone, pst_item_contact::company_name, pst_item_contact::computer_name, pst_item::contact, pst_item::create_date, pst_item_contact::customer_id, DEBUG_ENT, DEBUG_RET, pst_item_contact::def_postal_address, pst_item_message_store::default_outbox_folder, pst_item_message_store::deleted_items_folder, pst_item_contact::department, pst_item_contact::display_name_prefix, pst_item::email, pst_item_email::encrypted_body, pst_item_email::encrypted_htmlbody, pst_item_journal::end, pst_item_appointment::end, pst_item::extra_fields, pst_item_extra_field::field_name, pst_item::file_as, pst_item_contact::first_name, pst_item::folder, pst_item_contact::followup, pst_item_contact::free_busy_address, pst_item_contact::ftp_site, pst_item_contact::fullname, pst_item_contact::gov_id, pst_item_email::header, pst_item_contact::hobbies, pst_item_contact::home_address, pst_item_contact::home_city, pst_item_contact::home_country, pst_item_contact::home_fax, pst_item_contact::home_phone, pst_item_contact::home_phone2, pst_item_contact::home_po_box, pst_item_contact::home_postal_code, pst_item_contact::home_state, pst_item_contact::home_street, pst_item_email::htmlbody, pst_item_email::in_reply_to, pst_item_contact::initials, pst_item_contact::isdn_phone, pst_item_contact::job_title, pst_item::journal, pst_item_contact::keyword, pst_item_contact::language, pst_item_contact::location, pst_item_appointment::location, pst_item_contact::manager_name, pst_item::message_store, pst_item_email::messageid, pst_item_contact::middle_name, pst_item_contact::mileage, pst_item_contact::mobile_phone, pst_item::modify_date, pst_item_extra_field::next, pst_item_contact::nickname, pst_item_contact::office_loc, pst_item_contact::org_id, pst_item_email::original_bcc, pst_item_email::original_cc, pst_item_email::original_to, pst_item_contact::other_address, pst_item_contact::other_city, pst_item_contact::other_country, pst_item_contact::other_phone, pst_item_contact::other_po_box, pst_item_contact::other_postal_code, pst_item_contact::other_state, pst_item_contact::other_street, pst_item_email::outlook_recipient, pst_item_email::outlook_recipient2, pst_item_email::outlook_recipient_name, pst_item_email::outlook_sender, pst_item_email::outlook_sender2, pst_item_email::outlook_sender_name, pst_item::outlook_version, pst_item_contact::pager_phone, pst_item_contact::personal_homepage, pst_item_contact::pref_name, pst_item_contact::primary_fax, pst_item_contact::primary_phone, pst_item_email::proc_subject, pst_item_contact::profession, pst_free_attach(), pst_item_contact::radio_phone, pst_item_email::recip2_access, pst_item_email::recip2_address, pst_item_email::recip_access, pst_item_email::recip_address, pst_item::record_key, pst_item_appointment::recurrence, pst_item_appointment::recurrence_end, pst_item_appointment::recurrence_start, pst_item_appointment::reminder, pst_item_email::reply_to, pst_item_email::report_text, pst_item_email::report_time, pst_item_email::return_path_address, pst_item_email::rtf_body_tag, pst_item_email::rtf_compressed, SAFE_FREE, pst_item_message_store::search_root_folder, pst_item_email::sender2_access, pst_item_email::sender2_address, pst_item_email::sender_access, pst_item_email::sender_address, pst_item_email::sent_date, pst_item_message_store::sent_items_folder, pst_item_email::sentmail_folder, pst_item_email::sentto_address, pst_item_contact::spouse_name, pst_item_journal::start, pst_item_appointment::start, pst_item_email_subject::subj, pst_item_email::subject, pst_item_contact::suffix, pst_item_email::supplementary_info, pst_item_contact::surname, pst_item_contact::telex, pst_item_appointment::timezonestring, pst_item_message_store::top_of_folder, pst_item_message_store::top_of_personal_folder, pst_item_contact::transmittable_display_name, pst_item_contact::ttytdd_phone, pst_item_journal::type, pst_item_message_store::user_views_folder, pst_item_extra_field::value, pst_item_contact::wedding_anniversary, pst_item_contact::work_address_city, pst_item_contact::work_address_country, pst_item_contact::work_address_postalcode, pst_item_contact::work_address_postofficebox, pst_item_contact::work_address_state, and pst_item_contact::work_address_street.

Referenced by dumper(), main(), process(), pst_parse_item(), and write_embedded_message().

Here is the call graph for this function:

size_t pst_fwrite const void *  ptr,
size_t  size,
size_t  nmemb,
FILE *  stream
 

Definition at line 4648 of file libpst.c.

References DEBUG_ENT, DEBUG_RET, and DEBUG_WARN.

Referenced by main(), pst_attach_to_file(), pst_attach_to_file_base64(), pst_ff_compile_ID(), pst_ff_getID2data(), write_email_body(), write_inline_attachment(), and write_separate_attachment().

size_t pst_getAtPos pst_file pf,
int64_t  pos,
void *  buf,
size_t  size
 

Read part of the pst file.

Parameters:
pf PST file structure
pos offset of the data in the pst file
buf buffer to contain the data
size size of the buffer and the amount of data to be read
Returns:
actual read size, 0 if seek error

Definition at line 4334 of file libpst.c.

References DEBUG_ENT, DEBUG_RET, and pst_file::fp.

Referenced by pst_getIntAtPos(), pst_open(), and pst_read_block_size().

int pst_getBlockOffset char *  buf,
size_t  read_size,
uint32_t  i_offset,
uint32_t  offset,
pst_block_offset p
 

Definition at line 4070 of file libpst.c.

References DEBUG_ENT, DEBUG_RET, DEBUG_WARN, pst_block_offset::from, LE16_CPU, and pst_block_offset::to.

Referenced by pst_getBlockOffsetPointer().

int pst_getBlockOffsetPointer pst_file pf,
pst_index2_ll i2_head,
pst_subblocks subblocks,
uint32_t  offset,
pst_block_offset_pointer p
 

The offset might be zero, in which case we have no data, so return a pair of null pointers.

Or, the offset might end in 0xf, so it is an id2 pointer, in which case we read the id2 block. Otherwise, the high order 16 bits of offset is the index into the subblocks, and the (low order 16 bits of offset)>>4 is an index into the table of offsets in the subblock.

Definition at line 4023 of file libpst.c.

References pst_subblock::buf, DEBUG_ENT, DEBUG_RET, DEBUG_WARN, pst_block_offset_pointer::from, pst_block_offset::from, pst_subblock::i_offset, pst_block_offset_pointer::needfree, pst_ff_getID2block(), pst_getBlockOffset(), pst_index2_ll, pst_subblock::read_size, pst_subblocks::subblock_count, pst_subblocks::subs, pst_block_offset_pointer::to, and pst_block_offset::to.

Referenced by pst_parse_block().

Here is the call graph for this function:

pst_desc_ll* pst_getDptr pst_file pf,
uint64_t  id
 

find the id in the descriptor tree rooted at pf->d_head

Parameters:
pf global pst file pointer
id the id we are looking for
Returns:
pointer to the pst_desc_ll node in the descriptor tree

Definition at line 4152 of file libpst.c.

References pst_desc_tree::child, pst_file::d_head, DEBUG_ENT, DEBUG_RET, pst_desc_tree::id, pst_desc_tree::next, pst_desc_tree::parent, and pst_desc_ll.

Referenced by pst_getTopOfFolders(), pst_load_extended_attributes(), and record_descriptor().

pst_index_ll* pst_getID pst_file pf,
uint64_t  id
 

Definition at line 4094 of file libpst.c.

References DEBUG_ENT, DEBUG_INDEX, DEBUG_RET, pst_file::i_head, pst_index_tree::id, pst_index_tree::next, and pst_index_ll.

Referenced by dumper(), pst_attach_to_file(), pst_attach_to_file_base64(), pst_attach_to_mem(), pst_build_desc_ptr(), pst_build_id2(), pst_ff_getIDblock(), write_embedded_message(), and write_inline_attachment().

pst_index2_ll* pst_getID2 pst_index2_ll head,
uint64_t  id2
 

Definition at line 4118 of file libpst.c.

References pst_index2_tree::child, DEBUG_ENT, DEBUG_INDEX, DEBUG_RET, pst_index2_tree::id, pst_index_tree::id, pst_index2_tree::id2, pst_index2_tree::next, and pst_index2_ll.

Referenced by pst_ff_getID2block(), and pst_parse_item().

uint64_t pst_getIntAt pst_file pf,
char *  buf
 

Definition at line 4293 of file libpst.c.

References pst_file::do_read64, LE32_CPU, and LE64_CPU.

Referenced by pst_build_desc_ptr(), and pst_build_id_ptr().

uint64_t pst_getIntAtPos pst_file pf,
int64_t  pos
 

Definition at line 4309 of file libpst.c.

References pst_file::do_read64, LE32_CPU, LE64_CPU, and pst_getAtPos().

Referenced by pst_open().

Here is the call graph for this function:

pst_desc_ll* pst_getNextDptr pst_desc_ll d  ) 
 

Definition at line 497 of file libpst.c.

References pst_desc_tree::child, DEBUG_ENT, DEBUG_RET, pst_desc_tree::next, pst_desc_tree::parent, and pst_desc_ll.

Referenced by dumper().

pst_desc_ll* pst_getTopOfFolders pst_file pf,
pst_item root
 

Definition at line 372 of file libpst.c.

References DEBUG_ENT, DEBUG_INDEX, DEBUG_RET, pst_desc_tree::desc, pst_entryid_struct::id, pst_desc_tree::id, pst_desc_tree::list_index, pst_item::message_store, pst_desc_tree::parent_id, pst_desc_ll, pst_getDptr(), record_descriptor(), pst_item_message_store::top_of_personal_folder, and xmalloc().

Referenced by main().

Here is the call graph for this function:

int pst_load_extended_attributes pst_file pf  ) 
 

Definition at line 518 of file libpst.c.

References pst_num_array::count_item, pst_num_item::data, DEBUG_ENT, DEBUG_INDEX, DEBUG_RET, DEBUG_WARN, pst_desc_tree::desc, pst_x_attrib::extended, pst_index_tree::id, pst_num_item::id, pst_num_array::items, LE16_CPU, LE32_CPU, pst_desc_tree::list_index, pst_x_attrib::map, pst_x_attrib_ll::next, pst_build_id2(), pst_desc_ll, pst_free_id2(), pst_free_list(), pst_getDptr(), pst_index2_ll, PST_LE_GET_UINT16, PST_LE_GET_UINT32, pst_parse_block(), pst_printID2ptr(), pst_wide_to_single(), pst_num_item::size, pst_x_attrib::type, pst_x_attrib_ll::type, pst_file::x_head, and xmalloc().

Referenced by main().

Here is the call graph for this function:

int pst_load_index pst_file pf  ) 
 

Definition at line 476 of file libpst.c.

References pst_file::d_head, DEBUG_CODE, DEBUG_ENT, DEBUG_INDEX, DEBUG_RET, pst_file::index1, pst_file::index1_back, pst_file::index2, pst_file::index2_back, pst_build_desc_ptr(), pst_build_id_ptr(), pst_printDptr(), and WARN.

Referenced by main().

Here is the call graph for this function:

int pst_open pst_file pf,
char *  name
 

Definition at line 169 of file libpst.c.

References DEBUG_ENT, DEBUG_INFO, DEBUG_RET, ENC_TYPE, FILE_SIZE_POINTER, INDEX_BACK, INDEX_POINTER, INDEX_TYPE32, INDEX_TYPE32A, INDEX_TYPE64, INDEX_TYPE64A, INDEX_TYPE_OFFSET, LE32_CPU, pst_getAtPos(), pst_getIntAtPos(), SECOND_BACK, SECOND_POINTER, unicode_init(), and WARN.

Referenced by main().

Here is the call graph for this function:

pst_num_array* pst_parse_block pst_file pf,
uint64_t  block_id,
pst_index2_ll i2_head,
pst_num_array na_head
 

Definition at line 1241 of file libpst.c.

References varbuf::b, pst_subblock::buf, pst_num_array::count_array, pst_num_array::count_item, pst_x_attrib_ll::data, pst_num_item::data, DEBUG_EMAIL, DEBUG_ENT, DEBUG_HEXDUMPC, DEBUG_INDEX, DEBUG_RET, DEBUG_WARN, varbuf::dlen, pst_num_item::extra, freeall(), pst_block_offset_pointer::from, pst_subblock::i_offset, pst_table3_rec::id, pst_num_item::id, pst_num_array::items, LE16_CPU, LE32_CPU, pst_x_attrib_ll::map, pst_x_attrib_ll::mytype, pst_block_offset_pointer::needfree, pst_num_array::next, pst_x_attrib_ll::next, pst_num_array::orig_count, pst_decode_type3(), pst_ff_getID2block(), pst_ff_getIDblock_dec(), pst_free_list(), pst_getBlockOffsetPointer(), pst_index2_ll, pst_num_array, pst_num_item, pst_subblock::read_size, pst_num_item::size, pst_subblocks::subblock_count, pst_subblocks::subs, pst_block_offset_pointer::to, pst_num_item::type, pst_x_attrib_ll::type, vb_utf16to8(), vballoc(), vbappend(), vbset(), vbuf, WARN, pst_file::x_head, and xmalloc().

Referenced by pst_load_extended_attributes(), and pst_parse_item().

Here is the call graph for this function:

pst_item* pst_parse_item pst_file pf,
pst_desc_ll d_ptr,
pst_index2_ll m_head
 

Definition at line 1051 of file libpst.c.

References pst_item::attach, pst_index2_tree::child, pst_num_array::count_array, DEBUG_EMAIL, DEBUG_ENT, DEBUG_RET, DEBUG_WARN, deep_copy(), pst_desc_tree::desc, pst_index_tree::id, pst_index2_tree::id, pst_item_attach::id2_head, pst_item_attach::id2_val, pst_item_attach::id_val, pst_desc_tree::list_index, pst_item_attach::next, pst_build_id2(), pst_desc_ll, pst_free_id2(), pst_free_list(), pst_freeItem(), pst_getID2(), pst_index2_ll, pst_item, pst_item_attach, pst_parse_block(), pst_printID2ptr(), pst_process(), and xmalloc().

Referenced by dumper(), main(), process(), and write_embedded_message().

Here is the call graph for this function:

void pst_printDptr pst_file pf,
pst_desc_ll ptr
 

Definition at line 4171 of file libpst.c.

References pst_desc_tree::child, DEBUG_ENT, DEBUG_INDEX, DEBUG_RET, pst_desc_tree::desc, pst_desc_tree::id, pst_index_tree::id, pst_desc_tree::list_index, pst_desc_tree::next, pst_desc_tree::no_child, and pst_desc_ll.

Referenced by pst_load_index().

void pst_printID2ptr pst_index2_ll ptr  ) 
 

Definition at line 4197 of file libpst.c.

References pst_index2_tree::child, DEBUG_ENT, DEBUG_INDEX, DEBUG_RET, pst_index2_tree::id, pst_index_tree::id, pst_index2_tree::id2, pst_index2_tree::next, and pst_index2_ll.

Referenced by pst_load_extended_attributes(), and pst_parse_item().

void pst_printIDptr pst_file pf  ) 
 

Definition at line 4186 of file libpst.c.

References DEBUG_ENT, DEBUG_INDEX, DEBUG_RET, pst_file::i_head, pst_index_tree::id, pst_index_tree::next, pst_index_tree::offset, pst_index_ll, and pst_index_tree::size.

int pst_process pst_num_array list,
pst_item item,
pst_item_attach attach
 

process the list of items produced from parse_block()

Parameters:
list pointer to the linked list of things from parse_block()
item pointer to the item to be updated from the list. this item may be an email, contact or other sort of item. the type of this item is generally set by the things from the list.
attach pointer to the linked list of attachment records. If this is non-null, the length of the this attachment list must be at least as large as the length of the list.
Returns:
0 for ok, -1 for error.

Definition at line 1753 of file libpst.c.

References pst_item_contact::account_name, pst_item_contact::address1, pst_item_contact::address1_desc, pst_item_contact::address1_transport, pst_item_contact::address1a, pst_item_contact::address2, pst_item_contact::address2_desc, pst_item_contact::address2_transport, pst_item_contact::address2a, pst_item_contact::address3, pst_item_contact::address3_desc, pst_item_contact::address3_transport, pst_item_contact::address3a, pst_item_appointment::alarm, pst_item_appointment::alarm_filename, pst_item_appointment::alarm_minutes, pst_item_appointment::all_day, pst_item::appointment, pst_item_email::arrival_date, pst_item::ascii_type, pst_item_contact::assistant_name, pst_item_contact::assistant_phone, pst_item_folder::assoc_count, pst_item_email::autoforward, pst_item_email::bcc_address, pst_item_contact::billing_information, pst_item_contact::birthday, pst_item_email::body, pst_item_email::body_charset, pst_item_email::body_was_unicode, pst_item_contact::business_address, pst_item_contact::business_city, pst_item_contact::business_country, pst_item_contact::business_fax, pst_item_contact::business_homepage, pst_item_contact::business_phone, pst_item_contact::business_phone2, pst_item_contact::business_po_box, pst_item_contact::business_postal_code, pst_item_contact::business_state, pst_item_contact::business_street, pst_item_contact::callback_phone, pst_item_contact::car_phone, pst_item_email::cc_address, pst_item::comment, pst_item_email::common_name, pst_item_message_store::common_view_folder, pst_item_contact::company_main_phone, pst_item_contact::company_name, pst_item_contact::computer_name, pst_item::contact, pst_item_email::conv_index, pst_item_email::conversion_prohib, pst_num_array::count_item, pst_item::create_date, pst_item_contact::customer_id, pst_num_item::data, pst_item_attach::data, DEBUG_EMAIL, DEBUG_EMAIL_HEXPRINT, DEBUG_ENT, DEBUG_HEXDUMP, DEBUG_RET, pst_item_contact::def_postal_address, pst_item_message_store::default_outbox_folder, pst_item_email::delete_after_submit, pst_item_message_store::deleted_items_folder, pst_item_email::delivery_report, pst_item_contact::department, pst_item_contact::display_name_prefix, pst_item::email, pst_item_folder::email_count, pst_item_email::encrypted_body, pst_item_email::encrypted_body_size, pst_item_email::encrypted_htmlbody, pst_item_email::encrypted_htmlbody_size, pst_item_appointment::end, pst_item_journal::end, pst_entryid_struct::entryid, pst_num_item::extra, pst_item::extra_fields, pst_item_extra_field::field_name, pst_item::file_as, pst_item_attach::filename1, pst_item_attach::filename2, fileTimeToAscii(), pst_item_contact::first_name, pst_item_email::flag, pst_item::folder, pst_item_contact::followup, pst_item_contact::free_busy_address, pst_item_contact::ftp_site, pst_item_contact::fullname, pst_item_contact::gender, pst_item_contact::gov_id, pst_item_email::header, pst_item_contact::hobbies, pst_item_contact::home_address, pst_item_contact::home_city, pst_item_contact::home_country, pst_item_contact::home_fax, pst_item_contact::home_phone, pst_item_contact::home_phone2, pst_item_contact::home_po_box, pst_item_contact::home_postal_code, pst_item_contact::home_state, pst_item_contact::home_street, pst_item_email::htmlbody, pst_item_email::htmlbody_was_unicode, pst_num_item::id, pst_entryid_struct::id, pst_item_attach::id2_val, pst_item_email::importance, pst_item_email::in_reply_to, pst_item_contact::initials, pst_item_email::internet_cpid, pst_item_contact::isdn_phone, pst_num_array::items, pst_item_contact::job_title, pst_item::journal, pst_item_contact::keyword, pst_item_appointment::label, pst_item_contact::language, LE16_CPU, LE32_CPU, LIST_COPY, LIST_COPY_SIZE, LIST_COPY_TIME, pst_item_contact::location, pst_item_appointment::location, pst_item_contact::mail_permission, MALLOC_APPOINTMENT, MALLOC_CONTACT, MALLOC_EMAIL, MALLOC_FOLDER, MALLOC_JOURNAL, MALLOC_MESSAGESTORE, pst_item_contact::manager_name, pst_item_email::message_cc_me, pst_item_email::message_codepage, pst_item_email::message_recip_me, pst_item::message_size, pst_item::message_store, pst_item_email::message_to_me, pst_item_email::messageid, pst_item_attach::method, pst_item_contact::middle_name, pst_item_contact::mileage, pst_item_attach::mimetype, pst_item_contact::mobile_phone, pst_item::modify_date, pst_item_email::ndr_diag_code, pst_item_email::ndr_reason_code, pst_item_email::ndr_status_code, pst_item_extra_field::next, pst_num_array::next, pst_item_attach::next, pst_item_contact::nickname, NULL_CHECK, pst_item_email_subject::off1, pst_item_email_subject::off2, pst_item_contact::office_loc, pst_item_contact::org_id, pst_item_email::orig_sensitivity, pst_item_email::original_bcc, pst_item_email::original_cc, pst_item_email::original_to, pst_item_contact::other_address, pst_item_contact::other_city, pst_item_contact::other_country, pst_item_contact::other_phone, pst_item_contact::other_po_box, pst_item_contact::other_postal_code, pst_item_contact::other_state, pst_item_contact::other_street, pst_item_email::outlook_recipient, pst_item_email::outlook_recipient2, pst_item_email::outlook_recipient_name, pst_item_email::outlook_sender, pst_item_email::outlook_sender2, pst_item_email::outlook_sender_name, pst_item::outlook_version, pst_item_contact::pager_phone, pst_item_contact::personal_homepage, pst_item_attach::position, pst_item_contact::pref_name, pst_item_contact::primary_fax, pst_item_contact::primary_phone, pst_item_email::priority, pst_item::private_member, pst_item_email::proc_subject, pst_item_contact::profession, PST_APP_LABEL_ANNIVERSARY, PST_APP_LABEL_BIRTHDAY, PST_APP_LABEL_BUSINESS, PST_APP_LABEL_IMPORTANT, PST_APP_LABEL_MUST_ATTEND, PST_APP_LABEL_NEEDS_PREP, PST_APP_LABEL_NONE, PST_APP_LABEL_PERSONAL, PST_APP_LABEL_PHONE_CALL, PST_APP_LABEL_TRAVEL_REQ, PST_APP_LABEL_VACATION, PST_APP_RECUR_DAILY, PST_APP_RECUR_MONTHLY, PST_APP_RECUR_WEEKLY, PST_APP_RECUR_YEARLY, PST_ATTRIB_HEADER, pst_entryid, PST_FREEBUSY_BUSY, PST_FREEBUSY_FREE, PST_FREEBUSY_OUT_OF_OFFICE, PST_FREEBUSY_TENTATIVE, pst_item_email_subject, pst_item_extra_field, pst_stricmp(), pst_strincmp(), pst_item_message_store::pwd_chksum, pst_item_contact::radio_phone, pst_item_email::read_receipt, pst_item_email::recip2_access, pst_item_email::recip2_address, pst_item_email::recip_access, pst_item_email::recip_address, pst_item::record_key, pst_item::record_key_size, pst_item_appointment::recurrence, pst_item_appointment::recurrence_end, pst_item_appointment::recurrence_start, pst_item_appointment::recurrence_type, pst_item_appointment::reminder, pst_item_email::reply_requested, pst_item_email::reply_to, pst_item_email::report_text, pst_item_email::report_time, pst_item_email::report_was_unicode, pst_item::response_requested, pst_item_email::return_path_address, pst_item_contact::rich_text, pst_item_email::rtf_body_char_count, pst_item_email::rtf_body_crc, pst_item_email::rtf_body_tag, pst_item_email::rtf_compressed, pst_item_email::rtf_compressed_size, pst_item_email::rtf_in_sync, pst_item_email::rtf_ws_prefix_count, pst_item_email::rtf_ws_trailing_count, pst_item_message_store::search_root_folder, pst_item_email::sender2_access, pst_item_email::sender2_address, pst_item_email::sender_access, pst_item_email::sender_address, pst_item_email::sensitivity, pst_item_email::sent_date, pst_item_message_store::sent_items_folder, pst_item_email::sentmail_folder, pst_item_email::sentto_address, pst_item_attach::sequence, pst_item_appointment::showas, pst_num_item::size, pst_item_attach::size, pst_item_contact::spouse_name, pst_item_appointment::start, pst_item_journal::start, pst_item_folder::subfolder, pst_item_email_subject::subj, pst_item_email::subject, pst_item_contact::suffix, pst_item_email::supplementary_info, pst_item_contact::surname, pst_item_contact::telex, pst_item_appointment::timezonestring, pst_item_message_store::top_of_folder, pst_item_message_store::top_of_personal_folder, pst_item_contact::transmittable_display_name, pst_item_contact::ttytdd_phone, pst_num_item::type, pst_item::type, pst_item_journal::type, pst_entryid_struct::u1, pst_item_folder::unseen_email_count, pst_item_message_store::user_views_folder, pst_item_message_store::valid_mask, pst_item_extra_field::value, pst_item_contact::wedding_anniversary, pst_item_contact::work_address_city, pst_item_contact::work_address_country, pst_item_contact::work_address_postalcode, pst_item_contact::work_address_postofficebox, pst_item_contact::work_address_state, pst_item_contact::work_address_street, and xmalloc().

Referenced by pst_parse_item().

Here is the call graph for this function:

size_t pst_read_block_size pst_file pf,
int64_t  offset,
size_t  size,
char **  buf
 

Read a block of data from file into memory.

Parameters:
pf PST file
offset offset in the pst file of the data
size size of the block to be read
buf reference to pointer to buffer. If this pointer is non-NULL, it will first be free()d
Returns:
size of block read into memory

Definition at line 4217 of file libpst.c.

References DEBUG_ENT, DEBUG_READ, DEBUG_RET, DEBUG_WARN, pst_file::fp, pst_getAtPos(), and xmalloc().

Referenced by pst_build_desc_ptr(), pst_build_id2(), pst_build_id_ptr(), and pst_ff_getIDblock().

Here is the call graph for this function:

char* pst_rfc2425_datetime_format FILETIME ft  ) 
 

Definition at line 4748 of file libpst.c.

References DEBUG_ENT, DEBUG_INFO, DEBUG_RET, and fileTimeToStructTM().

Referenced by write_vcard().

Here is the call graph for this function:

char* pst_rfc2426_escape char *  str  ) 
 

Definition at line 4680 of file libpst.c.

References DEBUG_ENT, DEBUG_RET, and pst_chr_count().

Referenced by process(), write_appointment(), and write_vcard().

Here is the call graph for this function:

char* pst_rfc2445_datetime_format FILETIME ft  ) 
 

Definition at line 4761 of file libpst.c.

References DEBUG_ENT, DEBUG_INFO, DEBUG_RET, and fileTimeToStructTM().

Referenced by process(), and write_appointment().

Here is the call graph for this function:

int pst_stricmp char *  a,
char *  b
 

Definition at line 4616 of file libpst.c.

Referenced by pst_process().

int pst_strincmp char *  a,
char *  b,
size_t  x
 

Definition at line 4631 of file libpst.c.

Referenced by pst_process().

char* pst_wide_to_single char *  wt,
size_t  size
 

Definition at line 4662 of file libpst.c.

References DEBUG_ENT, DEBUG_RET, and xmalloc().

Referenced by pst_load_extended_attributes().

Here is the call graph for this function:

void record_descriptor pst_file pf,
pst_desc_ll node
[static]
 

add a pst descriptor node into the global tree.

Parameters:
pf global pst file pointer
node pointer to the new node to be added to the tree

Definition at line 295 of file libpst.c.

References add_descriptor_to_list(), pst_desc_tree::child, pst_desc_tree::child_tail, pst_file::d_head, pst_file::d_tail, DEBUG_ENT, DEBUG_INDEX, DEBUG_RET, pst_desc_tree::id, pst_desc_tree::next, pst_desc_tree::no_child, pst_desc_tree::parent, pst_desc_tree::parent_id, pst_desc_tree::prev, pst_desc_ll, and pst_getDptr().

Referenced by pst_build_desc_ptr(), and pst_getTopOfFolders().

Here is the call graph for this function:


Variable Documentation

unsigned char comp_enc[] [static]
 

Initial value:

 {
    0x47, 0xf1, 0xb4, 0xe6, 0x0b, 0x6a, 0x72, 0x48, 0x85, 0x4e, 0x9e, 0xeb, 0xe2, 0xf8, 0x94, 0x53,
    0xe0, 0xbb, 0xa0, 0x02, 0xe8, 0x5a, 0x09, 0xab, 0xdb, 0xe3, 0xba, 0xc6, 0x7c, 0xc3, 0x10, 0xdd,
    0x39, 0x05, 0x96, 0x30, 0xf5, 0x37, 0x60, 0x82, 0x8c, 0xc9, 0x13, 0x4a, 0x6b, 0x1d, 0xf3, 0xfb,
    0x8f, 0x26, 0x97, 0xca, 0x91, 0x17, 0x01, 0xc4, 0x32, 0x2d, 0x6e, 0x31, 0x95, 0xff, 0xd9, 0x23,
    0xd1, 0x00, 0x5e, 0x79, 0xdc, 0x44, 0x3b, 0x1a, 0x28, 0xc5, 0x61, 0x57, 0x20, 0x90, 0x3d, 0x83,
    0xb9, 0x43, 0xbe, 0x67, 0xd2, 0x46, 0x42, 0x76, 0xc0, 0x6d, 0x5b, 0x7e, 0xb2, 0x0f, 0x16, 0x29,
    0x3c, 0xa9, 0x03, 0x54, 0x0d, 0xda, 0x5d, 0xdf, 0xf6, 0xb7, 0xc7, 0x62, 0xcd, 0x8d, 0x06, 0xd3,
    0x69, 0x5c, 0x86, 0xd6, 0x14, 0xf7, 0xa5, 0x66, 0x75, 0xac, 0xb1, 0xe9, 0x45, 0x21, 0x70, 0x0c,
    0x87, 0x9f, 0x74, 0xa4, 0x22, 0x4c, 0x6f, 0xbf, 0x1f, 0x56, 0xaa, 0x2e, 0xb3, 0x78, 0x33, 0x50,
    0xb0, 0xa3, 0x92, 0xbc, 0xcf, 0x19, 0x1c, 0xa7, 0x63, 0xcb, 0x1e, 0x4d, 0x3e, 0x4b, 0x1b, 0x9b,
    0x4f, 0xe7, 0xf0, 0xee, 0xad, 0x3a, 0xb5, 0x59, 0x04, 0xea, 0x40, 0x55, 0x25, 0x51, 0xe5, 0x7a,
    0x89, 0x38, 0x68, 0x52, 0x7b, 0xfc, 0x27, 0xae, 0xd7, 0xbd, 0xfa, 0x07, 0xf4, 0xcc, 0x8e, 0x5f,
    0xef, 0x35, 0x9c, 0x84, 0x2b, 0x15, 0xd5, 0x77, 0x34, 0x49, 0xb6, 0x12, 0x0a, 0x7f, 0x71, 0x88,
    0xfd, 0x9d, 0x18, 0x41, 0x7d, 0x93, 0xd8, 0x58, 0x2c, 0xce, 0xfe, 0x24, 0xaf, 0xde, 0xb8, 0x36,
    0xc8, 0xa1, 0x80, 0xa6, 0x99, 0x98, 0xa8, 0x2f, 0x0e, 0x81, 0x65, 0x73, 0xe4, 0xc2, 0xa2, 0x8a,
    0xd4, 0xe1, 0x11, 0xd0, 0x08, 0x8b, 0x2a, 0xf2, 0xed, 0x9a, 0x64, 0x3f, 0xc1, 0x6c, 0xf9, 0xec
}

Definition at line 109 of file libpst.c.

unsigned char comp_high1[] [static]
 

Initial value:

 {
    0x41, 0x36, 0x13, 0x62, 0xa8, 0x21, 0x6e, 0xbb, 0xf4, 0x16, 0xcc, 0x04, 0x7f, 0x64, 0xe8, 0x5d,
    0x1e, 0xf2, 0xcb, 0x2a, 0x74, 0xc5, 0x5e, 0x35, 0xd2, 0x95, 0x47, 0x9e, 0x96, 0x2d, 0x9a, 0x88,
    0x4c, 0x7d, 0x84, 0x3f, 0xdb, 0xac, 0x31, 0xb6, 0x48, 0x5f, 0xf6, 0xc4, 0xd8, 0x39, 0x8b, 0xe7,
    0x23, 0x3b, 0x38, 0x8e, 0xc8, 0xc1, 0xdf, 0x25, 0xb1, 0x20, 0xa5, 0x46, 0x60, 0x4e, 0x9c, 0xfb,
    0xaa, 0xd3, 0x56, 0x51, 0x45, 0x7c, 0x55, 0x00, 0x07, 0xc9, 0x2b, 0x9d, 0x85, 0x9b, 0x09, 0xa0,
    0x8f, 0xad, 0xb3, 0x0f, 0x63, 0xab, 0x89, 0x4b, 0xd7, 0xa7, 0x15, 0x5a, 0x71, 0x66, 0x42, 0xbf,
    0x26, 0x4a, 0x6b, 0x98, 0xfa, 0xea, 0x77, 0x53, 0xb2, 0x70, 0x05, 0x2c, 0xfd, 0x59, 0x3a, 0x86,
    0x7e, 0xce, 0x06, 0xeb, 0x82, 0x78, 0x57, 0xc7, 0x8d, 0x43, 0xaf, 0xb4, 0x1c, 0xd4, 0x5b, 0xcd,
    0xe2, 0xe9, 0x27, 0x4f, 0xc3, 0x08, 0x72, 0x80, 0xcf, 0xb0, 0xef, 0xf5, 0x28, 0x6d, 0xbe, 0x30,
    0x4d, 0x34, 0x92, 0xd5, 0x0e, 0x3c, 0x22, 0x32, 0xe5, 0xe4, 0xf9, 0x9f, 0xc2, 0xd1, 0x0a, 0x81,
    0x12, 0xe1, 0xee, 0x91, 0x83, 0x76, 0xe3, 0x97, 0xe6, 0x61, 0x8a, 0x17, 0x79, 0xa4, 0xb7, 0xdc,
    0x90, 0x7a, 0x5c, 0x8c, 0x02, 0xa6, 0xca, 0x69, 0xde, 0x50, 0x1a, 0x11, 0x93, 0xb9, 0x52, 0x87,
    0x58, 0xfc, 0xed, 0x1d, 0x37, 0x49, 0x1b, 0x6a, 0xe0, 0x29, 0x33, 0x99, 0xbd, 0x6c, 0xd9, 0x94,
    0xf3, 0x40, 0x54, 0x6f, 0xf0, 0xc6, 0x73, 0xb8, 0xd6, 0x3e, 0x65, 0x18, 0x44, 0x1f, 0xdd, 0x67,
    0x10, 0xf1, 0x0c, 0x19, 0xec, 0xae, 0x03, 0xa1, 0x14, 0x7b, 0xa9, 0x0b, 0xff, 0xf8, 0xa3, 0xc0,
    0xa2, 0x01, 0xf7, 0x2e, 0xbc, 0x24, 0x68, 0x75, 0x0d, 0xfe, 0xba, 0x2f, 0xb5, 0xd0, 0xda, 0x3d
}

Definition at line 131 of file libpst.c.

Referenced by pst_decrypt().

unsigned char comp_high2[] [static]
 

Initial value:

 {
    0x14, 0x53, 0x0f, 0x56, 0xb3, 0xc8, 0x7a, 0x9c, 0xeb, 0x65, 0x48, 0x17, 0x16, 0x15, 0x9f, 0x02,
    0xcc, 0x54, 0x7c, 0x83, 0x00, 0x0d, 0x0c, 0x0b, 0xa2, 0x62, 0xa8, 0x76, 0xdb, 0xd9, 0xed, 0xc7,
    0xc5, 0xa4, 0xdc, 0xac, 0x85, 0x74, 0xd6, 0xd0, 0xa7, 0x9b, 0xae, 0x9a, 0x96, 0x71, 0x66, 0xc3,
    0x63, 0x99, 0xb8, 0xdd, 0x73, 0x92, 0x8e, 0x84, 0x7d, 0xa5, 0x5e, 0xd1, 0x5d, 0x93, 0xb1, 0x57,
    0x51, 0x50, 0x80, 0x89, 0x52, 0x94, 0x4f, 0x4e, 0x0a, 0x6b, 0xbc, 0x8d, 0x7f, 0x6e, 0x47, 0x46,
    0x41, 0x40, 0x44, 0x01, 0x11, 0xcb, 0x03, 0x3f, 0xf7, 0xf4, 0xe1, 0xa9, 0x8f, 0x3c, 0x3a, 0xf9,
    0xfb, 0xf0, 0x19, 0x30, 0x82, 0x09, 0x2e, 0xc9, 0x9d, 0xa0, 0x86, 0x49, 0xee, 0x6f, 0x4d, 0x6d,
    0xc4, 0x2d, 0x81, 0x34, 0x25, 0x87, 0x1b, 0x88, 0xaa, 0xfc, 0x06, 0xa1, 0x12, 0x38, 0xfd, 0x4c,
    0x42, 0x72, 0x64, 0x13, 0x37, 0x24, 0x6a, 0x75, 0x77, 0x43, 0xff, 0xe6, 0xb4, 0x4b, 0x36, 0x5c,
    0xe4, 0xd8, 0x35, 0x3d, 0x45, 0xb9, 0x2c, 0xec, 0xb7, 0x31, 0x2b, 0x29, 0x07, 0x68, 0xa3, 0x0e,
    0x69, 0x7b, 0x18, 0x9e, 0x21, 0x39, 0xbe, 0x28, 0x1a, 0x5b, 0x78, 0xf5, 0x23, 0xca, 0x2a, 0xb0,
    0xaf, 0x3e, 0xfe, 0x04, 0x8c, 0xe7, 0xe5, 0x98, 0x32, 0x95, 0xd3, 0xf6, 0x4a, 0xe8, 0xa6, 0xea,
    0xe9, 0xf3, 0xd5, 0x2f, 0x70, 0x20, 0xf2, 0x1f, 0x05, 0x67, 0xad, 0x55, 0x10, 0xce, 0xcd, 0xe3,
    0x27, 0x3b, 0xda, 0xba, 0xd7, 0xc2, 0x26, 0xd4, 0x91, 0x1d, 0xd2, 0x1c, 0x22, 0x33, 0xf8, 0xfa,
    0xf1, 0x5a, 0xef, 0xcf, 0x90, 0xb6, 0x8b, 0xb5, 0xbd, 0xc0, 0xbf, 0x08, 0x97, 0x1e, 0x6c, 0xe2,
    0x61, 0xe0, 0xc6, 0xc1, 0x59, 0xab, 0xbb, 0x58, 0xde, 0x5f, 0xdf, 0x60, 0x79, 0x7e, 0xb2, 0x8a
}

Definition at line 150 of file libpst.c.

Referenced by pst_decrypt().


Generated on Thu Feb 26 13:40:17 2009 for 'LibPst' by  doxygen 1.3.9.1