Ejemplo n.º 1
0
END_TEST

START_TEST(test_curl_handling_device)
{
    qeo_mgmt_client_ctx_t *ctx = NULL;
    curl_easy_mock_ignore_and_return(CURLE_OK, true, CURLE_FAILED_INIT, CURLE_OK, CURLE_OK);
    ctx = qeo_mgmt_client_init();
    ck_assert(ctx != NULL);
    ck_assert_int_eq(QMGMTCLIENT_EINVAL, qeo_mgmt_client_enroll_device(ctx, s_url, s_rsakey, s_otp, &s_info, my_ssl_cb, (void*) COOKIE_MAGIC_NUMBER, s_certs));
    qeo_mgmt_client_clean(ctx);
    curl_easy_mock_expect_called(1, 1, 0, 0, 1, 1);

    curl_easy_mock_ignore_and_return(CURLE_OK, true, CURLE_OK, CURLE_FAILED_INIT, CURLE_OK);
    ctx = qeo_mgmt_client_init();
    ck_assert(ctx != NULL);
    ck_assert_int_eq(QMGMTCLIENT_EFAIL, qeo_mgmt_client_enroll_device(ctx, s_url, s_rsakey, s_otp, &s_info, my_ssl_cb, (void*) COOKIE_MAGIC_NUMBER, s_certs));
    qeo_mgmt_client_clean(ctx);
    curl_easy_mock_expect_called(1, CURL_EASY_MOCK_CHECK_CALLED, 2, 2, 2, 1);

    curl_easy_mock_ignore_and_return(CURLE_OK, true, CURLE_OK, CURLE_OK, CURLE_SSL_CIPHER);
    ctx = qeo_mgmt_client_init();
    ck_assert(ctx != NULL);
    ck_assert_int_eq(QMGMTCLIENT_ESSL, qeo_mgmt_client_enroll_device(ctx, s_url, s_rsakey, s_otp, &s_info, my_ssl_cb, (void*) COOKIE_MAGIC_NUMBER, s_certs));
    qeo_mgmt_client_clean(ctx);
    curl_easy_mock_expect_called(1, CURL_EASY_MOCK_CHECK_CALLED, 0, 1, 1, 1);

    curl_easy_mock_ignore_and_return(CURLE_OK, true, CURLE_OK, CURLE_OK, CURLE_OK);
    ctx = qeo_mgmt_client_init();
    ck_assert(ctx != NULL);
    ck_assert_int_eq(QMGMTCLIENT_EFAIL, qeo_mgmt_client_enroll_device(ctx, s_url, s_rsakey, s_otp, &s_info, my_ssl_cb, (void*) COOKIE_MAGIC_NUMBER, s_certs));
    qeo_mgmt_client_clean(ctx);
    curl_easy_mock_expect_called(1, CURL_EASY_MOCK_CHECK_CALLED, CURL_EASY_MOCK_CHECK_CALLED, 2, 2, 1);
}
Ejemplo n.º 2
0
END_TEST

START_TEST(test_curl_handling_init)
{
    qeo_mgmt_client_ctx_t *ctx = NULL;

    curl_easy_mock_ignore_and_return(CURLE_FAILED_INIT, true, CURLE_OK, CURLE_OK, CURLE_OK);
    ctx = qeo_mgmt_client_init();
    ck_assert(ctx == NULL);

    curl_easy_mock_ignore_and_return(CURLE_OK, false, CURLE_OK, CURLE_OK, CURLE_OK);
    ctx = qeo_mgmt_client_init();
    ck_assert(ctx == NULL);

}
Ejemplo n.º 3
0
/* called before every test case starts */
static void init_tcase(void)
{
    pthread_mutex_init(&s_mutex, NULL);
    pthread_cond_init(&s_cond, NULL);
    curl_easy_mock_ignore_and_return(CURLE_OK, true, CURLE_OK, CURLE_OK, CURLE_OK);
    s_ctx = qeo_mgmt_client_init();
    s_result = QMGMTCLIENT_ESSL;
}
Ejemplo n.º 4
0
END_TEST

