version 1.52, 2003/03/13 11:42:18 |
version 1.52.2.2, 2004/03/04 18:18:15 |
|
|
fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC, 0600); |
fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC, 0600); |
if (fd < 0) { |
if (fd < 0) { |
error("open %s failed: %s.", filename, strerror(errno)); |
error("open %s failed: %s.", filename, strerror(errno)); |
|
buffer_free(&encrypted); |
return 0; |
return 0; |
} |
} |
if (write(fd, buffer_ptr(&encrypted), buffer_len(&encrypted)) != |
if (write(fd, buffer_ptr(&encrypted), buffer_len(&encrypted)) != |
|
|
error("@ WARNING: UNPROTECTED PRIVATE KEY FILE! @"); |
error("@ WARNING: UNPROTECTED PRIVATE KEY FILE! @"); |
error("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); |
error("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); |
error("Permissions 0%3.3o for '%s' are too open.", |
error("Permissions 0%3.3o for '%s' are too open.", |
st.st_mode & 0777, filename); |
(u_int)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."); |
error("This private key will be ignored."); |
error("This private key will be ignored."); |
return 0; |
return 0; |
|
|
Key *pub; |
Key *pub; |
char file[MAXPATHLEN]; |
char file[MAXPATHLEN]; |
|
|
|
/* try rsa1 private key */ |
pub = key_load_public_type(KEY_RSA1, filename, commentp); |
pub = key_load_public_type(KEY_RSA1, filename, commentp); |
if (pub != NULL) |
if (pub != NULL) |
return pub; |
return pub; |
|
|
|
/* try rsa1 public key */ |
|
pub = key_new(KEY_RSA1); |
|
if (key_try_load_public(pub, filename, commentp) == 1) |
|
return pub; |
|
key_free(pub); |
|
|
|
/* try ssh2 public key */ |
pub = key_new(KEY_UNSPEC); |
pub = key_new(KEY_UNSPEC); |
if (key_try_load_public(pub, filename, commentp) == 1) |
if (key_try_load_public(pub, filename, commentp) == 1) |
return pub; |
return pub; |