Index: net/ssl/ssl_platform_key_util_unittest.cc |
diff --git a/net/ssl/ssl_platform_key_util_unittest.cc b/net/ssl/ssl_platform_key_util_unittest.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..c7e9130ce1694a2e7d2888c971a84756c885bcdb |
--- /dev/null |
+++ b/net/ssl/ssl_platform_key_util_unittest.cc |
@@ -0,0 +1,49 @@ |
+// Copyright 2016 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "net/ssl/ssl_platform_key_util.h" |
+ |
+#include <openssl/ecdsa.h> |
+#include <stddef.h> |
+ |
+#include "base/memory/ref_counted.h" |
+#include "net/cert/x509_certificate.h" |
+#include "net/ssl/ssl_private_key.h" |
+#include "net/test/cert_test_util.h" |
+#include "net/test/test_data_directory.h" |
+#include "testing/gtest/include/gtest/gtest.h" |
+ |
+namespace net { |
+ |
+namespace { |
+ |
+bool GetClientCertInfoFromFile(const char* filename, |
+ SSLPrivateKey::Type* out_type, |
+ size_t* out_max_length) { |
+ scoped_refptr<X509Certificate> cert = |
+ ImportCertFromFile(GetTestCertsDirectory(), filename); |
+ if (!cert) { |
+ ADD_FAILURE() << "Could not read " << filename; |
+ return false; |
+ } |
+ |
+ return GetClientCertInfo(cert.get(), out_type, out_max_length); |
+} |
+ |
+} // namespace |
+ |
+TEST(SSLPlatformKeyUtil, GetClientCertInfo) { |
+ SSLPrivateKey::Type type; |
+ size_t max_length; |
+ |
+ ASSERT_TRUE(GetClientCertInfoFromFile("client_1.pem", &type, &max_length)); |
+ EXPECT_EQ(SSLPrivateKey::Type::RSA, type); |
+ EXPECT_EQ(2048u / 8u, max_length); |
+ |
+ ASSERT_TRUE(GetClientCertInfoFromFile("client_4.pem", &type, &max_length)); |
+ EXPECT_EQ(SSLPrivateKey::Type::ECDSA_P256, type); |
+ EXPECT_EQ(ECDSA_SIG_max_len(256u / 8u), max_length); |
+} |
+ |
+} // namespace net |