START_TEST(test_curl_handling_policy)
{
    qeo_mgmt_client_ctx_t *ctx = NULL;

    curl_easy_mock_ignore_and_return(CURLE_OK, true, CURLE_FAILED_INIT, CURLE_OK, CURLE_OK);
    ctx = qeo_mgmt_client_init();
    fail_if(ctx == NULL);
    ck_assert_int_eq(QMGMTCLIENT_EINVAL, qeo_mgmt_client_get_policy(ctx, s_url, my_ssl_cb, my_data_cb, (void*) COOKIE_MAGIC_NUMBER));
    qeo_mgmt_client_clean(ctx);
    curl_easy_mock_expect_called(1, 1, 0, 0, 1, 1);

    curl_easy_mock_ignore_and_return(CURLE_OK, true, CURLE_OK, CURLE_OK, CURLE_SSL_CERTPROBLEM);
    ctx = qeo_mgmt_client_init();
    fail_if(ctx == NULL);
    ck_assert_int_eq(QMGMTCLIENT_ESSL, qeo_mgmt_client_get_policy(ctx, s_url, my_ssl_cb, my_data_cb, (void*) COOKIE_MAGIC_NUMBER));
    qeo_mgmt_client_clean(ctx);
    curl_easy_mock_expect_called(1, CURL_EASY_MOCK_CHECK_CALLED, 0, 1, 1, 1);

    curl_easy_mock_ignore_and_return(CURLE_OK, true, CURLE_OK, CURLE_OK, CURLE_COULDNT_CONNECT);
    ctx = qeo_mgmt_client_init();
    fail_if(ctx == NULL);
    ck_assert_int_eq(QMGMTCLIENT_ECONNECT, qeo_mgmt_client_get_policy(ctx, s_url, my_ssl_cb, my_data_cb, (void*) COOKIE_MAGIC_NUMBER));
    qeo_mgmt_client_clean(ctx);
    curl_easy_mock_expect_called(1, CURL_EASY_MOCK_CHECK_CALLED, 0, 1, 1, 1);

    curl_easy_mock_ignore_and_return(CURLE_OK, true, CURLE_OK, CURLE_OK, CURLE_FAILED_INIT);
    ctx = qeo_mgmt_client_init();
    fail_if(ctx == NULL);
    ck_assert_int_eq(QMGMTCLIENT_EFAIL, qeo_mgmt_client_get_policy(ctx, s_url, my_ssl_cb, my_data_cb, (void*) COOKIE_MAGIC_NUMBER));
    qeo_mgmt_client_clean(ctx);
    curl_easy_mock_expect_called(1, CURL_EASY_MOCK_CHECK_CALLED, 0, 1, 1, 1);

    curl_easy_mock_ignore_and_return(CURLE_OK, true, CURLE_OK, CURLE_FAILED_INIT, CURLE_OK);
    ctx = qeo_mgmt_client_init();
    fail_if(ctx == NULL);
    ck_assert_int_eq(QMGMTCLIENT_OK, qeo_mgmt_client_get_policy(ctx, s_url, my_ssl_cb, my_data_cb, (void*) COOKIE_MAGIC_NUMBER));
    qeo_mgmt_client_clean(ctx);
    curl_easy_mock_expect_called(1, CURL_EASY_MOCK_CHECK_CALLED, 2, 2, 2, 1);
    /* Callbacks need to be called once */
    ck_assert_int_eq(s_ssl_cb_hitcount, 5);
    ck_assert_int_eq(s_data_cb_hitcount, 1);
}
Ejemplo n.º 5
0
END_TEST

