version 1.69, 2001/06/28 19:57:35 |
version 1.70, 2001/06/29 07:06:34 |
|
|
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) |
|
|
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"); |
|
|
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) { |
|
|
} |
} |
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; |
goto done; |
|
} |
|
if (r1 != 0x90 && r1 != 0x61) |
|
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; |