22 #include <gmock/gmock.h>
23 #include <gtest/gtest.h>
62 << sync_status.
code() <<
" " << sync_status.
message();
73 "UNAUTHENTICATED: SyncExternalVerifier failed");
87 EXPECT_TRUE(async_status.ok())
88 << async_status.code() <<
" " << async_status.message();
89 gpr_event_set(&callback_completed_event, reinterpret_cast<void*>(1));
92 void* callback_completed =
109 [&callback_completed_event](
absl::Status async_status) {
110 gpr_log(GPR_INFO,
"Callback is invoked.");
111 EXPECT_EQ(async_status.code(), absl::StatusCode::kUnauthenticated);
112 EXPECT_EQ(async_status.ToString(),
113 "UNAUTHENTICATED: AsyncExternalVerifier failed");
114 gpr_event_set(&callback_completed_event, reinterpret_cast<void*>(1));
117 void* callback_completed =
129 << sync_status.
code() <<
" " << sync_status.
message();
138 "UNAUTHENTICATED: Target name is not specified.");
143 request_.target_name =
"[foo.com@443";
148 "UNAUTHENTICATED: Failed to split hostname and port.");
153 request_.target_name =
"foo.com:443";
154 char* dns_names[] = {
const_cast<char*
>(
"foo.com")};
155 request_.peer_info.san_names.dns_names = dns_names;
156 request_.peer_info.san_names.dns_names_size = 1;
160 << sync_status.
code() <<
" " << sync_status.
message();
164 HostnameVerifierDNSWildcardCheckSucceeds) {
166 request_.target_name =
"foo.bar.com:443";
167 char* dns_names[] = {
const_cast<char*
>(
"*.bar.com")};
168 request_.peer_info.san_names.dns_names = dns_names;
169 request_.peer_info.san_names.dns_names_size = 1;
173 << sync_status.
code() <<
" " << sync_status.
message();
177 HostnameVerifierDNSWildcardCaseInsensitiveCheckSucceeds) {
179 request_.target_name =
"fOo.bar.cOm:443";
180 char* dns_names[] = {
const_cast<char*
>(
"*.BaR.Com")};
181 request_.peer_info.san_names.dns_names = dns_names;
182 request_.peer_info.san_names.dns_names_size = 1;
186 << sync_status.
code() <<
" " << sync_status.
message();
190 HostnameVerifierDNSTopWildcardCheckFails) {
192 request_.target_name =
"foo.com:443";
193 char* dns_names[] = {
const_cast<char*
>(
"*.")};
194 request_.peer_info.san_names.dns_names = dns_names;
195 request_.peer_info.san_names.dns_names_size = 1;
200 "UNAUTHENTICATED: Hostname Verification Check failed.");
205 request_.target_name =
"foo.com:443";
206 char* dns_names[] = {
const_cast<char*
>(
"bar.com")};
207 request_.peer_info.san_names.dns_names = dns_names;
208 request_.peer_info.san_names.dns_names_size = 1;
213 "UNAUTHENTICATED: Hostname Verification Check failed.");
218 request_.target_name =
"192.168.0.1:443";
219 char* ip_names[] = {
const_cast<char*
>(
"192.168.0.1")};
220 request_.peer_info.san_names.ip_names = ip_names;
221 request_.peer_info.san_names.ip_names_size = 1;
225 << sync_status.
code() <<
" " << sync_status.
message();
230 request_.target_name =
"192.168.0.1:443";
231 char* ip_names[] = {
const_cast<char*
>(
"192.168.1.1")};
232 request_.peer_info.san_names.ip_names = ip_names;
233 request_.peer_info.san_names.ip_names_size = 1;
238 "UNAUTHENTICATED: Hostname Verification Check failed.");
242 HostnameVerifierCommonNameCheckSucceeds) {
244 request_.target_name =
"foo.com:443";
245 request_.peer_info.common_name =
"foo.com";
249 << sync_status.
code() <<
" " << sync_status.
message();
254 request_.target_name =
"foo.com:443";
255 request_.peer_info.common_name =
"bar.com";
260 "UNAUTHENTICATED: Hostname Verification Check failed.");
276 hostname_certificate_verifier_1.
Compare(&hostname_certificate_verifier_2),
279 hostname_certificate_verifier_2.
Compare(&hostname_certificate_verifier_1),
307 int main(
int argc,
char** argv) {