version 1.44, 2002/02/11 16:10:15 |
version 1.45, 2002/02/14 23:41:01 |
|
|
char *name = match_list(client, server, NULL); |
char *name = match_list(client, server, NULL); |
if (name == NULL) |
if (name == NULL) |
fatal("no matching cipher found: client %s server %s", client, server); |
fatal("no matching cipher found: client %s server %s", client, server); |
enc->cipher = cipher_by_name(name); |
if ((enc->cipher = cipher_by_name(name)) == NULL) |
if (enc->cipher == NULL) |
|
fatal("matching cipher is not supported: %s", name); |
fatal("matching cipher is not supported: %s", name); |
enc->name = name; |
enc->name = name; |
enc->enabled = 0; |
enc->enabled = 0; |
enc->iv = NULL; |
enc->iv = NULL; |
enc->key = NULL; |
enc->key = NULL; |
|
enc->key_len = cipher_keylen(enc->cipher); |
|
enc->block_size = cipher_blocksize(enc->cipher); |
} |
} |
static void |
static void |
choose_mac(Mac *mac, char *client, char *server) |
choose_mac(Mac *mac, char *client, char *server) |
|
|
need = 0; |
need = 0; |
for (mode = 0; mode < MODE_MAX; mode++) { |
for (mode = 0; mode < MODE_MAX; mode++) { |
newkeys = kex->newkeys[mode]; |
newkeys = kex->newkeys[mode]; |
if (need < newkeys->enc.cipher->key_len) |
if (need < newkeys->enc.key_len) |
need = newkeys->enc.cipher->key_len; |
need = newkeys->enc.key_len; |
if (need < newkeys->enc.cipher->block_size) |
if (need < newkeys->enc.block_size) |
need = newkeys->enc.cipher->block_size; |
need = newkeys->enc.block_size; |
if (need < newkeys->mac.key_len) |
if (need < newkeys->mac.key_len) |
need = newkeys->mac.key_len; |
need = newkeys->mac.key_len; |
} |
} |