/*
- Copyright (C) 2012 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2012-2019 Carl Hetherington <cth@carlh.net>
This file is part of libdcp.
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"
using std::list;
using std::string;
-using boost::shared_ptr;
+using std::shared_ptr;
/** Check that loading certificates from files via strings works */
BOOST_AUTO_TEST_CASE (certificates1)
BOOST_CHECK_NO_THROW (good.root_to_leaf());
}
+/** Check that we can create a valid chain */
+BOOST_AUTO_TEST_CASE (certificates_validation10)
+{
+ dcp::CertificateChain good (boost::filesystem::path ("openssl"));
+ BOOST_CHECK_NO_THROW (good.root_to_leaf());
+}
+
/** Check that dcp::Signer::valid() basically works */
BOOST_AUTO_TEST_CASE (signer_validation)
{
dcp::CertificateChain b (dcp::file_to_string ("test/ref/crypt/leaf.signed.pem"));
BOOST_CHECK_EQUAL (b.root_to_leaf().size(), 1);
}
+
+/** Check not_before and not_after */
+BOOST_AUTO_TEST_CASE (certificate_not_before_after)
+{
+ dcp::Certificate c (dcp::file_to_string("test/ref/crypt/ca.self-signed.pem"));
+ struct tm not_before = c.not_before();
+ BOOST_CHECK_EQUAL (not_before.tm_sec, 8);
+ BOOST_CHECK_EQUAL (not_before.tm_min, 20);
+ BOOST_CHECK_EQUAL (not_before.tm_hour, 13);
+ BOOST_CHECK_EQUAL (not_before.tm_mday, 5);
+ BOOST_CHECK_EQUAL (not_before.tm_mon, 5);
+ BOOST_CHECK_EQUAL (not_before.tm_year, 115);
+ struct tm not_after = c.not_after();
+ BOOST_CHECK_EQUAL (not_after.tm_sec, 8);
+ BOOST_CHECK_EQUAL (not_after.tm_min, 20);
+ BOOST_CHECK_EQUAL (not_after.tm_hour, 13);
+ BOOST_CHECK_EQUAL (not_after.tm_mday, 2);
+ BOOST_CHECK_EQUAL (not_after.tm_mon, 5);
+ BOOST_CHECK_EQUAL (not_after.tm_year, 125);
+}