| 4103 |
for(i = 0; i <= 256; i += sizeof(rand_buf)) |
for(i = 0; i <= 256; i += sizeof(rand_buf)) |
| 4104 |
RC4(&rc4, sizeof(rand_buf), rand_buf, rand_buf); |
RC4(&rc4, sizeof(rand_buf), rand_buf, rand_buf); |
| 4105 |
|
|
| 4106 |
memset(rand_buf, 0, sizeof(rand_buf)); |
SecureZeroMemory(rand_buf, sizeof(rand_buf)); |
| 4107 |
|
|
| 4108 |
rc4_ready = REKEY_BYTES; |
rc4_ready = REKEY_BYTES; |
| 4109 |
} |
} |
| 4192 |
if (EVP_CipherInit(&c->k1, EVP_des_cbc(), k1, NULL, enc) == 0 || |
if (EVP_CipherInit(&c->k1, EVP_des_cbc(), k1, NULL, enc) == 0 || |
| 4193 |
EVP_CipherInit(&c->k2, EVP_des_cbc(), k2, NULL, !enc) == 0 || |
EVP_CipherInit(&c->k2, EVP_des_cbc(), k2, NULL, !enc) == 0 || |
| 4194 |
EVP_CipherInit(&c->k3, EVP_des_cbc(), k3, NULL, enc) == 0) { |
EVP_CipherInit(&c->k3, EVP_des_cbc(), k3, NULL, enc) == 0) { |
| 4195 |
memset(c, 0, sizeof(*c)); |
SecureZeroMemory(c, sizeof(*c)); |
| 4196 |
free(c); |
free(c); |
| 4197 |
EVP_CIPHER_CTX_set_app_data(ctx, NULL); |
EVP_CIPHER_CTX_set_app_data(ctx, NULL); |
| 4198 |
return (0); |
return (0); |
| 4223 |
EVP_CIPHER_CTX_cleanup(&c->k1); |
EVP_CIPHER_CTX_cleanup(&c->k1); |
| 4224 |
EVP_CIPHER_CTX_cleanup(&c->k2); |
EVP_CIPHER_CTX_cleanup(&c->k2); |
| 4225 |
EVP_CIPHER_CTX_cleanup(&c->k3); |
EVP_CIPHER_CTX_cleanup(&c->k3); |
| 4226 |
memset(c, 0, sizeof(*c)); |
SecureZeroMemory(c, sizeof(*c)); |
| 4227 |
free(c); |
free(c); |
| 4228 |
EVP_CIPHER_CTX_set_app_data(ctx, NULL); |
EVP_CIPHER_CTX_set_app_data(ctx, NULL); |
| 4229 |
} |
} |
| 4660 |
// ここでは"AES256-CBC"に固定とする。 |
// ここでは"AES256-CBC"に固定とする。 |
| 4661 |
cipher_init_SSH2(&cipher_ctx, key, keylen, key + keylen, ivlen, CIPHER_ENCRYPT, |
cipher_init_SSH2(&cipher_ctx, key, keylen, key + keylen, ivlen, CIPHER_ENCRYPT, |
| 4662 |
get_cipher_EVP_CIPHER(ciphernameval), 0, pvar); |
get_cipher_EVP_CIPHER(ciphernameval), 0, pvar); |
| 4663 |
memset(key, 0, keylen + ivlen); |
SecureZeroMemory(key, keylen + ivlen); |
| 4664 |
free(key); |
free(key); |
| 4665 |
|
|
| 4666 |
buffer_append(encoded, AUTH_MAGIC, sizeof(AUTH_MAGIC)); |
buffer_append(encoded, AUTH_MAGIC, sizeof(AUTH_MAGIC)); |
| 4680 |
|
|
| 4681 |
buffer_put_string(encoded, cp, len); |
buffer_put_string(encoded, cp, len); |
| 4682 |
|
|
| 4683 |
memset(cp, 0, len); |
SecureZeroMemory(cp, len); |
| 4684 |
free(cp); |
free(cp); |
| 4685 |
|
|
| 4686 |
/* Random check bytes */ |
/* Random check bytes */ |