Add option to show hashes as hex instead of base64. Siggen already provided this.
This commit is contained in:
parent
1d8ab16d00
commit
da16d91146
|
@ -273,6 +273,7 @@ lbw(1.2i) lb.
|
|||
-x \fIsection\fP --section \fIsection\fP
|
||||
-M --email-report
|
||||
-t \fR{ 0|1|2|3|4 }\fP --email-report-level \fR{ 0|1|2|3|4 }\fP
|
||||
-h --hexadecimal
|
||||
.TE
|
||||
.RI "[ " object1 " [ " object2... " ]]"
|
||||
.RE
|
||||
|
@ -369,6 +370,9 @@ EMAILREPORTLEVEL variable in the configuration file. \fIlevel\fR must
|
|||
be a number from 0\ to\ 4.
|
||||
Valid only with (\fB\(hyM\fP).
|
||||
.TP
|
||||
.BR \(hyh ", " --hexadecimal
|
||||
Display hash values as hexadecimal in email reports
|
||||
.TP
|
||||
.RI "[ " object1 " [ " object2... " ]]"
|
||||
List of files and directories that should be integrity checked.
|
||||
Default is all files. If files are specified for checking, the
|
||||
|
|
|
@ -53,6 +53,7 @@ lbw(1.2i) lb.
|
|||
-m r --print-report
|
||||
-v --verbose
|
||||
-s --silent\fR,\fP --quiet
|
||||
-h --hexadecimal
|
||||
-c \fIcfgfile\fP --cfgfile \fIcfgfile\fP
|
||||
-r \fIreport\fP --twrfile \fIreport\fP
|
||||
-L \fIlocalkey\fP --local-keyfile \fIlocalkey\fP
|
||||
|
@ -69,6 +70,9 @@ Verbose output mode. Mutually exclusive with (\fB\(hys\fR).
|
|||
.BR \(hys ", " --silent ", " --quiet
|
||||
Silent output mode. Mutually exclusive with (\fB\(hyv\fR).
|
||||
.TP
|
||||
.BR \(hyh ", " --hexadecimal
|
||||
Display hash values as hexadecimal.
|
||||
.TP
|
||||
.BI \(hyc " cfgfile\fR, " --cfgfile " cfgfile"
|
||||
Use the specified configuration file.
|
||||
.TP
|
||||
|
@ -92,6 +96,7 @@ lbw(1.2i) lb.
|
|||
-m d --print-dbfile
|
||||
-v --verbose
|
||||
-s --silent\fR,\fP --quiet
|
||||
-h --hexadecimal
|
||||
-c \fIcfgfile\fP --cfgfile \fIcfgfile\fP
|
||||
-d \fIdatabase\fP --dbfile \fIdatabase\fP
|
||||
-L \fIlocalkey\fP --local-keyfile \fIlocalkey\fP
|
||||
|
@ -108,6 +113,9 @@ Verbose output mode. Mutually exclusive with (\fB\(hys\fR).
|
|||
.BR \(hys ", " --silent ", " --quiet
|
||||
Silent output mode. Mutually exclusive with (\fB\(hyv\fR).
|
||||
.TP
|
||||
.BR \(hyh ", " --hexadecimal
|
||||
Display hash values as hexadecimal.
|
||||
.TP
|
||||
.BI \(hyc " cfgfile\fR, " --cfgfile " cfgfile"
|
||||
Use the specified configuration file.
|
||||
.TP
|
||||
|
|
|
@ -97,6 +97,7 @@ iFCOProp::CmpResult iSignature::Compare(const iFCOProp* rhs, Op op) const
|
|||
return (op == iFCOProp::OP_NE) ? iFCOProp::CMP_TRUE : iFCOProp::CMP_FALSE;
|
||||
}
|
||||
|
||||
bool cArchiveSigGen::mHex = false;
|
||||
|
||||
void cArchiveSigGen::AddSig( iSignature* pSig )
|
||||
{
|
||||
|
@ -129,6 +130,16 @@ void cArchiveSigGen::CalculateSignatures( cArchive& a )
|
|||
mSigList[i]->Finit();
|
||||
}
|
||||
|
||||
bool cArchiveSigGen::Hex()
|
||||
{
|
||||
return mHex;
|
||||
}
|
||||
|
||||
void cArchiveSigGen::SetHex(bool hex)
|
||||
{
|
||||
mHex = hex;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// btob64 -- convert arbitrary bits to base 64 string
|
||||
//
|
||||
|
@ -399,6 +410,9 @@ void cCRC32Signature::Finit()
|
|||
// mCRC
|
||||
TSTRING cCRC32Signature::AsString() const
|
||||
{
|
||||
if (cArchiveSigGen::Hex())
|
||||
return AsStringHex();
|
||||
|
||||
TSTRING ret;
|
||||
char *ps_signature;
|
||||
char buf[100];
|
||||
|
@ -505,6 +519,9 @@ void cMD5Signature::Finit()
|
|||
// AsString -- Converts to Base64 representation and returns a TSTRING
|
||||
TSTRING cMD5Signature::AsString() const
|
||||
{
|
||||
if (cArchiveSigGen::Hex())
|
||||
return AsStringHex();
|
||||
|
||||
TSTRING ret;
|
||||
char buf[24];
|
||||
int length;
|
||||
|
@ -626,6 +643,9 @@ void cSHASignature::Finit()
|
|||
#ifdef HAVE_OPENSSL_SHA_H
|
||||
TSTRING cSHASignature::AsString(void) const
|
||||
{
|
||||
if (cArchiveSigGen::Hex())
|
||||
return AsStringHex();
|
||||
|
||||
TSTRING ret;
|
||||
char* ps_signature;
|
||||
char buf[100];
|
||||
|
@ -704,6 +724,9 @@ bool cSHASignature::IsEqual(const iSignature& rhs) const
|
|||
|
||||
TSTRING cSHASignature::AsString(void) const
|
||||
{
|
||||
if (cArchiveSigGen::Hex())
|
||||
return AsStringHex();
|
||||
|
||||
TSTRING ret;
|
||||
char* ps_signature;
|
||||
char buf[100];
|
||||
|
@ -812,6 +835,9 @@ void cHAVALSignature::Finit()
|
|||
// AsString -- Returns Base64 representation of mSignature in a TSTRING
|
||||
TSTRING cHAVALSignature::AsString() const
|
||||
{
|
||||
if (cArchiveSigGen::Hex())
|
||||
return AsStringHex();
|
||||
|
||||
TSTRING ret;
|
||||
char buf[24];
|
||||
int length;
|
||||
|
|
|
@ -75,6 +75,8 @@
|
|||
// TODO: figure out a way to do this without including these headers.
|
||||
// pool of objects?
|
||||
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// class iSignatrue -- Interface all signatures will implement.
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -145,6 +147,9 @@ public:
|
|||
// produces signature of archive for all signatures in the list
|
||||
// remember to rewind archive!
|
||||
|
||||
static bool Hex();
|
||||
static void SetHex(bool);
|
||||
|
||||
private:
|
||||
// don't let C++ create these functions
|
||||
cArchiveSigGen( const cArchiveSigGen& );
|
||||
|
@ -152,6 +157,8 @@ private:
|
|||
|
||||
typedef std::vector< iSignature* > container_type;
|
||||
container_type mSigList;
|
||||
|
||||
static bool mHex;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -89,6 +89,7 @@ TSS_BeginStringtable( cTripwire )
|
|||
_T(" -m c --check\n")
|
||||
_T(" -I --interactive\n")
|
||||
_T(" -v --verbose\n")
|
||||
_T(" -h --hexadecimal\n")
|
||||
_T(" -s --silent, --quiet\n")
|
||||
_T(" -c cfgfile --cfgfile cfgfile\n")
|
||||
_T(" -p polfile --polfile polfile\n")
|
||||
|
|
|
@ -66,6 +66,7 @@
|
|||
#include <set>
|
||||
#include "fco/parsergenreutil.h" // this is needed to figure out if a path is fully qualified for the current genre.
|
||||
#include "tw/fcodatabasefile.h"
|
||||
#include "fco/signature.h"
|
||||
#include "fco/genreswitcher.h"
|
||||
#include "generatedb.h"
|
||||
#include "integritycheck.h"
|
||||
|
@ -826,7 +827,8 @@ void cTWModeIC::InitCmdLineParser(cCmdLineParser& cmdLine)
|
|||
cmdLine.AddArg(cTWCmdLine::RULE_NAME, TSTRING(_T("R")), TSTRING(_T("rule-name")), cCmdLineParser::PARAM_ONE);
|
||||
cmdLine.AddArg(cTWCmdLine::GENRE_NAME, TSTRING(_T("x")), TSTRING(_T("section")), cCmdLineParser::PARAM_ONE);
|
||||
cmdLine.AddArg(cTWCmdLine::PARAMS, TSTRING(_T("")), TSTRING(_T("")), cCmdLineParser::PARAM_MANY);
|
||||
|
||||
cmdLine.AddArg(cTWCmdLine::HEXADECIMAL, TSTRING(_T("h")), TSTRING(_T("hexadecimal")), cCmdLineParser::PARAM_NONE);
|
||||
|
||||
// multiple levels of reporting
|
||||
cmdLine.AddArg(cTWCmdLine::REPORTLEVEL, TSTRING(_T("t")), TSTRING(_T("email-report-level")), cCmdLineParser::PARAM_ONE);
|
||||
|
||||
|
@ -835,6 +837,8 @@ void cTWModeIC::InitCmdLineParser(cCmdLineParser& cmdLine)
|
|||
cmdLine.AddArg(cTWCmdLine::USE_GMMS, TSTRING(_T("g")), TSTRING(_T("gmms")), cCmdLineParser::PARAM_NONE);
|
||||
cmdLine.AddArg(cTWCmdLine::GMMS_VERBOSITY, TSTRING(_T("b")), TSTRING(_T("gmms-verbosity")), cCmdLineParser::PARAM_ONE);
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
// mutual exclusion...
|
||||
// you can't specify any of these 3 things together...
|
||||
|
@ -964,6 +968,10 @@ bool cTWModeIC::Init(const cConfigFile& cf, const cCmdLineParser& cmdLine)
|
|||
ASSERT(iter.NumParams() > 0);
|
||||
mpData->mGenreName = iter.ParamAt(0);
|
||||
break;
|
||||
case cTWCmdLine::HEXADECIMAL:
|
||||
cArchiveSigGen::SetHex(true);
|
||||
break;
|
||||
|
||||
case cTWCmdLine::PARAMS:
|
||||
{
|
||||
// pack all of these onto the files to check list...
|
||||
|
|
|
@ -137,7 +137,8 @@ public:
|
|||
SITE_PASSPHRASE,
|
||||
TEST_EMAIL,
|
||||
REPORTLEVEL,
|
||||
|
||||
HEXADECIMAL,
|
||||
|
||||
#ifdef GMMS
|
||||
USE_GMMS,
|
||||
GMMS_VERBOSITY,
|
||||
|
|
|
@ -66,6 +66,8 @@
|
|||
#include "fco/twfactory.h"
|
||||
#include "fco/fcospeclist.h" // cFCOSpecList
|
||||
#include "fco/fcopropdisplayer.h"
|
||||
#include "fco/signature.h"
|
||||
|
||||
#include <set>
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -118,6 +120,9 @@ static void InitCmdLineCommon(cCmdLineParser& parser)
|
|||
|
||||
// unattended operation
|
||||
parser.AddArg(cTWPrintCmdLine::PASSPHRASE, TSTRING(_T("P")), TSTRING(_T("passphrase")), cCmdLineParser::PARAM_ONE);
|
||||
|
||||
|
||||
parser.AddArg(cTWPrintCmdLine::HEXADECIMAL, TSTRING(_T("h")), TSTRING(_T("hexadecimal")), cCmdLineParser::PARAM_NONE);
|
||||
|
||||
// the paramters to the command line ... for now, this will take "many", even though in some
|
||||
// modes, this is not valid to do...
|
||||
|
@ -276,6 +281,9 @@ static void FillOutCmdLineInfo(cTWPrintModeCommon* pModeInfo, const cCmdLinePars
|
|||
ASSERT(iter.NumParams() > 0); // should be caught by cmd line parser
|
||||
pModeInfo->mSiteKeyFile = iter.ParamAt(0);
|
||||
break;
|
||||
case cTWPrintCmdLine::HEXADECIMAL:
|
||||
cArchiveSigGen::SetHex(true);
|
||||
break;
|
||||
case cTWPrintCmdLine::PASSPHRASE:
|
||||
{
|
||||
// this bites! I have to make sure it is a narrow char string
|
||||
|
|
|
@ -89,6 +89,7 @@ public:
|
|||
|
||||
PASSPHRASE,
|
||||
REPORTLEVEL,
|
||||
HEXADECIMAL,
|
||||
|
||||
PARAMS, // the final parameters
|
||||
|
||||
|
|
|
@ -56,6 +56,7 @@ TSS_BeginStringtable( cTWPrint )
|
|||
_T("Print Database mode:\n")
|
||||
_T(" -m d --print-dbfile\n")
|
||||
_T(" -v --verbose\n")
|
||||
_T(" -h --hexadecimal\n")
|
||||
_T(" -s --silent, --quiet\n")
|
||||
_T(" -c cfgfile --cfgfile cfgfile\n")
|
||||
_T(" -d database --dbfile database\n")
|
||||
|
@ -70,6 +71,7 @@ TSS_BeginStringtable( cTWPrint )
|
|||
_T("Print Report mode:\n")
|
||||
_T(" -m r --print-report\n")
|
||||
_T(" -v --verbose\n")
|
||||
_T(" -h --hexadecimal\n")
|
||||
_T(" -s --silent, --quiet\n")
|
||||
_T(" -c cfgfile --cfgfile cfgfile\n")
|
||||
_T(" -r report --twrfile report\n")
|
||||
|
|
Loading…
Reference in New Issue