START_TEST(test_sscep_handling_perform_errors)
{
    qeo_mgmt_client_ctx_t *ctx = NULL;
    STACK_OF(X509) *racerts = get_cert_store(raids);
    STACK_OF(X509) *devicecerts = get_cert_store(deviceids);
    STACK_OF(X509) *brokendevicecerts = get_cert_store(brokendeviceids);

    sscep_mock_ignore_and_return(true, SCEP_PKISTATUS_CONNECT, racerts, SCEP_PKISTATUS_FAILURE, devicecerts);
    ctx = qeo_mgmt_client_init();
    fail_unless(qeo_mgmt_client_enroll_device(ctx, s_url, s_rsakey, s_otp, &s_info, my_ssl_cb, (void*) COOKIE_MAGIC_NUMBER, s_certs) == QMGMTCLIENT_ECONNECT);
    qeo_mgmt_client_clean(ctx);
    sscep_mock_expect_called(1, 1, 1);

    sscep_mock_ignore_and_return(true, SCEP_PKISTATUS_SUCCESS, racerts, SCEP_PKISTATUS_FAILURE, devicecerts);
    ctx = qeo_mgmt_client_init();
    fail_unless(qeo_mgmt_client_enroll_device(ctx, s_url, s_rsakey, s_otp, &s_info, my_ssl_cb, (void*) COOKIE_MAGIC_NUMBER, s_certs) == QMGMTCLIENT_EFAIL);
    qeo_mgmt_client_clean(ctx);
    sscep_mock_expect_called(1, 2, 1);

    sscep_mock_ignore_and_return(true, SCEP_PKISTATUS_SUCCESS, racerts, SCEP_PKISTATUS_FORBIDDEN, devicecerts);
    ctx = qeo_mgmt_client_init();
    fail_unless(qeo_mgmt_client_enroll_device(ctx, s_url, s_rsakey, s_otp, &s_info, my_ssl_cb, (void*) COOKIE_MAGIC_NUMBER, s_certs) == QMGMTCLIENT_EOTP);
    qeo_mgmt_client_clean(ctx);
    sscep_mock_expect_called(1, 2, 1);

    sscep_mock_ignore_and_return(true, SCEP_PKISTATUS_SUCCESS, racerts, SCEP_PKISTATUS_CONNECT, devicecerts);
    ctx = qeo_mgmt_client_init();
    fail_unless(qeo_mgmt_client_enroll_device(ctx, s_url, s_rsakey, s_otp, &s_info, my_ssl_cb, (void*) COOKIE_MAGIC_NUMBER, s_certs) == QMGMTCLIENT_ECONNECT);
    qeo_mgmt_client_clean(ctx);
    sscep_mock_expect_called(1, 2, 1);

    sscep_mock_ignore_and_return(true, SCEP_PKISTATUS_SUCCESS, racerts, SCEP_PKISTATUS_SUCCESS, brokendevicecerts);
    ctx = qeo_mgmt_client_init();
    fail_unless(qeo_mgmt_client_enroll_device(ctx, s_url, s_rsakey, s_otp, &s_info, my_ssl_cb, (void*) COOKIE_MAGIC_NUMBER, s_certs) == QMGMTCLIENT_EFAIL);
    qeo_mgmt_client_clean(ctx);
    sscep_mock_expect_called(1, 2, 1);

    sk_X509_free(racerts);
    sk_X509_free(devicecerts);
}
Ejemplo n.º 6
0
END_TEST

START_TEST(test_inv_args_policy)
{
    qeo_mgmt_client_ctx_t *ctx = NULL;

    curl_easy_mock_ignore_and_return(CURLE_OK, true, CURLE_OK, CURLE_OK, CURLE_OK);
    ctx = qeo_mgmt_client_init();
    ck_assert(ctx != NULL);
    ck_assert_int_eq(QMGMTCLIENT_EINVAL, qeo_mgmt_client_get_policy(NULL, s_url, my_ssl_cb, my_data_cb, (void*) COOKIE_MAGIC_NUMBER));
    ck_assert_int_eq(QMGMTCLIENT_EINVAL, qeo_mgmt_client_get_policy(ctx, NULL, my_ssl_cb, my_data_cb, (void*) COOKIE_MAGIC_NUMBER));
    ck_assert_int_eq(QMGMTCLIENT_EINVAL, qeo_mgmt_client_get_policy(ctx, s_url, NULL, my_data_cb, (void*) COOKIE_MAGIC_NUMBER));
    ck_assert_int_eq(QMGMTCLIENT_EINVAL, qeo_mgmt_client_get_policy(ctx, s_url, my_ssl_cb, NULL, (void*) COOKIE_MAGIC_NUMBER));

    qeo_mgmt_client_clean(NULL);
    curl_easy_mock_expect_called(1, 0, 0, 0, 0, 0);
    qeo_mgmt_client_clean(ctx);
    curl_easy_mock_expect_called(1, 0, 0, 0, 0, 1);
}
Ejemplo n.º 7
0
END_TEST


