--- /dev/null
+-----BEGIN CERTIFICATE-----
+MIIEZDCCA0ygAwIBAgIBBTANBgkqhkiG9w0BAQsFADB9MRYwFAYDVQQKDA1kY3Bv
+bWF0aWMuY29tMRYwFAYDVQQLDA1kY3BvbWF0aWMuY29tMSQwIgYDVQQDDBsuZGNw
+b21hdGljLnNtcHRlLTQzMC0yLlJPT1QxJTAjBgNVBC4THEhDMnl3T1JNWFIwUWJa
+SHNUZjhkSjh1alpFVT0wHhcNMTgwMzA3MjM1NDE3WhcNMjgwMzA0MjM1NDE3WjB9
+MRYwFAYDVQQKDA1kY3BvbWF0aWMuY29tMRYwFAYDVQQLDA1kY3BvbWF0aWMuY29t
+MSQwIgYDVQQDDBsuZGNwb21hdGljLnNtcHRlLTQzMC0yLlJPT1QxJTAjBgNVBC4T
+HEhDMnl3T1JNWFIwUWJaSHNUZjhkSjh1alpFVT0wggEiMA0GCSqGSIb3DQEBAQUA
+A4IBDwAwggEKAoIBAQCSc753UrXKDb2yN/VDvAjw8uRwDImeRXDcwn7Qrr/nqjCI
+1LsYYbGkyztctv5l+gje3LHhPIRq3Xlblops3CbrCRu40CRI7WIjmPR0s4YtEo/F
+m1hugD7nHIVom1dlr4ooTCSawoDics70BbCPc40Daggq2neQERprReePSdjMaGFX
+xjSc7EUPWHM6gjQ2QSDduTN5XPDSlNovBIgjKX6v05AZ1XWIaFPGzEGZlC9zlUi5
+vqxvJrJ9SoR/zGv8NEG+2U0qp3tQd1ltziMFG0Tm7PcNPVRDUmji9wWYjDwjzZd4
+32lEimzDFN4dXXNzmMyHpmHmh4jMnlS6IegHjxBFAgMBAAGjge4wgeswEgYDVR0T
+AQH/BAgwBgEB/wIBAzALBgNVHQ8EBAMCAQYwHQYDVR0OBBYEFBwtssDkTF0dEG2R
+7E3/HSfLo2RFMIGoBgNVHSMEgaAwgZ2AFBwtssDkTF0dEG2R7E3/HSfLo2RFoYGB
+pH8wfTEWMBQGA1UECgwNZGNwb21hdGljLmNvbTEWMBQGA1UECwwNZGNwb21hdGlj
+LmNvbTEkMCIGA1UEAwwbLmRjcG9tYXRpYy5zbXB0ZS00MzAtMi5ST09UMSUwIwYD
+VQQuExxIQzJ5d09STVhSMFFiWkhzVGY4ZEo4dWpaRVU9ggEFMA0GCSqGSIb3DQEB
+CwUAA4IBAQA2qsgESICdM9yW78xK1EsZvNvbtjdm6ZVU/Z0zwTQgAXARe16N+IR6
+OwrvwXMLf/AJJQwT0AB8kUOvaDvUu6txXhZfz7qztntIvAfy/JzfaBXTg8CmTtmv
+P7OrUUXMqeq5fItESIFbCFK1rUmMX8p0t2wvEo9cUWiXs3ydGbMDDQVUVacvMWxf
+YN1PKFqvFv71t0k/Bkv5smRBe4ibOuzacUwJmOKpBVTc/khQEpDv0y64YnxFnGkW
+ac2OeRBg2hmRKFUKSQQeQFpWbu7fp/0Rl8RSgYnJC9oFPb8VWaFcJ91Lkcbjel3f
+yuuJ6es/KnE6slOIt4L7igIt6XlRQW4x
+-----END CERTIFICATE-----
--- /dev/null
+-----BEGIN CERTIFICATE-----
+MIIEZDCCA0ygAwIBAgIBBTANBgkqhkiG9w0BAQsFADB9MRYwFAYDVQQKEw1kY3Bv
+bWF0aWMuY29tMRYwFAYDVQQLEw1kY3BvbWF0aWMuY29tMSQwIgYDVQQDExsuZGNw
+b21hdGljLnNtcHRlLTQzMC0yLlJPT1QxJTAjBgNVBC4THFRnOE5meCt3WGowYTcr
+MVkvVEprNjdDTnFFZz0wHhcNMTgwMjI4MDAxNTIxWhcNMjgwMjI2MDAxNTIxWjB9
+MRYwFAYDVQQKEw1kY3BvbWF0aWMuY29tMRYwFAYDVQQLEw1kY3BvbWF0aWMuY29t
+MSQwIgYDVQQDExsuZGNwb21hdGljLnNtcHRlLTQzMC0yLlJPT1QxJTAjBgNVBC4T
+HFRnOE5meCt3WGowYTcrMVkvVEprNjdDTnFFZz0wggEiMA0GCSqGSIb3DQEBAQUA
+A4IBDwAwggEKAoIBAQDp9DFAfri2RM5a4j349GRyL+PBEGd3zmEug8FSrYGhssOJ
+OWBkAYcKYFW73COqwsVqsWK8uhzMjt0qQ6nDF15WMvrIYBtwFRu/s2nD90txq+9u
+XCghrTETVFxJCOLkI46OKAguN+KOVQIao+9UsVOxNCs4DMoi/foWOR2vbqvXhZre
+1LiSv4aVEYrT/uZ4L+kM90rRUGOrF3Sf9D8IpjDH9OiQRHXrop7PoK7tHYGHax49
+CtW6sbmFjGNcHAtu3fALDUPBeRM09BDklMzr9i68DTNvi797HxKdalSOAi42rG9p
+t0eKoFykrPyAVY8xpI6udehdT49ryXLqC9Vj7t9hAgMBAAGjge4wgeswEgYDVR0T
+AQH/BAgwBgEB/wIBAzALBgNVHQ8EBAMCAQYwHQYDVR0OBBYEFE4PDX8fsF49Gu/t
+WP0yZOuwjahIMIGoBgNVHSMEgaAwgZ2AFE4PDX8fsF49Gu/tWP0yZOuwjahIoYGB
+pH8wfTEWMBQGA1UEChMNZGNwb21hdGljLmNvbTEWMBQGA1UECxMNZGNwb21hdGlj
+LmNvbTEkMCIGA1UEAxMbLmRjcG9tYXRpYy5zbXB0ZS00MzAtMi5ST09UMSUwIwYD
+VQQuExxUZzhOZngrd1hqMGE3KzFZL1RKazY3Q05xRWc9ggEFMA0GCSqGSIb3DQEB
+CwUAA4IBAQAfB1XkuCfhxsPnALZT+7pR33jrq4O5dHVVcSWNF/MpGUqWCM/EFFUr
+nOIiML23fYAFheFfgZdWIFCWNmZV9YeTmovwZW5QeDihC8ibOubrNW+H/tCsCzkU
+MOoKerSxmRrJqLcItg2N05bEuwQM9ayFPUDMhR6ePpoi7YsjAuXPQIeuQsq4d2YL
+qeNvCtJCC07wjy0RD6H9iU+m0SGHIrnmjffvfTBTgmdgkfW0e1S6Jl6yDFPdDhJM
+MtlfR7Hv779sBcpv/kHtu1aRA/fLfpBOnKlh0stLUWr566+S4qgddHNqJ20RvTZw
+ACpSoPSRvbXHWJCffFV4Ui0ZPHVxFRSZ
+-----END CERTIFICATE-----
--- /dev/null
+/*
+ Copyright (C) 2018 Carl Hetherington <cth@carlh.net>
+
+ This file is part of libdcp.
+
+ libdcp is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ libdcp is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with libdcp. If not, see <http://www.gnu.org/licenses/>.
+
+ In addition, as a special exception, the copyright holders give
+ permission to link the code of portions of this program with the
+ OpenSSL library under certain conditions as described in each
+ individual source file, and distribute linked combinations
+ including the two.
+
+ You must obey the GNU General Public License in all respects
+ for all of the code used other than OpenSSL. If you modify
+ file(s) with this exception, you may extend this exception to your
+ version of the file(s), but you are not obligated to do so. If you
+ do not wish to do so, delete this exception statement from your
+ version. If you delete this exception statement from all source
+ files in the program, then also delete it here.
+*/
+
+#include "certificate.h"
+#include "util.h"
+#include <boost/test/unit_test.hpp>
+
+BOOST_AUTO_TEST_CASE (utf8_test)
+{
+ dcp::Certificate good (dcp::file_to_string ("test/data/good_cert.pem"));
+ BOOST_CHECK_EQUAL (good.has_utf8_strings(), false);
+ dcp::Certificate bad (dcp::file_to_string ("test/data/bad_cert.pem"));
+ BOOST_CHECK_EQUAL (bad.has_utf8_strings(), true);
+}