version 1.20.2.2, 2001/02/19 17:18:40 |
version 1.20.2.3, 2001/03/21 19:46:23 |
|
|
close(fd); |
close(fd); |
return 0; |
return 0; |
} |
} |
close(fd); |
|
|
|
/* Check that it is at least big enough to contain the ID string. */ |
/* Check that it is at least big enough to contain the ID string. */ |
if (len < sizeof(authfile_id_string)) { |
if (len < sizeof(authfile_id_string)) { |
debug3("Bad RSA1 key file %.200s.", filename); |
debug3("Bad RSA1 key file %.200s.", filename); |
buffer_free(&buffer); |
buffer_free(&buffer); |
|
close(fd); |
return 0; |
return 0; |
} |
} |
/* |
/* |
|
|
if (buffer_get_char(&buffer) != authfile_id_string[i]) { |
if (buffer_get_char(&buffer) != authfile_id_string[i]) { |
debug3("Bad RSA1 key file %.200s.", filename); |
debug3("Bad RSA1 key file %.200s.", filename); |
buffer_free(&buffer); |
buffer_free(&buffer); |
|
close(fd); |
return 0; |
return 0; |
} |
} |
|
|
/* Read cipher type. */ |
/* Read cipher type. */ |
cipher_type = buffer_get_char(&buffer); |
cipher_type = buffer_get_char(&buffer); |
(void) buffer_get_int(&buffer); /* Reserved data. */ |
(void) buffer_get_int(&buffer); /* Reserved data. */ |
|
|
prv->e = NULL; |
prv->e = NULL; |
if (comment_return) |
if (comment_return) |
xfree(*comment_return); |
xfree(*comment_return); |
|
close(fd); |
return 0; |
return 0; |
} |
} |
/* Read the rest of the private key. */ |
/* Read the rest of the private key. */ |
|
|
BN_CTX_free(ctx); |
BN_CTX_free(ctx); |
|
|
buffer_free(&decrypted); |
buffer_free(&decrypted); |
|
close(fd); |
return 1; |
return 1; |
} |
} |
|
|
|
|
fp = fdopen(fd, "r"); |
fp = fdopen(fd, "r"); |
if (fp == NULL) { |
if (fp == NULL) { |
error("fdopen failed"); |
error("fdopen failed"); |
|
close(fd); |
return 0; |
return 0; |
} |
} |
pk = PEM_read_PrivateKey(fp, NULL, NULL, (char *)passphrase); |
pk = PEM_read_PrivateKey(fp, NULL, NULL, (char *)passphrase); |
|
|
error("@ WARNING: UNPROTECTED PRIVATE KEY FILE! @"); |
error("@ WARNING: UNPROTECTED PRIVATE KEY FILE! @"); |
error("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); |
error("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); |
error("Bad ownership or mode(0%3.3o) for '%s'.", |
error("Bad ownership or mode(0%3.3o) for '%s'.", |
st.st_mode & 0777, filename); |
st.st_mode & 0777, filename); |
error("It is recommended that your private key files are NOT accessible by others."); |
error("It is recommended that your private key files are NOT accessible by others."); |
return 0; |
return 0; |
} |
} |
|
|
key->rsa->n = NULL; |
key->rsa->n = NULL; |
} |
} |
ret = load_private_key_rsa1(fd, filename, passphrase, |
ret = load_private_key_rsa1(fd, filename, passphrase, |
key->rsa, comment_return); |
key->rsa, comment_return); /* closes fd */ |
|
|
break; |
break; |
case KEY_DSA: |
case KEY_DSA: |
case KEY_RSA: |
case KEY_RSA: |
case KEY_UNSPEC: |
case KEY_UNSPEC: |
ret = load_private_key_ssh2(fd, passphrase, key, comment_return); |
ret = load_private_key_ssh2(fd, passphrase, key, |
|
comment_return); /* closes fd */ |
|
break; |
default: |
default: |
|
close(fd); |
break; |
break; |
} |
} |
close(fd); |
|
return ret; |
return ret; |
} |
} |
|
|