Christie FTP contains certificate chains, not just leaf certificates.
[dcpomatic.git] / src / wx / christie_certificate_panel.cc
index 53d815bf7a3a0663158294c933fa8ac29d865eb2..43a9a2432dd14f0ec7af6af9edfa59dcc0b6dfec 100644 (file)
@@ -44,28 +44,26 @@ ChristieCertificatePanel::do_download ()
                return;
        }
 
-       string const serial = wx_to_std (_serial->GetValue());
-       string const url = String::compose (
-               "ftp://%1:%2@certificates.christiedigital.com/Certificates/F-IMB/F-IMB_000000%3_sha256.pem",
+       string const prefix = String::compose(
+               "ftp://%1:%2@certificates.christiedigital.com/Certificates/",
                Config::instance()->christie_username().get(),
-               Config::instance()->christie_password().get(),
-               serial
+               Config::instance()->christie_password().get()
                );
 
+       string serial = wx_to_std (_serial->GetValue());
+       serial.insert (0, 12 - serial.length(), '0');
+
+       string const url = String::compose ("%1F-IMB/F-IMB_%2_sha256.pem", prefix, serial);
+
        optional<string> all_errors;
 
-       optional<string> error = get_from_url (url, true, boost::bind (&DownloadCertificatePanel::load, this, _1));
+       optional<string> error = get_from_url (url, true, false, boost::bind(&DownloadCertificatePanel::load_certificate_from_chain, this, _1));
        if (error) {
                all_errors = *error;
 
-               string const url = String::compose (
-                       "ftp://%1:%2@certificates.christiedigital.com/Certificates/F-IMB/F-IMB_000000%3_sha256.pem",
-                       Config::instance()->christie_username().get(),
-                       Config::instance()->christie_password().get(),
-                       serial
-                       );
+               string const url = String::compose ("%1IMB-S2/IMB-S2_%2_sha256.pem", prefix, serial);
 
-               error = get_from_url (url, true, boost::bind (&DownloadCertificatePanel::load, this, _1));
+               error = get_from_url (url, true, false, boost::bind(&DownloadCertificatePanel::load_certificate_from_chain, this, _1));
                if (error) {
                        *all_errors += "\n" + *error;
                }