mirror of
https://github.com/zeromq/libzmq.git
synced 2024-12-27 23:51:04 +08:00
Problem: no ZAP tests for NULL mechanism
Solution: added ZAP tests for NULL
This commit is contained in:
parent
f107b53768
commit
00816875b8
@ -197,7 +197,12 @@ int main (void)
|
|||||||
{
|
{
|
||||||
setup_test_environment ();
|
setup_test_environment ();
|
||||||
|
|
||||||
|
fprintf (stderr, "NULL mechanism\n");
|
||||||
|
test_zap_errors (&socket_config_null_server, NULL,
|
||||||
|
&socket_config_null_client, NULL);
|
||||||
|
|
||||||
if (zmq_has ("curve")) {
|
if (zmq_has ("curve")) {
|
||||||
|
fprintf (stderr, "CURVE mechanism\n");
|
||||||
setup_testutil_security_curve ();
|
setup_testutil_security_curve ();
|
||||||
|
|
||||||
curve_client_data_t curve_client_data = {
|
curve_client_data_t curve_client_data = {
|
||||||
|
@ -36,6 +36,19 @@
|
|||||||
|
|
||||||
typedef void(socket_config_fn) (void *, void *);
|
typedef void(socket_config_fn) (void *, void *);
|
||||||
|
|
||||||
|
const char *test_zap_domain = "ZAPTEST";
|
||||||
|
|
||||||
|
// NULL specific functions
|
||||||
|
void socket_config_null_client (void *server, void *server_secret)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void socket_config_null_server (void *server, void *server_secret)
|
||||||
|
{
|
||||||
|
int rc = zmq_setsockopt (server, ZMQ_ZAP_DOMAIN, test_zap_domain, 7);
|
||||||
|
assert (rc == 0);
|
||||||
|
}
|
||||||
|
|
||||||
// CURVE specific functions
|
// CURVE specific functions
|
||||||
|
|
||||||
// We'll generate random test keys at startup
|
// We'll generate random test keys at startup
|
||||||
@ -148,15 +161,34 @@ void zap_handler_generic (void *ctx,
|
|||||||
char *address = s_recv (handler);
|
char *address = s_recv (handler);
|
||||||
char *identity = s_recv (handler);
|
char *identity = s_recv (handler);
|
||||||
char *mechanism = s_recv (handler);
|
char *mechanism = s_recv (handler);
|
||||||
uint8_t client_key[32];
|
bool authentication_succeeded = false;
|
||||||
int size = zmq_recv (handler, client_key, 32, 0);
|
if (streq (mechanism, "CURVE")) {
|
||||||
assert (size == 32);
|
uint8_t client_key[32];
|
||||||
|
int size = zmq_recv (handler, client_key, 32, 0);
|
||||||
|
assert (size == 32);
|
||||||
|
|
||||||
char client_key_text[41];
|
char client_key_text[41];
|
||||||
zmq_z85_encode (client_key_text, client_key, 32);
|
zmq_z85_encode (client_key_text, client_key, 32);
|
||||||
|
|
||||||
|
authentication_succeeded =
|
||||||
|
streq (client_key_text, valid_client_public);
|
||||||
|
}
|
||||||
|
else if (streq(mechanism, "PLAIN"))
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
authentication_succeeded = true;
|
||||||
|
}
|
||||||
|
else if (streq(mechanism, "NULL"))
|
||||||
|
{
|
||||||
|
authentication_succeeded = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fprintf (stderr, "Unsupported mechanism: %s\n", mechanism);
|
||||||
|
assert (false);
|
||||||
|
}
|
||||||
|
|
||||||
assert (streq (version, "1.0"));
|
assert (streq (version, "1.0"));
|
||||||
assert (streq (mechanism, "CURVE"));
|
|
||||||
assert (streq (identity, expected_identity));
|
assert (streq (identity, expected_identity));
|
||||||
|
|
||||||
s_sendmore (handler, zap_protocol == zap_wrong_version
|
s_sendmore (handler, zap_protocol == zap_wrong_version
|
||||||
@ -166,7 +198,7 @@ void zap_handler_generic (void *ctx,
|
|||||||
? "invalid_request_id"
|
? "invalid_request_id"
|
||||||
: sequence);
|
: sequence);
|
||||||
|
|
||||||
if (streq (client_key_text, valid_client_public)) {
|
if (authentication_succeeded) {
|
||||||
const char *status_code;
|
const char *status_code;
|
||||||
switch (zap_protocol) {
|
switch (zap_protocol) {
|
||||||
case zap_status_internal_error:
|
case zap_status_internal_error:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user