| 280 |
/* SSH_CIPHER_NONE means that all ciphers below that one are disabled. |
/* SSH_CIPHER_NONE means that all ciphers below that one are disabled. |
| 281 |
We *never* allow no encryption. */ |
We *never* allow no encryption. */ |
| 282 |
static char default_strings[] = { |
static char default_strings[] = { |
| 283 |
|
SSH2_CIPHER_AES256_GCM, |
| 284 |
SSH2_CIPHER_CAMELLIA256_CTR, |
SSH2_CIPHER_CAMELLIA256_CTR, |
| 285 |
SSH2_CIPHER_AES256_CTR, |
SSH2_CIPHER_AES256_CTR, |
| 286 |
SSH2_CIPHER_CAMELLIA256_CBC, |
SSH2_CIPHER_CAMELLIA256_CBC, |
| 289 |
SSH2_CIPHER_AES192_CTR, |
SSH2_CIPHER_AES192_CTR, |
| 290 |
SSH2_CIPHER_CAMELLIA192_CBC, |
SSH2_CIPHER_CAMELLIA192_CBC, |
| 291 |
SSH2_CIPHER_AES192_CBC, |
SSH2_CIPHER_AES192_CBC, |
| 292 |
|
SSH2_CIPHER_AES128_GCM, |
| 293 |
SSH2_CIPHER_CAMELLIA128_CTR, |
SSH2_CIPHER_CAMELLIA128_CTR, |
| 294 |
SSH2_CIPHER_AES128_CTR, |
SSH2_CIPHER_AES128_CTR, |
| 295 |
SSH2_CIPHER_CAMELLIA128_CBC, |
SSH2_CIPHER_CAMELLIA128_CBC, |
| 2605 |
return "Camellia192-CTR(SSH2)"; |
return "Camellia192-CTR(SSH2)"; |
| 2606 |
case SSH2_CIPHER_CAMELLIA256_CTR: |
case SSH2_CIPHER_CAMELLIA256_CTR: |
| 2607 |
return "Camellia256-CTR(SSH2)"; |
return "Camellia256-CTR(SSH2)"; |
| 2608 |
|
case SSH2_CIPHER_AES128_GCM: |
| 2609 |
|
return "AES128-GCM@openssh.com(SSH2)"; |
| 2610 |
|
case SSH2_CIPHER_AES256_GCM: |
| 2611 |
|
return "AES256-GCM@openssh.com(SSH2)"; |
| 2612 |
|
|
| 2613 |
default: |
default: |
| 2614 |
return NULL; |
return NULL; |
| 4176 |
// TODO: OpenSSH 6.5では -Z オプションで、暗号化アルゴリズムを指定可能だが、 |
// TODO: OpenSSH 6.5では -Z オプションで、暗号化アルゴリズムを指定可能だが、 |
| 4177 |
// ここでは"AES256-CBC"に固定とする。 |
// ここでは"AES256-CBC"に固定とする。 |
| 4178 |
cipher_init_SSH2(&cipher_ctx, key, keylen, key + keylen, ivlen, CIPHER_ENCRYPT, |
cipher_init_SSH2(&cipher_ctx, key, keylen, key + keylen, ivlen, CIPHER_ENCRYPT, |
| 4179 |
get_cipher_EVP_CIPHER(ciphernameval), 0, pvar); |
get_cipher_EVP_CIPHER(ciphernameval), 0, 0, pvar); |
| 4180 |
SecureZeroMemory(key, keylen + ivlen); |
SecureZeroMemory(key, keylen + ivlen); |
| 4181 |
free(key); |
free(key); |
| 4182 |
|
|
| 4989 |
MD5_Update(&md, (const unsigned char *)passphrase, strlen(passphrase)); |
MD5_Update(&md, (const unsigned char *)passphrase, strlen(passphrase)); |
| 4990 |
MD5_Final(digest, &md); |
MD5_Final(digest, &md); |
| 4991 |
if (cipher_num == SSH_CIPHER_NONE) { |
if (cipher_num == SSH_CIPHER_NONE) { |
| 4992 |
cipher_init_SSH2(&cipher_ctx, digest, 16, NULL, 0, CIPHER_ENCRYPT, EVP_enc_null(), 0, pvar); |
cipher_init_SSH2(&cipher_ctx, digest, 16, NULL, 0, CIPHER_ENCRYPT, EVP_enc_null(), 0, 0, pvar); |
| 4993 |
} else { |
} else { |
| 4994 |
cipher_init_SSH2(&cipher_ctx, digest, 16, NULL, 0, CIPHER_ENCRYPT, evp_ssh1_3des(), 0, pvar); |
cipher_init_SSH2(&cipher_ctx, digest, 16, NULL, 0, CIPHER_ENCRYPT, evp_ssh1_3des(), 0, 0, pvar); |
| 4995 |
} |
} |
| 4996 |
len = buffer_len(b); |
len = buffer_len(b); |
| 4997 |
if (len % 8) { // fatal error |
if (len % 8) { // fatal error |