Ejemplo n.º 1
0
// --------------------------------------------------------------------------------------
// Assumes the buffer is sized correctly for the given plaintext length.
// NOTE: Use PadLen to allocate the memory.
// --------------------------------------------------------------------------------------
void PadWrite( int ptLen, int blocksize, BYTE *pt ) {
   int padLen = PadLen( ptLen, blocksize ); 
   BYTE pad = padLen - ptLen;
   for(int i=ptLen; i<padLen; i++) {
      pt[i] = pad;
   }
}
Ejemplo n.º 2
0
LFSubField* LFOneMethod::Construct( const char* ptr )
/***************************************************/
{
    uint nameLen = PrefixStrLen(ptr+sizeof(lf_onemethod));
    return new LFOneMethod( * (lf_onemethod *) ptr,
                            ptr + sizeof(lf_onemethod),
                            nameLen+PadLen(ptr+sizeof(lf_onemethod)+nameLen));

}
Ejemplo n.º 3
0
LFSubField* LFNestedType::Construct( const char* ptr )
/****************************************************/
{
    uint nameLen = PrefixStrLen(ptr+sizeof(lf_nestedtype));
    return new LFNestedType( * (lf_nestedtype *) ptr,
                             ptr + sizeof(lf_nestedtype),
                             nameLen+PadLen(ptr+sizeof(lf_nestedtype)+nameLen));

}
Ejemplo n.º 4
0
LFSubField* LFMember::Construct2( const char* ptr )
/*************************************************/
{
    uint nameLen = PrefixStrLen(ptr+sizeof(lf_member));
    return new LFMember( * (lf_member *) ptr,
                         ptr + sizeof(lf_member),
                         nameLen + PadLen(ptr+sizeof(lf_member)+nameLen));

}
Ejemplo n.º 5
0
LFSubField* LFFriendFcn::Construct( const char* ptr )
/***************************************************/
{
    uint nameLen = ::PrefixStrLen(ptr+sizeof(lf_friendfcn));
    return new LFFriendFcn( * (lf_friendfcn *) ptr,
                            ptr + sizeof(lf_friendfcn),
                            nameLen + PadLen(ptr+sizeof(lf_friendfcn)+nameLen));

}
Ejemplo n.º 6
0
LFSubField* LFBClass::Construct( const char* ptr )
/************************************************/
{
    uint offsetLen = ::NumLeafLength(ptr+sizeof(lf_bclass));
    return new LFBClass( * (lf_bclass *) ptr,
                         ptr + sizeof(lf_bclass),
                         offsetLen + PadLen(ptr+sizeof(lf_bclass)+offsetLen));

}
Ejemplo n.º 7
0
LFSubField* LFMember::Construct1( const char* ptr )
/*************************************************/
{
    uint offsetLen = ::NumLeafLength( ptr + sizeof(lf_member) );
    uint nameLen   = ::PrefixStrLen(ptr+sizeof(lf_member)+offsetLen);
    return new LFMember( * (lf_member *) ptr,
                          ptr + sizeof(lf_member),
                          offsetLen + nameLen +
                          PadLen(ptr+sizeof(lf_member)+offsetLen+nameLen));
}
Ejemplo n.º 8
0
LFSubField* LFEnumerate::Construct( const char* ptr )
/***************************************************/
{
    uint valueLen = ::NumLeafLength( ptr + sizeof(lf_enumerate) );
    uint nameLen  = ::PrefixStrLen(ptr+sizeof(lf_enumerate)+valueLen);
    return new LFEnumerate( * (lf_enumerate *) ptr,
                            ptr + sizeof(lf_enumerate),
                            valueLen + nameLen +
                            PadLen(ptr+sizeof(lf_enumerate)+valueLen+nameLen));
}
Ejemplo n.º 9
0
LFSubField* LFVBClass::Construct( const char* ptr )
/*************************************************/
{
    uint vbpoffLen = ::NumLeafLength( ptr+sizeof(lf_vbclass) );
    uint vboffLen  = ::NumLeafLength( ptr+sizeof(lf_vbclass)+vbpoffLen );
    return new LFVBClass( * (lf_vbclass *) ptr,
                          ptr + sizeof(lf_vbclass),
                          vbpoffLen + vboffLen +
                          PadLen(ptr+sizeof(lf_vbclass)+vbpoffLen+vboffLen));
}