START_TEST(test_sscep_handling_long_name)
{
    qeo_mgmt_client_ctx_t *ctx = NULL;
    STACK_OF(X509) *racerts = get_cert_store(raids);
    STACK_OF(X509) *devicecerts = get_cert_store(deviceids);
    s_info.userFriendlyName = "extreeeeeeeeeeeeeeeemely loooooooooooooooooooooooooooong naaaaaaaaaaaaaaaaaaameeeeeeeeeeeee";

    sscep_mock_ignore_and_return(true, SCEP_PKISTATUS_SUCCESS, racerts, SCEP_PKISTATUS_SUCCESS, devicecerts);
    ctx = qeo_mgmt_client_init();
    fail_if(ctx == NULL);

    fail_unless(qeo_mgmt_client_enroll_device(ctx, s_url, s_rsakey, s_otp, &s_info, my_ssl_cb, (void*) COOKIE_MAGIC_NUMBER, s_certs) == QMGMTCLIENT_OK);

    qeo_mgmt_client_clean(ctx);
    sscep_mock_expect_called(1, 2, 1);
    sk_X509_free(racerts);
    sk_X509_free(devicecerts);
}
Ejemplo n.º 8
0
END_TEST

START_TEST(test_inv_args_check_policy)
{
    qeo_mgmt_client_ctx_t *ctx = NULL;
    bool result = false;

    curl_easy_mock_ignore_and_return(CURLE_OK, true, CURLE_OK, CURLE_OK, CURLE_OK);
    ctx = qeo_mgmt_client_init();
    ck_assert(ctx != NULL);
    ck_assert_int_eq(QMGMTCLIENT_EINVAL, qeo_mgmt_client_check_policy(NULL, NULL, NULL, s_url, 0, 0, &result));
    ck_assert_int_eq(QMGMTCLIENT_EINVAL, qeo_mgmt_client_check_policy(ctx, NULL, NULL, NULL, 0, 0, &result));
    ck_assert_int_eq(QMGMTCLIENT_EINVAL, qeo_mgmt_client_check_policy(ctx, NULL, NULL, s_url, -1, 0, &result));
    ck_assert_int_eq(QMGMTCLIENT_EINVAL, qeo_mgmt_client_check_policy(ctx, NULL, NULL, s_url, 0, -1, &result));
    ck_assert_int_eq(QMGMTCLIENT_EINVAL, qeo_mgmt_client_check_policy(ctx, NULL, NULL, s_url, 0, 0, NULL));

    qeo_mgmt_client_clean(NULL);
    curl_easy_mock_expect_called(1, 0, 0, 0, 0, 0);
    qeo_mgmt_client_clean(ctx);
    curl_easy_mock_expect_called(1, 0, 0, 0, 0, 1);
}
Ejemplo n.º 9
0
END_TEST

