<< "when the previous version of package has signature";
return Status::ERROR;
} else {
- if (old_author_certificate != cert->getBase64()) {
- LOG(ERROR) << "Author signature doesn't match the previous one. "
- << "Update must be aborted";
+ try {
+ if (old_author_certificate != cert->getBase64()) {
+ LOG(ERROR) << "Author signature doesn't match the previous one. "
+ << "Update must be aborted";
+ return Status::ERROR;
+ }
+ } catch (const ValidationCore::Certificate::Exception::Base &e) {
+ LOG(ERROR) << "Exception occured on cert-svc-vcore getBase64 "
+ << "Dump : " << e.DumpToString();
return Status::ERROR;
}
}
#include <boost/filesystem.hpp>
#include <pkgmgr_installer.h>
-#include <vcore/Base64.h>
#include <vcore/Certificate.h>
#include <cassert>
return Step::Status::OK;
}
-void StepUnregisterApplication::BackupCertInfo() {
+bool StepUnregisterApplication::BackupCertInfo() {
std::string base64 = QueryCertificateAuthorCertificate(context_->pkgid.get(),
context_->uid.get());
if (!base64.empty()) {
- ValidationCore::Base64Decoder decoder;
- decoder.append(base64);
- decoder.finalize();
CertificateInfo certificate_info;
- certificate_info.author_certificate.set(ValidationCore::CertificatePtr(
- new ValidationCore::Certificate(decoder.get())));
+ try {
+ certificate_info.author_certificate.set(ValidationCore::CertificatePtr(
+ new ValidationCore::Certificate(
+ base64,
+ ValidationCore::Certificate::FormType::FORM_BASE64)));
+ } catch (const ValidationCore::Certificate::Exception::Base &e) {
+ LOG(ERROR) << "Exception in cert-svc-vcore Certificate "
+ << "Dump : " << e.DumpToString();
+ return false;
+ }
context_->certificate_info.set(certificate_info);
}
+
+ return true;
}
Step::Status StepUnregisterApplication::process() {
// Prepare certificate info for rollback operations
- BackupCertInfo();
+ if (!BackupCertInfo()) {
+ LOG(ERROR) << "Failed to backup cert info";
+ return Status::ERROR;
+ }
if (!UnregisterAppInPkgmgr(context_->xml_path.get(), context_->pkgid.get(),
context_->uid.get())) {
Status precheck() override;
private:
- void BackupCertInfo();
+ bool BackupCertInfo();
SCOPE_LOG_TAG(Unregister)
};
#include <unistd.h>
#include <boost/filesystem.hpp>
-#include <vcore/Base64.h>
#include <vcore/Certificate.h>
#include <cassert>
Step::Status StepUpdateApplication::undo() {
// Prepare certification info for revert
- ValidationCore::Base64Decoder decoder;
- decoder.append(QueryCertificateAuthorCertificate(context_->pkgid.get(),
- context_->uid.get()));
- decoder.finalize();
+ std::string base64 = QueryCertificateAuthorCertificate(context_->pkgid.get(),
+ context_->uid.get());
CertificateInfo certificate_info;
- certificate_info.author_certificate.set(ValidationCore::CertificatePtr(
- new ValidationCore::Certificate(decoder.get())));
+ if (!base64.empty()) {
+ try {
+ certificate_info.author_certificate.set(ValidationCore::CertificatePtr(
+ new ValidationCore::Certificate(
+ base64,
+ ValidationCore::Certificate::FormType::FORM_BASE64)));
+ } catch (const ValidationCore::Certificate::Exception::Base &e) {
+ LOG(ERROR) << "Exception in cert-svc-vcore Certificate "
+ << "Dump : " << e.DumpToString();
+ return Status::ERROR;
+ }
+ }
if (!UpgradeAppInPkgmgr(context_->backup_xml_path.get(),
context_->pkgid.get(), certificate_info,