/*
* @file SignatureValidator.h
* @author Bartlomiej Grzelewski (b.grzelewski@samsung.com)
- * @version 1.0
+ * @version 1.1
* @brief Implementatin of tizen signature validation protocol.
*/
#ifndef _VALIDATION_CORE_SIGNATUREVALIDATOR_H_
#define _VALIDATION_CORE_SIGNATUREVALIDATOR_H_
-#ifndef LOG_TAG
-#undef LOG_TAG
-#define LOG_TAG "OSP"
-#endif
-
#include <string>
-
+#include <list>
#include <vcore/SignatureData.h>
+#include <vcore/SignatureFinder.h>
namespace ValidationCore {
class SignatureValidator {
public:
- class ImplSignatureValidator;
-
- enum AppType
- {
- TIZEN,
- WAC20
- };
-
enum Result
{
SIGNATURE_VALID,
SIGNATURE_INVALID,
SIGNATURE_VERIFIED,
- SIGNATURE_DISREGARD, // no ocsp response or ocsp return unknown status
- SIGNATURE_REVOKED,
- SIGNATURE_INVALID_CERT_CHAIN, //5, from here, new error enum
- SIGNATURE_INVALID_DISTRIBUTOR_CERT,
- SIGNATURE_INVALID_SDK_DEFAULT_AUTHOR_CERT,
- SIGNATURE_IN_DISTRIBUTOR_CASE_AUTHOR_CERT,
- SIGNATURE_INVALID_CERT_TIME,
- SIGNATURE_NO_DEVICE_PROFILE,
- SIGNATURE_INVALID_DEVICE_UNIQUE_ID,
- SIGNATURE_INVALID_NO_HASH_FILE,
- SIGNATURE_INVALID_HASH_SIGNATURE
+ SIGNATURE_DISREGARD,
+ SIGNATURE_REVOKED
};
SignatureValidator() = delete;
SignatureValidator(const SignatureValidator &) = delete;
const SignatureValidator &operator=(const SignatureValidator &) = delete;
- explicit SignatureValidator(
- AppType appType,
- bool ocspEnable,
- bool crlEnable,
- bool complianceMode);
-
virtual ~SignatureValidator();
- Result check(
- SignatureData &data,
- const std::string &widgetContentPath);
-
- Result checkList(
- SignatureData &data,
+ static Result check(
+ const SignatureFileInfo &fileInfo,
const std::string &widgetContentPath,
- const std::list<std::string>& uriList);
+ bool checkOcsp,
+ bool checkReferences,
+ SignatureData &outData);
-private:
- ImplSignatureValidator *m_impl;
+ static Result checkList(
+ const SignatureFileInfo &fileInfo,
+ const std::string &widgetContentPath,
+ const std::list<std::string> &uriList,
+ bool checkOcsp,
+ bool checkReferences,
+ SignatureData &outData);
};
} // namespace ValidationCore
-#endif // _VALIDATION_CORE_TIZENSIGNATUREVALIDATOR_H_
-
+#endif // _VALIDATION_CORE_SIGNATUREVALIDATOR_H_