13 #include <zypp/base/Logger.h> 16 #include <zypp/Digest.h> 21 #undef ZYPP_BASE_LOGGER_LOGGROUP 22 #define ZYPP_BASE_LOGGER_LOGGROUP "FileChecker" 39 MIL <<
"File " << file <<
" has no checksum available." << std::endl;
40 if ( report->askUserToAcceptNoDigest(file) )
42 MIL <<
"User accepted " << file <<
" with no checksum." << std::endl;
58 static std::map<std::string,std::string> exceptions;
59 static Date exceptionsAge;
61 if ( !exceptions.empty() && now-exceptionsAge > 12*
Date::hour )
64 WAR <<
"File " << file <<
" has wrong checksum " << real_checksum <<
" (expected " <<
_checksum <<
")" << endl;
67 WAR <<
"User accepted " << file <<
" with WRONG CHECKSUM. (remembered)" << std::endl;
72 WAR <<
"User accepted " << file <<
" with WRONG CHECKSUM." << std::endl;
87 MIL <<
"+ null check on " << file << endl;
94 for ( std::list<FileChecker>::const_iterator it =
_checkers.begin(); it !=
_checkers.end(); ++it )
103 ERR <<
"Invalid checker" << endl;
122 { getZYpp()->keyRing()->importKey( publickey_r,
false ); }
130 MIL <<
"Checking " << file_r <<
" file validity using digital signature.." << endl;
134 if ( not getZYpp()->keyRing()->verifyFileSignatureWorkflow(
self ) )
void operator()(const Pathname &file) const
#define ZYPP_THROW(EXCPT)
Drops a logline and throws the Exception.
Checks for the validity of a signature.
void addPublicKey(const PublicKey &publickey_r)
Add a public key to the list of known keys.
std::string checksum() const
void operator()(const Pathname &file_r) const
Call KeyRing::verifyFileSignatureWorkflow to verify the file.
String related utilities and Regular expression matching.
SignatureFileChecker()
Default Ctor for unsigned files.
std::ostream & operator<<(std::ostream &str, const SerialNumber &obj)
std::list< FileChecker > _checkers
std::string basename() const
Return the last component of this path.
void operator()(const Pathname &file) const
Try to validate the file.
Store and operate on date (time_t).
const Pathname & signature() const
Detached signature or empty.
void operator()(const Pathname &file) const
bool isExist() const
Return whether valid stat info exists.
void add(const FileChecker &checker)
const Pathname & file() const
File to verify.
SignatureCheckException ExceptionType
static const ValueType hour
Class representing one GPG Public Key (PublicKeyData + ASCII armored in a tempfile).
static Date now()
Return the current time.
std::string checksum(const Pathname &file, const std::string &algorithm)
Compute a files checksum.
Wrapper class for ::stat/::lstat.
function< void(const Pathname &file)> FileChecker
Functor signature used to check files.
Easy-to use interface to the ZYPP dependency resolver.
CheckSumCheckException ExceptionType
ChecksumFileChecker(const CheckSum &checksum)
Constructor.