diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/encryption_test.cc | 9 | ||||
| -rw-r--r-- | test/kdm_key_test.cc | 49 | ||||
| -rw-r--r-- | test/round_trip_test.cc | 13 | ||||
| -rw-r--r-- | test/wscript | 1 |
4 files changed, 71 insertions, 1 deletions
diff --git a/test/encryption_test.cc b/test/encryption_test.cc index e2bf9698..c079acbe 100644 --- a/test/encryption_test.cc +++ b/test/encryption_test.cc @@ -66,7 +66,7 @@ BOOST_AUTO_TEST_CASE (encryption) shared_ptr<libdcp::Signer> signer ( new libdcp::Signer ( chain, - "test/data/signer.key" + "build/test/signer/leaf.key" ) ); @@ -111,4 +111,11 @@ BOOST_AUTO_TEST_CASE (encryption) kdm.as_xml ("build/test/bar.kdm.xml"); system ("xmllint --path schema --nonet --noout --schema schema/SMPTE-430-1-2006-Amd-1-2009-KDM.xsd build/test/bar.kdm.xml"); + system ("xmlsec1 verify " + "--pubkey-cert-pem build/test/signer/leaf.signed.pem " + "--trusted-pem build/test/signer/intermediate.signed.pem " + "--trusted-pem build/test/signer/ca.self-signed.pem " + "--id-attr:Id http://www.smpte-ra.org/schemas/430-3/2006/ETM:AuthenticatedPublic " + "--id-attr:Id http://www.smpte-ra.org/schemas/430-3/2006/ETM:AuthenticatedPrivate " + "build/test/bar.kdm.xml"); } diff --git a/test/kdm_key_test.cc b/test/kdm_key_test.cc new file mode 100644 index 00000000..05b85312 --- /dev/null +++ b/test/kdm_key_test.cc @@ -0,0 +1,49 @@ +/* + Copyright (C) 2013 Carl Hetherington <cth@carlh.net> + + This program 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. + + This program 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 this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#include <boost/test/unit_test.hpp> +#include "kdm.h" + +BOOST_AUTO_TEST_CASE (kdm_key_test) +{ + uint8_t foo[138]; + memset (foo, 0, 138); + libdcp::KDMKey kkey (foo, 138); + + uint8_t* raw = new uint8_t[16]; + uint8_t* p = raw; + kkey.put_uuid (&p, "5d51e8a1-b2a5-4da6-9b66-4615c3609440"); + BOOST_CHECK_EQUAL (raw[0], 0x5d); + BOOST_CHECK_EQUAL (raw[1], 0x51); + BOOST_CHECK_EQUAL (raw[2], 0xe8); + BOOST_CHECK_EQUAL (raw[3], 0xa1); + BOOST_CHECK_EQUAL (raw[4], 0xb2); + BOOST_CHECK_EQUAL (raw[5], 0xa5); + BOOST_CHECK_EQUAL (raw[6], 0x4d); + BOOST_CHECK_EQUAL (raw[7], 0xa6); + BOOST_CHECK_EQUAL (raw[8], 0x9b); + BOOST_CHECK_EQUAL (raw[9], 0x66); + BOOST_CHECK_EQUAL (raw[10], 0x46); + BOOST_CHECK_EQUAL (raw[11], 0x15); + BOOST_CHECK_EQUAL (raw[12], 0xc3); + BOOST_CHECK_EQUAL (raw[13], 0x60); + BOOST_CHECK_EQUAL (raw[14], 0x94); + BOOST_CHECK_EQUAL (raw[15], 0x40); + delete[] raw; +} diff --git a/test/round_trip_test.cc b/test/round_trip_test.cc index 2747a71f..fe720142 100644 --- a/test/round_trip_test.cc +++ b/test/round_trip_test.cc @@ -31,6 +31,7 @@ #include "argb_frame.h" #include "signer_chain.h" +using std::list; using boost::shared_ptr; /* Build an encrypted picture MXF and a KDM for it and check that the KDM can be decrypted */ @@ -86,6 +87,18 @@ BOOST_AUTO_TEST_CASE (round_trip_test) /* Reload the KDM, using our private key to decrypt it */ libdcp::KDM kdm_B (kdm_file, "build/test/signer/leaf.key"); + /* Check that the decrypted KDMKeys are the same as the ones we started with */ + BOOST_CHECK_EQUAL (kdm_A.keys().size(), kdm_B.keys().size()); + list<libdcp::KDMKey> keys_A = kdm_A.keys (); + list<libdcp::KDMKey> keys_B = kdm_B.keys (); + list<libdcp::KDMKey>::const_iterator i = keys_A.begin(); + list<libdcp::KDMKey>::const_iterator j = keys_B.begin(); + while (i != keys_A.end ()) { + BOOST_CHECK (*i == *j); + ++i; + ++j; + } + /* Reload the picture MXF */ shared_ptr<libdcp::MonoPictureAsset> asset_B ( new libdcp::MonoPictureAsset (work_dir, "video.mxf") diff --git a/test/wscript b/test/wscript index 1b2a1055..6b8b78d0 100644 --- a/test/wscript +++ b/test/wscript @@ -22,6 +22,7 @@ def build(bld): obj.use = 'libdcp' obj.source = """ test.cc + kdm_key_test.cc certificates_test.cc dcp_test.cc encryption_test.cc |
