[ssh-keygen.c]
     new error handling for cyberflex_*
This commit is contained in:
Ben Lindstrom 2001-07-04 05:06:59 +00:00
parent 511d69e6d7
commit 7feba35a47
2 changed files with 21 additions and 8 deletions

View File

@ -99,6 +99,9 @@
- stevesk@cvs.openbsd.org 2001/06/28 19:57:35 - stevesk@cvs.openbsd.org 2001/06/28 19:57:35
[ssh-keygen.c] [ssh-keygen.c]
'\0' terminated data[] is ok; ok markus@ '\0' terminated data[] is ok; ok markus@
- markus@cvs.openbsd.org 2001/06/29 07:06:34
[ssh-keygen.c]
new error handling for cyberflex_*
20010629 20010629
- (bal) Removed net_aton() since we don't use it any more - (bal) Removed net_aton() since we don't use it any more
@ -5926,4 +5929,4 @@
- Wrote replacements for strlcpy and mkdtemp - Wrote replacements for strlcpy and mkdtemp
- Released 1.0pre1 - Released 1.0pre1
$Id: ChangeLog,v 1.1367 2001/07/04 05:05:27 mouring Exp $ $Id: ChangeLog,v 1.1368 2001/07/04 05:06:59 mouring Exp $

View File

@ -12,7 +12,7 @@
*/ */
#include "includes.h" #include "includes.h"
RCSID("$OpenBSD: ssh-keygen.c,v 1.69 2001/06/28 19:57:35 stevesk Exp $"); RCSID("$OpenBSD: ssh-keygen.c,v 1.70 2001/06/29 07:06:34 markus Exp $");
#include <openssl/evp.h> #include <openssl/evp.h>
#include <openssl/pem.h> #include <openssl/pem.h>
@ -385,7 +385,7 @@ do_print_public(struct passwd *pw)
do { \ do { \
len = BN_num_bytes(prv->rsa->x); \ len = BN_num_bytes(prv->rsa->x); \
elements[i] = xmalloc(len); \ elements[i] = xmalloc(len); \
error("#bytes %d", len); \ debug("#bytes %d", len); \
if (BN_bn2bin(prv->rsa->x, elements[i]) < 0) \ if (BN_bn2bin(prv->rsa->x, elements[i]) < 0) \
goto done; \ goto done; \
} while(0) } while(0)
@ -403,7 +403,7 @@ do_upload(struct passwd *pw, int reader)
u_char atr[256]; u_char atr[256];
u_char AUT0[] = {0xad, 0x9f, 0x61, 0xfe, 0xfa, 0x20, 0xce, 0x63}; u_char AUT0[] = {0xad, 0x9f, 0x61, 0xfe, 0xfa, 0x20, 0xce, 0x63};
int len, status = 1, i, fd = -1, ret; int len, status = 1, i, fd = -1, ret;
int cla = 0x00; int r1 = 0, r2 = 0, cla = 0x00;
if (!have_identity) if (!have_identity)
ask_filename(pw, "Enter file in which the key is"); ask_filename(pw, "Enter file in which the key is");
@ -427,12 +427,12 @@ do_upload(struct passwd *pw, int reader)
len = BN_num_bytes(prv->rsa->n); len = BN_num_bytes(prv->rsa->n);
fd = scopen(reader, 0, NULL); fd = scopen(reader, 0, NULL);
if (fd < 0) { if (fd < 0) {
error("scopen failed %d.", fd); error("scopen failed");
goto done; goto done;
} }
ret = screset(fd, atr, NULL); ret = screset(fd, atr, NULL);
if (ret <= 0) { if (ret <= 0) {
error("screset failed."); error("screset failed");
goto done; goto done;
} }
if ((cla = cyberflex_inq_class(fd)) < 0) { if ((cla = cyberflex_inq_class(fd)) < 0) {
@ -445,12 +445,22 @@ do_upload(struct passwd *pw, int reader)
} }
key_fid[0] = 0x00; key_fid[0] = 0x00;
key_fid[1] = 0x12; key_fid[1] = 0x12;
if (cyberflex_load_rsa_priv(fd, cla, key_fid, 5, 8*len, elements) < 0) if (cyberflex_load_rsa_priv(fd, cla, key_fid, 5, 8*len, elements,
&r1, &r2) < 0) {
error("cyberflex_load_rsa_priv failed: %s", get_r1r2s(r1, r1));
goto done;
}
if (r1 != 0x90 && r1 != 0x61)
goto done; goto done;
log("cyberflex_load_rsa_priv done"); log("cyberflex_load_rsa_priv done");
key_fid[0] = 0x73; key_fid[0] = 0x73;
key_fid[1] = 0x68; key_fid[1] = 0x68;
if (cyberflex_load_rsa_pub(fd, cla, key_fid, len, elements[5]) < 0) if (cyberflex_load_rsa_pub(fd, cla, key_fid, len, elements[5],
&r1, &r2) < 0) {
error("cyberflex_load_rsa_pub failed: %s", get_r1r2s(r1, r1));
goto done;
}
if (r1 != 0x90 && r1 != 0x61)
goto done; goto done;
log("cyberflex_load_rsa_pub done"); log("cyberflex_load_rsa_pub done");
status = 0; status = 0;