Better error when loading a non-certificate as a certificate; the chain is OK but...
authorCarl Hetherington <cth@carlh.net>
Wed, 14 Mar 2018 23:26:17 +0000 (23:26 +0000)
committerCarl Hetherington <cth@carlh.net>
Wed, 14 Mar 2018 23:26:17 +0000 (23:26 +0000)
ChangeLog
src/wx/screen_dialog.cc

index 99a577390259002ff2e78dc1e121ed77db1efcf7..16edf7d3a04fe725e0e025113346a03aac02dd09 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
 2018-03-14  Carl Hetherington  <cth@carlh.net>
 
+       * Better error when loading a non-certificate as a certificate.
+
        * Very basic DCP verification option in the player.
 
 2018-03-07  Carl Hetherington  <cth@carlh.net>
index c7684d77fbad025a9ac845a0cb9bc0ddd1dd8c8e..8f00861858dad799a0aae6f180b858ff2661b5fa 100644 (file)
@@ -153,9 +153,13 @@ ScreenDialog::load_recipient (boost::filesystem::path file)
        try {
                /* Load this as a chain, in case it is one, and then pick the leaf certificate */
                dcp::CertificateChain c (dcp::file_to_string (file));
+               if (c.unordered().empty()) {
+                       error_dialog (this, _("Could not read certificate file."));
+                       return;
+               }
                set_recipient (c.leaf ());
        } catch (dcp::MiscError& e) {
-               error_dialog (this, wxString::Format (_("Could not read certificate file.")), std_to_wx(e.what()));
+               error_dialog (this, _("Could not read certificate file."), std_to_wx(e.what()));
        }
 }