-Sat May 19 13:46:36 EEST 2007 Pekka Riikonen <priikone@silcnet.org>
+Sat May 19 14:46:36 EEST 2007 Pekka Riikonen <priikone@silcnet.org>
+
+ * Fixed passphrase authentication with server. Affected file
+ is lib/silcclient/client_connect.c.
+
+ * Fixed passphrase authentication as responder. Affected file is
+ lib/silcske/silcconnauth.c.
+
+ * Changed SilcAskPassphrase and SilcGetAuthMeth callbacks to
+ return data as const. Affected file is
+ lib/silcclient/silcclient.h.
* Fixed timeout calculation in Symbian scheduler. Affected
file is lib/silcutil/symbian/silcsymbianscheduler.c.
o Connection auth request. (***DONE)
- o Password auth test, public key auth test. (***TESTING NEEDED)
+ o Password auth test, public key auth test. (***DONE)
o Starting key exchange directly, rewrite. (***DONE)
/* Callback called by application to return authentication data */
static void silc_client_connect_auth_method(SilcAuthMethod auth_meth,
- void *auth, SilcUInt32 auth_len,
+ const void *auth,
+ SilcUInt32 auth_len,
void *context)
{
SilcFSMThread fsm = context;
SilcClientConnection conn = silc_fsm_get_context(fsm);
conn->internal->params.auth_method = auth_meth;
- conn->internal->params.auth = auth;
+ if (auth_meth == SILC_AUTH_PASSWORD)
+ conn->internal->params.auth = silc_memdup(auth, auth_len);
+ else
+ conn->internal->params.auth = (void *)auth;
conn->internal->params.auth_len = auth_len;
SILC_FSM_CALL_CONTINUE(fsm);
silc_ske_free(conn->internal->ske);
conn->internal->ske = NULL;
+ if (!conn->internal->params.auth_set &&
+ conn->internal->params.auth_method == SILC_AUTH_PASSWORD &&
+ conn->internal->params.auth) {
+ silc_free(conn->internal->params.auth);
+ conn->internal->params.auth = NULL;
+ }
+
if (conn->internal->disconnected) {
/** Disconnected */
silc_fsm_next(fsm, silc_client_st_connect_error);