Beispiel #1
0
int
main(int argc, char *argv[])
{
	LassoServer *sp_server, *idp_server;
	LassoLogin *sp_login, *idp_login;
	int n;

	lasso_init();

	sp_server = lasso_server_new(
			SP_METADATA,
			SP_PKEY,
			NULL, /* Secret key to unlock private key */
			NULL);
	lasso_server_add_provider(
			sp_server,
			LASSO_PROVIDER_ROLE_IDP,
			IDP_METADATA,
			IDP_PKEY,
			NULL);
	idp_server = lasso_server_new(
			IDP_METADATA,
			IDP_PKEY,
			NULL, /* Secret key to unlock private key */
			NULL);
	lasso_server_add_provider(
			idp_server,
			LASSO_PROVIDER_ROLE_SP,
			SP_METADATA,
			SP_PKEY,
			NULL);

	n = 100;
	if (argc == 2) {
		n = atoi(argv[1]);
	}

	sp_login = lasso_login_new(sp_server);
	idp_login = lasso_login_new(idp_server);

	timing(n, "Generating %d AuthnRequest...\n", create_authn_request, sp_login, idp_login);
#if 0
	printf("%s\n", lasso_node_export_to_xml(sp_login->parent.request));
#endif
	timing(n, "Processing %d AuthnRequest...\n", process_authn_request, sp_login, idp_login);
	timing(n, "Generating %d AuthnResponse...\n", create_authn_response, sp_login, idp_login);
#if 0
	printf("%s\n", lasso_node_export_to_xml(idp_login->parent.response));
#endif
	timing(n, "Processing %d AuthnResponse...\n", process_authn_response, sp_login, idp_login);

	return 0;
}
Beispiel #2
0
static char*
generateIdentityProviderContextDumpMemory()
{
    LassoServer *serverContext;
    char *metadata;
    char *private_key;
    char *certificate;
    guint len;
    char *ret;

    g_file_get_contents(TESTSDATADIR "/idp1-la/metadata.xml", &metadata, &len, NULL);
    g_file_get_contents(TESTSDATADIR "/idp1-la/private-key-raw.pem", &private_key, &len, NULL);
    g_file_get_contents(TESTSDATADIR "/idp1-la/certificate.pem", &certificate, &len, NULL);

    serverContext = lasso_server_new_from_buffers(
                        metadata,
                        private_key,
                        NULL, /* Secret key to unlock private key */
                        certificate);
    lasso_server_add_provider(
        serverContext,
        LASSO_PROVIDER_ROLE_SP,
        TESTSDATADIR "/sp1-la/metadata.xml",
        TESTSDATADIR "/sp1-la/public-key.pem",
        TESTSDATADIR "/ca1-la/certificate.pem");
    g_free(metadata);
    g_free(private_key);
    g_free(certificate);
    ret = lasso_server_dump(serverContext);
    g_object_unref(serverContext);
    return ret;
}
Beispiel #3
0
END_TEST

START_TEST(test03_server_new_from_dump)
{
	LassoServer *server1, *server2;
	char *dump;

	server1 = lasso_server_new(
			TESTSDATADIR "/idp1-la/metadata.xml",
			TESTSDATADIR "/idp1-la/private-key-raw.pem",
			NULL, /* Secret key to unlock private key */
			TESTSDATADIR "/idp1-la/certificate.pem");
	lasso_server_add_provider(
			server1,
			LASSO_PROVIDER_ROLE_SP,
			TESTSDATADIR "/sp1-la/metadata.xml",
			TESTSDATADIR "/sp1-la/public-key.pem",
			TESTSDATADIR "/ca1-la/certificate.pem");

	dump = lasso_node_dump(LASSO_NODE(server1));

	server2 = lasso_server_new_from_dump(dump);
	g_free(dump);
	dump = lasso_node_dump(LASSO_NODE(server2));
	g_object_unref(server1);
	g_object_unref(server2);
	g_free(dump);
}
Beispiel #4
0
END_TEST

START_TEST(test02_server_add_provider)
{
	LassoServer *server;
	char *dump;

	server = lasso_server_new(
			TESTSDATADIR "/idp1-la/metadata.xml",
			TESTSDATADIR "/idp1-la/private-key-raw.pem",
			NULL, /* Secret key to unlock private key */
			TESTSDATADIR "/idp1-la/certificate.pem");
	fail_unless(LASSO_IS_SERVER(server));
	fail_unless(server->private_key != NULL);
	fail_unless(! server->private_key_password);
	fail_unless(server->certificate != NULL);
	fail_unless(server->signature_method == LASSO_SIGNATURE_METHOD_RSA_SHA1);
	fail_unless(server->providers != NULL);
	lasso_server_add_provider(
			server,
			LASSO_PROVIDER_ROLE_SP,
			TESTSDATADIR "/sp1-la/metadata.xml",
			TESTSDATADIR "/sp1-la/public-key.pem",
			TESTSDATADIR "/ca1-la/certificate.pem");
	fail_unless(g_hash_table_size(server->providers) == 1);


	dump = lasso_node_dump(LASSO_NODE(server));
	g_object_unref(server);
	lasso_release_string(dump);
}
Beispiel #5
0
static char*
generateServiceProviderContextDump()
{
    LassoServer *serverContext;
    char *ret;

    serverContext = lasso_server_new(
                        TESTSDATADIR "/sp1-la/metadata.xml",
                        TESTSDATADIR "/sp1-la/private-key-raw.pem",
                        NULL, /* Secret key to unlock private key */
                        TESTSDATADIR "/sp1-la/certificate.pem");
    check_not_null(serverContext);
    check_good_rc(lasso_server_add_provider(
                      serverContext,
                      LASSO_PROVIDER_ROLE_IDP,
                      TESTSDATADIR "/idp1-la/metadata.xml",
                      TESTSDATADIR "/idp1-la/public-key.pem",
                      TESTSDATADIR "/ca1-la/certificate.pem"));

    ret = lasso_server_dump(serverContext);
    check_not_null(ret);
    g_object_unref(serverContext);
    return ret;
}