SILC_TASK_CALLBACK(silc_server_protocol_key_exchange);
SILC_TASK_CALLBACK(silc_server_protocol_rekey);
-extern char *silc_version_string;
-
/*
* Key Exhange protocol functions
*/
{
SilcUnknownEntry conn_data;
SilcIDListData idata;
+ const char *cname = silc_cipher_get_name(cipher);
SILC_LOG_DEBUG(("Setting new keys into use"));
idata = (SilcIDListData)conn_data;
/* Allocate cipher to be used in the communication */
- if (!silc_cipher_alloc(cipher->cipher->name, &idata->send_key)) {
+ if (!silc_cipher_alloc((char *)cname, &idata->send_key)) {
silc_free(conn_data);
- SILC_LOG_ERROR(("Cannot allocate algorithm: %s", cipher->cipher->name));
+ SILC_LOG_ERROR(("Cannot allocate algorithm: %s", cname));
return FALSE;
}
- if (!silc_cipher_alloc(cipher->cipher->name, &idata->receive_key)) {
+ if (!silc_cipher_alloc((char *)cname, &idata->receive_key)) {
silc_free(conn_data);
- SILC_LOG_ERROR(("Cannot allocate algorithm: %s", cipher->cipher->name));
+ SILC_LOG_ERROR(("Cannot allocate algorithm: %s", cname));
return FALSE;
}
SILC_LOG_INFO(("%s (%s) security properties: %s %s %s %s",
sock->hostname, sock->ip,
- idata->send_key->cipher->name,
+ silc_cipher_get_name(idata->send_key),
(char *)silc_hmac_get_name(idata->hmac_send),
silc_hash_get_name(idata->hash),
ske->prop->flags & SILC_SKE_SP_FLAG_PFS ? "PFS" : ""));
ske->start_payload_copy->len),
SILC_STR_END);
- *auth_data = silc_calloc(silc_pkcs_get_key_len(pkcs), sizeof(**auth_data));
+ *auth_data = silc_calloc((silc_pkcs_get_key_len(pkcs) / 8) + 1,
+ sizeof(**auth_data));
if (silc_pkcs_sign_with_hash(pkcs, ske->prop->hash, auth->data,
auth->len, *auth_data, auth_data_len)) {
silc_buffer_free(auth);