summaryrefslogtreecommitdiff
path: root/tests/test_certificate.cpp
diff options
context:
space:
mode:
authorKyungwook Tak <k.tak@samsung.com>2017-01-13 20:06:41 +0900
committerkyungwook tak <k.tak@samsung.com>2017-02-02 22:39:16 -0800
commitb2a729fb76e3e6e2964e82e10ce8edc85e251a3e (patch)
tree657a75f17e8082c8941f53275011c5d20ba9f885 /tests/test_certificate.cpp
parentce59c45df52731ad63aea8c78a8bb9aff97b85b0 (diff)
downloadkey-manager-b2a729fb76e3e6e2964e82e10ce8edc85e251a3e.tar.gz
key-manager-b2a729fb76e3e6e2964e82e10ce8edc85e251a3e.tar.bz2
key-manager-b2a729fb76e3e6e2964e82e10ce8edc85e251a3e.zip
Add internal test cases
Change-Id: Ifd6b70245a8210f17097cd47d7739c8d19ab1819 Signed-off-by: Kyungwook Tak <k.tak@samsung.com> (cherry picked from commit 925c8d123fd9ece130ccf359446ad9e0e63906e3)
Diffstat (limited to 'tests/test_certificate.cpp')
-rw-r--r--tests/test_certificate.cpp131
1 files changed, 131 insertions, 0 deletions
diff --git a/tests/test_certificate.cpp b/tests/test_certificate.cpp
new file mode 100644
index 00000000..8c7695ad
--- /dev/null
+++ b/tests/test_certificate.cpp
@@ -0,0 +1,131 @@
+/*
+ * Copyright (c) 2000 - 2017 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+#include <certificate-impl.h>
+
+#include <boost/test/unit_test.hpp>
+
+namespace {
+const std::string CERT_PEM =
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIDnzCCAoegAwIBAgIJAMH/ADkC5YSTMA0GCSqGSIb3DQEBBQUAMGYxCzAJBgNV\n"
+ "BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMQ0wCwYDVQQKDARBQ01FMRAwDgYD\n"
+ "VQQLDAdUZXN0aW5nMSEwHwYDVQQDDBhUZXN0IHJvb3QgY2EgY2VydGlmaWNhdGUw\n"
+ "HhcNMTQxMjMwMTcyMTUyWhcNMjQxMjI3MTcyMTUyWjBmMQswCQYDVQQGEwJBVTET\n"
+ "MBEGA1UECAwKU29tZS1TdGF0ZTENMAsGA1UECgwEQUNNRTEQMA4GA1UECwwHVGVz\n"
+ "dGluZzEhMB8GA1UEAwwYVGVzdCByb290IGNhIGNlcnRpZmljYXRlMIIBIjANBgkq\n"
+ "hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0EJRdUtd2th0vTVF7QxvDKzyFCF3w9vC\n"
+ "9IDE/Yr12w+a9jd0s7/eG96qTHIYffS3B7x2MB+d4n+SR3W0qmYh7xk8qfEgH3da\n"
+ "eDoV59IZ9r543KM+g8jm6KffYGX1bIJVVY5OhBRbO9nY6byYpd5kbCIUB6dCf7/W\n"
+ "rQl1aIdLGFIegAzPGFPXDcU6F192686x54bxt/itMX4agHJ9ZC/rrTBIZghVsjJo\n"
+ "5/AH5WZpasv8sfrGiiohAxtieoYoJkv5MOYP4/2lPlOY+Cgw1Yoz+HHv31AllgFs\n"
+ "BquBb/kJVmCCNsAOcnvQzTZUsW/TXz9G2nwRdqI1nSy2JvVjZGsqGQIDAQABo1Aw\n"
+ "TjAdBgNVHQ4EFgQUt6pkzFt1PZlfYRL/HGnufF4frdwwHwYDVR0jBBgwFoAUt6pk\n"
+ "zFt1PZlfYRL/HGnufF4frdwwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOC\n"
+ "AQEAld7Qwq0cdzDQ51w1RVLwTR8Oy25PB3rzwEHcSGJmdqlMi3xOdaz80S1R1BBX\n"
+ "ldvGBG5Tn0vT7xSuhmSgI2/HnBpy9ocHVOmhtNB4473NieEpfTYrnGXrFxu46Wus\n"
+ "9m/ZnugcQ2G6C54A/NFtvgLmaC8uH8M7gKdS6uYUwJFQEofkjmd4UpOYSqmcRXhS\n"
+ "Jzd5FYFWkJhKJYp3nlENSOD8CUFFVGekm05nFN2gRVc/qaqQkEX77+XYvhodLRsV\n"
+ "qMn7nf7taidDKLO2T4bhujztnTYOhhaXKgPy7AtZ28N2wvX96VyAPB/vrchGmyBK\n"
+ "kOg11TpPdNDkhb1J4ZCh2gupDg==\n"
+ "-----END CERTIFICATE-----\n";
+
+const std::string CERT_BASE64 =
+ "MIIDnzCCAoegAwIBAgIJAMH/ADkC5YSTMA0GCSqGSIb3DQEBBQUAMGYxCzAJBgNV\n"
+ "BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMQ0wCwYDVQQKDARBQ01FMRAwDgYD\n"
+ "VQQLDAdUZXN0aW5nMSEwHwYDVQQDDBhUZXN0IHJvb3QgY2EgY2VydGlmaWNhdGUw\n"
+ "HhcNMTQxMjMwMTcyMTUyWhcNMjQxMjI3MTcyMTUyWjBmMQswCQYDVQQGEwJBVTET\n"
+ "MBEGA1UECAwKU29tZS1TdGF0ZTENMAsGA1UECgwEQUNNRTEQMA4GA1UECwwHVGVz\n"
+ "dGluZzEhMB8GA1UEAwwYVGVzdCByb290IGNhIGNlcnRpZmljYXRlMIIBIjANBgkq\n"
+ "hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0EJRdUtd2th0vTVF7QxvDKzyFCF3w9vC\n"
+ "9IDE/Yr12w+a9jd0s7/eG96qTHIYffS3B7x2MB+d4n+SR3W0qmYh7xk8qfEgH3da\n"
+ "eDoV59IZ9r543KM+g8jm6KffYGX1bIJVVY5OhBRbO9nY6byYpd5kbCIUB6dCf7/W\n"
+ "rQl1aIdLGFIegAzPGFPXDcU6F192686x54bxt/itMX4agHJ9ZC/rrTBIZghVsjJo\n"
+ "5/AH5WZpasv8sfrGiiohAxtieoYoJkv5MOYP4/2lPlOY+Cgw1Yoz+HHv31AllgFs\n"
+ "BquBb/kJVmCCNsAOcnvQzTZUsW/TXz9G2nwRdqI1nSy2JvVjZGsqGQIDAQABo1Aw\n"
+ "TjAdBgNVHQ4EFgQUt6pkzFt1PZlfYRL/HGnufF4frdwwHwYDVR0jBBgwFoAUt6pk\n"
+ "zFt1PZlfYRL/HGnufF4frdwwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOC\n"
+ "AQEAld7Qwq0cdzDQ51w1RVLwTR8Oy25PB3rzwEHcSGJmdqlMi3xOdaz80S1R1BBX\n"
+ "ldvGBG5Tn0vT7xSuhmSgI2/HnBpy9ocHVOmhtNB4473NieEpfTYrnGXrFxu46Wus\n"
+ "9m/ZnugcQ2G6C54A/NFtvgLmaC8uH8M7gKdS6uYUwJFQEofkjmd4UpOYSqmcRXhS\n"
+ "Jzd5FYFWkJhKJYp3nlENSOD8CUFFVGekm05nFN2gRVc/qaqQkEX77+XYvhodLRsV\n"
+ "qMn7nf7taidDKLO2T4bhujztnTYOhhaXKgPy7AtZ28N2wvX96VyAPB/vrchGmyBK\n"
+ "kOg11TpPdNDkhb1J4ZCh2gupDg==\n";
+
+const std::string CERT_PUBKEY_PEM =
+ "-----BEGIN PUBLIC KEY-----\n"
+ "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0EJRdUtd2th0vTVF7Qxv\n"
+ "DKzyFCF3w9vC9IDE/Yr12w+a9jd0s7/eG96qTHIYffS3B7x2MB+d4n+SR3W0qmYh\n"
+ "7xk8qfEgH3daeDoV59IZ9r543KM+g8jm6KffYGX1bIJVVY5OhBRbO9nY6byYpd5k\n"
+ "bCIUB6dCf7/WrQl1aIdLGFIegAzPGFPXDcU6F192686x54bxt/itMX4agHJ9ZC/r\n"
+ "rTBIZghVsjJo5/AH5WZpasv8sfrGiiohAxtieoYoJkv5MOYP4/2lPlOY+Cgw1Yoz\n"
+ "+HHv31AllgFsBquBb/kJVmCCNsAOcnvQzTZUsW/TXz9G2nwRdqI1nSy2JvVjZGsq\n"
+ "GQIDAQAB\n"
+ "-----END PUBLIC KEY-----\n";
+}
+
+using namespace CKM;
+
+BOOST_AUTO_TEST_SUITE(CERTIFICATE_TEST)
+
+BOOST_AUTO_TEST_CASE(constructors)
+{
+ RawBuffer certpem(CERT_PEM.begin(), CERT_PEM.end());
+ BOOST_REQUIRE_NO_THROW(CertificateImpl(certpem, DataFormat::FORM_PEM));
+
+ RawBuffer certbase64(CERT_BASE64.begin(), CERT_BASE64.end());
+ BOOST_REQUIRE_NO_THROW(CertificateImpl(certbase64, DataFormat::FORM_DER_BASE64));
+
+ RawBuffer dummy({0x0a, 0x0b, 0x0c, 0x0d});
+ BOOST_REQUIRE(!Certificate::create(dummy, DataFormat::FORM_PEM));
+}
+
+BOOST_AUTO_TEST_CASE(move_semantics)
+{
+ RawBuffer certbuf(CERT_PEM.begin(), CERT_PEM.end());
+
+ CertificateImpl cert1(certbuf, DataFormat::FORM_PEM);
+ CertificateImpl cert2(cert1.getX509(), true);
+ CertificateImpl moveAssigned(cert1.getX509(), true);
+
+ moveAssigned = std::move(cert2);
+ BOOST_REQUIRE(cert1.getDER() == moveAssigned.getDER());
+
+ CertificateImpl moveConstructed(std::move(moveAssigned));
+ BOOST_REQUIRE(cert1.getDER() == moveConstructed.getDER());
+}
+
+BOOST_AUTO_TEST_CASE(get_evp_sh_ptr)
+{
+ RawBuffer certbuf(CERT_PEM.begin(), CERT_PEM.end());
+ RawBuffer pubkeybuf(CERT_PUBKEY_PEM.begin(), CERT_PUBKEY_PEM.end());
+
+ CertificateImpl cert(certbuf, DataFormat::FORM_PEM);
+ KeyImpl pubkey(pubkeybuf);
+
+ KeyImpl pubkeyFromCert(cert.getEvpShPtr(), KeyType::KEY_RSA_PUBLIC);
+
+ BOOST_REQUIRE(pubkeyFromCert.getDER() == pubkey.getDER());
+}
+
+BOOST_AUTO_TEST_CASE(get_ocsp_url)
+{
+ RawBuffer certbuf(CERT_PEM.begin(), CERT_PEM.end());
+ CertificateImpl cert(certbuf, DataFormat::FORM_PEM);
+
+ BOOST_REQUIRE(cert.getOCSPURL().empty());
+}
+
+BOOST_AUTO_TEST_SUITE_END()