Move pkcs{7,8}_test over to gtest
BUG=129
Change-Id: I1fef45d662743e7210f93e4dc1bae0c55f75d3fe
Reviewed-on: https://boringssl-review.googlesource.com/16864
Reviewed-by: David Benjamin <davidben@google.com>
Commit-Queue: David Benjamin <davidben@google.com>
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
diff --git a/crypto/CMakeLists.txt b/crypto/CMakeLists.txt
index 28b6c3a..c772d13 100644
--- a/crypto/CMakeLists.txt
+++ b/crypto/CMakeLists.txt
@@ -253,6 +253,8 @@
hkdf/hkdf_test.cc
hmac_extra/hmac_test.cc
lhash/lhash_test.cc
+ pkcs7/pkcs7_test.cc
+ pkcs8/pkcs8_test.cc
poly1305/poly1305_test.cc
pool/pool_test.cc
refcount_test.cc
diff --git a/crypto/pkcs7/CMakeLists.txt b/crypto/pkcs7/CMakeLists.txt
index 8137a6f..65c6566 100644
--- a/crypto/pkcs7/CMakeLists.txt
+++ b/crypto/pkcs7/CMakeLists.txt
@@ -8,14 +8,3 @@
pkcs7.c
pkcs7_x509.c
)
-
-add_executable(
- pkcs7_test
-
- pkcs7_test.c
-
- $<TARGET_OBJECTS:test_support>
-)
-
-target_link_libraries(pkcs7_test crypto)
-add_dependencies(all_tests pkcs7_test)
diff --git a/crypto/pkcs7/pkcs7_test.c b/crypto/pkcs7/pkcs7_test.cc
similarity index 87%
rename from crypto/pkcs7/pkcs7_test.c
rename to crypto/pkcs7/pkcs7_test.cc
index 486fdc8..544dffc 100644
--- a/crypto/pkcs7/pkcs7_test.c
+++ b/crypto/pkcs7/pkcs7_test.cc
@@ -12,9 +12,7 @@
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
+#include <gtest/gtest.h>
#include <openssl/bytestring.h>
#include <openssl/crypto.h>
@@ -24,6 +22,7 @@
#include <openssl/x509.h>
#include "../internal.h"
+#include "../test/test_util.h"
/* kPKCS7NSS contains the certificate chain of mail.google.com, as saved by NSS
@@ -470,188 +469,115 @@
"fNQMQoI9So4Vdy88Kow6BBBV3Lu6sZHue+cjxXETrmshNdNk8ABUMQA=\n"
"-----END PKCS7-----\n";
-static int test_cert_reparse(const uint8_t *der_bytes, size_t der_len) {
- CBS pkcs7;
- CBB cbb;
- STACK_OF(X509) *certs = sk_X509_new_null();
- STACK_OF(X509) *certs2 = sk_X509_new_null();
+static void TestCertRepase(const uint8_t *der_bytes, size_t der_len) {
+ bssl::UniquePtr<STACK_OF(X509)> certs(sk_X509_new_null());
+ ASSERT_TRUE(certs);
+ bssl::UniquePtr<STACK_OF(X509)> certs2(sk_X509_new_null());
+ ASSERT_TRUE(certs2);
uint8_t *result_data, *result2_data;
- size_t result_len, result2_len, i;
+ size_t result_len, result2_len;
+ CBS pkcs7;
CBS_init(&pkcs7, der_bytes, der_len);
- if (!PKCS7_get_certificates(certs, &pkcs7)) {
- fprintf(stderr, "PKCS7_get_certificates failed.\n");
- return 0;
- }
+ ASSERT_TRUE(PKCS7_get_certificates(certs.get(), &pkcs7));
- CBB_init(&cbb, der_len);
- if (!PKCS7_bundle_certificates(&cbb, certs) ||
- !CBB_finish(&cbb, &result_data, &result_len)) {
- fprintf(stderr, "PKCS7_bundle_certificates failed.\n");
- return 0;
- }
+ bssl::ScopedCBB cbb;
+ ASSERT_TRUE(CBB_init(cbb.get(), der_len));
+ ASSERT_TRUE(PKCS7_bundle_certificates(cbb.get(), certs.get()));
+ ASSERT_TRUE(CBB_finish(cbb.get(), &result_data, &result_len));
+ bssl::UniquePtr<uint8_t> free_result_data(result_data);
CBS_init(&pkcs7, result_data, result_len);
- if (!PKCS7_get_certificates(certs2, &pkcs7)) {
- fprintf(stderr, "PKCS7_get_certificates reparse failed.\n");
- return 0;
+ ASSERT_TRUE(PKCS7_get_certificates(certs2.get(), &pkcs7));
+
+ ASSERT_EQ(sk_X509_num(certs.get()), sk_X509_num(certs2.get()));
+
+ for (size_t i = 0; i < sk_X509_num(certs.get()); i++) {
+ X509 *a = sk_X509_value(certs.get(), i);
+ X509 *b = sk_X509_value(certs2.get(), i);
+ ASSERT_EQ(0, X509_cmp(a, b));
}
- if (sk_X509_num(certs) != sk_X509_num(certs2)) {
- fprintf(stderr, "Number of certs in results differ.\n");
- return 0;
- }
+ ASSERT_TRUE(CBB_init(cbb.get(), der_len));
+ ASSERT_TRUE(PKCS7_bundle_certificates(cbb.get(), certs2.get()));
+ ASSERT_TRUE(CBB_finish(cbb.get(), &result2_data, &result2_len));
+ bssl::UniquePtr<uint8_t> free_result2_data(result2_data);
- for (i = 0; i < sk_X509_num(certs); i++) {
- X509 *a = sk_X509_value(certs, i);
- X509 *b = sk_X509_value(certs2, i);
-
- if (X509_cmp(a, b) != 0) {
- fprintf(stderr, "Certificate %zu differs.\n", i);
- return 0;
- }
- }
-
- CBB_init(&cbb, der_len);
- if (!PKCS7_bundle_certificates(&cbb, certs2) ||
- !CBB_finish(&cbb, &result2_data, &result2_len)) {
- fprintf(stderr,
- "PKCS7_bundle_certificates failed the second time.\n");
- return 0;
- }
-
- if (result_len != result2_len ||
- OPENSSL_memcmp(result_data, result2_data, result_len) != 0) {
- fprintf(stderr, "Serialisation is not stable.\n");
- return 0;
- }
-
- OPENSSL_free(result_data);
- OPENSSL_free(result2_data);
- sk_X509_pop_free(certs, X509_free);
- sk_X509_pop_free(certs2, X509_free);
-
- return 1;
+ EXPECT_EQ(Bytes(result_data, result_len), Bytes(result2_data, result2_len));
}
-static int test_crl_reparse(const uint8_t *der_bytes, size_t der_len) {
- CBS pkcs7;
- CBB cbb;
- STACK_OF(X509_CRL) *crls = sk_X509_CRL_new_null();
- STACK_OF(X509_CRL) *crls2 = sk_X509_CRL_new_null();
+static void TestCRLReparse(const uint8_t *der_bytes, size_t der_len) {
+ bssl::UniquePtr<STACK_OF(X509_CRL)> crls(sk_X509_CRL_new_null());
+ ASSERT_TRUE(crls);
+ bssl::UniquePtr<STACK_OF(X509_CRL)> crls2(sk_X509_CRL_new_null());
+ ASSERT_TRUE(crls2);
uint8_t *result_data, *result2_data;
- size_t result_len, result2_len, i;
+ size_t result_len, result2_len;
+ CBS pkcs7;
CBS_init(&pkcs7, der_bytes, der_len);
- if (!PKCS7_get_CRLs(crls, &pkcs7)) {
- fprintf(stderr, "PKCS7_get_CRLs failed.\n");
- return 0;
- }
+ ASSERT_TRUE(PKCS7_get_CRLs(crls.get(), &pkcs7));
- CBB_init(&cbb, der_len);
- if (!PKCS7_bundle_CRLs(&cbb, crls) ||
- !CBB_finish(&cbb, &result_data, &result_len)) {
- fprintf(stderr, "PKCS7_bundle_CRLs failed.\n");
- return 0;
- }
+ bssl::ScopedCBB cbb;
+ ASSERT_TRUE(CBB_init(cbb.get(), der_len));
+ ASSERT_TRUE(PKCS7_bundle_CRLs(cbb.get(), crls.get()));
+ ASSERT_TRUE(CBB_finish(cbb.get(), &result_data, &result_len));
+ bssl::UniquePtr<uint8_t> free_result_data(result_data);
CBS_init(&pkcs7, result_data, result_len);
- if (!PKCS7_get_CRLs(crls2, &pkcs7)) {
- fprintf(stderr, "PKCS7_get_CRLs reparse failed.\n");
- return 0;
+ ASSERT_TRUE(PKCS7_get_CRLs(crls2.get(), &pkcs7));
+
+ ASSERT_EQ(sk_X509_CRL_num(crls.get()), sk_X509_CRL_num(crls.get()));
+
+ for (size_t i = 0; i < sk_X509_CRL_num(crls.get()); i++) {
+ X509_CRL *a = sk_X509_CRL_value(crls.get(), i);
+ X509_CRL *b = sk_X509_CRL_value(crls2.get(), i);
+ ASSERT_EQ(0, X509_CRL_cmp(a, b));
}
- if (sk_X509_CRL_num(crls) != sk_X509_CRL_num(crls)) {
- fprintf(stderr, "Number of CRLs in results differ.\n");
- return 0;
- }
+ ASSERT_TRUE(CBB_init(cbb.get(), der_len));
+ ASSERT_TRUE(PKCS7_bundle_CRLs(cbb.get(), crls2.get()));
+ ASSERT_TRUE(CBB_finish(cbb.get(), &result2_data, &result2_len));
+ bssl::UniquePtr<uint8_t> free_result2_data(result2_data);
- for (i = 0; i < sk_X509_CRL_num(crls); i++) {
- X509_CRL *a = sk_X509_CRL_value(crls, i);
- X509_CRL *b = sk_X509_CRL_value(crls2, i);
-
- if (X509_CRL_cmp(a, b) != 0) {
- fprintf(stderr, "CRL %zu differs.\n", i);
- return 0;
- }
- }
-
- CBB_init(&cbb, der_len);
- if (!PKCS7_bundle_CRLs(&cbb, crls2) ||
- !CBB_finish(&cbb, &result2_data, &result2_len)) {
- fprintf(stderr,
- "PKCS7_bundle_CRLs failed the second time.\n");
- return 0;
- }
-
- if (result_len != result2_len ||
- OPENSSL_memcmp(result_data, result2_data, result_len) != 0) {
- fprintf(stderr, "Serialisation is not stable.\n");
- return 0;
- }
-
- OPENSSL_free(result_data);
- OPENSSL_free(result2_data);
- sk_X509_CRL_pop_free(crls, X509_CRL_free);
- sk_X509_CRL_pop_free(crls2, X509_CRL_free);
-
- return 1;
+ EXPECT_EQ(Bytes(result_data, result_len), Bytes(result2_data, result2_len));
}
-static int test_pem_certs(const char *pem) {
- BIO *bio = BIO_new_mem_buf(pem, strlen(pem));
- STACK_OF(X509) *certs = sk_X509_new_null();
+static void TestPEMCerts(const char *pem) {
+ bssl::UniquePtr<BIO> bio(BIO_new_mem_buf(pem, strlen(pem)));
+ ASSERT_TRUE(bio);
+ bssl::UniquePtr<STACK_OF(X509)> certs(sk_X509_new_null());
+ ASSERT_TRUE(certs);
- if (!PKCS7_get_PEM_certificates(certs, bio)) {
- fprintf(stderr, "PKCS7_get_PEM_certificates failed.\n");
- return 0;
- }
-
- if (sk_X509_num(certs) != 1) {
- fprintf(stderr,
- "Bad number of certificates from PKCS7_get_PEM_certificates: %zu\n",
- sk_X509_num(certs));
- return 0;
- }
-
- BIO_free(bio);
- sk_X509_pop_free(certs, X509_free);
-
- return 1;
+ ASSERT_TRUE(PKCS7_get_PEM_certificates(certs.get(), bio.get()));
+ ASSERT_EQ(1u, sk_X509_num(certs.get()));
}
-static int test_pem_crls(const char *pem) {
- BIO *bio = BIO_new_mem_buf(pem, strlen(pem));
- STACK_OF(X509_CRL) *crls = sk_X509_CRL_new_null();
+static void TestPEMCRLs(const char *pem) {
+ bssl::UniquePtr<BIO> bio(BIO_new_mem_buf(pem, strlen(pem)));
+ ASSERT_TRUE(bio);
+ bssl::UniquePtr<STACK_OF(X509_CRL)> crls(sk_X509_CRL_new_null());
- if (!PKCS7_get_PEM_CRLs(crls, bio)) {
- fprintf(stderr, "PKCS7_get_PEM_CRLs failed.\n");
- return 0;
- }
-
- if (sk_X509_CRL_num(crls) != 1) {
- fprintf(stderr, "Bad number of CRLs from PKCS7_get_PEM_CRLs: %zu\n",
- sk_X509_CRL_num(crls));
- return 0;
- }
-
- BIO_free(bio);
- sk_X509_CRL_pop_free(crls, X509_CRL_free);
-
- return 1;
+ ASSERT_TRUE(PKCS7_get_PEM_CRLs(crls.get(), bio.get()));
+ ASSERT_EQ(1u, sk_X509_CRL_num(crls.get()));
}
-int main(void) {
- CRYPTO_library_init();
+TEST(PKCS7Test, CertReparseNSS) {
+ TestCertRepase(kPKCS7NSS, sizeof(kPKCS7NSS));
+}
- if (!test_cert_reparse(kPKCS7NSS, sizeof(kPKCS7NSS)) ||
- !test_cert_reparse(kPKCS7Windows, sizeof(kPKCS7Windows)) ||
- !test_crl_reparse(kOpenSSLCRL, sizeof(kOpenSSLCRL)) ||
- !test_pem_certs(kPEMCert) ||
- !test_pem_crls(kPEMCRL)) {
- return 1;
- }
+TEST(PKCS7Test, CertReparseWindows) {
+ TestCertRepase(kPKCS7Windows, sizeof(kPKCS7Windows));
+}
- printf("PASS\n");
- return 0;
+TEST(PKCS7Test, CrlReparse) {
+ TestCRLReparse(kOpenSSLCRL, sizeof(kOpenSSLCRL));
+}
+
+TEST(PKCS7Test, PEMCerts) {
+ TestPEMCerts(kPEMCert);
+}
+
+TEST(PKCS7Test, PEMCRLs) {
+ TestPEMCRLs(kPEMCRL);
}
diff --git a/crypto/pkcs8/CMakeLists.txt b/crypto/pkcs8/CMakeLists.txt
index 0bdccec..758f4d4 100644
--- a/crypto/pkcs8/CMakeLists.txt
+++ b/crypto/pkcs8/CMakeLists.txt
@@ -18,12 +18,5 @@
$<TARGET_OBJECTS:test_support>
)
-add_executable(
- pkcs8_test
-
- pkcs8_test.cc
-)
-
-target_link_libraries(pkcs8_test crypto)
target_link_libraries(pkcs12_test crypto)
-add_dependencies(all_tests pkcs8_test pkcs12_test)
+add_dependencies(all_tests pkcs12_test)
diff --git a/crypto/pkcs8/pkcs8_test.cc b/crypto/pkcs8/pkcs8_test.cc
index 94385ac..020c9d9 100644
--- a/crypto/pkcs8/pkcs8_test.cc
+++ b/crypto/pkcs8/pkcs8_test.cc
@@ -12,9 +12,7 @@
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
+#include <gtest/gtest.h>
#include <openssl/crypto.h>
#include <openssl/err.h>
@@ -168,27 +166,19 @@
0x68, 0xf9, 0x5e, 0x01, 0x66, 0x59, 0x5f, 0x3f, 0x05, 0x57, 0xcd,
};
-static bool TestDecrypt(const uint8_t *der, size_t der_len,
+static void TestDecrypt(const uint8_t *der, size_t der_len,
const char *password) {
const uint8_t *data = der;
bssl::UniquePtr<X509_SIG> sig(d2i_X509_SIG(NULL, &data, der_len));
- if (sig.get() == NULL || data != der + der_len) {
- fprintf(stderr, "d2i_X509_SIG failed or did not consume all bytes.\n");
- return false;
- }
+ ASSERT_TRUE(sig.get());
+ ASSERT_EQ(der + der_len, data);
bssl::UniquePtr<PKCS8_PRIV_KEY_INFO> keypair(
PKCS8_decrypt(sig.get(), password, -1));
- if (!keypair) {
- fprintf(stderr, "PKCS8_decrypt failed.\n");
- ERR_print_errors_fp(stderr);
- return false;
- }
-
- return true;
+ ASSERT_TRUE(keypair);
}
-static bool TestRoundTrip(int pbe_nid, const EVP_CIPHER *cipher,
+static void TestRoundTrip(int pbe_nid, const EVP_CIPHER *cipher,
const char *password, const uint8_t *salt,
size_t salt_len, int iterations) {
static const uint8_t kSampleKey[] = {
@@ -209,76 +199,82 @@
const uint8_t *ptr = kSampleKey;
bssl::UniquePtr<PKCS8_PRIV_KEY_INFO> key(
d2i_PKCS8_PRIV_KEY_INFO(nullptr, &ptr, sizeof(kSampleKey)));
- if (!key || ptr != kSampleKey + sizeof(kSampleKey)) {
- return false;
- }
+ ASSERT_TRUE(key);
+ ASSERT_EQ(kSampleKey + sizeof(kSampleKey), ptr);
bssl::UniquePtr<X509_SIG> encrypted(PKCS8_encrypt(
pbe_nid, cipher, password, -1, salt, salt_len, iterations, key.get()));
- if (!encrypted) {
- fprintf(stderr, "Failed to encrypt private key.\n");
- return false;
- }
+ ASSERT_TRUE(encrypted);
bssl::UniquePtr<PKCS8_PRIV_KEY_INFO> key2(
PKCS8_decrypt(encrypted.get(), password, -1));
- if (!key2) {
- fprintf(stderr, "Failed to decrypt private key.\n");
- return false;
- }
+ ASSERT_TRUE(key2);
uint8_t *encoded = nullptr;
int len = i2d_PKCS8_PRIV_KEY_INFO(key2.get(), &encoded);
bssl::UniquePtr<uint8_t> free_encoded(encoded);
- if (len < 0 ||
- static_cast<size_t>(len) != sizeof(kSampleKey) ||
- OPENSSL_memcmp(encoded, kSampleKey, sizeof(kSampleKey)) != 0) {
- fprintf(stderr, "Decrypted private key did not round-trip.");
- return false;
- }
-
- return true;
+ ASSERT_GE(len, 0);
+ ASSERT_EQ(static_cast<size_t>(len), sizeof(kSampleKey));
+ ASSERT_EQ(0, OPENSSL_memcmp(encoded, kSampleKey, sizeof(kSampleKey)));
}
-int main(int argc, char **argv) {
- CRYPTO_library_init();
+TEST(PKCS8Test, DecryptString) {
+ TestDecrypt(kDER, sizeof(kDER), "testing");
+}
- if (!TestDecrypt(kDER, sizeof(kDER), "testing") ||
- !TestDecrypt(kNullPassword, sizeof(kNullPassword), NULL) ||
- !TestDecrypt(kNullPasswordNSS, sizeof(kNullPasswordNSS), NULL) ||
- !TestDecrypt(kEmptyPasswordOpenSSL, sizeof(kEmptyPasswordOpenSSL), "") ||
- !TestDecrypt(kExplicitHMACWithSHA1, sizeof(kExplicitHMACWithSHA1),
- "foo") ||
- !TestRoundTrip(NID_pbe_WithSHA1And3_Key_TripleDES_CBC, nullptr,
- "password", nullptr, 0, 10) ||
- // Vary the salt
- !TestRoundTrip(NID_pbe_WithSHA1And3_Key_TripleDES_CBC, nullptr,
- "password", nullptr, 4, 10) ||
- !TestRoundTrip(NID_pbe_WithSHA1And3_Key_TripleDES_CBC, nullptr,
- "password", (const uint8_t *)"salt", 4, 10) ||
- // Vary the iteration count.
- !TestRoundTrip(NID_pbe_WithSHA1And3_Key_TripleDES_CBC, nullptr,
- "password", nullptr, 0, 1) ||
- // Vary the password.
- !TestRoundTrip(NID_pbe_WithSHA1And3_Key_TripleDES_CBC, nullptr, "",
- nullptr, 0, 1) ||
- !TestRoundTrip(NID_pbe_WithSHA1And3_Key_TripleDES_CBC, nullptr, nullptr,
- nullptr, 0, 1) ||
- // Vary the PBE suite.
- !TestRoundTrip(NID_pbe_WithSHA1And40BitRC2_CBC, nullptr, "password",
- nullptr, 0, 10) ||
- !TestRoundTrip(NID_pbe_WithSHA1And128BitRC4, nullptr, "password", nullptr,
- 0, 10) ||
- // Test PBES2.
- !TestRoundTrip(-1, EVP_aes_128_cbc(), "password", nullptr, 0, 10) ||
- !TestRoundTrip(-1, EVP_aes_128_cbc(), "password", nullptr, 4, 10) ||
- !TestRoundTrip(-1, EVP_aes_128_cbc(), "password", (const uint8_t *)"salt",
- 4, 10) ||
- !TestRoundTrip(-1, EVP_aes_128_cbc(), "password", nullptr, 0, 1) ||
- !TestRoundTrip(-1, EVP_rc2_cbc(), "password", nullptr, 0, 10)) {
- return 1;
- }
+TEST(PKCS8Test, DecryptNull) {
+ TestDecrypt(kNullPassword, sizeof(kNullPassword), NULL);
+}
- printf("PASS\n");
- return 0;
+TEST(PKCS8Test, DecryptNullNSS) {
+ TestDecrypt(kNullPasswordNSS, sizeof(kNullPasswordNSS), NULL);
+}
+
+TEST(PKCS8Test, DecryptEmptyStringOpenSSL) {
+ TestDecrypt(kEmptyPasswordOpenSSL, sizeof(kEmptyPasswordOpenSSL), "");
+}
+
+TEST(PKCS8Test, DecryptExplicitHMACWithSHA1) {
+ TestDecrypt(kExplicitHMACWithSHA1, sizeof(kExplicitHMACWithSHA1), "foo");
+}
+
+TEST(PKCS8Test, RoundTripPBEWithrSHA1And3KeyTripleDES) {
+ // Test with different salts.
+ TestRoundTrip(NID_pbe_WithSHA1And3_Key_TripleDES_CBC, nullptr,
+ "password", nullptr, 0, 10);
+ TestRoundTrip(NID_pbe_WithSHA1And3_Key_TripleDES_CBC, nullptr,
+ "password", nullptr, 4, 10);
+ TestRoundTrip(NID_pbe_WithSHA1And3_Key_TripleDES_CBC, nullptr,
+ "password", (const uint8_t *)"salt", 4, 10);
+ // Test with a different iteration count.
+ TestRoundTrip(NID_pbe_WithSHA1And3_Key_TripleDES_CBC, nullptr,
+ "password", nullptr, 0, 1);
+}
+
+// Test that both "" (empty password, encoded as "\0\0") and nullptr (no
+// password, encoded as "") work.
+TEST(PKCS8Test, RoundTripPBEWithSHA1And3KeyTripleDESEmptyPassword) {
+ TestRoundTrip(NID_pbe_WithSHA1And3_Key_TripleDES_CBC, nullptr, "",
+ nullptr, 0, 1);
+ TestRoundTrip(NID_pbe_WithSHA1And3_Key_TripleDES_CBC, nullptr, nullptr,
+ nullptr, 0, 1);
+}
+
+TEST(PKCS8Test, RoundTripPBEWithSHA1And40BitRC2CBC) {
+ TestRoundTrip(NID_pbe_WithSHA1And40BitRC2_CBC, nullptr, "password",
+ nullptr, 0, 10);
+}
+
+TEST(PKCS8Test, RoundTripPBEWithSHA1And128BitRC4) {
+ TestRoundTrip(NID_pbe_WithSHA1And128BitRC4, nullptr, "password",
+ nullptr, 0, 10);
+}
+
+TEST(PKCS8Test, RoundTripPBES2) {
+ TestRoundTrip(-1, EVP_aes_128_cbc(), "password", nullptr, 0, 10);
+ TestRoundTrip(-1, EVP_aes_128_cbc(), "password", nullptr, 4, 10);
+ TestRoundTrip(-1, EVP_aes_128_cbc(), "password", (const uint8_t *)"salt",
+ 4, 10);
+ TestRoundTrip(-1, EVP_aes_128_cbc(), "password", nullptr, 0, 1);
+ TestRoundTrip(-1, EVP_rc2_cbc(), "password", nullptr, 0, 10);
}
diff --git a/util/all_tests.json b/util/all_tests.json
index e209cf9..a47a719 100644
--- a/util/all_tests.json
+++ b/util/all_tests.json
@@ -8,9 +8,7 @@
["crypto/fipsmodule/example_mul"],
["crypto/fipsmodule/p256-x86_64_test", "crypto/fipsmodule/ec/p256-x86_64_tests.txt"],
["crypto/obj/obj_test"],
- ["crypto/pkcs7/pkcs7_test"],
["crypto/pkcs8/pkcs12_test"],
- ["crypto/pkcs8/pkcs8_test"],
["crypto/thread_test"],
["crypto/x509v3/tab_test"],
["crypto/x509v3/v3name_test"],