summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Lindstrom <mouring@eviladmin.org>2001-06-25 05:04:58 +0000
committerBen Lindstrom <mouring@eviladmin.org>2001-06-25 05:04:58 +0000
commite586c4ce3f4af32ef9eed72344f0fc7f43b9e58a (patch)
treeb60af47e04600d27cbc5435839418373fe13d4ca
parentbba81213b972ce15fbbaca60b9ffabb42371ce8f (diff)
- markus@cvs.openbsd.org 2001/06/23 17:05:22
[ssh-keygen.c] fix import for (broken?) ssh.com/f-secure private keys (i tested > 1000 RSA keys)
-rw-r--r--ChangeLog8
-rw-r--r--ssh-keygen.c22
2 files changed, 17 insertions, 13 deletions
diff --git a/ChangeLog b/ChangeLog
index a7497b581..5a42d91b5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -32,7 +32,7 @@
32 - markus@cvs.openbsd.org 2001/06/22 22:21:20 32 - markus@cvs.openbsd.org 2001/06/22 22:21:20
33 [sftp-server.c] 33 [sftp-server.c]
34 allow long usernames/groups in readdir 34 allow long usernames/groups in readdir
35 - markus@cvs.openbsd.org 2001/06/22 23:35:21 35 - markus@cvs.openbsd.org 2001/06/22 23:35:21
36 [ssh.c] 36 [ssh.c]
37 don't overwrite argv (fixes ssh user@host in 'ps'), report by ericj@ 37 don't overwrite argv (fixes ssh user@host in 'ps'), report by ericj@
38 - deraadt@cvs.openbsd.org 2001/06/23 00:16:16 38 - deraadt@cvs.openbsd.org 2001/06/23 00:16:16
@@ -78,6 +78,10 @@
78 more strict prototypes. raise warning level in Makefile.inc. 78 more strict prototypes. raise warning level in Makefile.inc.
79 markus ok'ed 79 markus ok'ed
80 TODO; cleanup headers 80 TODO; cleanup headers
81 - markus@cvs.openbsd.org 2001/06/23 17:05:22
82 [ssh-keygen.c]
83 fix import for (broken?) ssh.com/f-secure private keys
84 (i tested > 1000 RSA keys)
81 85
8220010622 8620010622
83 - (stevesk) handle systems without pw_expire and pw_change. 87 - (stevesk) handle systems without pw_expire and pw_change.
@@ -5762,4 +5766,4 @@
5762 - Wrote replacements for strlcpy and mkdtemp 5766 - Wrote replacements for strlcpy and mkdtemp
5763 - Released 1.0pre1 5767 - Released 1.0pre1
5764 5768
5765$Id: ChangeLog,v 1.1315 2001/06/25 05:01:22 mouring Exp $ 5769$Id: ChangeLog,v 1.1316 2001/06/25 05:04:58 mouring Exp $
diff --git a/ssh-keygen.c b/ssh-keygen.c
index 22946587f..51b003405 100644
--- a/ssh-keygen.c
+++ b/ssh-keygen.c
@@ -12,7 +12,7 @@
12 */ 12 */
13 13
14#include "includes.h" 14#include "includes.h"
15RCSID("$OpenBSD: ssh-keygen.c,v 1.63 2001/06/23 15:12:20 itojun Exp $"); 15RCSID("$OpenBSD: ssh-keygen.c,v 1.64 2001/06/23 17:05:22 markus Exp $");
16 16
17#include <openssl/evp.h> 17#include <openssl/evp.h>
18#include <openssl/pem.h> 18#include <openssl/pem.h>
@@ -187,9 +187,11 @@ do_convert_private_ssh2_from_blob(char *blob, int blen)
187{ 187{
188 Buffer b; 188 Buffer b;
189 Key *key = NULL; 189 Key *key = NULL;
190 char *type, *cipher;
191 u_char *sig, data[10] = "abcde12345";
190 int magic, rlen, ktype, i1, i2, i3, i4; 192 int magic, rlen, ktype, i1, i2, i3, i4;
193 u_int slen;
191 u_long e; 194 u_long e;
192 char *type, *cipher;
193 195
194 buffer_init(&b); 196 buffer_init(&b);
195 buffer_append(&b, blob, blen); 197 buffer_append(&b, blob, blen);
@@ -264,16 +266,11 @@ do_convert_private_ssh2_from_blob(char *blob, int blen)
264 error("do_convert_private_ssh2_from_blob: " 266 error("do_convert_private_ssh2_from_blob: "
265 "remaining bytes in key blob %d", rlen); 267 "remaining bytes in key blob %d", rlen);
266 buffer_free(&b); 268 buffer_free(&b);
267#ifdef DEBUG_PK
268 {
269 u_int slen;
270 u_char *sig, data[10] = "abcde12345";
271 269
272 key_sign(key, &sig, &slen, data, sizeof(data)); 270 /* try the key */
273 key_verify(key, sig, slen, data, sizeof(data)); 271 key_sign(key, &sig, &slen, data, sizeof(data));
274 xfree(sig); 272 key_verify(key, sig, slen, data, sizeof(data));
275 } 273 xfree(sig);
276#endif
277 return key; 274 return key;
278} 275}
279 276
@@ -312,6 +309,9 @@ do_convert_from_ssh2(struct passwd *pw)
312 strstr(line, ": ") != NULL) { 309 strstr(line, ": ") != NULL) {
313 if (strstr(line, SSH_COM_PRIVATE_BEGIN) != NULL) 310 if (strstr(line, SSH_COM_PRIVATE_BEGIN) != NULL)
314 private = 1; 311 private = 1;
312 if (strstr(line, " END ") != NULL) {
313 break;
314 }
315 /* fprintf(stderr, "ignore: %s", line); */ 315 /* fprintf(stderr, "ignore: %s", line); */
316 continue; 316 continue;
317 } 317 }