diff --git a/src/frontends/osx/.gitignore b/src/frontends/osx/.gitignore deleted file mode 100644 index f4be87183..000000000 --- a/src/frontends/osx/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -xcuserdata -*.xcworkspace diff --git a/src/frontends/osx/README.md b/src/frontends/osx/README.md deleted file mode 100644 index 9ddd7228a..000000000 --- a/src/frontends/osx/README.md +++ /dev/null @@ -1,107 +0,0 @@ -# strongSwan OS X App # - -## Introduction ## - -The strongSwan OS X App consists of two components: - -* A frontend App to configure and control connections (under strongSwan) -* A privileged helper daemon, controlled using XPC (under charon-xpc) - -The privileged helper daemon gets installed automatically using SMJobBless -functionality on its first use, and gets started automatically by Launchd when -needed. - -charon-xpc is a special build linking statically against strongSwan components. - -charon-xpc and the App sources are currently not part of the official strongSwan -distribution. Build the charon-xpc tarball with: - - git archive -o osx-sources-$(grep AC_INIT configure.ac | \ - cut -d '[' -f3 | cut -d ']' -f1).tar.bz2 \ - HEAD src/frontends/osx - -## Building strongSwan ## - -Before building the Xcode project, the strongSwan base tree must be built using -a monolithic and static build. This can be achieved on OS X by using: - - CFLAGS="-O2 -g -Wall -Wno-format -Wno-pointer-sign -Wno-deprecated-declarations" \ - ./configure --enable-monolithic --disable-shared --enable-static \ - --disable-defaults \ - --enable-openssl --enable-kernel-libipsec --enable-kernel-pfroute \ - --enable-eap-mschapv2 --enable-eap-identity --enable-eap-md5 \ - --enable-eap-gtc --enable-pkcs1 --enable-socket-default --enable-osx-attr \ - --enable-xauth-generic --enable-gcm --enable-ccm --enable-ctr \ - --enable-keychain --enable-nonce --enable-charon \ - --enable-ikev1 --enable-ikev2 - -followed by calling make (no need to make install). - -Building charon-xpc using the Xcode project yields a single binary without -any non OS X dependencies. The strongSwan target in the same project builds -the App and integrates charon-xpc for the deployment. - -Both charon-xpc and the App must be code-signed to allow the installation of -the privileged helper. By default both targets use the _Developer ID: *_ -wildcard to use the first usable code signing identity. Both the App and -charon-xpc require a hardcoded certificate subject under -_strongSwan/strongSwan-Info.plist_ respectively -_charon-xpc/charon-xpc-Info.plist_. Update the _org.strongswan.charon-xpc_ -_SMPrivilegedExecutables_ in the App and _SMAuthorizedClients_ in charon-xpc -with your code signing certificate identity. - -## XPC application protocol ## - -charon-xpc provides a Mach service under the name _org.strongswan.charon-xpc_. -Clients can connect to this service to control the daemon. All messages -on all connections use the following string dictionary keys/values: - -* _type_: XPC message type, currently either - * _rpc_ for a remote procedure call, expects a response - * _event_ for application specific event messages -* _rpc_: defines the name of the RPC function to call (for _type_ = _rpc_) -* _event_: defines a name for the event (for _type_ = _event_) - -Additional arguments and return values are specified by the call and can have -any type. Keys are directly attached to the message dictionary. - -On the Mach service connection, the following RPC messages are currently -defined: - -* string version = get_version() - * _version_: strongSwan version of charon-xpc -* bool success = start_connection(string name, string host, string id, - endpoint channel) - * _success_: TRUE if initiation started successfully - * _name_: connection name to initiate - * _host_: server hostname (and identity) - * _id_: client identity to use - * _channel_: XPC endpoint for this connection - -The start_connection() RPC returns just after the initiation of the call and -does not wait for the connection to establish. Nonetheless does it have a -return value to indicate if connection initiation could be triggered. - -The App passes an (anonymous) XPC endpoint to start_connection(). If the call -succeeds, charon-xpc connects to this endpoint to establish a channel used for -this specific IKE connection. - -On this channel, the following RPC calls are currently defined from charon-xpc -to the App: - -* string password = get_password(string username) - * _password_: user password returned - * _username_: username to query a password for - -And the following from the App to charon-xpc: - -* bool success = stop_connection() - * _success_: TRUE if termination of connection initiated - -The following events are currently defined from charon-xpc to the App: - -* up(): IKE_SA has been established -* down(): IKE_SA has been closed or failed to establish -* child_up(string local_ts, string remote_ts): CHILD_SA has been established -* child_down(string local_ts, string remote_ts): CHILD_SA has been closed -* log(string message): debug log message for this connection diff --git a/src/frontends/osx/charon-xpc/charon-xpc-Info.plist b/src/frontends/osx/charon-xpc/charon-xpc-Info.plist deleted file mode 100644 index 85e2e4dc2..000000000 --- a/src/frontends/osx/charon-xpc/charon-xpc-Info.plist +++ /dev/null @@ -1,18 +0,0 @@ - - - - - CFBundleIdentifier - org.strongswan.charon-xpc - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - charon-xpc - CFBundleVersion - 1.0 - SMAuthorizedClients - - identifier org.strongswan.osx and certificate leaf[subject.CN] = "Developer ID Application: revosec AG (SRXT3TB2PY)" - - - diff --git a/src/frontends/osx/charon-xpc/charon-xpc-Launchd.plist b/src/frontends/osx/charon-xpc/charon-xpc-Launchd.plist deleted file mode 100644 index 703fab912..000000000 --- a/src/frontends/osx/charon-xpc/charon-xpc-Launchd.plist +++ /dev/null @@ -1,13 +0,0 @@ - - - - - Label - org.strongswan.charon-xpc - MachServices - - org.strongswan.charon-xpc - - - - diff --git a/src/frontends/osx/charon-xpc/charon-xpc.c b/src/frontends/osx/charon-xpc/charon-xpc.c deleted file mode 100644 index 103d3f0ee..000000000 --- a/src/frontends/osx/charon-xpc/charon-xpc.c +++ /dev/null @@ -1,227 +0,0 @@ -/* - * Copyright (C) 2013 Martin Willi - * - * Copyright (C) secunet Security Networks AG - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. See . - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - */ - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include "xpc_dispatch.h" - -/** - * XPC dispatcher class - */ -static xpc_dispatch_t *dispatcher; - -/** - * atexit() cleanup for dispatcher - */ -void dispatcher_cleanup() -{ - DESTROY_IF(dispatcher); -} - -/** - * hook in library for debugging messages - */ -extern void (*dbg) (debug_t group, level_t level, char *fmt, ...); - -/** - * Logging hook for library logs, using stderr output - */ -static void dbg_stderr(debug_t group, level_t level, char *fmt, ...) -{ - va_list args; - - if (level <= 1) - { - va_start(args, fmt); - fprintf(stderr, "00[%N] ", debug_names, group); - vfprintf(stderr, fmt, args); - fprintf(stderr, "\n"); - va_end(args); - } -} - -/** - * Run the daemon and handle unix signals - */ -static int run() -{ - sigset_t set; - - sigemptyset(&set); - sigaddset(&set, SIGINT); - sigaddset(&set, SIGTERM); - sigprocmask(SIG_BLOCK, &set, NULL); - - while (TRUE) - { - int sig; - - sig = sigwaitinfo(&set, NULL); - if (sig == -1) - { - if (errno == EINTR) - { /* ignore signals we didn't wait for */ - continue; - } - DBG1(DBG_DMN, "waiting for signal failed: %s", strerror(errno)); - return 1; - } - switch (sig) - { - case SIGINT: - case SIGTERM: - DBG1(DBG_DMN, "%s received, shutting down", - sig == SIGINT ? "SIGINT" : "SIGTERM"); - charon->bus->alert(charon->bus, ALERT_SHUTDOWN_SIGNAL, sig); - return 0; - } - } -} - -/** - * Handle SIGSEGV/SIGILL signals raised by threads - */ -static void segv_handler(int signal) -{ - backtrace_t *backtrace; - - DBG1(DBG_DMN, "thread %u received %d", thread_current_id(), signal); - backtrace = backtrace_create(2); - backtrace->log(backtrace, NULL, TRUE); - backtrace->destroy(backtrace); - - DBG1(DBG_DMN, "killing ourself, received critical signal"); - abort(); -} - -/** - * PF_ROUTE for some reason does not send an event for the first address - * installed after a fresh boot. Fix this by installing a fake tun address - * just to remove it afterwards. - */ -static void fixup_pf_route() -{ - tun_device_t *tun; - host_t *host; - - tun = tun_device_create(NULL); - if (tun) - { - if (tun->up(tun)) - { - host = host_create_from_string("127.0.0.99", 0); - tun->set_address(tun, host, 32); - host->destroy(host); - } - tun->destroy(tun); - } -} - -/** - * Main function, starts the daemon. - */ -int main(int argc, char *argv[]) -{ - struct sigaction action; - struct utsname utsname; - level_t levels[DBG_MAX]; - int group; - - dbg = dbg_stderr; - atexit(library_deinit); - if (!library_init(NULL, "charon-xpc")) - { - exit(SS_RC_LIBSTRONGSWAN_INTEGRITY); - } - if (lib->integrity) - { - if (!lib->integrity->check_file(lib->integrity, "charon-xpc", argv[0])) - { - exit(SS_RC_DAEMON_INTEGRITY); - } - } - atexit(libcharon_deinit); - if (!libcharon_init()) - { - exit(SS_RC_INITIALIZATION_FAILED); - } - for (group = 0; group < DBG_MAX; group++) - { - levels[group] = LEVEL_CTRL; - } - charon->set_default_loggers(charon, levels, TRUE); - charon->load_loggers(charon); - - lib->settings->set_default_str(lib->settings, "charon-xpc.port", "0"); - lib->settings->set_default_str(lib->settings, "charon-xpc.port_nat_t", "0"); - lib->settings->set_default_str(lib->settings, - "charon-xpc.close_ike_on_child_failure", "yes"); - lib->settings->set_default_str(lib->settings, - "charon-xpc.plugins.osx-attr.append", "no"); - if (!charon->initialize(charon, - lib->settings->get_str(lib->settings, "charon-xpc.load", - "nonce pkcs1 openssl keychain ctr ccm gcm kernel-libipsec " - "kernel-pfroute socket-default eap-identity eap-mschapv2 " - "eap-md5 xauth-generic osx-attr"))) - { - exit(SS_RC_INITIALIZATION_FAILED); - } - - if (uname(&utsname) != 0) - { - memset(&utsname, 0, sizeof(utsname)); - } - DBG1(DBG_DMN, "Starting charon-xpc IKE daemon (strongSwan %s, %s %s, %s)", - VERSION, utsname.sysname, utsname.release, utsname.machine); - - /* add handler for SEGV and ILL, - * INT, TERM and HUP are handled by sigwaitinfo() in run() */ - action.sa_handler = segv_handler; - action.sa_flags = 0; - sigemptyset(&action.sa_mask); - sigaddset(&action.sa_mask, SIGINT); - sigaddset(&action.sa_mask, SIGTERM); - sigaddset(&action.sa_mask, SIGHUP); - sigaction(SIGSEGV, &action, NULL); - sigaction(SIGILL, &action, NULL); - sigaction(SIGBUS, &action, NULL); - action.sa_handler = SIG_IGN; - sigaction(SIGPIPE, &action, NULL); - - pthread_sigmask(SIG_SETMASK, &action.sa_mask, NULL); - - dispatcher = xpc_dispatch_create(); - if (!dispatcher) - { - exit(SS_RC_INITIALIZATION_FAILED); - } - atexit(dispatcher_cleanup); - - charon->start(charon); - fixup_pf_route(); - return run(); -} diff --git a/src/frontends/osx/charon-xpc/xpc_channels.c b/src/frontends/osx/charon-xpc/xpc_channels.c deleted file mode 100644 index b0aad762b..000000000 --- a/src/frontends/osx/charon-xpc/xpc_channels.c +++ /dev/null @@ -1,546 +0,0 @@ -/* - * Copyright (C) 2013 Martin Willi - * - * Copyright (C) secunet Security Networks AG - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. See . - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - */ - -#include "xpc_channels.h" -#include "xpc_logger.h" - -#include -#include -#include -#include - -typedef struct private_xpc_channels_t private_xpc_channels_t; - -/** - * Private data of an xpc_channels_t object. - */ -struct private_xpc_channels_t { - - /** - * Public xpc_channels_t interface. - */ - xpc_channels_t public; - - /** - * Registered channels, IKE_SA unique ID => entry_t - */ - hashtable_t *channels; - - /** - * Lock for channels list - */ - rwlock_t *lock; - - /** - * Callback credential set for passwords - */ - callback_cred_t *creds; -}; - -/** - * Channel entry - */ -typedef struct { - /* XPC channel to App */ - xpc_connection_t conn; - /* associated IKE_SA unique identifier */ - uintptr_t sa; - /* did we already ask for a password? */ - bool passworded; - /* channel specific logger */ - xpc_logger_t *logger; -} entry_t; - -/** - * Clean up an entry, canceling connection - */ -static void destroy_entry(entry_t *entry) -{ - charon->bus->remove_logger(charon->bus, &entry->logger->logger); - entry->logger->destroy(entry->logger); - xpc_connection_suspend(entry->conn); - xpc_release(entry->conn); - free(entry); -} - -/** - * Find an IKE_SA unique identifier by a given XPC channel - */ -static uint32_t find_ike_sa_by_conn(private_xpc_channels_t *this, - xpc_connection_t conn) -{ - enumerator_t *enumerator; - entry_t *entry; - uint32_t ike_sa = 0; - - this->lock->read_lock(this->lock); - enumerator = this->channels->create_enumerator(this->channels); - while (enumerator->enumerate(enumerator, NULL, &entry)) - { - if (entry->conn == conn) - { - ike_sa = entry->sa; - break; - } - } - enumerator->destroy(enumerator); - this->lock->unlock(this->lock); - - return ike_sa; -} - -/** - * Remove an entry for a given XPC connection - */ -static void remove_conn(private_xpc_channels_t *this, xpc_connection_t conn) -{ - uintptr_t ike_sa; - entry_t *entry; - - ike_sa = find_ike_sa_by_conn(this, conn); - if (ike_sa) - { - this->lock->write_lock(this->lock); - entry = this->channels->remove(this->channels, (void*)ike_sa); - this->lock->unlock(this->lock); - - if (entry) - { - destroy_entry(entry); - } - } -} - -/** - * Trigger termination of a connection - */ -static void stop_connection(private_xpc_channels_t *this, uint32_t ike_sa, - xpc_object_t request, xpc_object_t reply) -{ - status_t status; - - status = charon->controller->terminate_ike(charon->controller, ike_sa, FALSE, - NULL, NULL, 0, 0); - xpc_dictionary_set_bool(reply, "success", status != NOT_FOUND); -} - -/** - * XPC RPC command dispatch table - */ -static struct { - char *name; - void (*handler)(private_xpc_channels_t *this, uint32_t ike_sa, - xpc_object_t request, xpc_object_t reply); -} commands[] = { - { "stop_connection", stop_connection }, -}; - -/** - * Handle a request message from App - */ -static void handle(private_xpc_channels_t *this, xpc_connection_t conn, - xpc_object_t request) -{ - xpc_object_t reply; - const char *type, *rpc; - bool found = FALSE; - uint32_t ike_sa; - int i; - - type = xpc_dictionary_get_string(request, "type"); - if (type) - { - if (streq(type, "rpc")) - { - reply = xpc_dictionary_create_reply(request); - rpc = xpc_dictionary_get_string(request, "rpc"); - ike_sa = find_ike_sa_by_conn(this, conn); - if (reply && rpc && ike_sa) - { - for (i = 0; i < countof(commands); i++) - { - if (streq(commands[i].name, rpc)) - { - found = TRUE; - commands[i].handler(this, ike_sa, request, reply); - break; - } - } - } - if (!found) - { - DBG1(DBG_CFG, "received invalid XPC rpc command: %s", rpc); - } - if (reply) - { - xpc_connection_send_message(conn, reply); - xpc_release(reply); - } - } - else - { - DBG1(DBG_CFG, "received unknown XPC message type: %s", type); - } - } - else - { - DBG1(DBG_CFG, "received XPC message without a type"); - } -} - -METHOD(xpc_channels_t, add, void, - private_xpc_channels_t *this, xpc_connection_t conn, uint32_t ike_sa) -{ - entry_t *entry; - - INIT(entry, - .conn = conn, - .sa = ike_sa, - .logger = xpc_logger_create(conn), - ); - - xpc_retain(entry->conn); - xpc_connection_set_event_handler(entry->conn, ^(xpc_object_t event) - { - if (event == XPC_ERROR_CONNECTION_INVALID || - event == XPC_ERROR_CONNECTION_INTERRUPTED) - { - remove_conn(this, conn); - } - else if (xpc_get_type(event) == XPC_TYPE_DICTIONARY) - { - handle(this, conn, event); - } - }); - - entry->logger->set_ike_sa(entry->logger, entry->sa); - charon->bus->add_logger(charon->bus, &entry->logger->logger); - - this->lock->write_lock(this->lock); - this->channels->put(this->channels, (void*)entry->sa, entry); - this->lock->unlock(this->lock); - - xpc_connection_resume(conn); -} - -METHOD(listener_t, alert, bool, - private_xpc_channels_t *this, ike_sa_t *ike_sa, alert_t alert, va_list args) -{ - const char *desc; - - switch (alert) - { - case ALERT_LOCAL_AUTH_FAILED: - desc = "local-auth"; - break; - case ALERT_PEER_AUTH_FAILED: - desc = "remote-auth"; - break; - case ALERT_PEER_ADDR_FAILED: - desc = "dns"; - break; - case ALERT_PEER_INIT_UNREACHABLE: - desc = "unreachable"; - break; - case ALERT_RETRANSMIT_SEND_TIMEOUT: - desc = "timeout"; - break; - case ALERT_PROPOSAL_MISMATCH_IKE: - case ALERT_PROPOSAL_MISMATCH_CHILD: - desc = "proposal-mismatch"; - break; - case ALERT_TS_MISMATCH: - desc = "ts-mismatch"; - break; - default: - return TRUE; - } - if (ike_sa) - { - entry_t *entry; - uintptr_t sa; - - sa = ike_sa->get_unique_id(ike_sa); - this->lock->read_lock(this->lock); - entry = this->channels->get(this->channels, (void*)sa); - if (entry) - { - xpc_object_t msg; - - msg = xpc_dictionary_create(NULL, NULL, 0); - xpc_dictionary_set_string(msg, "type", "event"); - xpc_dictionary_set_string(msg, "event", "alert"); - xpc_dictionary_set_string(msg, "alert", desc); - xpc_connection_send_message(entry->conn, msg); - xpc_release(msg); - } - this->lock->unlock(this->lock); - } - return TRUE; -} - -METHOD(listener_t, ike_rekey, bool, - private_xpc_channels_t *this, ike_sa_t *old, ike_sa_t *new) -{ - entry_t *entry; - uintptr_t sa; - - sa = old->get_unique_id(old); - this->lock->write_lock(this->lock); - entry = this->channels->remove(this->channels, (void*)sa); - if (entry) - { - entry->sa = new->get_unique_id(new); - entry->logger->set_ike_sa(entry->logger, entry->sa); - this->channels->put(this->channels, (void*)entry->sa, entry); - } - this->lock->unlock(this->lock); - - return TRUE; -} - -METHOD(listener_t, ike_state_change, bool, - private_xpc_channels_t *this, ike_sa_t *ike_sa, ike_sa_state_t state) -{ - if (state == IKE_CONNECTING) - { - entry_t *entry; - uintptr_t sa; - - sa = ike_sa->get_unique_id(ike_sa); - this->lock->read_lock(this->lock); - entry = this->channels->get(this->channels, (void*)sa); - if (entry) - { - xpc_object_t msg; - - msg = xpc_dictionary_create(NULL, NULL, 0); - xpc_dictionary_set_string(msg, "type", "event"); - xpc_dictionary_set_string(msg, "event", "connecting"); - xpc_connection_send_message(entry->conn, msg); - xpc_release(msg); - } - this->lock->unlock(this->lock); - } - return TRUE; -} - -METHOD(listener_t, child_updown, bool, - private_xpc_channels_t *this, ike_sa_t *ike_sa, - child_sa_t *child_sa, bool up) -{ - entry_t *entry; - uintptr_t sa; - - sa = ike_sa->get_unique_id(ike_sa); - this->lock->read_lock(this->lock); - entry = this->channels->get(this->channels, (void*)sa); - if (entry) - { - xpc_object_t msg; - linked_list_t *list; - char buf[256]; - - msg = xpc_dictionary_create(NULL, NULL, 0); - xpc_dictionary_set_string(msg, "type", "event"); - if (up) - { - xpc_dictionary_set_string(msg, "event", "child_up"); - } - else - { - xpc_dictionary_set_string(msg, "event", "child_down"); - } - - list = linked_list_create_from_enumerator( - child_sa->create_ts_enumerator(child_sa, TRUE)); - snprintf(buf, sizeof(buf), "%#R", list); - list->destroy(list); - xpc_dictionary_set_string(msg, "ts_local", buf); - - list = linked_list_create_from_enumerator( - child_sa->create_ts_enumerator(child_sa, FALSE)); - snprintf(buf, sizeof(buf), "%#R", list); - list->destroy(list); - xpc_dictionary_set_string(msg, "ts_remote", buf); - - xpc_connection_send_message(entry->conn, msg); - xpc_release(msg); - } - this->lock->unlock(this->lock); - return TRUE; -} - -METHOD(listener_t, ike_updown, bool, - private_xpc_channels_t *this, ike_sa_t *ike_sa, bool up) -{ - xpc_object_t msg; - entry_t *entry; - uintptr_t sa; - - sa = ike_sa->get_unique_id(ike_sa); - if (up) - { - this->lock->read_lock(this->lock); - entry = this->channels->get(this->channels, (void*)sa); - if (entry) - { - msg = xpc_dictionary_create(NULL, NULL, 0); - xpc_dictionary_set_string(msg, "type", "event"); - xpc_dictionary_set_string(msg, "event", "up"); - xpc_connection_send_message(entry->conn, msg); - xpc_release(msg); - } - this->lock->unlock(this->lock); - } - else - { - this->lock->write_lock(this->lock); - entry = this->channels->remove(this->channels, (void*)sa); - this->lock->unlock(this->lock); - if (entry) - { - msg = xpc_dictionary_create(NULL, NULL, 0); - xpc_dictionary_set_string(msg, "type", "event"); - xpc_dictionary_set_string(msg, "event", "down"); - xpc_connection_send_message(entry->conn, msg); - xpc_release(msg); - xpc_connection_send_barrier(entry->conn, ^() { - destroy_entry(entry); - }); - } - } - return TRUE; -} - -/** - * Query password from App using XPC channel - */ -static shared_key_t *query_password(xpc_connection_t conn, identification_t *id) -{ - char buf[128], *password; - xpc_object_t request, response; - shared_key_t *shared = NULL; - - request = xpc_dictionary_create(NULL, NULL, 0); - xpc_dictionary_set_string(request, "type", "rpc"); - xpc_dictionary_set_string(request, "rpc", "get_password"); - snprintf(buf, sizeof(buf), "%Y", id); - xpc_dictionary_set_string(request, "username", buf); - - response = xpc_connection_send_message_with_reply_sync(conn, request); - xpc_release(request); - if (xpc_get_type(response) == XPC_TYPE_DICTIONARY) - { - password = (char*)xpc_dictionary_get_string(response, "password"); - if (password) - { - shared = shared_key_create(SHARED_EAP, - chunk_clone(chunk_from_str(password))); - } - } - xpc_release(response); - return shared; -} - -/** - * Password query callback - */ -static shared_key_t* password_cb(private_xpc_channels_t *this, - shared_key_type_t type, - identification_t *me, identification_t *other, - id_match_t *match_me, id_match_t *match_other) -{ - shared_key_t *shared = NULL; - ike_sa_t *ike_sa; - entry_t *entry; - uint32_t sa; - - switch (type) - { - case SHARED_EAP: - break; - default: - return NULL; - } - ike_sa = charon->bus->get_sa(charon->bus); - if (ike_sa) - { - sa = ike_sa->get_unique_id(ike_sa); - this->lock->read_lock(this->lock); - entry = this->channels->get(this->channels, (void*)(uintptr_t)sa); - if (entry && !entry->passworded) - { - entry->passworded = TRUE; - - shared = query_password(entry->conn, me); - if (shared) - { - if (match_me) - { - *match_me = ID_MATCH_PERFECT; - } - if (match_other) - { - *match_other = ID_MATCH_PERFECT; - } - } - } - this->lock->unlock(this->lock); - } - return shared; -} - -METHOD(xpc_channels_t, destroy, void, - private_xpc_channels_t *this) -{ - lib->credmgr->remove_set(lib->credmgr, &this->creds->set); - this->creds->destroy(this->creds); - this->channels->destroy(this->channels); - this->lock->destroy(this->lock); - free(this); -} - -/** - * See header - */ -xpc_channels_t *xpc_channels_create() -{ - private_xpc_channels_t *this; - - INIT(this, - .public = { - .listener = { - .alert = _alert, - .ike_updown = _ike_updown, - .ike_rekey = _ike_rekey, - .ike_state_change = _ike_state_change, - .child_updown = _child_updown, - }, - .add = _add, - .destroy = _destroy, - }, - .channels = hashtable_create(hashtable_hash_ptr, - hashtable_equals_ptr, 4), - .lock = rwlock_create(RWLOCK_TYPE_DEFAULT), - ); - - this->creds = callback_cred_create_shared( - (callback_cred_shared_cb_t)password_cb, this); - lib->credmgr->add_set(lib->credmgr, &this->creds->set); - - return &this->public; -} diff --git a/src/frontends/osx/charon-xpc/xpc_channels.h b/src/frontends/osx/charon-xpc/xpc_channels.h deleted file mode 100644 index 73173bec0..000000000 --- a/src/frontends/osx/charon-xpc/xpc_channels.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright (C) 2013 Martin Willi - * - * Copyright (C) secunet Security Networks AG - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. See . - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - */ - -/** - * @defgroup xpc charon-xpc - * - * @defgroup xpc_channels xpc_channels - * @{ @ingroup xpc - */ - -#ifndef XPC_CHANNELS_H_ -#define XPC_CHANNELS_H_ - -#include - -#include - -typedef struct xpc_channels_t xpc_channels_t; - -/** - * XPC to App channel management. - */ -struct xpc_channels_t { - - /** - * Implements listener_t. - */ - listener_t listener; - - /** - * Associate an IKE_SA unique identifier to an XPC connection. - * - * @param conn XPC connection to channel - * @param ike_sa IKE_SA unique identifier to associate to connection - */ - void (*add)(xpc_channels_t *this, xpc_connection_t conn, uint32_t ike_sa); - - /** - * Destroy a xpc_channels_t. - */ - void (*destroy)(xpc_channels_t *this); -}; - -/** - * Create a xpc_channels instance. - */ -xpc_channels_t *xpc_channels_create(); - -#endif /** XPC_CHANNELS_H_ @}*/ diff --git a/src/frontends/osx/charon-xpc/xpc_dispatch.c b/src/frontends/osx/charon-xpc/xpc_dispatch.c deleted file mode 100644 index a24d8ab4c..000000000 --- a/src/frontends/osx/charon-xpc/xpc_dispatch.c +++ /dev/null @@ -1,362 +0,0 @@ -/* - * Copyright (C) 2013 Martin Willi - * - * Copyright (C) secunet Security Networks AG - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. See . - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - */ - -#include "xpc_dispatch.h" -#include "xpc_channels.h" - -#include -#include -#include - -#include -#include - -typedef struct private_xpc_dispatch_t private_xpc_dispatch_t; - -/** - * Private data of an xpc_dispatch_t object. - */ -struct private_xpc_dispatch_t { - - /** - * Public xpc_dispatch_t interface. - */ - xpc_dispatch_t public; - - /** - * XPC service we offer - */ - xpc_connection_t service; - - /** - * XPC IKE_SA specific channels to App - */ - xpc_channels_t *channels; - - /** - * GCD queue for XPC events - */ - dispatch_queue_t queue; - - /** - * Number of active App connections - */ - refcount_t refcount; - - /** - * PID of main thread - */ - pid_t pid; -}; - -/** - * Return version of this helper - */ -static void get_version(private_xpc_dispatch_t *this, - xpc_object_t request, xpc_object_t reply) -{ - xpc_dictionary_set_string(reply, "version", PACKAGE_VERSION); -} - -/** - * Create peer config with associated ike config - */ -static peer_cfg_t* create_peer_cfg(char *name, char *host) -{ - ike_cfg_t *ike_cfg; - peer_cfg_t *peer_cfg; - uint16_t local_port, remote_port = IKEV2_UDP_PORT; - ike_cfg_create_t ike = { - .version = IKEV2, - .local = "0.0.0.0", - .remote = host, - .remote_port = IKEV2_UDP_PORT, - .no_certreq = TRUE, - .fragmentation = FRAGMENTATION_YES, - }; - peer_cfg_create_t peer = { - .cert_policy = CERT_SEND_IF_ASKED, - .unique = UNIQUE_REPLACE, - .keyingtries = 1, - .rekey_time = 36000, /* 10h */ - .jitter_time = 600, /* 10min */ - .over_time = 600, /* 10min */ - .dpd = 30, - }; - - ike.local_port = charon->socket->get_port(charon->socket, FALSE); - if (ike.local_port != IKEV2_UDP_PORT) - { - ike.remote_port = IKEV2_NATT_PORT; - } - ike_cfg = ike_cfg_create(&ike); - ike_cfg->add_proposal(ike_cfg, proposal_create_default(PROTO_IKE)); - ike_cfg->add_proposal(ike_cfg, proposal_create_default_aead(PROTO_IKE)); - peer_cfg = peer_cfg_create(name, ike_cfg, &peer); - peer_cfg->add_virtual_ip(peer_cfg, host_create_from_string("0.0.0.0", 0)); - - return peer_cfg; -} - -/** - * Add a single auth cfg of given class to peer cfg - */ -static void add_auth_cfg(peer_cfg_t *peer_cfg, bool local, - char *id, auth_class_t class) -{ - auth_cfg_t *auth; - - auth = auth_cfg_create(); - auth->add(auth, AUTH_RULE_AUTH_CLASS, class); - auth->add(auth, AUTH_RULE_IDENTITY, identification_create_from_string(id)); - if (!local) - { - auth->add(auth, AUTH_RULE_IDENTITY_LOOSE, TRUE); - } - peer_cfg->add_auth_cfg(peer_cfg, auth, local); -} - -/** - * Attach child config to peer config - */ -static child_cfg_t* create_child_cfg(char *name) -{ - child_cfg_t *child_cfg; - traffic_selector_t *ts; - child_cfg_create_t child = { - .lifetime = { - .time = { - .life = 10800 /* 3h */, - .rekey = 10200 /* 2h50min */, - .jitter = 300 /* 5min */ - }, - }, - .mode = MODE_TUNNEL, - }; - - child_cfg = child_cfg_create(name, &child); - child_cfg->add_proposal(child_cfg, proposal_create_from_string(PROTO_ESP, - "aes128gcm8-aes128gcm12-aes128gcm16-" - "aes256gcm8-aes256gcm12-aes256gcm16")); - child_cfg->add_proposal(child_cfg, proposal_create_default_aead(PROTO_ESP)); - child_cfg->add_proposal(child_cfg, proposal_create_default(PROTO_ESP)); - ts = traffic_selector_create_dynamic(0, 0, 65535); - child_cfg->add_traffic_selector(child_cfg, TRUE, ts); - ts = traffic_selector_create_from_string(0, TS_IPV4_ADDR_RANGE, - "0.0.0.0", 0, "255.255.255.255", 65535); - child_cfg->add_traffic_selector(child_cfg, FALSE, ts); - - return child_cfg; -} - -/** - * Controller initiate callback - */ -static bool initiate_cb(uint32_t *sa, debug_t group, level_t level, - ike_sa_t *ike_sa, const char *message) -{ - if (ike_sa) - { - *sa = ike_sa->get_unique_id(ike_sa); - return FALSE; - } - return TRUE; -} - -/** - * Start initiating an IKE connection - */ -void start_connection(private_xpc_dispatch_t *this, - xpc_object_t request, xpc_object_t reply) -{ - peer_cfg_t *peer_cfg; - child_cfg_t *child_cfg; - char *name, *id, *host; - bool success = FALSE; - xpc_endpoint_t endpoint; - xpc_connection_t channel; - uint32_t ike_sa; - - name = (char*)xpc_dictionary_get_string(request, "name"); - host = (char*)xpc_dictionary_get_string(request, "host"); - id = (char*)xpc_dictionary_get_string(request, "id"); - endpoint = xpc_dictionary_get_value(request, "channel"); - channel = xpc_connection_create_from_endpoint(endpoint); - - if (name && id && host && channel) - { - peer_cfg = create_peer_cfg(name, host); - - add_auth_cfg(peer_cfg, TRUE, id, AUTH_CLASS_EAP); - add_auth_cfg(peer_cfg, FALSE, host, AUTH_CLASS_ANY); - - child_cfg = create_child_cfg(name); - peer_cfg->add_child_cfg(peer_cfg, child_cfg->get_ref(child_cfg)); - - if (charon->controller->initiate(charon->controller, peer_cfg, child_cfg, - (controller_cb_t)initiate_cb, &ike_sa, LEVEL_CTRL, 0, FALSE) == NEED_MORE) - { - this->channels->add(this->channels, channel, ike_sa); - success = TRUE; - } - } - - xpc_dictionary_set_bool(reply, "success", success); -} - -/** - * XPC RPC command dispatch table - */ -static struct { - char *name; - void (*handler)(private_xpc_dispatch_t *this, - xpc_object_t request, xpc_object_t reply); -} commands[] = { - { "get_version", get_version }, - { "start_connection", start_connection }, -}; - -/** - * Handle a received XPC request message - */ -static void handle(private_xpc_dispatch_t *this, xpc_object_t request) -{ - xpc_connection_t client; - xpc_object_t reply; - const char *type, *rpc; - bool found = FALSE; - int i; - - type = xpc_dictionary_get_string(request, "type"); - if (type) - { - if (streq(type, "rpc")) - { - reply = xpc_dictionary_create_reply(request); - rpc = xpc_dictionary_get_string(request, "rpc"); - if (reply && rpc) - { - for (i = 0; i < countof(commands); i++) - { - if (streq(commands[i].name, rpc)) - { - found = TRUE; - commands[i].handler(this, request, reply); - break; - } - } - } - if (!found) - { - DBG1(DBG_CFG, "received invalid XPC rpc command: %s", rpc); - } - if (reply) - { - client = xpc_dictionary_get_remote_connection(request); - xpc_connection_send_message(client, reply); - xpc_release(reply); - } - } - else - { - DBG1(DBG_CFG, "received unknown XPC message type: %s", type); - } - } - else - { - DBG1(DBG_CFG, "received XPC message without a type"); - } -} - -/** - * Finalizer for client connections - */ -static void cleanup_connection(private_xpc_dispatch_t *this) -{ - if (ref_put(&this->refcount)) - { - DBG1(DBG_CFG, "no XPC connections, raising SIGTERM"); - kill(this->pid, SIGTERM); - } -} - -/** - * Set up GCD handler for XPC events - */ -static void set_handler(private_xpc_dispatch_t *this) -{ - xpc_retain(this->service); - xpc_connection_set_event_handler(this->service, ^(xpc_object_t conn) - { - xpc_connection_set_event_handler(conn, ^(xpc_object_t event) - { - if (xpc_get_type(event) == XPC_TYPE_DICTIONARY) - { - handle(this, event); - } - }); - ref_get(&this->refcount); - xpc_connection_set_context(conn, this); - xpc_connection_set_finalizer_f(conn, (void*)cleanup_connection); - xpc_connection_resume(conn); - }); - xpc_connection_resume(this->service); -} - -METHOD(xpc_dispatch_t, destroy, void, - private_xpc_dispatch_t *this) -{ - charon->bus->remove_listener(charon->bus, &this->channels->listener); - this->channels->destroy(this->channels); - if (this->service) - { - xpc_connection_suspend(this->service); - xpc_release(this->service); - } - free(this); -} - -/** - * See header - */ -xpc_dispatch_t *xpc_dispatch_create() -{ - private_xpc_dispatch_t *this; - - INIT(this, - .public = { - .destroy = _destroy, - }, - .channels = xpc_channels_create(), - .queue = dispatch_queue_create("org.strongswan.charon-xpc.q", - DISPATCH_QUEUE_CONCURRENT), - .pid = getpid(), - ); - charon->bus->add_listener(charon->bus, &this->channels->listener); - - this->service = xpc_connection_create_mach_service( - "org.strongswan.charon-xpc", this->queue, - XPC_CONNECTION_MACH_SERVICE_LISTENER); - if (!this->service) - { - destroy(this); - return NULL; - } - - set_handler(this); - - return &this->public; -} diff --git a/src/frontends/osx/charon-xpc/xpc_dispatch.h b/src/frontends/osx/charon-xpc/xpc_dispatch.h deleted file mode 100644 index 219f5c0b0..000000000 --- a/src/frontends/osx/charon-xpc/xpc_dispatch.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (C) 2013 Martin Willi - * - * Copyright (C) secunet Security Networks AG - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. See . - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - */ - -/** - * @defgroup xpc_dispatch xpc_dispatch - * @{ @ingroup xpc - */ - -#ifndef XPC_DISPATCH_H_ -#define XPC_DISPATCH_H_ - -typedef struct xpc_dispatch_t xpc_dispatch_t; - -/** - * XPC dispatcher to control the daemon. - */ -struct xpc_dispatch_t { - - /** - * Destroy a xpc_dispatch_t. - */ - void (*destroy)(xpc_dispatch_t *this); -}; - -/** - * Create a xpc_dispatch instance. - */ -xpc_dispatch_t *xpc_dispatch_create(); - -#endif /** XPC_DISPATCH_H_ @}*/ diff --git a/src/frontends/osx/charon-xpc/xpc_logger.c b/src/frontends/osx/charon-xpc/xpc_logger.c deleted file mode 100644 index a6853a031..000000000 --- a/src/frontends/osx/charon-xpc/xpc_logger.c +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (C) 2013 Martin Willi - * - * Copyright (C) secunet Security Networks AG - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. See . - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - */ - -#include "xpc_logger.h" - -typedef struct private_xpc_logger_t private_xpc_logger_t; - -/** - * Private data of an xpc_logger_t object. - */ -struct private_xpc_logger_t { - - /** - * Public xpc_logger_t interface. - */ - xpc_logger_t public; - - /** - * XPC channel to send logging messages to - */ - xpc_connection_t conn; - - /** - * IKE_SA we log for - */ - uint32_t ike_sa; -}; - -METHOD(logger_t, log_, void, - private_xpc_logger_t *this, debug_t group, level_t level, int thread, - ike_sa_t* ike_sa, const char *message) -{ - if (ike_sa && ike_sa->get_unique_id(ike_sa) == this->ike_sa) - { - xpc_object_t msg; - - msg = xpc_dictionary_create(NULL, NULL, 0); - xpc_dictionary_set_string(msg, "type", "event"); - xpc_dictionary_set_string(msg, "event", "log"); - xpc_dictionary_set_string(msg, "message", message); - xpc_connection_send_message(this->conn, msg); - xpc_release(msg); - } -} - -METHOD(logger_t, get_level, level_t, - private_xpc_logger_t *this, debug_t group) -{ - return LEVEL_CTRL; -} - -METHOD(xpc_logger_t, set_ike_sa, void, - private_xpc_logger_t *this, uint32_t ike_sa) -{ - this->ike_sa = ike_sa; -} - -METHOD(xpc_logger_t, destroy, void, - private_xpc_logger_t *this) -{ - free(this); -} - -/** - * See header - */ -xpc_logger_t *xpc_logger_create(xpc_connection_t conn) -{ - private_xpc_logger_t *this; - - INIT(this, - .public = { - .logger = { - .log = _log_, - .get_level = _get_level, - }, - .set_ike_sa = _set_ike_sa, - .destroy = _destroy, - }, - .conn = conn, - ); - - return &this->public; -} diff --git a/src/frontends/osx/charon-xpc/xpc_logger.h b/src/frontends/osx/charon-xpc/xpc_logger.h deleted file mode 100644 index e0f97dfc5..000000000 --- a/src/frontends/osx/charon-xpc/xpc_logger.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright (C) 2013 Martin Willi - * - * Copyright (C) secunet Security Networks AG - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. See . - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - */ - -/** - * @defgroup xpc_logger xpc_logger - * @{ @ingroup xpc - */ - -#ifndef XPC_LOGGER_H_ -#define XPC_LOGGER_H_ - -#include - -#include - -typedef struct xpc_logger_t xpc_logger_t; - -/** - * Connection specific logger over XPC. - */ -struct xpc_logger_t { - - /** - * Implements logger_t. - */ - logger_t logger; - - /** - * Set the IKE_SA unique identifier this logger logs for. - * - * @param ike_sa IKE_SA unique identifier - */ - void (*set_ike_sa)(xpc_logger_t *this, uint32_t ike_sa); - - /** - * Destroy a xpc_logger_t. - */ - void (*destroy)(xpc_logger_t *this); -}; - -/** - * Create a xpc_logger instance. - * - * @param conn XPC connection to send logging events to - * @return XPC logger - */ -xpc_logger_t *xpc_logger_create(xpc_connection_t conn); - -#endif /** XPC_LOGGER_H_ @}*/ diff --git a/src/frontends/osx/strongSwan.xcodeproj/project.pbxproj b/src/frontends/osx/strongSwan.xcodeproj/project.pbxproj deleted file mode 100644 index 90e233598..000000000 --- a/src/frontends/osx/strongSwan.xcodeproj/project.pbxproj +++ /dev/null @@ -1,600 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 5B04A712174558F100A13BDC /* icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 5B04A711174558F100A13BDC /* icon.png */; }; - 5B04A7211747800F00A13BDC /* icon-alt.png in Resources */ = {isa = PBXBuildFile; fileRef = 5B04A7201747800F00A13BDC /* icon-alt.png */; }; - 5B313F9A17A93D590055C86A /* icon-large.icns in Resources */ = {isa = PBXBuildFile; fileRef = 5B313F9917A93D590055C86A /* icon-large.icns */; }; - 5B74989217311B200041971E /* xpc_channels.c in Sources */ = {isa = PBXBuildFile; fileRef = 5B74989117311B200041971E /* xpc_channels.c */; }; - 5B7498B8173275D10041971E /* xpc_logger.c in Sources */ = {isa = PBXBuildFile; fileRef = 5B7498B7173275D10041971E /* xpc_logger.c */; }; - 5B7FA5A11754D5DB00264BAC /* LogController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B7FA59F1754D5DB00264BAC /* LogController.m */; }; - 5B7FA5B01754EBC800264BAC /* ConnController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B7FA5AE1754EBC800264BAC /* ConnController.m */; }; - 5B7FA5B51754F5AF00264BAC /* PasswordController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B7FA5B31754F5AF00264BAC /* PasswordController.m */; }; - 5B8D879B1A40658B008E5702 /* Helper.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B8D879A1A40658B008E5702 /* Helper.m */; }; - 5B8D879C1A409E4D008E5702 /* LogWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5B8D879E1A409E4D008E5702 /* LogWindow.xib */; }; - 5B8D879F1A409E5A008E5702 /* ConnWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5B8D87A11A409E5A008E5702 /* ConnWindow.xib */; }; - 5B8D87A21A409E6D008E5702 /* PasswordWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5B8D87A41A409E6D008E5702 /* PasswordWindow.xib */; }; - 5BAE9E9A17A94A2600858FE2 /* icon-active.png in Resources */ = {isa = PBXBuildFile; fileRef = 5BAE9E9917A94A2500858FE2 /* icon-active.png */; }; - 5BD1CCB11726DB0100587077 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5BD1CCB01726DB0100587077 /* Cocoa.framework */; }; - 5BD1CCBB1726DB0100587077 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 5BD1CCB91726DB0100587077 /* InfoPlist.strings */; }; - 5BD1CCBD1726DB0100587077 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BD1CCBC1726DB0100587077 /* main.m */; }; - 5BD1CCC11726DB0100587077 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 5BD1CCBF1726DB0100587077 /* Credits.rtf */; }; - 5BD1CCC41726DB0100587077 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BD1CCC31726DB0100587077 /* AppDelegate.m */; }; - 5BD1CCC71726DB0200587077 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BD1CCC51726DB0200587077 /* MainMenu.xib */; }; - 5BD1CCD71726DB4000587077 /* charon-xpc.c in Sources */ = {isa = PBXBuildFile; fileRef = 5BD1CCD61726DB4000587077 /* charon-xpc.c */; }; - 5BD1CCDF1726DC0A00587077 /* org.strongswan.charon-xpc in Copy Files */ = {isa = PBXBuildFile; fileRef = 5BD1CCD11726DB4000587077 /* org.strongswan.charon-xpc */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; - 5BD1CCEB1727CCA400587077 /* README.md in Resources */ = {isa = PBXBuildFile; fileRef = 5BD1CCEA1727CCA400587077 /* README.md */; }; - 5BD1CCED1727D7AF00587077 /* ServiceManagement.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5BD1CCEC1727D7AF00587077 /* ServiceManagement.framework */; }; - 5BD1CCF31727DE3E00587077 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5BD1CCF21727DE3E00587077 /* Security.framework */; }; - 5BD1CCFB1729365F00587077 /* Control.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BD1CCFA1729365F00587077 /* Control.m */; }; - 5BF60F31173405A000E5D608 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5BD1CCD31726DB4000587077 /* CoreFoundation.framework */; }; - 5BF60F33173405AC00E5D608 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5BD1CCF21727DE3E00587077 /* Security.framework */; }; - 5BF60F3E1734070A00E5D608 /* xpc_dispatch.c in Sources */ = {isa = PBXBuildFile; fileRef = 5B74984C172AA3550041971E /* xpc_dispatch.c */; }; - 5BF60F631743C57500E5D608 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5BF60F621743C57500E5D608 /* SystemConfiguration.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 5BD1CCE81726E45200587077 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 5BD1CCA31726DB0100587077 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 5BD1CCD01726DB4000587077; - remoteInfo = "charon-xpc"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 5BD1CCDE1726DBF100587077 /* Copy Files */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 12; - dstPath = Contents/Library/LaunchServices; - dstSubfolderSpec = 1; - files = ( - 5BD1CCDF1726DC0A00587077 /* org.strongswan.charon-xpc in Copy Files */, - ); - name = "Copy Files"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 5B04A711174558F100A13BDC /* icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon.png; sourceTree = ""; }; - 5B04A7201747800F00A13BDC /* icon-alt.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-alt.png"; sourceTree = ""; }; - 5B313F9917A93D590055C86A /* icon-large.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = "icon-large.icns"; sourceTree = ""; }; - 5B74984C172AA3550041971E /* xpc_dispatch.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = xpc_dispatch.c; sourceTree = ""; }; - 5B74984E172AA3670041971E /* xpc_dispatch.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xpc_dispatch.h; sourceTree = ""; }; - 5B74989017311AFC0041971E /* xpc_channels.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xpc_channels.h; sourceTree = ""; }; - 5B74989117311B200041971E /* xpc_channels.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = xpc_channels.c; sourceTree = ""; }; - 5B7498B7173275D10041971E /* xpc_logger.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = xpc_logger.c; sourceTree = ""; }; - 5B7498B9173275DD0041971E /* xpc_logger.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xpc_logger.h; sourceTree = ""; }; - 5B7FA59E1754D5DB00264BAC /* LogController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LogController.h; sourceTree = ""; }; - 5B7FA59F1754D5DB00264BAC /* LogController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LogController.m; sourceTree = ""; }; - 5B7FA5AD1754EBC800264BAC /* ConnController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConnController.h; sourceTree = ""; }; - 5B7FA5AE1754EBC800264BAC /* ConnController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ConnController.m; sourceTree = ""; }; - 5B7FA5B21754F5AF00264BAC /* PasswordController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PasswordController.h; sourceTree = ""; }; - 5B7FA5B31754F5AF00264BAC /* PasswordController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PasswordController.m; sourceTree = ""; }; - 5B8D87991A406572008E5702 /* Helper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Helper.h; sourceTree = ""; }; - 5B8D879A1A40658B008E5702 /* Helper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Helper.m; sourceTree = ""; }; - 5B8D879D1A409E4D008E5702 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/LogWindow.xib; sourceTree = ""; }; - 5B8D87A01A409E5A008E5702 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/ConnWindow.xib; sourceTree = ""; }; - 5B8D87A31A409E6D008E5702 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/PasswordWindow.xib; sourceTree = ""; }; - 5BAE9E9917A94A2500858FE2 /* icon-active.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-active.png"; sourceTree = ""; }; - 5BD1CCAC1726DB0100587077 /* strongSwan.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = strongSwan.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 5BD1CCB01726DB0100587077 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; - 5BD1CCB81726DB0100587077 /* strongSwan-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "strongSwan-Info.plist"; sourceTree = ""; }; - 5BD1CCBA1726DB0100587077 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; - 5BD1CCBC1726DB0100587077 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 5BD1CCBE1726DB0100587077 /* strongSwan-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "strongSwan-Prefix.pch"; sourceTree = ""; }; - 5BD1CCC01726DB0100587077 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = en; path = en.lproj/Credits.rtf; sourceTree = ""; }; - 5BD1CCC21726DB0100587077 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; - 5BD1CCC31726DB0100587077 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - 5BD1CCC61726DB0200587077 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainMenu.xib; sourceTree = ""; }; - 5BD1CCD11726DB4000587077 /* org.strongswan.charon-xpc */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "org.strongswan.charon-xpc"; sourceTree = BUILT_PRODUCTS_DIR; }; - 5BD1CCD31726DB4000587077 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = System/Library/Frameworks/CoreFoundation.framework; sourceTree = SDKROOT; }; - 5BD1CCD61726DB4000587077 /* charon-xpc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "charon-xpc.c"; sourceTree = ""; }; - 5BD1CCE01726DCD000587077 /* charon-xpc-Launchd.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "charon-xpc-Launchd.plist"; sourceTree = ""; }; - 5BD1CCE11726DD9900587077 /* charon-xpc-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "charon-xpc-Info.plist"; sourceTree = ""; }; - 5BD1CCEA1727CCA400587077 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README.md; sourceTree = ""; }; - 5BD1CCEC1727D7AF00587077 /* ServiceManagement.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ServiceManagement.framework; path = System/Library/Frameworks/ServiceManagement.framework; sourceTree = SDKROOT; }; - 5BD1CCF21727DE3E00587077 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; - 5BD1CCF91729365F00587077 /* Control.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Control.h; sourceTree = ""; }; - 5BD1CCFA1729365F00587077 /* Control.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Control.m; sourceTree = ""; }; - 5BF60F621743C57500E5D608 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 5BD1CCA91726DB0100587077 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 5BD1CCF31727DE3E00587077 /* Security.framework in Frameworks */, - 5BD1CCED1727D7AF00587077 /* ServiceManagement.framework in Frameworks */, - 5BD1CCB11726DB0100587077 /* Cocoa.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 5BD1CCCE1726DB4000587077 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 5BF60F631743C57500E5D608 /* SystemConfiguration.framework in Frameworks */, - 5BF60F31173405A000E5D608 /* CoreFoundation.framework in Frameworks */, - 5BF60F33173405AC00E5D608 /* Security.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 5BD1CCA11726DB0100587077 = { - isa = PBXGroup; - children = ( - 5BD1CCEA1727CCA400587077 /* README.md */, - 5BD1CCB61726DB0100587077 /* strongSwan */, - 5BD1CCD51726DB4000587077 /* charon-xpc */, - 5BD1CCAF1726DB0100587077 /* Frameworks */, - 5BD1CCAD1726DB0100587077 /* Products */, - ); - sourceTree = ""; - }; - 5BD1CCAD1726DB0100587077 /* Products */ = { - isa = PBXGroup; - children = ( - 5BD1CCAC1726DB0100587077 /* strongSwan.app */, - 5BD1CCD11726DB4000587077 /* org.strongswan.charon-xpc */, - ); - name = Products; - sourceTree = ""; - }; - 5BD1CCAF1726DB0100587077 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 5BF60F621743C57500E5D608 /* SystemConfiguration.framework */, - 5BD1CCF21727DE3E00587077 /* Security.framework */, - 5BD1CCEC1727D7AF00587077 /* ServiceManagement.framework */, - 5BD1CCB01726DB0100587077 /* Cocoa.framework */, - 5BD1CCD31726DB4000587077 /* CoreFoundation.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 5BD1CCB61726DB0100587077 /* strongSwan */ = { - isa = PBXGroup; - children = ( - 5B04A711174558F100A13BDC /* icon.png */, - 5B04A7201747800F00A13BDC /* icon-alt.png */, - 5BAE9E9917A94A2500858FE2 /* icon-active.png */, - 5B313F9917A93D590055C86A /* icon-large.icns */, - 5BD1CCBF1726DB0100587077 /* Credits.rtf */, - 5BD1CCBE1726DB0100587077 /* strongSwan-Prefix.pch */, - 5BD1CCBC1726DB0100587077 /* main.m */, - 5BD1CCB91726DB0100587077 /* InfoPlist.strings */, - 5BD1CCB81726DB0100587077 /* strongSwan-Info.plist */, - 5BD1CCC21726DB0100587077 /* AppDelegate.h */, - 5BD1CCC31726DB0100587077 /* AppDelegate.m */, - 5B7FA59E1754D5DB00264BAC /* LogController.h */, - 5B7FA59F1754D5DB00264BAC /* LogController.m */, - 5B8D879E1A409E4D008E5702 /* LogWindow.xib */, - 5BD1CCC51726DB0200587077 /* MainMenu.xib */, - 5BD1CCF91729365F00587077 /* Control.h */, - 5BD1CCFA1729365F00587077 /* Control.m */, - 5B7FA5AD1754EBC800264BAC /* ConnController.h */, - 5B7FA5AE1754EBC800264BAC /* ConnController.m */, - 5B8D87A11A409E5A008E5702 /* ConnWindow.xib */, - 5B7FA5B21754F5AF00264BAC /* PasswordController.h */, - 5B7FA5B31754F5AF00264BAC /* PasswordController.m */, - 5B8D87A41A409E6D008E5702 /* PasswordWindow.xib */, - 5B8D87991A406572008E5702 /* Helper.h */, - 5B8D879A1A40658B008E5702 /* Helper.m */, - ); - path = strongSwan; - sourceTree = ""; - }; - 5BD1CCD51726DB4000587077 /* charon-xpc */ = { - isa = PBXGroup; - children = ( - 5BD1CCD61726DB4000587077 /* charon-xpc.c */, - 5BD1CCE01726DCD000587077 /* charon-xpc-Launchd.plist */, - 5BD1CCE11726DD9900587077 /* charon-xpc-Info.plist */, - 5B74984C172AA3550041971E /* xpc_dispatch.c */, - 5B74984E172AA3670041971E /* xpc_dispatch.h */, - 5B74989017311AFC0041971E /* xpc_channels.h */, - 5B74989117311B200041971E /* xpc_channels.c */, - 5B7498B7173275D10041971E /* xpc_logger.c */, - 5B7498B9173275DD0041971E /* xpc_logger.h */, - ); - path = "charon-xpc"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 5BD1CCAB1726DB0100587077 /* strongSwan */ = { - isa = PBXNativeTarget; - buildConfigurationList = 5BD1CCCA1726DB0200587077 /* Build configuration list for PBXNativeTarget "strongSwan" */; - buildPhases = ( - 5BD1CCA81726DB0100587077 /* Sources */, - 5BD1CCA91726DB0100587077 /* Frameworks */, - 5BD1CCAA1726DB0100587077 /* Resources */, - 5BD1CCDE1726DBF100587077 /* Copy Files */, - ); - buildRules = ( - ); - dependencies = ( - 5BD1CCE91726E45200587077 /* PBXTargetDependency */, - ); - name = strongSwan; - productName = strongSwan; - productReference = 5BD1CCAC1726DB0100587077 /* strongSwan.app */; - productType = "com.apple.product-type.application"; - }; - 5BD1CCD01726DB4000587077 /* charon-xpc */ = { - isa = PBXNativeTarget; - buildConfigurationList = 5BD1CCDA1726DB4000587077 /* Build configuration list for PBXNativeTarget "charon-xpc" */; - buildPhases = ( - 5BD1CCCD1726DB4000587077 /* Sources */, - 5BD1CCCE1726DB4000587077 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "charon-xpc"; - productName = "charon-xpc"; - productReference = 5BD1CCD11726DB4000587077 /* org.strongswan.charon-xpc */; - productType = "com.apple.product-type.tool"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 5BD1CCA31726DB0100587077 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0620; - ORGANIZATIONNAME = "revosec AG"; - }; - buildConfigurationList = 5BD1CCA61726DB0100587077 /* Build configuration list for PBXProject "strongSwan" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - ); - mainGroup = 5BD1CCA11726DB0100587077; - productRefGroup = 5BD1CCAD1726DB0100587077 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 5BD1CCAB1726DB0100587077 /* strongSwan */, - 5BD1CCD01726DB4000587077 /* charon-xpc */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 5BD1CCAA1726DB0100587077 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 5BD1CCBB1726DB0100587077 /* InfoPlist.strings in Resources */, - 5BD1CCC11726DB0100587077 /* Credits.rtf in Resources */, - 5BD1CCC71726DB0200587077 /* MainMenu.xib in Resources */, - 5BD1CCEB1727CCA400587077 /* README.md in Resources */, - 5B04A712174558F100A13BDC /* icon.png in Resources */, - 5B04A7211747800F00A13BDC /* icon-alt.png in Resources */, - 5B8D879C1A409E4D008E5702 /* LogWindow.xib in Resources */, - 5B8D879F1A409E5A008E5702 /* ConnWindow.xib in Resources */, - 5B8D87A21A409E6D008E5702 /* PasswordWindow.xib in Resources */, - 5B313F9A17A93D590055C86A /* icon-large.icns in Resources */, - 5BAE9E9A17A94A2600858FE2 /* icon-active.png in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 5BD1CCA81726DB0100587077 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 5BD1CCBD1726DB0100587077 /* main.m in Sources */, - 5BD1CCC41726DB0100587077 /* AppDelegate.m in Sources */, - 5BD1CCFB1729365F00587077 /* Control.m in Sources */, - 5B7FA5A11754D5DB00264BAC /* LogController.m in Sources */, - 5B8D879B1A40658B008E5702 /* Helper.m in Sources */, - 5B7FA5B01754EBC800264BAC /* ConnController.m in Sources */, - 5B7FA5B51754F5AF00264BAC /* PasswordController.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 5BD1CCCD1726DB4000587077 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 5BD1CCD71726DB4000587077 /* charon-xpc.c in Sources */, - 5B74989217311B200041971E /* xpc_channels.c in Sources */, - 5BF60F3E1734070A00E5D608 /* xpc_dispatch.c in Sources */, - 5B7498B8173275D10041971E /* xpc_logger.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 5BD1CCE91726E45200587077 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 5BD1CCD01726DB4000587077 /* charon-xpc */; - targetProxy = 5BD1CCE81726E45200587077 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 5B8D879E1A409E4D008E5702 /* LogWindow.xib */ = { - isa = PBXVariantGroup; - children = ( - 5B8D879D1A409E4D008E5702 /* en */, - ); - name = LogWindow.xib; - sourceTree = ""; - }; - 5B8D87A11A409E5A008E5702 /* ConnWindow.xib */ = { - isa = PBXVariantGroup; - children = ( - 5B8D87A01A409E5A008E5702 /* en */, - ); - name = ConnWindow.xib; - sourceTree = ""; - }; - 5B8D87A41A409E6D008E5702 /* PasswordWindow.xib */ = { - isa = PBXVariantGroup; - children = ( - 5B8D87A31A409E6D008E5702 /* en */, - ); - name = PasswordWindow.xib; - sourceTree = ""; - }; - 5BD1CCB91726DB0100587077 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 5BD1CCBA1726DB0100587077 /* en */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; - 5BD1CCBF1726DB0100587077 /* Credits.rtf */ = { - isa = PBXVariantGroup; - children = ( - 5BD1CCC01726DB0100587077 /* en */, - ); - name = Credits.rtf; - sourceTree = ""; - }; - 5BD1CCC51726DB0200587077 /* MainMenu.xib */ = { - isa = PBXVariantGroup; - children = ( - 5BD1CCC61726DB0200587077 /* en */, - ); - name = MainMenu.xib; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 5BD1CCC81726DB0200587077 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.7; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = macosx; - }; - name = Debug; - }; - 5BD1CCC91726DB0200587077 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.7; - SDKROOT = macosx; - }; - name = Release; - }; - 5BD1CCCB1726DB0200587077 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = "Developer ID Application"; - COMBINE_HIDPI_IMAGES = YES; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "strongSwan/strongSwan-Prefix.pch"; - INFOPLIST_FILE = "strongSwan/strongSwan-Info.plist"; - MACOSX_DEPLOYMENT_TARGET = 10.7; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE = ""; - SDKROOT = macosx; - WRAPPER_EXTENSION = app; - }; - name = Debug; - }; - 5BD1CCCC1726DB0200587077 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = "Developer ID Application"; - COMBINE_HIDPI_IMAGES = YES; - COPY_PHASE_STRIP = NO; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "strongSwan/strongSwan-Prefix.pch"; - INFOPLIST_FILE = "strongSwan/strongSwan-Info.plist"; - MACOSX_DEPLOYMENT_TARGET = 10.7; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE = ""; - SDKROOT = macosx; - WRAPPER_EXTENSION = app; - }; - name = Release; - }; - 5BD1CCDB1726DB4000587077 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = "Developer ID Application"; - GCC_WARN_64_TO_32_BIT_CONVERSION = NO; - GCC_WARN_ABOUT_POINTER_SIGNEDNESS = NO; - GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = NO; - HEADER_SEARCH_PATHS = ( - /usr/include, - ../../libstrongswan, - ../../libcharon, - ); - INFOPLIST_FILE = "charon-xpc/charon-xpc-Info.plist"; - INSTALL_PATH = /; - LIBRARY_SEARCH_PATHS = ( - /usr/lib, - ../../libstrongswan/.libs, - ../../libcharon/.libs, - ); - MACOSX_DEPLOYMENT_TARGET = 10.7; - OTHER_CFLAGS = ( - "-include", - ../../../config.h, - ); - OTHER_LDFLAGS = ( - "-lcrypto", - "-force_load", - ../../libstrongswan/.libs/libstrongswan.a, - "-force_load", - ../../libipsec/.libs/libipsec.a, - "-force_load", - ../../libcharon/.libs/libcharon.a, - "-sectcreate", - __TEXT, - __info_plist, - "charon-xpc/charon-xpc-Info.plist", - "-sectcreate", - __TEXT, - __launchd_plist, - "charon-xpc/charon-xpc-Launchd.plist", - ); - PRODUCT_NAME = "org.strongswan.charon-xpc"; - PROVISIONING_PROFILE = ""; - SDKROOT = macosx; - STRIP_STYLE = "non-global"; - }; - name = Debug; - }; - 5BD1CCDC1726DB4000587077 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = "Developer ID Application"; - COPY_PHASE_STRIP = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = NO; - GCC_WARN_ABOUT_POINTER_SIGNEDNESS = NO; - GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = NO; - HEADER_SEARCH_PATHS = ( - /usr/include, - ../../libstrongswan, - ../../libcharon, - ); - INFOPLIST_FILE = "charon-xpc/charon-xpc-Info.plist"; - INSTALL_PATH = /; - LIBRARY_SEARCH_PATHS = ( - /usr/lib, - ../../libstrongswan/.libs, - ../../libcharon/.libs, - ); - MACOSX_DEPLOYMENT_TARGET = 10.7; - OTHER_CFLAGS = ( - "-include", - ../../../config.h, - ); - OTHER_LDFLAGS = ( - "-lcrypto", - "-force_load", - ../../libstrongswan/.libs/libstrongswan.a, - "-force_load", - ../../libipsec/.libs/libipsec.a, - "-force_load", - ../../libcharon/.libs/libcharon.a, - "-sectcreate", - __TEXT, - __info_plist, - "charon-xpc/charon-xpc-Info.plist", - "-sectcreate", - __TEXT, - __launchd_plist, - "charon-xpc/charon-xpc-Launchd.plist", - ); - PRODUCT_NAME = "org.strongswan.charon-xpc"; - PROVISIONING_PROFILE = ""; - SDKROOT = macosx; - STRIP_STYLE = "non-global"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 5BD1CCA61726DB0100587077 /* Build configuration list for PBXProject "strongSwan" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 5BD1CCC81726DB0200587077 /* Debug */, - 5BD1CCC91726DB0200587077 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 5BD1CCCA1726DB0200587077 /* Build configuration list for PBXNativeTarget "strongSwan" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 5BD1CCCB1726DB0200587077 /* Debug */, - 5BD1CCCC1726DB0200587077 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 5BD1CCDA1726DB4000587077 /* Build configuration list for PBXNativeTarget "charon-xpc" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 5BD1CCDB1726DB4000587077 /* Debug */, - 5BD1CCDC1726DB4000587077 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 5BD1CCA31726DB0100587077 /* Project object */; -} diff --git a/src/frontends/osx/strongSwan/AppDelegate.h b/src/frontends/osx/strongSwan/AppDelegate.h deleted file mode 100644 index 15b6ecd86..000000000 --- a/src/frontends/osx/strongSwan/AppDelegate.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (C) 2013 Martin Willi - * - * Copyright (C) secunet Security Networks AG - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. See . - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - */ - -#import - -#import "Control.h" - -/** - * Main application delegate, controls the status menu - */ -@interface AppDelegate : NSObject { - - /** - * Status menu controlled - */ - IBOutlet NSMenu *statusMenu; -} - -/** - * Action to add a new connection - */ -- (IBAction)addConnection:(id)sender; - -@end diff --git a/src/frontends/osx/strongSwan/AppDelegate.m b/src/frontends/osx/strongSwan/AppDelegate.m deleted file mode 100644 index 8445f3794..000000000 --- a/src/frontends/osx/strongSwan/AppDelegate.m +++ /dev/null @@ -1,359 +0,0 @@ -/* - * Copyright (C) 2013 Martin Willi - * - * Copyright (C) secunet Security Networks AG - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. See . - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - */ - -#import "AppDelegate.h" -#import "Control.h" -#import "LogController.h" -#import "ConnController.h" -#import "PasswordController.h" - -@implementation AppDelegate { - NSStatusItem *statusItem; - NSImage *active; - NSImage *inactive; - NSInteger nonConnectionItemCount; - NSMutableArray *connections; - Control *control; - ConnController *editor; - PasswordController *password; -} - -- (void)change:(connectionState)state withConnection:(NSDictionary*)conn -{ - NSInteger idx; - NSMenuItem *item; - - idx = [statusMenu indexOfItemWithRepresentedObject:conn]; - if (idx != -1) - { - item = [statusMenu itemAtIndex:idx]; - - switch (state) { - case STATE_DOWN: - [item setState:NSOffState]; - [item setAction:@selector(doConnection:)]; - [[[item submenu] itemAtIndex:0] setAction:@selector(doConnection:)]; - [[[item submenu] itemAtIndex:0] setTitle:@"Connect"]; - [[[item submenu] itemAtIndex:1] setAction:@selector(editConnection:)]; - [[[item submenu] itemAtIndex:2] setAction:@selector(removeConnection:)]; - [self updateIcon]; - break; - case STATE_WORKING: - [item setState:NSMixedState]; - [item setAction:@selector(undoConnection:)]; - [[[item submenu] itemAtIndex:0] setAction:@selector(undoConnection:)]; - [[[item submenu] itemAtIndex:0] setTitle:@"Disconnect"]; - [[[item submenu] itemAtIndex:1] setAction:nil]; - [[[item submenu] itemAtIndex:2] setAction:nil]; - [self updateIcon]; - break; - case STATE_UP: - [item setState:NSOnState]; - [self updateIcon]; - break; - } - } -} - -- (NSString*)createPasswordWithConnection:(NSDictionary*)conn -{ - return [password query]; -} - -- (void)raise:(NSString*)alert withConnection:(NSDictionary*)conn -{ - NSAlert *popup; - NSString *text; - - text = [[NSString alloc] - initWithFormat:@"Establishing connection %@ failed:", - [conn objectForKey:@"name"]]; - popup = [[NSAlert alloc] init]; - [popup setMessageText:text]; - [popup setInformativeText:alert]; - [popup runModal]; - [text release]; - [popup release]; -} - -- (void)log:(NSString*)line withConnection:(NSDictionary*)conn -{ - [[self findLog:conn] appendLine:line]; -} - -- (IBAction)undoConnection:(id)sender -{ - NSDictionary *conn; - - conn = [sender representedObject]; - [control disconnect:conn]; -} - -- (IBAction)doConnection:(id)sender -{ - NSDictionary *conn; - - conn = [sender representedObject]; - [[self findLog:conn] clear]; - [control connect:conn]; -} - -- (IBAction)addConnection:(id)sender -{ - NSMutableDictionary *conn; - - conn = [editor createConnection]; - if (conn) - { - [connections insertObject:conn atIndex:[connections count]]; - [self saveConnections]; - } -} - -- (IBAction)editConnection:(id)sender -{ - NSMutableDictionary *conn; - - conn = [sender representedObject]; - if ([editor editConnection:conn]) - { - [self saveConnections]; - } -} - -- (IBAction)removeConnection:(id)sender -{ - NSDictionary *conn; - - conn = [sender representedObject]; - [connections removeObject:conn]; - [self saveConnections]; -} - -- (void)loadConnections -{ - NSUserDefaults *defaults; - NSArray *array; - - defaults = [NSUserDefaults standardUserDefaults]; - array = [defaults arrayForKey:@"connections"]; - if (array) - { - [array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { - if ([obj isKindOfClass:[NSDictionary class]]) - { - NSMutableDictionary *dict; - - dict = [obj mutableCopy]; - [connections insertObject:dict atIndex:[connections count]]; - [dict release]; - } - }]; - } - [defaults addObserver:self - forKeyPath:@"connections" - options:NSKeyValueObservingOptionNew - context:NULL]; -} - -- (void)saveConnections -{ - NSUserDefaults *defaults; - - defaults = [NSUserDefaults standardUserDefaults]; - [defaults setObject:connections forKey:@"connections"]; - [defaults synchronize]; -} - -- (void)viewLog:(id)sender -{ - [[sender representedObject] show]; -} - -- (LogController*)findLog:(NSDictionary *)connection -{ - NSInteger idx; - NSMenuItem *item; - - idx = [statusMenu indexOfItemWithRepresentedObject:connection]; - if (idx != -1) - { - item = [statusMenu itemAtIndex:idx]; - item = [[item submenu] itemAtIndex:3]; - return [item representedObject]; - } - return nil; -} - -- (void)addMenuItem:(NSDictionary *)connection -{ - NSString *name, *title; - NSMenuItem *item; - NSMenu *submenu; - LogController *ctl; - - name = [connection objectForKey:@"name"]; - if (name) { - /* create submenu first */ - submenu = [[NSMenu alloc] initWithTitle:@"submenu"]; - - item = [[NSMenuItem alloc] initWithTitle:@"Connect" - action:@selector(doConnection:) - keyEquivalent:@""]; - [item setTarget:self]; - [item setRepresentedObject:connection]; - [submenu insertItem:item atIndex:0]; - [item release]; - - item = [[NSMenuItem alloc] initWithTitle:@"Edit..." - action:@selector(editConnection:) - keyEquivalent:@""]; - [item setTarget:self]; - [item setRepresentedObject:connection]; - [submenu insertItem:item atIndex:1]; - [item release]; - - item = [[NSMenuItem alloc] initWithTitle:@"Remove" - action:@selector(removeConnection:) - keyEquivalent:@""]; - [item setTarget:self]; - [item setRepresentedObject:connection]; - [submenu insertItem:item atIndex:2]; - [item release]; - - item = [[NSMenuItem alloc] initWithTitle:@"View Log..." - action:@selector(viewLog:) - keyEquivalent:@""]; - [item setTarget:self]; - ctl = [[LogController alloc] initWithWindowNibName:@"LogWindow"]; - title = [NSString stringWithFormat: @"strongSwan Log: %@", name]; - [[ctl window] setTitle:title]; - [item setRepresentedObject:ctl]; - [ctl release]; - [submenu insertItem:item atIndex:3]; - [item release]; - - item = [[NSMenuItem alloc] initWithTitle:name - action:@selector(doConnection:) - keyEquivalent:@""]; - [item setTarget:self]; - [item setRepresentedObject:connection]; - [item setSubmenu:submenu]; - [submenu release]; - [statusMenu insertItem:item atIndex: - [statusMenu numberOfItems] - nonConnectionItemCount]; - [item release]; - } -} - -- (void)repopulateMenu -{ - while ([statusMenu numberOfItems] > nonConnectionItemCount) - { - [statusMenu removeItemAtIndex:0]; - } - [connections enumerateObjectsUsingBlock:^(id obj, NSUInteger index, BOOL *stop) { - if ([obj isKindOfClass:[NSDictionary class]]) { - [self addMenuItem:obj]; - } - }]; -} - -- (void)observeValueForKeyPath:(NSString *)keyPath - ofObject:(id)object change:(NSDictionary *)change - context:(void *)context -{ - [self repopulateMenu]; -} - -- (void)updateIcon -{ - NSMenuItem *item; - bool anyactive = FALSE; - int i; - - for (i = 0; i < [statusMenu numberOfItems] - nonConnectionItemCount; i++) - { - item = [statusMenu itemAtIndex:i]; - if ([item state] == NSOnState) - { - anyactive = TRUE; - break; - } - } - [statusItem setImage: anyactive ? active : inactive]; -} - -- (void)initializeMenu -{ - NSImage *icon; - NSString *path; - - statusItem = [[[NSStatusBar systemStatusBar] - statusItemWithLength:NSVariableStatusItemLength] retain]; - [statusItem setMenu:statusMenu]; - [statusItem setHighlightMode:YES]; - - path = [[NSBundle mainBundle] pathForResource:@"icon" ofType:@"png"]; - icon = [[NSImage alloc] initWithContentsOfFile:path]; - [statusItem setImage:icon]; - inactive = icon; - - path = [[NSBundle mainBundle] pathForResource:@"icon-active" ofType:@"png"]; - icon = [[NSImage alloc] initWithContentsOfFile:path]; - active = icon; - - path = [[NSBundle mainBundle] pathForResource:@"icon-alt" ofType:@"png"]; - icon = [[NSImage alloc] initWithContentsOfFile:path]; - [statusItem setAlternateImage:icon]; - [icon release]; - - nonConnectionItemCount = [statusMenu numberOfItems]; - - [self repopulateMenu]; -} - -- (void)applicationDidFinishLaunching:(NSNotification *)aNotification -{ - [self loadConnections]; - [self initializeMenu]; -} - -- (id)init -{ - self = [super init]; - control = [[Control alloc] initWithDelegate:self]; - connections = [[NSMutableArray alloc] init]; - editor = [[ConnController alloc] initWithWindowNibName:@"ConnWindow"]; - password = [[PasswordController alloc] initWithWindowNibName:@"PasswordWindow"]; - return self; -} - -- (void)dealloc -{ - NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; - [defaults removeObserver:self forKeyPath:@"connections"]; - [statusItem release]; - [active release]; - [inactive release]; - [connections release]; - [control release]; - [editor release]; - [password release]; - [super dealloc]; -} - -@end diff --git a/src/frontends/osx/strongSwan/ConnController.h b/src/frontends/osx/strongSwan/ConnController.h deleted file mode 100644 index b06f8725e..000000000 --- a/src/frontends/osx/strongSwan/ConnController.h +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright (C) 2013 Martin Willi - * - * Copyright (C) secunet Security Networks AG - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. See . - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - */ - -#import - -/** - * Controller for the Connection Editor window - */ -@interface ConnController : NSWindowController { - - /** - * Text field for the connection name - */ - IBOutlet NSTextField *name; - - /** - * Authentication method select control - */ - IBOutlet NSPopUpButton *auth; - - /** - * Server address of connection - */ - IBOutlet NSTextField *server; - - /** - * Username used for client authentication - */ - IBOutlet NSTextField *user; - - /** - * Confirmation button to save/create connection - */ - IBOutlet NSButton *ok; -} - -/** - * Save the currently edited connection - */ -- (IBAction)saveConnEditor:(id)sender; - -/** - * Cancel editing the current connection - */ -- (IBAction)cancelConnEditor:(id)sender; - -/** - * Open a dialog to create a new connection. - * - * @return dictionary with connection settings, retained - */ -- (NSMutableDictionary*)createConnection; - -/** - * Open a dialog to edit a connection - * - * @param conn dictionary with connection settings, gets updated - * @return TRUE if connection has been updated, FALSE if aborted - */ -- (bool)editConnection:(NSMutableDictionary*)conn; - -@end diff --git a/src/frontends/osx/strongSwan/ConnController.m b/src/frontends/osx/strongSwan/ConnController.m deleted file mode 100644 index ee742107f..000000000 --- a/src/frontends/osx/strongSwan/ConnController.m +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Copyright (C) 2013 Martin Willi - * - * Copyright (C) secunet Security Networks AG - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. See . - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - */ - -#import "ConnController.h" - -@interface ConnController () - -@end - -@implementation ConnController - -- (void)moveWindowToActiveSpace -{ - NSInteger behavior, old; - - /* seems that NSWindowCollectionBehaviorMoveToActiveSpace does not work - * when a window is opened a second time. Fix that by changing the - * behavior forth and back. */ - old = behavior = [[self window] collectionBehavior]; - behavior &= ~NSWindowCollectionBehaviorMoveToActiveSpace; - behavior |= NSWindowCollectionBehaviorCanJoinAllSpaces; - - [[self window] setCollectionBehavior: behavior]; - [[self window] setCollectionBehavior: old]; - - [NSApp activateIgnoringOtherApps:YES]; -} - -- (IBAction)saveConnEditor:(id)sender -{ - [NSApp stopModal]; -} - -- (IBAction)cancelConnEditor:(id)sender -{ - [NSApp abortModal]; -} - -- (NSMutableDictionary*)createConnection -{ - NSMutableDictionary *conn = nil; - - [[self window] setTitle:@"Add new connection"]; - [name setStringValue:@""]; - [server setStringValue:@""]; - [user setStringValue:@""]; - [ok setEnabled:FALSE]; - [self moveWindowToActiveSpace]; - if ([NSApp runModalForWindow: [self window]] == NSRunStoppedResponse) - { - conn = [NSMutableDictionary dictionaryWithObjectsAndKeys: - [name stringValue], @"name", - [server stringValue], @"server", - [user stringValue], @"username", - nil]; - } - [[self window] orderOut: self]; - return conn; -} - -- (bool)editConnection:(NSMutableDictionary*)conn -{ - bool edited = NO; - - [[self window] setTitle:@"Edit connection"]; - [name setStringValue:[conn objectForKey:@"name"]]; - [server setStringValue:[conn objectForKey:@"server"]]; - [user setStringValue:[conn objectForKey:@"username"]]; - [ok setEnabled:TRUE]; - [self moveWindowToActiveSpace]; - if ([NSApp runModalForWindow: [self window]] == NSRunStoppedResponse) - { - [conn setObject:[name stringValue] forKey:@"name"]; - [conn setObject:[server stringValue] forKey:@"server"]; - [conn setObject:[user stringValue] forKey:@"username"]; - edited = YES; - } - [[self window] orderOut: self]; - return edited; -} - -- (void)controlTextDidChange:(NSNotification *)notification -{ - [ok setEnabled: - [[name stringValue] length] && - [[server stringValue] length] && - [[user stringValue] length]]; -} - -@end diff --git a/src/frontends/osx/strongSwan/Control.h b/src/frontends/osx/strongSwan/Control.h deleted file mode 100644 index 2a3c765c4..000000000 --- a/src/frontends/osx/strongSwan/Control.h +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright (C) 2013 Martin Willi - * - * Copyright (C) secunet Security Networks AG - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. See . - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - */ - -#import - -/** - * State of a connection during connect. - */ -typedef enum { - /** The connection is currently down */ - STATE_DOWN, - /** The connection is getting established, the daemon is working */ - STATE_WORKING, - /** The connection has been established successfully */ - STATE_UP, -} connectionState; - -/** - * This protocol defines callback functions to invoke during connect. - */ -@protocol ControlDelegate - -/** - * The connection has changed its state - * - * @param state new connection state - * @param conn connection that changed its state - */ -- (void)change:(connectionState)state withConnection:(NSDictionary*)conn; - -/** - * A password is required for authentication - * - * @param conn connection a password is required for - * @return a retained password string - */ -- (NSString*)createPasswordWithConnection:(NSDictionary*)conn; - -/** - * Show an alert message to the user - * - * @param alert alert message string - * @param conn connection an error has occurred - */ -- (void)raise:(NSString*)alert withConnection:(NSDictionary*)conn; - -/** - * Log a line for a specific connection - * - * @param line log line string - * @param conn connection the line is logged for - */ -- (void)log:(NSString*)line withConnection:(NSDictionary*)conn; -@end - -/** - * Implements connection connect/disconnect operations using a GUI delegate. - */ -@interface Control : NSObject - -/** - * Try to establish a connection - * - * @param conn connection configuration to initiate - */ -- (void)connect:(NSDictionary*)conn; - -/** - * Disconnect a previously established connection - * - * @param conn connection configuration to terminate - */ -- (void)disconnect:(NSDictionary*)conn; - -/** - * Initiate the Control class using a delegate for GUI operations - * - * @param delegate delegate to invoke callbacks on during connect operation - * @return class instance - */ -- (id)initWithDelegate:(id)delegate; - -@end diff --git a/src/frontends/osx/strongSwan/Control.m b/src/frontends/osx/strongSwan/Control.m deleted file mode 100644 index bc2c43517..000000000 --- a/src/frontends/osx/strongSwan/Control.m +++ /dev/null @@ -1,259 +0,0 @@ -/* - * Copyright (C) 2013 Martin Willi - * - * Copyright (C) secunet Security Networks AG - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. See . - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - */ - -#import "Control.h" -#import "Helper.h" - -@implementation Control { - /* Provides the XPC main connection to the privileged helper */ - Helper *helper; - /* active connection specific XPC channels, indexed by connection name */ - NSDictionary *active; - /* delegate to invoke callbacks on */ - id del; -} - -- (NSString*)translateAlert:(const char*)alert -{ - if (strcmp(alert, "local-auth") == 0) - { - return @"Client authentication failed"; - } - if (strcmp(alert, "remote-auth") == 0) - { - return @"Server authentication failed"; - } - if (strcmp(alert, "dns") == 0) - { - return @"Resolving server hostname failed"; - } - if (strcmp(alert, "unreachable") == 0) - { - return @"Server is unreachable"; - } - if (strcmp(alert, "timeout") == 0) - { - return @"Server did not respond"; - } - if (strcmp(alert, "proposal-mismatch") == 0) - { - return @"No common cryptographic algorithms found"; - } - if (strcmp(alert, "ts-mismatch") == 0) - { - return @"No common traffic selectors found"; - } - return NULL; -} - -- (void)changeState:(connectionState)state withChannel:(xpc_connection_t)channel - andConn:(NSDictionary*)conn -{ - NSString *name; - - name = [conn objectForKey:@"name"]; - switch (state) - { - case STATE_WORKING: - xpc_dictionary_set_value(active, [name UTF8String], channel); - break; - case STATE_DOWN: - xpc_dictionary_set_value(active, [name UTF8String], NULL); - break; - case STATE_UP: - break; - } - dispatch_sync(dispatch_get_main_queue(), ^{ - [del change:state withConnection:conn]; - }); -} - -- (void)handleEvent:(xpc_object_t)request withChannel:(xpc_connection_t)channel - andConn:(NSDictionary*)conn -{ - xpc_connection_t client; - xpc_object_t reply; - const char *type, *rpc, *event; - client = xpc_dictionary_get_remote_connection(request); - type = xpc_dictionary_get_string(request, "type"); - if (type) - { - if (strcmp(type, "rpc") == 0) - { - reply = xpc_dictionary_create_reply(request); - rpc = xpc_dictionary_get_string(request, "rpc"); - if (rpc) - { - if (strcmp(rpc, "get_password") == 0) - { - __block NSString *password; - - dispatch_sync(dispatch_get_main_queue(), ^{ - password = [del createPasswordWithConnection:conn]; - }); - xpc_dictionary_set_string(reply, "password", - [password UTF8String]); - [password release]; - } - } - xpc_connection_send_message(client, reply); - xpc_release(reply); - } - if (strcmp(type, "event") == 0) - { - event = xpc_dictionary_get_string(request, "event"); - if (event) - { - if (strcmp(event, "log") == 0) - { - NSString *line; - - line = [[NSString alloc] initWithUTF8String: - xpc_dictionary_get_string(request, "message")]; - dispatch_async(dispatch_get_main_queue(), ^{ - [del log:line withConnection:conn]; - }); - [line release]; - } - if (strcmp(event, "alert") == 0) - { - NSString *msg; - const char *str; - - str = xpc_dictionary_get_string(request, "alert"); - if (str) - { - msg = [self translateAlert:str]; - if (msg) - { - dispatch_async(dispatch_get_main_queue(), ^{ - [del raise:msg withConnection:conn]; - }); - } - } - } - if (strcmp(event, "connecting") == 0) - { - [self changeState:STATE_WORKING withChannel:channel andConn:conn]; - } - if (strcmp(event, "up") == 0) - { - /* IKE_SA up */ - } - if (strcmp(event, "down") == 0) - { - [self changeState:STATE_DOWN withChannel:channel andConn:conn]; - } - if (strcmp(event, "child_up") == 0) - { - [self changeState:STATE_UP withChannel:channel andConn:conn]; - } - if (strcmp(event, "child_down") == 0) - { - [self changeState:STATE_DOWN withChannel:channel andConn:conn]; - } - } - } - } -} - -- (void)connect:(NSDictionary*)conn -{ - xpc_object_t request; - xpc_connection_t service, daemon; - NSString *name, *server, *username; - - name = [conn objectForKey:@"name"]; - server = [conn objectForKey:@"server"]; - username = [conn objectForKey:@"username"]; - - daemon = [helper getConnection]; - if (!daemon) - { - [del raise:[helper getError] withConnection:conn]; - } - - request = xpc_dictionary_create(NULL, NULL, 0); - xpc_dictionary_set_string(request, "type", "rpc"); - xpc_dictionary_set_string(request, "rpc", "start_connection"); - xpc_dictionary_set_string(request, "name", [name UTF8String]); - xpc_dictionary_set_string(request, "host", [server UTF8String]); - xpc_dictionary_set_string(request, "id", [username UTF8String]); - - service = xpc_connection_create(NULL, NULL); - xpc_connection_set_event_handler(service, ^(xpc_object_t channel) { - - xpc_connection_set_event_handler(channel, ^(xpc_object_t event) { - - if (event == XPC_ERROR_CONNECTION_INTERRUPTED || - event == XPC_ERROR_CONNECTION_INVALID) - { - xpc_dictionary_set_value(active, [name UTF8String], NULL); - dispatch_sync(dispatch_get_main_queue(), ^{ - [del change:STATE_DOWN withConnection:conn]; - }); - } - else - { - [self handleEvent:event withChannel:channel andConn:conn]; - } - }); - xpc_connection_resume(channel); - }); - - xpc_connection_resume(service); - xpc_dictionary_set_connection(request, "channel", xpc_retain(service)); - xpc_connection_send_message_with_reply(daemon, request, - dispatch_get_main_queue(), - ^(xpc_object_t reply) {}); - xpc_release(request); -} - -- (void)disconnect:(NSDictionary*)conn -{ - xpc_connection_t tunnel; - xpc_object_t request; - - tunnel = xpc_dictionary_get_value(active, - [[conn objectForKey:@"name"] UTF8String]); - if (tunnel) - { - request = xpc_dictionary_create(NULL, NULL, 0); - xpc_dictionary_set_string(request, "type", "rpc"); - xpc_dictionary_set_string(request, "rpc", "stop_connection"); - xpc_connection_send_message_with_reply(tunnel, request, - dispatch_get_main_queue(), - ^(xpc_object_t reply) {}); - xpc_release(request); - } -} - -- (void)dealloc -{ - xpc_release(active); - [super dealloc]; -} - -- (id)initWithDelegate:(id)delegate; -{ - self = [super init]; - helper = [[Helper alloc] init]; - active = xpc_dictionary_create(NULL, NULL, 0); - del = delegate; - return self; -} - -@end diff --git a/src/frontends/osx/strongSwan/Helper.h b/src/frontends/osx/strongSwan/Helper.h deleted file mode 100644 index 7225bbf5d..000000000 --- a/src/frontends/osx/strongSwan/Helper.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (C) 2013 Martin Willi - * - * Copyright (C) secunet Security Networks AG - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. See . - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - */ - -#import - -/** - * Privileged Helper abstraction. - * - * Manages the installation of the privileged helper charon-xpc binary - * using authorization, SMJobBless() installation using XPC and also - * checks the installed helper version. - */ -@interface Helper : NSObject - -/** - * Get the XPC connection singleton, installing helper if required - * - * @return XPC service connection, as a singleton - */ -- (xpc_connection_t)getConnection; - -/** - * Return an error string if if getConnection fails - * - * @return error string, unretained - */ -- (NSString*)getError; - -@end \ No newline at end of file diff --git a/src/frontends/osx/strongSwan/Helper.m b/src/frontends/osx/strongSwan/Helper.m deleted file mode 100644 index a1b75173a..000000000 --- a/src/frontends/osx/strongSwan/Helper.m +++ /dev/null @@ -1,224 +0,0 @@ -/* - * Copyright (C) 2013 Martin Willi - * - * Copyright (C) secunet Security Networks AG - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. See . - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - */ - -#import "Helper.h" - -#include -#include - -/* to check strongSwan version */ -#include "../../../../config.h" - -@implementation Helper { - /* XPC connection to the helper */ - xpc_connection_t helper; - /* authorization instance, if authorized */ - AuthorizationRef auth; - /* string of last error occurred */ - NSString* errmsg; -} - -- (void)setError:(NSString*)error -{ - if (errmsg) - { - [errmsg release]; - } - errmsg = error; -} - -- (bool)authorize -{ - AuthorizationItem item = { kSMRightBlessPrivilegedHelper, 0, NULL, 0 }; - AuthorizationRights rights = { 1, &item }; - OSStatus status; - - if (auth) - { - return TRUE; - } - status = AuthorizationCreate(&rights, kAuthorizationEmptyEnvironment, - kAuthorizationFlagDefaults | - kAuthorizationFlagInteractionAllowed | - kAuthorizationFlagExtendRights, &auth); - if (status == errAuthorizationSuccess) - { - return TRUE; - } - if (errmsg) - { - [errmsg release]; - } - [self setError:[NSString stringWithFormat:@"Authorization failed: %@", - SecCopyErrorMessageString(status, NULL)]]; - return FALSE; -} - -- (bool)manage:(CFStringRef)label bless:(bool)bless -{ - bool done; - CFErrorRef error; - - if (![self authorize]) - { - return FALSE; - } - if (bless) - { - done = SMJobBless(kSMDomainSystemLaunchd, label, auth, &error); - } - else - { - done = SMJobRemove(kSMDomainSystemLaunchd, label, auth, TRUE, &error); - } - if (!done) - { - [self setError: - [NSString stringWithFormat:@"Installing privileged helper failed: %@", - CFErrorCopyDescription(error)]]; - CFRelease(error); - } - return done; -} - -- (bool)make:(CFStringRef)label -{ - char str[128]; - - if (!CFStringGetCString(label, str, sizeof(str), kCFStringEncodingUTF8)) - { - [self setError:@"converting XPC service name failed"]; - return FALSE; - } - helper = xpc_connection_create_mach_service(str, NULL, - XPC_CONNECTION_MACH_SERVICE_PRIVILEGED); - if (!helper) - { - [self setError:@"creating XPC mach service failed"]; - return FALSE; - } - - xpc_connection_set_event_handler(helper, ^(xpc_object_t event) { - if (xpc_get_type(event) == XPC_TYPE_ERROR) - { - if (event == XPC_ERROR_CONNECTION_INTERRUPTED || - event == XPC_ERROR_CONNECTION_INVALID) - { - if (helper) - { - xpc_connection_cancel(helper); - helper = NULL; - } - } - } - }); - xpc_connection_resume(helper); - - return TRUE; -} - -- (bool)checkVersion -{ - xpc_object_t request, response; - bool match = FALSE; - - request = xpc_dictionary_create(NULL, NULL, 0); - xpc_dictionary_set_string(request, "type", "rpc"); - xpc_dictionary_set_string(request, "rpc", "get_version"); - - response = xpc_connection_send_message_with_reply_sync(helper, request); - xpc_release(request); - if (xpc_get_type(response) == XPC_TYPE_DICTIONARY) - { - match = strcmp(xpc_dictionary_get_string(response, "version"), - PACKAGE_VERSION) == 0; - } - xpc_release(response); - return match; -} - -- (bool)makeAndCheck:(CFStringRef)label -{ - if (![self make:label]) - { - return FALSE; - } - if ([self checkVersion]) - { - return TRUE; - } - xpc_connection_cancel(helper); - helper = NULL; - /* version outdated, uninstall old helper */ - [self manage:label bless:FALSE]; - return FALSE; -} - -- (bool)blessAndMake:(CFStringRef)label -{ -#ifdef DEBUG - /* always update helper when debugging */ - [self manage:label bless:FALSE]; - [self manage:label bless:TRUE]; -#endif - - if (![self makeAndCheck:label]) - { - if ([self manage:label bless:TRUE]) - { - [self makeAndCheck:label]; - } - } - return helper; -} - -- (xpc_connection_t)getConnection -{ - if (!helper) - { - [self blessAndMake:CFSTR("org.strongswan.charon-xpc")]; - } - return helper; -} - -- (NSString*)getError -{ - return errmsg; -} - -- (id)init -{ - self = [super init]; - return self; -} - -- (void)dealloc -{ - if (helper) - { - xpc_connection_cancel(helper); - } - if (auth) - { - AuthorizationFree(auth, kAuthorizationFlagDefaults); - } - if (errmsg) - { - [errmsg release]; - } - [super dealloc]; -} -@end diff --git a/src/frontends/osx/strongSwan/LogController.h b/src/frontends/osx/strongSwan/LogController.h deleted file mode 100644 index db2f82bd6..000000000 --- a/src/frontends/osx/strongSwan/LogController.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (C) 2013 Martin Willi - * - * Copyright (C) secunet Security Networks AG - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. See . - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - */ - -#import - -/** - * Controller for a connection specific log Window - */ -@interface LogController : NSWindowController { - /** - * Text field for the log entries - */ - IBOutlet NSTextView *textView; -} - -/** - * Show the log window on the active Desktop - */ -- (void)show; - -/** - * Append a new log line to the log - * - * @param line log line to append - */ -- (void)appendLine:(NSString*)line; - -/** - * Clear the log window - */ -- (void)clear; - -@end diff --git a/src/frontends/osx/strongSwan/LogController.m b/src/frontends/osx/strongSwan/LogController.m deleted file mode 100644 index b46cfb4fd..000000000 --- a/src/frontends/osx/strongSwan/LogController.m +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (C) 2013 Martin Willi - * - * Copyright (C) secunet Security Networks AG - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. See . - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - */ - -#import "LogController.h" - -@interface LogController () - -@end - -@implementation LogController - -- (void)appendLine:(NSString*)line -{ - NSAttributedString* attr; - - attr = [[NSAttributedString alloc] initWithString:line]; - [[textView textStorage] appendAttributedString:attr]; - [attr release]; - - attr = [[NSAttributedString alloc] initWithString:@"\n"]; - [[textView textStorage] appendAttributedString:attr]; - [attr release]; - - [textView scrollRangeToVisible:NSMakeRange([[textView string] length], 0)]; -} - -- (void)clear -{ - [textView setString:@""]; -} - -- (void)show -{ - [self showWindow:self]; - [[self window] makeKeyAndOrderFront:self]; - [[self window] orderFrontRegardless]; -} - -@end diff --git a/src/frontends/osx/strongSwan/PasswordController.h b/src/frontends/osx/strongSwan/PasswordController.h deleted file mode 100644 index ac01f1678..000000000 --- a/src/frontends/osx/strongSwan/PasswordController.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (C) 2013 Martin Willi - * - * Copyright (C) secunet Security Networks AG - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. See . - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - */ - -#import - -/** - * Controller for the EAP password dialog. - */ -@interface PasswordController : NSWindowController { - - /** - * Text field the user enters the password - */ - IBOutlet NSTextField *password; -} - -/** - * Action invoked when the user confirms the password entry - */ -- (IBAction)confirm: (id)sender; - -/** - * Query the user for a password by invoking the modal dialog. - * - * @return password string, retained - */ -- (NSString*)query; - -@end diff --git a/src/frontends/osx/strongSwan/PasswordController.m b/src/frontends/osx/strongSwan/PasswordController.m deleted file mode 100644 index b89bbae90..000000000 --- a/src/frontends/osx/strongSwan/PasswordController.m +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (C) 2013 Martin Willi - * - * Copyright (C) secunet Security Networks AG - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. See . - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - */ - -#import "PasswordController.h" - -@interface PasswordController () - -@end - -@implementation PasswordController - -- (void)moveWindowToActiveSpace -{ - NSInteger behavior, old; - - /* seems that NSWindowCollectionBehaviorMoveToActiveSpace does not work - * when a window is opened a second time. Fix that by changing the - * behavior forth and back. */ - old = behavior = [[self window] collectionBehavior]; - behavior &= ~NSWindowCollectionBehaviorMoveToActiveSpace; - behavior |= NSWindowCollectionBehaviorCanJoinAllSpaces; - - [[self window] setCollectionBehavior: behavior]; - [[self window] setCollectionBehavior: old]; - - [NSApp activateIgnoringOtherApps:YES]; -} - -- (IBAction)confirm:(id)sender -{ - [NSApp stopModal]; -} - -- (NSString *)query -{ - [password setStringValue:@""]; - [self moveWindowToActiveSpace]; - [NSApp runModalForWindow: [self window]]; - [[self window] orderOut: self]; - - return [[password stringValue] retain]; -} - -@end diff --git a/src/frontends/osx/strongSwan/en.lproj/ConnWindow.xib b/src/frontends/osx/strongSwan/en.lproj/ConnWindow.xib deleted file mode 100644 index 37c74b4aa..000000000 --- a/src/frontends/osx/strongSwan/en.lproj/ConnWindow.xib +++ /dev/null @@ -1,1469 +0,0 @@ - - - - 1080 - 12D78 - 2840 - 1187.37 - 626.00 - - com.apple.InterfaceBuilder.CocoaPlugin - 2840 - - - IBNSLayoutConstraint - NSButton - NSButtonCell - NSCustomObject - NSMenu - NSMenuItem - NSPopUpButton - NSPopUpButtonCell - NSTextField - NSTextFieldCell - NSView - NSWindowTemplate - - - com.apple.InterfaceBuilder.CocoaPlugin - - - PluginDependencyRecalculationVersion - - - - - ConnController - - - FirstResponder - - - NSApplication - - - 1 - 2 - {{121, 123}, {319, 191}} - 611845120 - Window - NSWindow - - - - - 256 - - - - 268 - {{223, 13}, {82, 32}} - - - _NS:9 - YES - - 67108864 - 134217728 - OK - - LucidaGrande - 13 - 1044 - - _NS:9 - - -2038284288 - 129 - - DQ - 200 - 25 - - NO - - - - 268 - {{141, 13}, {82, 32}} - - - - _NS:9 - YES - - 67108864 - 134217728 - Cancel - - _NS:9 - - -2038284288 - 129 - - Gw - 200 - 25 - - NO - - - - 268 - {{20, 154}, {162, 17}} - - - - _NS:1535 - YES - - 68157504 - 272630784 - Connection name: - - _NS:1535 - - - 6 - System - controlColor - - 3 - MC42NjY2NjY2NjY3AA - - - - 6 - System - controlTextColor - - 3 - MAA - - - - NO - - - - 268 - {{147, 151}, {152, 22}} - - - - _NS:9 - YES - - -1804599231 - 272630784 - - - _NS:9 - - YES - - 6 - System - textBackgroundColor - - 3 - MQA - - - - 6 - System - textColor - - - - NO - - - - 268 - {{20, 124}, {162, 17}} - - - - _NS:1535 - YES - - 68157504 - 272630784 - Authentication: - - _NS:1535 - - - - - NO - - - - 268 - {{145, 118}, {157, 26}} - - - - _NS:9 - YES - - -2076180416 - 2048 - - _NS:9 - - 109199360 - 129 - - - 400 - 75 - - - IKEv2 EAP - - 2147483647 - 1 - - NSImage - NSMenuCheckmark - - - NSImage - NSMenuMixedState - - _popUpItemAction: - - - YES - - OtherViews - - - - - - 1 - YES - YES - 2 - - NO - - - - 268 - {{20, 94}, {162, 17}} - - - - _NS:1535 - YES - - 68157504 - 272630784 - Server address: - - _NS:1535 - - - - - NO - - - - 268 - {{147, 91}, {152, 22}} - - - - _NS:9 - YES - - -1804599231 - 272630784 - - - _NS:9 - - YES - - - - NO - - - - 268 - {{20, 64}, {162, 17}} - - - - _NS:1535 - YES - - 68157504 - 272630784 - Username: - - _NS:1535 - - - - - NO - - - - 268 - {{147, 61}, {152, 22}} - - - - _NS:9 - YES - - -1804599231 - 272630784 - - - _NS:9 - - YES - - - - NO - - - {319, 191} - - - - _NS:20 - - {{0, 0}, {1366, 746}} - {10000000000000, 10000000000000} - 3 - 2 - YES - - - - - - - auth - - - - 58 - - - - name - - - - 60 - - - - ok - - - - 61 - - - - server - - - - 62 - - - - user - - - - 63 - - - - window - - - - 64 - - - - saveConnEditor: - - - - 65 - - - - cancelConnEditor: - - - - 66 - - - - delegate - - - - 69 - - - - delegate - - - - 68 - - - - delegate - - - - 67 - - - - - - 0 - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - -3 - - - Application - - - 5 - - - - - - connEditor - - - 6 - - - - - - - - - - - - - - - 3 - 0 - - 3 - 1 - - 20 - - 1000 - - 8 - 29 - 3 - - - - 5 - 0 - - 5 - 1 - - 23 - - 1000 - - 3 - 9 - 3 - - - - 6 - 0 - - 6 - 1 - - 0.0 - - 1000 - - 6 - 24 - 2 - - - - 5 - 0 - - 5 - 1 - - 0.0 - - 1000 - - 6 - 24 - 2 - - - - 10 - 0 - - 10 - 1 - - 0.0 - - 1000 - - 6 - 24 - 2 - - - - 6 - 0 - - 6 - 1 - - 0.0 - - 1000 - - 6 - 24 - 2 - - - - 5 - 0 - - 5 - 1 - - 0.0 - - 1000 - - 6 - 24 - 2 - - - - 6 - 0 - - 6 - 1 - - 0.0 - - 1000 - - 6 - 24 - 2 - - - - 5 - 0 - - 5 - 1 - - 0.0 - - 1000 - - 6 - 24 - 2 - - - - 10 - 0 - - 10 - 1 - - 0.0 - - 1000 - - 6 - 24 - 2 - - - - 6 - 0 - - 6 - 1 - - 20 - - 1000 - - 8 - 29 - 3 - - - - 5 - 0 - - 5 - 1 - - 0.0 - - 1000 - - 6 - 24 - 2 - - - - 3 - 0 - - 3 - 1 - - 49 - - 1000 - - 3 - 9 - 3 - - - - 11 - 0 - - 11 - 1 - - 0.0 - - 1000 - - 6 - 24 - 2 - - - - 6 - 0 - - 6 - 1 - - 20 - - 1000 - - 8 - 29 - 3 - - - - 5 - 0 - - 5 - 1 - - 0.0 - - 1000 - - 6 - 24 - 2 - - - - 3 - 0 - - 3 - 1 - - 78 - - 1000 - - 3 - 9 - 3 - - - - 6 - 0 - - 6 - 1 - - 20 - - 1000 - - 8 - 29 - 3 - - - - 10 - 0 - - 10 - 1 - - 0.0 - - 1000 - - 6 - 24 - 2 - - - - 3 - 0 - - 3 - 1 - - 108 - - 1000 - - 3 - 9 - 3 - - - - 6 - 0 - - 6 - 1 - - 20 - - 1000 - - 8 - 29 - 3 - - - - 5 - 0 - - 5 - 1 - - 0.0 - - 1000 - - 6 - 24 - 2 - - - - 5 - 0 - - 5 - 1 - - 0.0 - - 1000 - - 6 - 24 - 2 - - - - 4 - 0 - - 4 - 1 - - 20 - - 1000 - - 8 - 29 - 3 - - - - 6 - 0 - - 6 - 1 - - 20 - - 1000 - - 8 - 29 - 3 - - - - 4 - 0 - - 4 - 1 - - 20 - - 1000 - - 8 - 29 - 3 - - - - 5 - 0 - - 6 - 1 - - 12 - - 1000 - - 6 - 24 - 3 - - - - - - 7 - - - - - 7 - 0 - - 0 - 1 - - 70 - - 1000 - - 3 - 9 - 1 - - - - - okButton - - - 8 - - - - - - cancelButton - - - 9 - - - - - - typePopup - - - 10 - - - - - - userText - - - 11 - - - - - - userLabel - - - 12 - - - - - - serverText - - - 13 - - - - - - serverLabel - - - 14 - - - - - - typeLabel - - - 15 - - - - - - nameText - - - 16 - - - - - 7 - 0 - - 0 - 1 - - 156 - - 1000 - - 3 - 9 - 1 - - - - - nameLabel - - - 17 - - - - - 18 - - - - - 19 - - - - - 20 - - - - - 21 - - - - - 22 - - - - - 23 - - - - - 24 - - - - - 25 - - - - - 26 - - - - - 27 - - - - - 28 - - - - - 29 - - - - - 30 - - - - - 31 - - - - - 32 - - - - - 33 - - - - - 34 - - - - - 35 - - - - - 36 - - - - - 37 - - - - - 38 - - - - - 39 - - - - - 40 - - - - - 41 - - - - - 42 - - - - - 43 - - - - - 44 - - - - - 45 - - - - - 46 - - - - - 47 - - - - - 48 - - - - - 49 - - - - - 50 - - - - - 51 - - - - - 52 - - - - - - - - 53 - - - - - - - - 54 - - - - - 55 - - - - - 56 - - - - - 57 - - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - - - - - com.apple.InterfaceBuilder.CocoaPlugin - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - - - - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - - - - - 69 - - - - - ConnController - NSWindowController - - id - id - - - - cancelConnEditor: - id - - - saveConnEditor: - id - - - - NSPopUpButton - NSTextField - NSButton - NSTextField - NSTextField - - - - auth - NSPopUpButton - - - name - NSTextField - - - ok - NSButton - - - server - NSTextField - - - user - NSTextField - - - - IBProjectSource - ./Classes/ConnController.h - - - - NSLayoutConstraint - NSObject - - IBProjectSource - ./Classes/NSLayoutConstraint.h - - - - - 0 - IBCocoaFramework - YES - 3 - - {11, 11} - {10, 3} - - YES - - diff --git a/src/frontends/osx/strongSwan/en.lproj/Credits.rtf b/src/frontends/osx/strongSwan/en.lproj/Credits.rtf deleted file mode 100644 index 5684d78b9..000000000 --- a/src/frontends/osx/strongSwan/en.lproj/Credits.rtf +++ /dev/null @@ -1,32 +0,0 @@ -{\rtf1\ansi\ansicpg1252\cocoartf1265 -{\fonttbl\f0\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;\red0\green0\blue255;} -\paperw11900\paperh16840\viewkind1\viewscale96 -\deftab720 -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ri0 - -\f0\fs24 \cf0 Based on the strongSwan Open Source project:\ -\ - {\field{\*\fldinst{HYPERLINK "http://www.strongswan.org"}}{\fldrslt \cf2 \ul \ulc2 http://www.strongswan.org}}\ -\ -The App and the -\i charon-xpc -\i0 privileged helper tool are licensed under the {\field{\*\fldinst{HYPERLINK "http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt"}}{\fldrslt \cf2 \ul \ulc2 General Public License Version 2}}. The strongSwan source code is available for download at:\ -\ - {\field{\*\fldinst{HYPERLINK "http://download.strongswan.org/"}}{\fldrslt \cf2 \ul \ulc2 http://download.strongswan.org/}}\ -\ -The App and the -\i charon-xpc -\i0 helper sources are not part of the main strongSwan distribution, but available separately under:\ -\ - {\field{\*\fldinst{HYPERLINK "http://download.strongswan.org/osx/"}}{\fldrslt \cf2 \ul \ulc2 http://download.strongswan.org/osx/}}\ -\ -The -\i osx-sources -\i0 tarball should get extracted into the strongSwan sources root directory. The -\i README.md -\i0 in -\i src/frontends/osx -\i0 has more information about building -\i charon-xpc -\i0 and the App.} \ No newline at end of file diff --git a/src/frontends/osx/strongSwan/en.lproj/InfoPlist.strings b/src/frontends/osx/strongSwan/en.lproj/InfoPlist.strings deleted file mode 100644 index b92732c79..000000000 --- a/src/frontends/osx/strongSwan/en.lproj/InfoPlist.strings +++ /dev/null @@ -1 +0,0 @@ -/* Localized versions of Info.plist keys */ diff --git a/src/frontends/osx/strongSwan/en.lproj/LogWindow.xib b/src/frontends/osx/strongSwan/en.lproj/LogWindow.xib deleted file mode 100644 index 4c326185d..000000000 --- a/src/frontends/osx/strongSwan/en.lproj/LogWindow.xib +++ /dev/null @@ -1,587 +0,0 @@ - - - - 1080 - 12D78 - 2840 - 1187.37 - 626.00 - - com.apple.InterfaceBuilder.CocoaPlugin - 2840 - - - IBNSLayoutConstraint - NSCustomObject - NSScrollView - NSScroller - NSTextView - NSView - NSWindowTemplate - - - com.apple.InterfaceBuilder.CocoaPlugin - - - PluginDependencyRecalculationVersion - - - - - LogController - - - FirstResponder - - - NSApplication - - - 15 - 2 - {{121, 123}, {547, 312}} - 611845120 - Window - NSWindow - - - - - 256 - - - - 256 - - - - 2304 - - - - 2322 - {525, 286} - - - - _NS:13 - - - - - - - - - - - - 166 - - - - 525 - 1 - - - 10593 - 0 - - - 3 - MQA - - - - 6 - System - selectedTextBackgroundColor - - 3 - MC42NjY2NjY2NjY3AA - - - - 6 - System - selectedTextColor - - 3 - MAA - - - - - - - 1 - MCAwIDEAA - - - {8, -8} - 13 - - - - - 4 - - 1 - - - 1 - - 6 - {548, 10000000} - - - - {{1, 1}, {525, 286}} - - - - _NS:11 - - - - {4, 5} - - 12582912 - - - - - - TU0AKgAAEAj///8A////qwAAAP8AAAD/AwMD/BYWFtIFBQVuAAAABv///wD///8E6+vrTGhoaLYtLS3p -BAQE/QAAAP8AAAD/////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///+rAAAA/wAAAP8AAAD/AAAA/wAAAP8EBATSX19fK9HR0ZciIiLv -AAAA/wAAAP8AAAD/AAAA/wAAAP////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///8A////AP///wD///8A////CsPDw0CRkZG1FxcX9AAAAP8bGxvr -ICAg8AAAAP8ICAjlFRUVVQAAAA////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wrm5uab -FxcX9AAAAP8AAAD/AQEB3wAAAA////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///zaXl5fGAAAA/wAAAP8AAABR////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////CO7u7q8AAAD/AAAA/wAAAAz///8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///8A////qwAAAP8AAAD/////AP///wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///8A////AP///wD///+rAAAA/wAAAP////8A////AP///wD///8A -////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///6sAAAD/AAAA/////wD///8A -////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////qwAAAP8AAAD/ -////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///+r -AAAA/wAAAP////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///6sAAAD/AAAA/////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////qwAAAP8AAAD/////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///+rAAAA/wAAAP////8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///8A////AP///6sAAAD/AAAA/////wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///8A////AP///wD///8A////qwAAAP8AAAD/////AP///wD///8A -////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///8A////AP///wD///8A////qwAAAP8AAAD/AAAA/wAAAP8AAAD/ -AAAA/////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///+rAAAA/wAAAP8AAAD/ -AAAA/wAAAP8AAAD/////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////qwAAAP8AAAD/////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///+rAAAA/wAAAP////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////AP///6sAAAD/AAAA/////wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///8A////qwAAAP8AAAD/////AP///wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///8A////AP///wD///+rAAAA/wAAAP////8A////AP///wD///8A -////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///6sAAAD/AAAA/////wD///8A -////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////qwAAAP8AAAD/ -////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///+r -AAAA/wAAAP////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////CO7u7q8AAAD/AAAA/wAAAAz///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///80mpqaxQAAAP8AAAD/AAAATv///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////CuXl5ZYeHh7xAAAA/wAAAP8CAgLXAAAAD////wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////EKurq0mOjo63FxcX9AAAAP8bGxvrICAg8AAAAP8ICAjlHh4eXAAAABj///8A -////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////qwAAAP8AAAD/AAAA/wAAAP8AAAD/BAQE1V9fXyvS0tKZICAg8AAAAP8AAAD/ -AAAA/wAAAP8AAAD/////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///+rAAAA/wAAAP8AAAD/FBQU1AUFBXEAAAAG////AP///wTr6+tO -ZWVluC4uLuoAAAD/AAAA/wAAAP////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///8AABABAAADAAAAAQAgAAABAQADAAAAAQAgAAABAgADAAAABAAA -EM4BAwADAAAAAQABAAABBgADAAAAAQACAAABEQAEAAAAAQAAAAgBEgADAAAAAQABAAABFQADAAAAAQAE -AAABFgADAAAAAQAgAAABFwAEAAAAAQAAEAABGgAFAAAAAQAAENYBGwAFAAAAAQAAEN4BHAADAAAAAQAB -AAABKAADAAAAAQACAAABUgADAAAAAQACAAABUwADAAAABAAAEOYAAAAAAAgACAAIAAgSAAAAACAAABIA -AAAAIAAAAAEAAQABAAE - - - - - - - - TU0AKgAABAj///9VQ0ND/wAAAP////8A////AP///6pDQ0P/AAAA/////wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///+qAAAA/////6oAAAD/////AP///wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///8A////AP///6oAAAD/////AP///wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///8A////AP///wD///+qAAAA/////wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///8A////AP///wD///8A////qgAAAP////8A////AP///wD///8A -////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///6oAAAD/////AP///wD///8A -////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///+qAAAA/////wD///8A -////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////qgAAAP////8A -////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////qgAAAP8AAAD/ -AAAA/////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///+q -AAAA/////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////qgAAAP////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///6oAAAD/////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///+qAAAA/////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////qgAAAP////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////qgAAAP////+qAAAA/////wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///9VQ0ND/wAAAP////8A////AP///6pDQ0P/AAAA/////wD///8A////AP///wD///8A -////AP///wD///8AAA4BAAADAAAAAQAQAAABAQADAAAAAQAQAAABAgADAAAABAAABLYBAwADAAAAAQAB -AAABBgADAAAAAQACAAABEQAEAAAAAQAAAAgBEgADAAAAAQABAAABFQADAAAAAQAEAAABFgADAAAAAQAQ -AAABFwAEAAAAAQAABAABHAADAAAAAQABAAABUgADAAAAAQACAAABUwADAAAABAAABL6HcwAHAAAHqAAA -BMYAAAAAAAgACAAIAAgAAQABAAEAAQAAB6hhcHBsAiAAAG1udHJSR0IgWFlaIAfZAAIAGQALABoAC2Fj -c3BBUFBMAAAAAGFwcGwAAAAAAAAAAAAAAAAAAAAAAAD21gABAAAAANMtYXBwbAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC2Rlc2MAAAEIAAAAb2RzY20AAAF4AAAFbGNw -cnQAAAbkAAAAOHd0cHQAAAccAAAAFHJYWVoAAAcwAAAAFGdYWVoAAAdEAAAAFGJYWVoAAAdYAAAAFHJU -UkMAAAdsAAAADmNoYWQAAAd8AAAALGJUUkMAAAdsAAAADmdUUkMAAAdsAAAADmRlc2MAAAAAAAAAFEdl -bmVyaWMgUkdCIFByb2ZpbGUAAAAAAAAAAAAAABRHZW5lcmljIFJHQiBQcm9maWxlAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtbHVjAAAAAAAAAB4AAAAMc2tTSwAA -ACgAAAF4aHJIUgAAACgAAAGgY2FFUwAAACQAAAHIcHRCUgAAACYAAAHsdWtVQQAAACoAAAISZnJGVQAA -ACgAAAI8emhUVwAAABYAAAJkaXRJVAAAACgAAAJ6bmJOTwAAACYAAAKia29LUgAAABYAAALIY3NDWgAA -ACIAAALeaGVJTAAAAB4AAAMAZGVERQAAACwAAAMeaHVIVQAAACgAAANKc3ZTRQAAACYAAAKiemhDTgAA -ABYAAANyamFKUAAAABoAAAOIcm9STwAAACQAAAOiZWxHUgAAACIAAAPGcHRQTwAAACYAAAPobmxOTAAA -ACgAAAQOZXNFUwAAACYAAAPodGhUSAAAACQAAAQ2dHJUUgAAACIAAARaZmlGSQAAACgAAAR8cGxQTAAA -ACwAAASkcnVSVQAAACIAAATQYXJFRwAAACYAAATyZW5VUwAAACYAAAUYZGFESwAAAC4AAAU+AFYBYQBl -AG8AYgBlAGMAbgD9ACAAUgBHAEIAIABwAHIAbwBmAGkAbABHAGUAbgBlAHIAaQENAGsAaQAgAFIARwBC -ACAAcAByAG8AZgBpAGwAUABlAHIAZgBpAGwAIABSAEcAQgAgAGcAZQBuAOgAcgBpAGMAUABlAHIAZgBp -AGwAIABSAEcAQgAgAEcAZQBuAOkAcgBpAGMAbwQXBDAEMwQwBDsETAQ9BDgEOQAgBD8EQAQ+BEQEMAQ5 -BDsAIABSAEcAQgBQAHIAbwBmAGkAbAAgAGcA6QBuAOkAcgBpAHEAdQBlACAAUgBWAEKQGnUoACAAUgBH -AEIAIIJyX2ljz4/wAFAAcgBvAGYAaQBsAG8AIABSAEcAQgAgAGcAZQBuAGUAcgBpAGMAbwBHAGUAbgBl -AHIAaQBzAGsAIABSAEcAQgAtAHAAcgBvAGYAaQBsx3y8GAAgAFIARwBCACDVBLhc0wzHfABPAGIAZQBj -AG4A/QAgAFIARwBCACAAcAByAG8AZgBpAGwF5AXoBdUF5AXZBdwAIABSAEcAQgAgBdsF3AXcBdkAQQBs -AGwAZwBlAG0AZQBpAG4AZQBzACAAUgBHAEIALQBQAHIAbwBmAGkAbADBAGwAdABhAGwA4QBuAG8AcwAg -AFIARwBCACAAcAByAG8AZgBpAGxmbpAaACAAUgBHAEIAIGPPj/Blh072TgCCLAAgAFIARwBCACAw1zDt -MNUwoTCkMOsAUAByAG8AZgBpAGwAIABSAEcAQgAgAGcAZQBuAGUAcgBpAGMDkwO1A70DuQO6A8wAIAPA -A8EDvwPGA68DuwAgAFIARwBCAFAAZQByAGYAaQBsACAAUgBHAEIAIABnAGUAbgDpAHIAaQBjAG8AQQBs -AGcAZQBtAGUAZQBuACAAUgBHAEIALQBwAHIAbwBmAGkAZQBsDkIOGw4jDkQOHw4lDkwAIABSAEcAQgAg -DhcOMQ5IDicORA4bAEcAZQBuAGUAbAAgAFIARwBCACAAUAByAG8AZgBpAGwAaQBZAGwAZQBpAG4AZQBu -ACAAUgBHAEIALQBwAHIAbwBmAGkAaQBsAGkAVQBuAGkAdwBlAHIAcwBhAGwAbgB5ACAAcAByAG8AZgBp -AGwAIABSAEcAQgQeBDEESQQ4BDkAIAQ/BEAEPgREBDgEOwRMACAAUgBHAEIGRQZEBkEAIAYqBjkGMQZK -BkEAIABSAEcAQgAgBicGRAY5BicGRQBHAGUAbgBlAHIAaQBjACAAUgBHAEIAIABQAHIAbwBmAGkAbABl -AEcAZQBuAGUAcgBlAGwAIABSAEcAQgAtAGIAZQBzAGsAcgBpAHYAZQBsAHMAZXRleHQAAAAAQ29weXJp -Z2h0IDIwMDcgQXBwbGUgSW5jLiwgYWxsIHJpZ2h0cyByZXNlcnZlZC4AWFlaIAAAAAAAAPNSAAEAAAAB -Fs9YWVogAAAAAAAAdE0AAD3uAAAD0FhZWiAAAAAAAABadQAArHMAABc0WFlaIAAAAAAAACgaAAAVnwAA -uDZjdXJ2AAAAAAAAAAEBzQAAc2YzMgAAAAAAAQxCAAAF3v//8yYAAAeSAAD9kf//+6L///2jAAAD3AAA -wGw - - - - - - 3 - MCAwAA - - - - 4 - - - - 256 - {{510, 1}, {16, 286}} - - - _NS:83 - NO - - _doScroller: - 1 - 0.85256409645080566 - - - - 256 - {{1, 271}, {525, 16}} - - - - _NS:33 - NO - 1 - - _doScroller: - 1 - 0.94565218687057495 - - - {{10, 10}, {527, 288}} - - - - _NS:9 - 133170 - - - - 0.25 - 4 - 1 - - - {547, 312} - - - - _NS:20 - - {{0, 0}, {1366, 746}} - {10000000000000, 10000000000000} - YES - - - - - - - textView - - - - 15 - - - - window - - - - 16 - - - - - - 0 - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - -3 - - - Application - - - 5 - - - - - - logWindow - - - 6 - - - - - - 9 - 0 - - 9 - 1 - - 0.0 - - 1000 - - 5 - 22 - 2 - - - - 3 - 0 - - 3 - 1 - - 14 - - 1000 - - 3 - 9 - 3 - - - - 4 - 0 - - 4 - 1 - - 10 - - 1000 - - 3 - 9 - 3 - - - - 6 - 0 - - 6 - 1 - - 10 - - 1000 - - 9 - 40 - 3 - - - - - - 7 - - - - - - - - logView - - - 12 - - - - - 13 - - - - - 14 - - - - - 45 - - - - - 47 - - - - - 48 - - - - - 49 - - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - - - - - 49 - - - - - LogController - NSWindowController - - textView - NSTextView - - - textView - - textView - NSTextView - - - - IBProjectSource - ./Classes/LogController.h - - - - - 0 - IBCocoaFramework - YES - 3 - YES - - diff --git a/src/frontends/osx/strongSwan/en.lproj/MainMenu.xib b/src/frontends/osx/strongSwan/en.lproj/MainMenu.xib deleted file mode 100644 index c7cce11e6..000000000 --- a/src/frontends/osx/strongSwan/en.lproj/MainMenu.xib +++ /dev/null @@ -1,277 +0,0 @@ - - - - 1080 - 12D78 - 2840 - 1187.37 - 626.00 - - com.apple.InterfaceBuilder.CocoaPlugin - 2840 - - - NSCustomObject - NSMenu - NSMenuItem - - - com.apple.InterfaceBuilder.CocoaPlugin - - - PluginDependencyRecalculationVersion - - - - - NSApplication - - - FirstResponder - - - NSApplication - - - - - - - YES - YES - - - 2147483647 - - NSImage - NSMenuCheckmark - - - NSImage - NSMenuMixedState - - - - - Add connection... - - 2147483647 - - - - - - About - - 2147483647 - - - - - - Quit - - 2147483647 - - - - - - - AppDelegate - - - NSFontManager - - - - - - - terminate: - - - - 559 - - - - orderFrontStandardAboutPanel: - - - - 560 - - - - delegate - - - - 495 - - - - statusMenu - - - - 550 - - - - addConnection: - - - - 561 - - - - - - 0 - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - -3 - - - Application - - - 420 - - - - - 494 - - - - - 536 - - - - - - - - - statusMenu - - - 538 - - - quitItem - - - 547 - - - aboutItem - - - 557 - - - connSeparator - - - 558 - - - addItem - - - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - - - 780 - - - - - AppDelegate - NSObject - - id - id - - - - addConnection: - id - - - confirmPassword: - id - - - - NSTextField - NSWindow - NSMenu - - - - password - NSTextField - - - passwordDialog - NSWindow - - - statusMenu - NSMenu - - - - IBProjectSource - ./Classes/AppDelegate.h - - - - - 0 - IBCocoaFramework - YES - 3 - - {11, 11} - {10, 3} - - YES - - diff --git a/src/frontends/osx/strongSwan/en.lproj/PasswordWindow.xib b/src/frontends/osx/strongSwan/en.lproj/PasswordWindow.xib deleted file mode 100644 index 1f4434348..000000000 --- a/src/frontends/osx/strongSwan/en.lproj/PasswordWindow.xib +++ /dev/null @@ -1,578 +0,0 @@ - - - - 1070 - 14B25 - 6254 - 1343.16 - 755.00 - - com.apple.InterfaceBuilder.CocoaPlugin - 6254 - - - IBNSLayoutConstraint - NSButton - NSButtonCell - NSCustomObject - NSSecureTextField - NSSecureTextFieldCell - NSTextField - NSTextFieldCell - NSView - NSWindowTemplate - - - com.apple.InterfaceBuilder.CocoaPlugin - - - PluginDependencyRecalculationVersion - - - - - PasswordController - - - FirstResponder - - - NSApplication - - - 1 - 2 - {{121, 123}, {246, 91}} - 611845120 - Password required - NSWindow - - - - - 256 - - - - 268 - {{98, 51}, {128, 22}} - - - - _NS:9 - YES - - 342884416 - 272630848 - - - YES - 13 - 1044 - - _NS:9 - - YES - - 6 - System - textBackgroundColor - - 3 - MQA - - - - 6 - System - textColor - - 3 - MAA - - - - NSAllRomanInputSourcesLocaleIdentifier - - - NO - 1 - - - - 268 - {{21, 54}, {69, 17}} - - - - _NS:1535 - YES - - 68157504 - 272630784 - Password: - - _NS:1535 - - - 6 - System - controlColor - - 3 - MC42NjY2NjY2NjY3AA - - - - 6 - System - controlTextColor - - - - NO - 1 - - - - 268 - {{144, 13}, {88, 32}} - - - _NS:9 - YES - - 67108864 - 134217728 - OK - - _NS:9 - - -2038284288 - 129 - - DQ - 200 - 25 - - NO - - - {246, 91} - - - - _NS:20 - - {{0, 0}, {1366, 745}} - {10000000000000, 10000000000000} - 2 - YES - - - - - - - password - - - - 21 - - - - window - - - - 22 - - - - confirm: - - - - 23 - - - - - - 0 - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - -3 - - - Application - - - 5 - - - - - - passwordDialog - - - 6 - - - - - - - - 5 - 0 - - 5 - 1 - 1 - - 23 - - 1000 - - 3 - 9 - 3 - NO - - - - 3 - 0 - - 3 - 1 - 1 - - 20 - - 1000 - - 0 - 29 - 3 - NO - - - - 10 - 0 - - 10 - 1 - 1 - - 0.0 - - 1000 - - 6 - 24 - 2 - NO - - - - 6 - 0 - - 6 - 1 - 1 - - 20 - - 1000 - - 0 - 29 - 3 - NO - - - - 6 - 0 - - 6 - 1 - 1 - - 20 - - 1000 - - 0 - 29 - 3 - NO - - - - 4 - 0 - - 4 - 1 - 1 - - 20 - - 1000 - - 0 - 29 - 3 - NO - - - - - - 7 - - - - - 7 - 0 - - 0 - 1 - 1 - - 76 - - 1000 - - 3 - 9 - 1 - NO - - - - - - - 8 - - - - - 7 - 0 - - 0 - 1 - 1 - - 128 - - 1000 - - 3 - 9 - 1 - NO - - - - - - - 9 - - - - - - - - 10 - - - - - 11 - - - - - 12 - - - - - 13 - - - - - 14 - - - - - 15 - - - - - 16 - - - - - 17 - - - - - 18 - - - - - 19 - - - - - 20 - - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - - - - - com.apple.InterfaceBuilder.CocoaPlugin - - - - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - - - - - 23 - - - - - PasswordController - NSWindowController - - confirm: - id - - - confirm: - - confirm: - id - - - - password - NSTextField - - - password - - password - NSTextField - - - - IBProjectSource - ../strongSwan/PasswordController.h - - - - PasswordController - - confirm: - id - - - confirm: - - confirm: - id - - - - IBProjectSource - ../strongSwan/PasswordController.m - - - - - 0 - IBCocoaFramework - NO - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - - - YES - 3 - YES - - diff --git a/src/frontends/osx/strongSwan/icon-active.png b/src/frontends/osx/strongSwan/icon-active.png deleted file mode 100644 index e470b083b..000000000 Binary files a/src/frontends/osx/strongSwan/icon-active.png and /dev/null differ diff --git a/src/frontends/osx/strongSwan/icon-alt.png b/src/frontends/osx/strongSwan/icon-alt.png deleted file mode 100644 index 997652a16..000000000 Binary files a/src/frontends/osx/strongSwan/icon-alt.png and /dev/null differ diff --git a/src/frontends/osx/strongSwan/icon-large.icns b/src/frontends/osx/strongSwan/icon-large.icns deleted file mode 100644 index 209ff2170..000000000 Binary files a/src/frontends/osx/strongSwan/icon-large.icns and /dev/null differ diff --git a/src/frontends/osx/strongSwan/icon.png b/src/frontends/osx/strongSwan/icon.png deleted file mode 100644 index 07be18ecf..000000000 Binary files a/src/frontends/osx/strongSwan/icon.png and /dev/null differ diff --git a/src/frontends/osx/strongSwan/main.m b/src/frontends/osx/strongSwan/main.m deleted file mode 100644 index 1aaade879..000000000 --- a/src/frontends/osx/strongSwan/main.m +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (C) 2013 Martin Willi - * - * Copyright (C) secunet Security Networks AG - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. See . - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - */ - -#import - -int main(int argc, char *argv[]) -{ - return NSApplicationMain(argc, (const char **)argv); -} diff --git a/src/frontends/osx/strongSwan/strongSwan-Info.plist b/src/frontends/osx/strongSwan/strongSwan-Info.plist deleted file mode 100644 index d0c268612..000000000 --- a/src/frontends/osx/strongSwan/strongSwan-Info.plist +++ /dev/null @@ -1,43 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIconFile - icon-large.icns - CFBundleIdentifier - org.strongswan.osx - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - strongSwan OS X App - CFBundlePackageType - APPL - CFBundleShortVersionString - 5.3.2 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSApplicationCategoryType - public.app-category.utilities - LSMinimumSystemVersion - ${MACOSX_DEPLOYMENT_TARGET} - LSUIElement - - NSHumanReadableCopyright - Copyright © 2013 revosec AG. All rights reserved. - NSMainNibFile - MainMenu - NSPrincipalClass - NSApplication - SMPrivilegedExecutables - - org.strongswan.charon-xpc - identifier "org.strongswan.charon-xpc" and certificate leaf[subject.CN] = "Developer ID Application: revosec AG (SRXT3TB2PY)" - - - diff --git a/src/frontends/osx/strongSwan/strongSwan-Prefix.pch b/src/frontends/osx/strongSwan/strongSwan-Prefix.pch deleted file mode 100644 index 93e0dd127..000000000 --- a/src/frontends/osx/strongSwan/strongSwan-Prefix.pch +++ /dev/null @@ -1,7 +0,0 @@ -// -// Prefix header for all source files of the 'strongSwan' target in the 'strongSwan' project -// - -#ifdef __OBJC__ - #import -#endif