9 #include <gmock/gmock.h> 10 #include <gtest/gtest.h> 21 using namespace folly;
30 "14303132333435363738396162636465666768696a000a000d0006000404030804"};
32 "0b000004000000000f00000d040300097369676e617475726514000020b523548c421b05f7f3c33276fbdd5266ba2df103796d7d483368259860a648f2"};
35 "308201ee30820195a003020102020900c569eec901ce86d9300a06082a8648ce3d0403023054310b3009060355040613025553310b300906035504080c024e59310b300906035504070c024e59310d300b060355040a0c0446697a7a310d300b060355040b0c0446697a7a310d300b06035504030c0446697a7a301e170d3137303430343138323930395a170d3431313132343138323930395a3054310b3009060355040613025553310b300906035504080c024e59310b300906035504070c024e59310d300b060355040a0c0446697a7a310d300b060355040b0c0446697a7a310d300b06035504030c0446697a7a3059301306072a8648ce3d020106082a8648ce3d030107034200049d87bcaddb65d8dcf6df8b148a9679b5b710db19c95a9badfff13468cb358b4e21d24a5c826112658ebb96d64e2985dfb41c1948334391a4aa81b67837e2dbf0a350304e301d0603551d0e041604143c5b8ba954d9752faf3c8ad6d1a62449dccaa850301f0603551d230418301680143c5b8ba954d9752faf3c8ad6d1a62449dccaa850300c0603551d13040530030101ff300a06082a8648ce3d04030203470030440220349b7d34d7132fb2756576e0bfa36cbe1723337a7a6f5ef9c8d3bf1aa7efa4a5022025c50a91e0aa4272f1f52c3d5583a7d7cee14b178835273a0bd814303e62d714"};
37 "1400002011fae4bcdf4673b6dfb276d886c4cd1c5b0920da961643f062d1d4a6062115b1"};
39 TEST(ExportedAuthenticatorTest, TestAuthenticatorRequest) {
43 EXPECT_EQ(cr.certificate_request_context->computeChainDataLength(), 20);
45 EXPECT_TRUE(getExtension<SignatureAlgorithms>(cr.extensions).hasValue());
46 auto encodedAuthRequest = ExportedAuthenticator::getAuthenticatorRequest(
49 expected_auth_request,
53 TEST(ExportedAuthenticatorTest, TestEmptyAuthenticatorRequest) {
55 ExportedAuthenticator::getAuthenticatorRequest(
56 nullptr, std::vector<fizz::Extension>()),
60 ExportedAuthenticator::getAuthenticatorRequest(
61 std::move(emptyContext), std::vector<fizz::Extension>()),
74 SignatureScheme::ecdsa_secp256r1_sha256);
83 schemes_.push_back(SignatureScheme::ecdsa_secp256r1_sha256);
95 auto mockCert = std::make_shared<MockSelfCert>();
97 return TestMessages::certificate();
100 .WillOnce(
Return(std::vector<SignatureScheme>(
101 1, SignatureScheme::ecdsa_secp256r1_sha256)));
102 EXPECT_CALL(*mockCert, sign(
_, CertificateVerifyContext::Authenticator,
_))
106 auto reencodedAuthenticator = ExportedAuthenticator::makeAuthenticator(
113 CertificateVerifyContext::Authenticator);
115 expected_authenticator,
120 auto mockCert = std::make_shared<MockSelfCert>();
122 .WillOnce(
Return(std::vector<SignatureScheme>(
123 1, SignatureScheme::ecdsa_secp256r1_sha256)));
125 auto reencodedAuthenticator = ExportedAuthenticator::makeAuthenticator(
132 CertificateVerifyContext::Authenticator);
134 expected_empty_authenticator,
138 TEST(ExportedAuthenticatorTest, TestGetContext) {
140 "0b00020f14303132333435363738396162636465666768696a0001f70001f2308201ee30820195a003020102020900c569eec901ce86d9300a06082a8648ce3d0403023054310b3009060355040613025553310b300906035504080c024e59310b300906035504070c024e59310d300b060355040a0c0446697a7a310d300b060355040b0c0446697a7a310d300b06035504030c0446697a7a301e170d3137303430343138323930395a170d3431313132343138323930395a3054310b3009060355040613025553310b300906035504080c024e59310b300906035504070c024e59310d300b060355040a0c0446697a7a310d300b060355040b0c0446697a7a310d300b06035504030c0446697a7a3059301306072a8648ce3d020106082a8648ce3d030107034200049d87bcaddb65d8dcf6df8b148a9679b5b710db19c95a9badfff13468cb358b4e21d24a5c826112658ebb96d64e2985dfb41c1948334391a4aa81b67837e2dbf0a350304e301d0603551d0e041604143c5b8ba954d9752faf3c8ad6d1a62449dccaa850301f0603551d230418301680143c5b8ba954d9752faf3c8ad6d1a62449dccaa850300c0603551d13040530030101ff300a06082a8648ce3d04030203470030440220349b7d34d7132fb2756576e0bfa36cbe1723337a7a6f5ef9c8d3bf1aa7efa4a5022025c50a91e0aa4272f1f52c3d5583a7d7cee14b178835273a0bd814303e62d71400000f00004a04030046304402204ee36706cefd7b5de1b87eef8a756b1f69365451cae050163e030d7cb7594fbc022040aaadc7770b0404c5deb6fd9d9a2161423fb993a0a5b9e38f2c0e0d9183a52d1400002001dd31f46369c46fe41712e83ae7c46d31fdae816024edbb3b58cc29e2234852"};
142 auto certRequestContext =
143 ExportedAuthenticator::getAuthenticatorContext(
std::move(buf));
155 schemes_.push_back(SignatureScheme::ecdsa_secp256r1_sha256);
157 "14303132333435363738396162636465666768696a0008000d000400020403"};
158 handshakeContext_ = {
"12345678901234567890123456789012"};
159 finishedKey_ = {
"12345678901234567890123456789012"};
173 std::vector<folly::ssl::X509UniquePtr> certs;
177 auto handshakeContext =
180 auto authenticator = ExportedAuthenticator::makeAuthenticator(
187 CertificateVerifyContext::Authenticator);
192 auto decodedCerts = ExportedAuthenticator::validate(
198 CertificateVerifyContext::Authenticator);
209 std::vector<folly::ssl::X509UniquePtr> certs;
214 auto handshakeContext =
217 auto authenticator = ExportedAuthenticator::makeAuthenticator(
224 CertificateVerifyContext::Authenticator);
229 auto decodedCerts = ExportedAuthenticator::validate(
235 CertificateVerifyContext::Authenticator);
bool unhexlify(const InputString &input, OutputString &output)
#define EXPECT_THROW(statement, expected_exception)
constexpr folly::StringPiece kP256Key
static std::unique_ptr< IOBuf > create(std::size_t capacity)
Buf encode< CertificateRequest >(CertificateRequest &&cr)
StringPiece expected_cr_context
#define EXPECT_EQ(val1, val2)
constexpr detail::Map< Move > move
std::vector< SignatureScheme > schemes_
EvpPkeyUniquePtr getPrivateKey(StringPiece key)
—— Concurrent Priority Queue Implementation ——
std::unique_ptr< KeyDerivation > deriver_
PolymorphicAction< internal::InvokeWithoutArgsAction< FunctionImpl > > InvokeWithoutArgs(FunctionImpl function_impl)
folly::ssl::X509UniquePtr getCert(folly::StringPiece cert)
Buf certificate_request_context
StringPiece handshakeContext_
StringPiece expected_cert
std::vector< Extension > extensions
std::vector< SignatureScheme > supported_signature_algorithms
TEST_F(AsyncSSLSocketWriteTest, write_coalescing1)
#define EXPECT_TRUE(condition)
StringPiece expected_authenticator
StringPiece expected_empty_authenticator
std::unique_ptr< folly::IOBuf > Buf
std::unique_ptr< KeyDerivation > deriver_
#define EXPECT_CALL(obj, call)
const internal::AnythingMatcher _
Extension encodeExtension(const TokenBindingParameters ¶ms)
Range< const char * > StringPiece
bool hexlify(const InputString &input, OutputString &output, bool append_output)
static std::unique_ptr< IOBuf > copyBuffer(const void *buf, std::size_t size, std::size_t headroom=0, std::size_t minTailroom=0)
std::vector< SignatureScheme > schemes_
virtual std::unique_ptr< KeyDerivation > makeKeyDeriver(CipherSuite cipher) const
TEST(SequencedExecutor, CPUThreadPoolExecutor)
StringPiece expected_auth_request
internal::ReturnAction< R > Return(R value)
constexpr folly::StringPiece kP256Certificate