To allow application to better target the public key verification request
add support to have the client or server entry associated with the request
inside SilcClientConnection context.
verify->context = ake;
ake->verify = verify;
verify->context = ake;
ake->verify = verify;
+ conn->context_type = SILC_ID_CLIENT;
+ conn->client_entry = client_entry;
+
/* Verify public key in application */
client->internal->ops->verify_public_key(
client, conn,
SILC_CONN_CLIENT, ake->public_key,
silc_client_autoneg_key_verify_pubkey_cb,
verify);
/* Verify public key in application */
client->internal->ops->verify_public_key(
client, conn,
SILC_CONN_CLIENT, ake->public_key,
silc_client_autoneg_key_verify_pubkey_cb,
verify);
+
+ conn->context_type = SILC_ID_NONE;
}
/* Key exchange protocol completion callback */
}
/* Key exchange protocol completion callback */
void *callback_context; /* Connection context */
SilcClient client; /* Pointer back to SilcClient */
void *callback_context; /* Connection context */
SilcClient client; /* Pointer back to SilcClient */
- /* Current say() operation associated context, identifies the client,
- channel or server the message is related to. Application can use
- this information to target the message better. */
+ /* Current say() or verify_public_key() operation associated context,
+ identifies the client, channel or server the operation is related to.
+ Application can use this information to target the operation better. */
union {
SilcClientEntry client_entry;
SilcChannelEntry channel_entry;
union {
SilcClientEntry client_entry;
SilcChannelEntry channel_entry;
The application can for example filter the message according the
type. The variable argument list is arguments to the formatted
message `msg'. A SilcClientEntry, SilcChannelEntry or SilcServerEntry
The application can for example filter the message according the
type. The variable argument list is arguments to the formatted
message `msg'. A SilcClientEntry, SilcChannelEntry or SilcServerEntry
- can be associated with the message inside the `conn' by the library,
- and application may use it to better target the message. */
+ can be associated with the message inside the SilcClientConnection
+ by the library, and application may use it to better target the
+ message. */
void (*say)(SilcClient client, SilcClientConnection conn,
SilcClientMessageType type, char *msg, ...);
void (*say)(SilcClient client, SilcClientConnection conn,
SilcClientMessageType type, char *msg, ...);
entity (server or client) has sent the public key. If user decides to
trust the key the application may save the key as trusted public key for
later use. The `completion' must be called after the public key has
entity (server or client) has sent the public key. If user decides to
trust the key the application may save the key as trusted public key for
later use. The `completion' must be called after the public key has
+ been verified. A SilcClientEntry or SilcServerEntry can be associated
+ with this request inside the SilcClientConnection by the library, and
+ application may use it to better target the verification request. */
void (*verify_public_key)(SilcClient client, SilcClientConnection conn,
SilcConnectionType conn_type,
SilcPublicKey public_key,
void (*verify_public_key)(SilcClient client, SilcClientConnection conn,
SilcConnectionType conn_type,
SilcPublicKey public_key,