Files
2019-12-01 00:43:54 +01:00

57 lines
1.2 KiB
C++

#pragma once
#include "DataDirEntryWrapper.h"
/*
typedef struct WIN_CERTIFICATE {
DWORD dwLength;
WORD wRevision;
WORD wCertificateType;
BYTE bCertificate[];
} WIN_CERTIFICATE, *LPWIN_CERTIFICATE;
*/
class SecurityDirWrapper : public DataDirEntryWrapper
{
public:
enum SecurityDirFID {
NONE = FIELD_NONE,
CERT_LEN = 0,
REVISION,
TYPE,
CERT_CONTENT,
FIELD_COUNTER
};
SecurityDirWrapper(PEFile * pe)
: DataDirEntryWrapper(pe, pe::DIR_SECURITY), sizeOk(false)
{
wrap();
}
~SecurityDirWrapper() { clear(); }
bool wrap();
virtual void* getPtr();
virtual bufsize_t getSize();
virtual QString getName() { return "Security"; }
virtual size_t getFieldsCount() { return FIELD_COUNTER; }
virtual size_t getSubFieldsCount() { return 1; }
virtual void* getFieldPtr(size_t fieldId, size_t subField);
virtual QString getFieldName(size_t fieldId);
virtual WrappedValue::data_type containsDataType(size_t fieldId, size_t subField = FIELD_NONE);
QString translateType(int type);
virtual QString translateFieldContent(size_t fieldId);
private:
pe::WIN_CERTIFICATE* getCert();
void clear() {}
bool sizeOk;
};