diff options
author | Damien Miller <djm@mindrot.org> | 1999-12-06 11:47:28 +1100 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 1999-12-06 11:47:28 +1100 |
commit | aae6c614da614eb10ced16505f35410671c95d9d (patch) | |
tree | 441e578781d38e7de4c5f609a4f86695d937e640 /auth-skey.c | |
parent | dc33fc3910552c82518503b581efc1a51192fa76 (diff) |
- Merged OpenBSD CVS changes:
- [auth-krb4.c auth-passwd.c auth-skey.c ssh.
move skey-auth from auth-passwd.c to auth-s
- [auth-rsa.c]
warn only about mismatch if key is _used_
warn about keysize-mismatch with log() not
channels.c readconf.c readconf.h ssh.c ssh.
ports are u_short
- [hostfile.c]
indent, shorter warning
- [nchan.c]
use error() for internal errors
- [packet.c]
set loglevel for SSH_MSG_DISCONNECT to log(
serverloop.c
indent
- [ssh-add.1 ssh-add.c ssh.h]
document , reasonable default
- [ssh.1]
CheckHostIP is not available for connects v
- [sshconnect.c]
typo
easier to read client code for passwd and s
turn of checkhostip for proxy connects, sin
Diffstat (limited to 'auth-skey.c')
-rw-r--r-- | auth-skey.c | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/auth-skey.c b/auth-skey.c index a0d786cb2..cc5f45101 100644 --- a/auth-skey.c +++ b/auth-skey.c | |||
@@ -1,9 +1,11 @@ | |||
1 | #include "includes.h" | 1 | #include "includes.h" |
2 | 2 | ||
3 | #ifdef SKEY | 3 | #ifdef SKEY |
4 | RCSID("$Id: auth-skey.c,v 1.3 1999/11/23 22:25:52 markus Exp $"); | 4 | RCSID("$Id: auth-skey.c,v 1.4 1999/12/01 16:54:35 markus Exp $"); |
5 | 5 | ||
6 | #include "ssh.h" | 6 | #include "ssh.h" |
7 | #include "packet.h" | ||
8 | |||
7 | #ifdef HAVE_OPENSSL | 9 | #ifdef HAVE_OPENSSL |
8 | #include <openssl/sha1.h> | 10 | #include <openssl/sha1.h> |
9 | #endif | 11 | #endif |
@@ -13,6 +15,35 @@ RCSID("$Id: auth-skey.c,v 1.3 1999/11/23 22:25:52 markus Exp $"); | |||
13 | 15 | ||
14 | /* from %OpenBSD: skeylogin.c,v 1.32 1999/08/16 14:46:56 millert Exp % */ | 16 | /* from %OpenBSD: skeylogin.c,v 1.32 1999/08/16 14:46:56 millert Exp % */ |
15 | 17 | ||
18 | /* | ||
19 | * try skey authentication, | ||
20 | * return 1 on success, 0 on failure, -1 if skey is not available | ||
21 | */ | ||
22 | |||
23 | int | ||
24 | auth_skey_password(struct passwd * pw, const char *password) | ||
25 | { | ||
26 | if (strncasecmp(password, "s/key", 5) == 0) { | ||
27 | char *skeyinfo = skey_keyinfo(pw->pw_name); | ||
28 | if (skeyinfo == NULL) { | ||
29 | debug("generating fake skeyinfo for %.100s.", | ||
30 | pw->pw_name); | ||
31 | skeyinfo = skey_fake_keyinfo(pw->pw_name); | ||
32 | } | ||
33 | if (skeyinfo != NULL) | ||
34 | packet_send_debug(skeyinfo); | ||
35 | /* Try again. */ | ||
36 | return 0; | ||
37 | } else if (skey_haskey(pw->pw_name) == 0 && | ||
38 | skey_passcheck(pw->pw_name, (char *) password) != -1) { | ||
39 | /* Authentication succeeded. */ | ||
40 | return 1; | ||
41 | } | ||
42 | /* Fall back to ordinary passwd authentication. */ | ||
43 | return -1; | ||
44 | } | ||
45 | |||
46 | + /* from %OpenBSD: skeylogin.c,v 1.32 1999/08/16 14:46:56 millert Exp % */ | ||
16 | 47 | ||
17 | #define ROUND(x) (((x)[0] << 24) + (((x)[1]) << 16) + (((x)[2]) << 8) + \ | 48 | #define ROUND(x) (((x)[0] << 24) + (((x)[1]) << 16) + (((x)[2]) << 8) + \ |
18 | ((x)[3])) | 49 | ((x)[3])) |