# HG changeset patch # User Andre Heinecke # Date 1401208258 0 # Node ID ecfd77751daf0f126ee1392fd1c373381fe00f6d # Parent 21f8d32f2d2a5e8db25ecdf396c8f8ce4184fdd6 Disambiguate enumerator values and add portable wrapper. diff -r 21f8d32f2d2a -r ecfd77751daf common/binverify.c --- a/common/binverify.c Tue May 27 10:46:02 2014 +0000 +++ b/common/binverify.c Tue May 27 16:30:58 2014 +0000 @@ -11,6 +11,16 @@ #include "strhelp.h" #include "logging.h" +bin_verify_result +verify_binary(const char *filename, size_t name_len) { +#ifdef WIN32 + return verify_binary_win(filename, name_len); +#else + /* TODO */ + return VerifyValid; +#endif +} + #ifdef WIN32 #include @@ -20,7 +30,7 @@ bin_verify_result verify_binary_win(const char *filename, size_t name_len) { - bin_verify_result retval = UnknownError; + bin_verify_result retval = VerifyUnknownError; WCHAR *filenameW = NULL; BOOL result = FALSE; DWORD dwEncoding = 0, @@ -35,7 +45,7 @@ if (!filename || name_len > MAX_PATH || strlen(filename) != name_len) { ERRORPRINTF ("Invalid parameters\n"); - return UnknownError; + return VerifyUnknownError; } filenameW = utf8_to_wchar(filename, strnlen(filename, MAX_PATH)); @@ -55,7 +65,7 @@ if (!result || !hMsg) { PRINTLASTERROR ("Failed to query crypto object"); - retval = ReadFailed; + retval = VerifyReadFailed; goto done; } @@ -71,7 +81,7 @@ else { ERRORPRINTF ("Failed to get signer cert size."); - retval = UnknownError; + retval = VerifyUnknownError; goto done; } @@ -82,7 +92,7 @@ &dwSignerInfoSize))) { ERRORPRINTF ("Failed to get signer cert."); - retval = UnknownError; + retval = VerifyUnknownError; goto done; } @@ -94,7 +104,7 @@ if (!pSignerCertContext) { ERRORPRINTF ("Failed to find signer cert in store."); - retval = UnknownError; + retval = VerifyUnknownError; goto done; } @@ -106,10 +116,10 @@ { DEBUGPRINTF ("Verify signature succeeded. \n"); /* TODO pinning*/ - retval = Valid; + retval = VerifyValid; } else { ERRORPRINTF ("The signature was not verified. \n"); - retval = InvalidSignature; + retval = VerifyInvalidSignature; goto done; } diff -r 21f8d32f2d2a -r ecfd77751daf common/binverify.h --- a/common/binverify.h Tue May 27 10:46:02 2014 +0000 +++ b/common/binverify.h Tue May 27 16:30:58 2014 +0000 @@ -23,13 +23,12 @@ * @brief Result of a verification */ typedef enum { - Valid = 100, /*! Could be read and signature matched */ - UnknownError = 1, /*! The expected unexpected */ - InvalidSignature = 4, /*! Signature was invalid */ - ReadFailed = 6, /*! File exists but could not read the file */ + VerifyValid = 100, /*! Could be read and signature matched */ + VerifyUnknownError = 1, /*! The expected unexpected */ + VerifyInvalidSignature = 4, /*! Signature was invalid */ + VerifyReadFailed = 6, /*! File exists but could not read the file */ } bin_verify_result; -#ifdef WIN32 /** * @brief verify a binary * @@ -48,6 +47,12 @@ * * @returns the verification result. */ +bin_verify_result verify_binary(const char *filename, size_t name_len); + +#ifdef WIN32 +/** + * @brief windows implementation of verify_binary + */ bin_verify_result verify_binary_win(const char *filename, size_t name_len); #endif /* WIN32 */