version 1.26, 2000/04/14 10:30:30 |
version 1.26.2.2, 2000/09/01 18:23:18 |
|
|
*/ |
*/ |
|
|
#include "includes.h" |
#include "includes.h" |
RCSID("$Id$"); |
RCSID("$OpenBSD$"); |
|
|
#include "ssh.h" |
#include "ssh.h" |
#include "cipher.h" |
#include "cipher.h" |
|
|
int |
int |
ciphers_valid(const char *names) |
ciphers_valid(const char *names) |
{ |
{ |
char *ciphers; |
char *ciphers, *cp; |
char *p; |
char *p; |
int i; |
int i; |
|
|
if (strcmp(names, "") == 0) |
if (names == NULL || strcmp(names, "") == 0) |
return 0; |
return 0; |
ciphers = xstrdup(names); |
ciphers = cp = xstrdup(names); |
for ((p = strtok(ciphers, CIPHER_SEP)); p; (p = strtok(NULL, CIPHER_SEP))) { |
for ((p = strsep(&cp, CIPHER_SEP)); p && *p != '\0'; |
|
(p = strsep(&cp, CIPHER_SEP))) { |
i = cipher_number(p); |
i = cipher_number(p); |
if (i == -1 || !(cipher_mask2() & (1 << i))) { |
if (i == -1 || !(cipher_mask2() & (1 << i))) { |
xfree(ciphers); |
xfree(ciphers); |
|
|
cipher_number(const char *name) |
cipher_number(const char *name) |
{ |
{ |
int i; |
int i; |
|
if (name == NULL) |
|
return -1; |
for (i = 0; i < sizeof(cipher_names) / sizeof(cipher_names[0]); i++) |
for (i = 0; i < sizeof(cipher_names) / sizeof(cipher_names[0]); i++) |
if (strcmp(cipher_names[i], name) == 0 && |
if (strcmp(cipher_names[i], name) == 0 && |
(cipher_mask() & (1 << i))) |
(cipher_mask() & (1 << i))) |