START_TEST(test_curl_handling_checkpolicy)
{
    qeo_mgmt_client_ctx_t *ctx = NULL;
    bool result = false;

    curl_easy_mock_ignore_and_return(CURLE_OK, true, CURLE_FAILED_INIT, CURLE_OK, CURLE_OK);
    ctx = qeo_mgmt_client_init();
    fail_if(ctx == NULL);
    ck_assert_int_eq(QMGMTCLIENT_EINVAL, qeo_mgmt_client_check_policy(ctx, my_ssl_cb, (void*) COOKIE_MAGIC_NUMBER, s_url, 0, 0, &result));
    qeo_mgmt_client_clean(ctx);
    curl_easy_mock_expect_called(1, CURL_EASY_MOCK_CHECK_CALLED, 0, 0, 2, 1);

    curl_easy_mock_ignore_and_return(CURLE_OK, true, CURLE_OK, CURLE_FAILED_INIT, CURLE_OK);
    ctx = qeo_mgmt_client_init();
    fail_if(ctx == NULL);
    ck_assert_int_eq(QMGMTCLIENT_EFAIL, qeo_mgmt_client_check_policy(ctx, my_ssl_cb, (void*) COOKIE_MAGIC_NUMBER, s_url, 0, 0, &result));
    qeo_mgmt_client_clean(ctx);
    curl_easy_mock_expect_called(1, CURL_EASY_MOCK_CHECK_CALLED, 2, 2, 4, 1);

    curl_easy_mock_ignore_and_return(CURLE_OK, true, CURLE_OK, CURLE_OK, CURLE_FAILED_INIT);
    ctx = qeo_mgmt_client_init();
    fail_if(ctx == NULL);
    ck_assert_int_eq(QMGMTCLIENT_EFAIL, qeo_mgmt_client_check_policy(ctx, my_ssl_cb, (void*) COOKIE_MAGIC_NUMBER, s_url, 0, 0, &result));
    qeo_mgmt_client_clean(ctx);
    curl_easy_mock_expect_called(1, CURL_EASY_MOCK_CHECK_CALLED, 0, 1, 2, 1);

    curl_easy_mock_ignore_and_return(CURLE_OK, true, CURLE_OK, CURLE_OK, CURLE_OK);
    ctx = qeo_mgmt_client_init();
    fail_if(ctx == NULL);
    ck_assert_int_eq(QMGMTCLIENT_EFAIL, qeo_mgmt_client_check_policy(ctx, my_ssl_cb, (void*) COOKIE_MAGIC_NUMBER, s_url, 0, 0, &result));
    qeo_mgmt_client_clean(ctx);
    curl_easy_mock_expect_called(1, CURL_EASY_MOCK_CHECK_CALLED, 3, 2, 4, 1);

    curl_easy_mock_ignore_and_return(CURLE_OK, true, CURLE_OK, CURLE_OK, CURLE_OK);
    ctx = qeo_mgmt_client_init();
    curl_easy_mock_return_getinfo(400,1);
    fail_if(ctx == NULL);
    ck_assert_int_eq(QMGMTCLIENT_EBADREQUEST, qeo_mgmt_client_check_policy(ctx, my_ssl_cb, (void*) COOKIE_MAGIC_NUMBER, s_url, 0, 0, &result));
    qeo_mgmt_client_clean(ctx);
    curl_easy_mock_expect_called(1, CURL_EASY_MOCK_CHECK_CALLED, 3, 2, 4, 1);

    curl_easy_mock_ignore_and_return(CURLE_OK, true, CURLE_OK, CURLE_OK, CURLE_OK);
    ctx = qeo_mgmt_client_init();
    curl_easy_mock_return_getinfo(410,1);//410 Gone
    fail_if(ctx == NULL);
    ck_assert_int_eq(QMGMTCLIENT_OK, qeo_mgmt_client_check_policy(ctx, my_ssl_cb, (void*) COOKIE_MAGIC_NUMBER, s_url, 0, 0, &result));
    fail_unless(result == false);
    qeo_mgmt_client_clean(ctx);
    curl_easy_mock_expect_called(1, CURL_EASY_MOCK_CHECK_CALLED, 2, 2, 4, 1);

    curl_easy_mock_ignore_and_return(CURLE_OK, true, CURLE_OK, CURLE_OK, CURLE_OK);
    ctx = qeo_mgmt_client_init();
    curl_easy_mock_return_getinfo(304,1);//304 Not Modified
    fail_if(ctx == NULL);
    ck_assert_int_eq(QMGMTCLIENT_OK, qeo_mgmt_client_check_policy(ctx, my_ssl_cb, (void*) COOKIE_MAGIC_NUMBER, s_url, 0, 0, &result));
    fail_unless(result == true);
    qeo_mgmt_client_clean(ctx);
    curl_easy_mock_expect_called(1, CURL_EASY_MOCK_CHECK_CALLED, 2, 2, 4, 1);
}