+2016-08-25 c.hetherington <cth@carlh.net>
+
+ * Fix silent acceptance of certificate chains where
+ single certificates are required (#937).
+
2016-08-25 Carl Hetherington <cth@carlh.net>
* Updated nl_NL translation from Rob van Nieuwkerk.
ffmpeg_options = {}
return (('ffmpeg-cdist', '1d4a1a4', ffmpeg_options),
- ('libdcp', '04def4c'),
+ ('libdcp', 'ac6df08'),
('libsub', '067c21c'))
def configure_options(target):
if (d->ShowModal() == wxID_OK) {
try {
- dcp::Certificate c (dcp::file_to_string (wx_to_std (d->GetPath ())));
- if (c.extra_data ()) {
+ dcp::Certificate c;
+ string const extra = c.read_string (dcp::file_to_string (wx_to_std (d->GetPath ())));
+ if (!extra.empty ()) {
message_dialog (
this,
_("This file contains other certificates (or other data) after its first certificate. "
#include "lib/compose.hpp"
#include "lib/util.h"
#include <dcp/exceptions.h>
+#include <dcp/certificate_chain.h>
#include <wx/filepicker.h>
#include <wx/validate.h>
#include <iostream>
ScreenDialog::load_recipient (boost::filesystem::path file)
{
try {
- set_recipient (dcp::Certificate (dcp::file_to_string (file)));
+ /* Load this as a chain, in case it is one, and then pick the leaf certificate */
+ dcp::CertificateChain c (dcp::file_to_string (file));
+ set_recipient (c.leaf ());
} catch (dcp::MiscError& e) {
error_dialog (this, wxString::Format (_("Could not read certificate file (%s)"), std_to_wx(e.what()).data()));
}