Test NULL client CA lists.
The preceding client CA bug is actually almost unreachable since the list is initialized to a non-NULL empty list. But if one tries hard enough, a NULL one is possible. Change-Id: I49e69511bf65b0178c4e0acdb887f8ba7d85faff Reviewed-on: https://boringssl-review.googlesource.com/8769 Reviewed-by: Adam Langley <agl@google.com> Commit-Queue: David Benjamin <davidben@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
This commit is contained in:
parent
111533049d
commit
2f8935de0f
@ -873,6 +873,10 @@ static ScopedSSL_CTX SetupCtx(const TestConfig *config) {
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (config->use_null_client_ca_list) {
|
||||||
|
SSL_CTX_set_client_CA_list(ssl_ctx.get(), nullptr);
|
||||||
|
}
|
||||||
|
|
||||||
return ssl_ctx;
|
return ssl_ctx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2681,6 +2681,21 @@ func addClientAuthTests() {
|
|||||||
shouldFail: true,
|
shouldFail: true,
|
||||||
expectedError: ":UNEXPECTED_MESSAGE:",
|
expectedError: ":UNEXPECTED_MESSAGE:",
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// Regression test for a bug where the client CA list, if explicitly
|
||||||
|
// set to NULL, was mis-encoded.
|
||||||
|
testCases = append(testCases, testCase{
|
||||||
|
testType: serverTest,
|
||||||
|
name: "Null-Client-CA-List",
|
||||||
|
config: Config{
|
||||||
|
MaxVersion: VersionTLS12,
|
||||||
|
Certificates: []Certificate{rsaCertificate},
|
||||||
|
},
|
||||||
|
flags: []string{
|
||||||
|
"-require-any-client-certificate",
|
||||||
|
"-use-null-client-ca-list",
|
||||||
|
},
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func addExtendedMasterSecretTests() {
|
func addExtendedMasterSecretTests() {
|
||||||
|
@ -102,6 +102,7 @@ const Flag<bool> kBoolFlags[] = {
|
|||||||
{ "-use-sparse-dh-prime", &TestConfig::use_sparse_dh_prime },
|
{ "-use-sparse-dh-prime", &TestConfig::use_sparse_dh_prime },
|
||||||
{ "-use-old-client-cert-callback",
|
{ "-use-old-client-cert-callback",
|
||||||
&TestConfig::use_old_client_cert_callback },
|
&TestConfig::use_old_client_cert_callback },
|
||||||
|
{ "-use-null-client-ca-list", &TestConfig::use_null_client_ca_list },
|
||||||
};
|
};
|
||||||
|
|
||||||
const Flag<std::string> kStringFlags[] = {
|
const Flag<std::string> kStringFlags[] = {
|
||||||
|
@ -107,6 +107,7 @@ struct TestConfig {
|
|||||||
int expect_dhe_group_size = 0;
|
int expect_dhe_group_size = 0;
|
||||||
bool use_old_client_cert_callback = false;
|
bool use_old_client_cert_callback = false;
|
||||||
int initial_timeout_duration_ms = 0;
|
int initial_timeout_duration_ms = 0;
|
||||||
|
bool use_null_client_ca_list = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
bool ParseConfig(int argc, char **argv, TestConfig *out_config);
|
bool ParseConfig(int argc, char **argv, TestConfig *out_config);
|
||||||
|
Loading…
Reference in New Issue
Block a user