/* Any input is valid */
str_append(input, "Username:");
- test_assert(dsasl_client_input(client, input->data, input->used, &error) == 0);
- test_assert(dsasl_client_output(client, &output, &olen, &error) == 0);
+ test_assert(dsasl_client_input(client, input->data, input->used, &error) == DSASL_CLIENT_RESULT_OK);
+ test_assert(dsasl_client_output(client, &output, &olen, &error) == DSASL_CLIENT_RESULT_OK);
/* see what we got */
str_append_data(output_s, output, olen);
test_assert_strcmp(str_c(output_s), "testuser");
str_truncate(output_s, 0);
str_append(input, "Password:");
- test_assert(dsasl_client_input(client, input->data, input->used, &error) == 0);
- test_assert(dsasl_client_output(client, &output, &olen, &error) == 0);
+ test_assert(dsasl_client_input(client, input->data, input->used, &error) == DSASL_CLIENT_RESULT_OK);
+ test_assert(dsasl_client_output(client, &output, &olen, &error) == DSASL_CLIENT_RESULT_OK);
str_append_data(output_s, output, olen);
test_assert_strcmp(str_c(output_s), "testpassword");
/* server sends input after password */
client = dsasl_client_new(mech, &sasl_set);
i_assert(client != NULL);
- test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == 0);
- test_assert(dsasl_client_output(client, &output, &olen, &error) == 0);
- test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == 0);
- test_assert(dsasl_client_output(client, &output, &olen, &error) == 0);
- test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == -1);
+ test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == DSASL_CLIENT_RESULT_OK);
+ test_assert(dsasl_client_output(client, &output, &olen, &error) == DSASL_CLIENT_RESULT_OK);
+ test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == DSASL_CLIENT_RESULT_OK);
+ test_assert(dsasl_client_output(client, &output, &olen, &error) == DSASL_CLIENT_RESULT_OK);
+ test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == DSASL_CLIENT_RESULT_ERR_PROTOCOL);
test_assert_strcmp(error, "Server didn't finish authentication");
dsasl_client_free(&client);
client = dsasl_client_new(mech, &sasl_empty_set);
i_assert(client != NULL);
- test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == 0);
- test_assert(dsasl_client_output(client, &output, &olen, &error) == -1);
+ test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == DSASL_CLIENT_RESULT_OK);
+ test_assert(dsasl_client_output(client, &output, &olen, &error) == DSASL_CLIENT_RESULT_ERR_PROTOCOL);
test_assert_strcmp(error, "authid not set");
dsasl_client_free(&client);
client = dsasl_client_new(mech, &sasl_no_password_set);
i_assert(client != NULL);
- test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == 0);
- test_assert(dsasl_client_output(client, &output, &olen, &error) == -1);
+ test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == DSASL_CLIENT_RESULT_OK);
+ test_assert(dsasl_client_output(client, &output, &olen, &error) == DSASL_CLIENT_RESULT_ERR_PROTOCOL);
test_assert_strcmp(error, "password not set");
dsasl_client_free(&client);
str_truncate(input, 0);
str_append_data(input, "unexpected\0", 11);
- test_assert(dsasl_client_input(client, input->data, input->used, &error) == -1);
+ test_assert(dsasl_client_input(client, input->data, input->used, &error) == DSASL_CLIENT_RESULT_ERR_PROTOCOL);
test_assert_strcmp(error, "Unexpected NUL in input data");
dsasl_client_free(&client);
const unsigned char *output;
size_t olen;
- test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == 0);
- test_assert(dsasl_client_output(client, &output, &olen, &error) == 0);
+ test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == DSASL_CLIENT_RESULT_OK);
+ test_assert(dsasl_client_output(client, &output, &olen, &error) == DSASL_CLIENT_RESULT_OK);
const unsigned char expected[] = "\0testuser\0testpassword";
/* there is no NUL byte at the end */
test_assert(olen == sizeof(expected) - 1);
client = dsasl_client_new(mech, &sasl_master_set);
i_assert(client != NULL);
- test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == 0);
- test_assert(dsasl_client_output(client, &output, &olen, &error) == 0);
+ test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == DSASL_CLIENT_RESULT_OK);
+ test_assert(dsasl_client_output(client, &output, &olen, &error) == DSASL_CLIENT_RESULT_OK);
const unsigned char expected_master[] =
"testuser\0masteruser\0masterpassword";
/* there is no NUL byte at the end */
const unsigned char input[] = "ir";
client = dsasl_client_new(mech, &sasl_set);
i_assert(client != NULL);
- test_assert(dsasl_client_input(client, input, sizeof(input)-1, &error) == -1);
+ test_assert(dsasl_client_input(client, input, sizeof(input)-1, &error) == DSASL_CLIENT_RESULT_ERR_PROTOCOL);
test_assert_strcmp(error, "Server sent non-empty initial response");
dsasl_client_free(&client);
/* server sends input after response */
client = dsasl_client_new(mech, &sasl_set);
i_assert(client != NULL);
- test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == 0);
- test_assert(dsasl_client_output(client, &output, &olen, &error) == 0);
- test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == -1);
+ test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == DSASL_CLIENT_RESULT_OK);
+ test_assert(dsasl_client_output(client, &output, &olen, &error) == DSASL_CLIENT_RESULT_OK);
+ test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == DSASL_CLIENT_RESULT_ERR_PROTOCOL);
test_assert_strcmp(error, "Server didn't finish authentication");
dsasl_client_free(&client);
client = dsasl_client_new(mech, &sasl_empty_set);
i_assert(client != NULL);
- test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == 0);
- test_assert(dsasl_client_output(client, &output, &olen, &error) == -1);
+ test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == DSASL_CLIENT_RESULT_OK);
+ test_assert(dsasl_client_output(client, &output, &olen, &error) == DSASL_CLIENT_RESULT_ERR_PROTOCOL);
test_assert_strcmp(error, "authid not set");
dsasl_client_free(&client);
client = dsasl_client_new(mech, &sasl_no_password_set);
i_assert(client != NULL);
- test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == 0);
- test_assert(dsasl_client_output(client, &output, &olen, &error) == -1);
+ test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == DSASL_CLIENT_RESULT_OK);
+ test_assert(dsasl_client_output(client, &output, &olen, &error) == DSASL_CLIENT_RESULT_ERR_PROTOCOL);
test_assert_strcmp(error, "password not set");
dsasl_client_free(&client);
i_assert(client != NULL);
const unsigned char input2[] = "unexpected\0";
- test_assert(dsasl_client_input(client, input2, sizeof(input2), &error) == -1);
+ test_assert(dsasl_client_input(client, input2, sizeof(input2), &error) == DSASL_CLIENT_RESULT_ERR_PROTOCOL);
test_assert_strcmp(error, "Unexpected NUL in input data");
dsasl_client_free(&client);
const unsigned char *output;
size_t olen;
- test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == 0);
- test_assert(dsasl_client_output(client, &output, &olen, &error) == 0);
+ test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == DSASL_CLIENT_RESULT_OK);
+ test_assert(dsasl_client_output(client, &output, &olen, &error) == DSASL_CLIENT_RESULT_OK);
const unsigned char expected[] = "testuser";
/* there is no NUL byte at the end */
test_assert(olen == sizeof(expected) - 1);
client = dsasl_client_new(mech, &sasl_master_set);
i_assert(client != NULL);
- test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == 0);
- test_assert(dsasl_client_output(client, &output, &olen, &error) == 0);
+ test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == DSASL_CLIENT_RESULT_OK);
+ test_assert(dsasl_client_output(client, &output, &olen, &error) == DSASL_CLIENT_RESULT_OK);
const unsigned char expected_master[] = "testuser";
/* there is no NUL byte at the end */
test_assert(olen == sizeof(expected_master) - 1);
i_assert(client != NULL);
const unsigned char input2[] = "unexpected\0";
- test_assert(dsasl_client_input(client, input2, sizeof(input2), &error) == -1);
+ test_assert(dsasl_client_input(client, input2, sizeof(input2), &error) == DSASL_CLIENT_RESULT_ERR_PROTOCOL);
test_assert_strcmp(error, "Unexpected NUL in input data");
dsasl_client_free(&client);
const unsigned char *output;
size_t olen;
- test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == 0);
- test_assert(dsasl_client_output(client, &output, &olen, &error) == 0);
- test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == 0);
+ test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == DSASL_CLIENT_RESULT_OK);
+ test_assert(dsasl_client_output(client, &output, &olen, &error) == DSASL_CLIENT_RESULT_OK);
+ test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == DSASL_CLIENT_RESULT_OK);
const unsigned char expected[] = "n,a=testuser,\1"
"auth=Bearer testpassword\1\1";
test_assert(dsasl_client_set_parameter(client, "port", "143", &error) == 1);
test_assert(dsasl_client_set_parameter(client, "unknown", "value", &error) == 0);
- test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == 0);
- test_assert(dsasl_client_output(client, &output, &olen, &error) == 0);
- test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == 0);
+ test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == DSASL_CLIENT_RESULT_OK);
+ test_assert(dsasl_client_output(client, &output, &olen, &error) == DSASL_CLIENT_RESULT_OK);
+ test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == DSASL_CLIENT_RESULT_OK);
const unsigned char expected_h_p[] = "n,a=testuser,\1"
"host=example.com\1"
client = dsasl_client_new(mech, &sasl_set);
/* test error response */
- test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == 0);
- test_assert(dsasl_client_output(client, &output, &olen, &error) == 0);
- test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == 0);
+ test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == DSASL_CLIENT_RESULT_OK);
+ test_assert(dsasl_client_output(client, &output, &olen, &error) == DSASL_CLIENT_RESULT_OK);
+ test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == DSASL_CLIENT_RESULT_OK);
str_append(input, "{\"status\":\"401\",\"schemes\":\"bearer\",\"scope\":\"mail\"}");
- test_assert(dsasl_client_input(client, input->data, input->used, &error) == -1);
+ test_assert(dsasl_client_input(client, input->data, input->used, &error) == DSASL_CLIENT_RESULT_ERR_PROTOCOL);
test_assert_strcmp(error, "Failed to authenticate: 401");
test_assert(dsasl_client_get_result(client, "status", &value, &error) == 1);
test_assert_strcmp(value, "401");
client = dsasl_client_new(mech, &sasl_empty_set);
i_assert(client != NULL);
- test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == 0);
- test_assert(dsasl_client_output(client, &output, &olen, &error) == -1);
+ test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == DSASL_CLIENT_RESULT_OK);
+ test_assert(dsasl_client_output(client, &output, &olen, &error) == DSASL_CLIENT_RESULT_ERR_PROTOCOL);
test_assert_strcmp(error, "authid not set");
dsasl_client_free(&client);
client = dsasl_client_new(mech, &sasl_no_password_set);
i_assert(client != NULL);
- test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == 0);
- test_assert(dsasl_client_output(client, &output, &olen, &error) == -1);
+ test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == DSASL_CLIENT_RESULT_OK);
+ test_assert(dsasl_client_output(client, &output, &olen, &error) == DSASL_CLIENT_RESULT_ERR_PROTOCOL);
test_assert_strcmp(error, "password not set");
dsasl_client_free(&client);
i_assert(client != NULL);
const unsigned char input2[] = "unexpected\0";
- test_assert(dsasl_client_input(client, input2, sizeof(input2), &error) == -1);
+ test_assert(dsasl_client_input(client, input2, sizeof(input2), &error) == DSASL_CLIENT_RESULT_ERR_PROTOCOL);
test_assert_strcmp(error, "Unexpected NUL in input data");
dsasl_client_free(&client);
const unsigned char *output;
size_t olen;
- test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == 0);
- test_assert(dsasl_client_output(client, &output, &olen, &error) == 0);
- test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == 0);
+ test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == DSASL_CLIENT_RESULT_OK);
+ test_assert(dsasl_client_output(client, &output, &olen, &error) == DSASL_CLIENT_RESULT_OK);
+ test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == DSASL_CLIENT_RESULT_OK);
const unsigned char expected[] = "user=testuser\1auth=Bearer testpassword\1\1";
/* there is no NUL byte at the end */
client = dsasl_client_new(mech, &sasl_set);
/* test error response */
- test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == 0);
- test_assert(dsasl_client_output(client, &output, &olen, &error) == 0);
- test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == 0);
+ test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == DSASL_CLIENT_RESULT_OK);
+ test_assert(dsasl_client_output(client, &output, &olen, &error) == DSASL_CLIENT_RESULT_OK);
+ test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == DSASL_CLIENT_RESULT_OK);
str_append(input, "{\"status\":\"401\",\"schemes\":\"bearer\",\"scope\":\"mail\"}");
- test_assert(dsasl_client_input(client, input->data, input->used, &error) == -1);
+ test_assert(dsasl_client_input(client, input->data, input->used, &error) == DSASL_CLIENT_RESULT_ERR_PROTOCOL);
test_assert_strcmp(error, "Failed to authenticate: 401");
dsasl_client_free(&client);
client = dsasl_client_new(mech, &sasl_empty_set);
i_assert(client != NULL);
- test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == 0);
- test_assert(dsasl_client_output(client, &output, &olen, &error) == -1);
+ test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == DSASL_CLIENT_RESULT_OK);
+ test_assert(dsasl_client_output(client, &output, &olen, &error) == DSASL_CLIENT_RESULT_ERR_PROTOCOL);
test_assert_strcmp(error, "authid not set");
dsasl_client_free(&client);
client = dsasl_client_new(mech, &sasl_no_password_set);
i_assert(client != NULL);
- test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == 0);
- test_assert(dsasl_client_output(client, &output, &olen, &error) == -1);
+ test_assert(dsasl_client_input(client, uchar_empty_ptr, 0, &error) == DSASL_CLIENT_RESULT_OK);
+ test_assert(dsasl_client_output(client, &output, &olen, &error) == DSASL_CLIENT_RESULT_ERR_PROTOCOL);
test_assert_strcmp(error, "password not set");
dsasl_client_free(&client);
i_assert(client != NULL);
const unsigned char input2[] = "unexpected\0";
- test_assert(dsasl_client_input(client, input2, sizeof(input2), &error) == -1);
+ test_assert(dsasl_client_input(client, input2, sizeof(input2), &error) == DSASL_CLIENT_RESULT_ERR_PROTOCOL);
test_assert_strcmp(error, "Unexpected NUL in input data");
dsasl_client_free(&client);