diff options
| author | Carl Hetherington <cth@carlh.net> | 2026-01-04 19:26:21 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2026-01-04 20:35:11 +0100 |
| commit | bad8a0e8c7b24f16d3651bea76e20b698cb2d643 (patch) | |
| tree | 9fed80ec4d6188566715f1856dbb3ab1d8eb0e98 /src/lib | |
| parent | 8e7a736467d6f8692c42c614430e37c416b58ac4 (diff) | |
Extract Barco certificate download code to lib/
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/download_certificate.cc | 23 | ||||
| -rw-r--r-- | src/lib/download_certificate.h | 1 |
2 files changed, 24 insertions, 0 deletions
diff --git a/src/lib/download_certificate.cc b/src/lib/download_certificate.cc index d9560f6a2..505fa095d 100644 --- a/src/lib/download_certificate.cc +++ b/src/lib/download_certificate.cc @@ -53,12 +53,35 @@ download_gdc_certificate(string const& serial) } +static +pair<dcp::Certificate, string> +download_barco_certificate(string const& serial) +{ + string const url = fmt::format( + "sftp://{}:{}@certificates.barco.com/{}xxx/{}/Barco-ICMP.{}_cert.pem", + Config::instance()->barco_username().get(), + Config::instance()->barco_password().get(), + serial.substr(0, 7), + serial, + serial + ); + + try { + return { dcp::Certificate(get_from_url(url, true, false).as_string()), url }; + } catch (dcp::MiscError& e) { + throw CertificateDownloadError(fmt::format(_("Could not read certificate file ({})"), e.what())); + } +} + + pair<dcp::Certificate, string> download_certificate(Manufacturer manufacturer, string const& serial) { switch (manufacturer) { case Manufacturer::GDC: return download_gdc_certificate(serial); + case Manufacturer::BARCO: + return download_barco_certificate(serial); } return {}; diff --git a/src/lib/download_certificate.h b/src/lib/download_certificate.h index 98998ab4f..988b62138 100644 --- a/src/lib/download_certificate.h +++ b/src/lib/download_certificate.h @@ -25,6 +25,7 @@ enum class Manufacturer { GDC, + BARCO, }; |
