summaryrefslogtreecommitdiffstats
path: root/scd/app-sc-hsm.c
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-18 21:21:03 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-18 21:21:03 +0000
commit69349561bf941cc67f1afcbbc115af8dbd624f94 (patch)
tree49d5db9fac516d5de488244d4cffd2e9d74220e7 /scd/app-sc-hsm.c
parentAdding debian version 2.2.40-3. (diff)
downloadgnupg2-69349561bf941cc67f1afcbbc115af8dbd624f94.tar.xz
gnupg2-69349561bf941cc67f1afcbbc115af8dbd624f94.zip
Merging upstream version 2.2.43.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'scd/app-sc-hsm.c')
-rw-r--r--scd/app-sc-hsm.c35
1 files changed, 20 insertions, 15 deletions
diff --git a/scd/app-sc-hsm.c b/scd/app-sc-hsm.c
index 1425b43..4b9f7fc 100644
--- a/scd/app-sc-hsm.c
+++ b/scd/app-sc-hsm.c
@@ -483,7 +483,8 @@ read_ef_prkd (app_t app, unsigned short fid, prkdf_object_t *prkdresult,
if (!fid)
return gpg_error (GPG_ERR_NO_DATA); /* No private keys. */
- err = select_and_read_binary (app->slot, fid, "PrKDF", &buffer, &buflen, 255);
+ err = select_and_read_binary (app_get_slot (app),
+ fid, "PrKDF", &buffer, &buflen, 255);
if (err)
return err;
@@ -831,7 +832,7 @@ read_ef_prkd (app_t app, unsigned short fid, prkdf_object_t *prkdresult,
xfree (buffer);
buffer = NULL;
buflen = 0;
- err = select_and_read_binary (app->slot,
+ err = select_and_read_binary (app_get_slot (app),
((SC_HSM_EE_PREFIX << 8) | (fid & 0xFF)),
"CertEF", &buffer, &buflen, 1);
if (!err && buffer[0] == 0x30)
@@ -952,7 +953,8 @@ read_ef_cd (app_t app, unsigned short fid, cdf_object_t *result)
if (!fid)
return gpg_error (GPG_ERR_NO_DATA); /* No certificates. */
- err = select_and_read_binary (app->slot, fid, "CDF", &buffer, &buflen, 255);
+ err = select_and_read_binary (app_get_slot (app), fid, "CDF",
+ &buffer, &buflen, 255);
if (err)
return err;
@@ -1201,7 +1203,7 @@ read_serialno(app_t app)
size_t n, objlen, hdrlen, chrlen;
int class, tag, constructed, ndef;
- err = select_and_read_binary (app->slot, 0x2F02, "EF.C_DevAut",
+ err = select_and_read_binary (app_get_slot (app), 0x2F02, "EF.C_DevAut",
&buffer, &buflen, 512);
if (err)
return err;
@@ -1259,7 +1261,7 @@ read_meta (app_t app)
if (err)
return err;
- err = list_ef (app->slot, &eflist, &eflistlen);
+ err = list_ef (app_get_slot (app), &eflist, &eflistlen);
if (err)
return err;
@@ -1405,7 +1407,7 @@ do_learn_status (app_t app, ctrl_t ctrl, unsigned int flags)
{
gpg_error_t err;
- if ((flags & 1))
+ if ((flags & APP_LEARN_FLAG_KEYPAIRINFO))
err = 0;
else
{
@@ -1453,7 +1455,7 @@ readcert_by_cdf (app_t app, cdf_object_t cdf,
return 0;
}
- err = select_and_read_binary (app->slot, cdf->fid, "CD",
+ err = select_and_read_binary (app_get_slot (app), cdf->fid, "CD",
&buffer, &buflen, 4096);
if (err)
{
@@ -1692,8 +1694,8 @@ verify_pin (app_t app, gpg_error_t (*pincb)(void*, const char *, char **),
char *prompt;
int sw;
- sw = apdu_send_simple (app->slot, 0, 0x00, ISO7816_VERIFY, 0x00, 0x81,
- -1, NULL);
+ sw = apdu_send_simple (app_get_slot (app),
+ 0, 0x00, ISO7816_VERIFY, 0x00, 0x81, -1, NULL);
if (sw == SW_SUCCESS)
return 0; /* PIN already verified */
@@ -1718,7 +1720,7 @@ verify_pin (app_t app, gpg_error_t (*pincb)(void*, const char *, char **),
prompt = "||Please enter the PIN";
if (!opt.disable_pinpad
- && !iso7816_check_pinpad (app->slot, ISO7816_VERIFY, &pininfo) )
+ && !iso7816_check_pinpad (app_get_slot (app), ISO7816_VERIFY, &pininfo) )
{
err = pincb (pincb_arg, prompt, NULL);
if (err)
@@ -1727,7 +1729,7 @@ verify_pin (app_t app, gpg_error_t (*pincb)(void*, const char *, char **),
return err;
}
- err = iso7816_verify_kp (app->slot, 0x81, &pininfo);
+ err = iso7816_verify_kp (app_get_slot (app), 0x81, &pininfo);
pincb (pincb_arg, NULL, NULL); /* Dismiss the prompt. */
}
else
@@ -1739,7 +1741,8 @@ verify_pin (app_t app, gpg_error_t (*pincb)(void*, const char *, char **),
return err;
}
- err = iso7816_verify (app->slot, 0x81, pinvalue, strlen(pinvalue));
+ err = iso7816_verify (app_get_slot (app),
+ 0x81, pinvalue, strlen(pinvalue));
xfree (pinvalue);
}
if (err)
@@ -1884,7 +1887,8 @@ do_sign (app_t app, ctrl_t ctrl, const char *keyidstr, int hashalgo,
if (err)
return err;
- sw = apdu_send_le (app->slot, 1, 0x80, 0x68, prkdf->key_reference, algoid,
+ sw = apdu_send_le (app_get_slot (app),
+ 1, 0x80, 0x68, prkdf->key_reference, algoid,
cdsblklen, cdsblk, 0, outdata, outdatalen);
return iso7816_map_sw (sw);
}
@@ -2021,7 +2025,8 @@ do_decipher (app_t app, ctrl_t ctrl, const char *keyidstr,
if (err)
return err;
- sw = apdu_send_le (app->slot, 1, 0x80, 0x62, prkdf->key_reference, 0x21,
+ sw = apdu_send_le (app_get_slot (app),
+ 1, 0x80, 0x62, prkdf->key_reference, 0x21,
p1blklen, p1blk, 0, &rspdata, &rspdatalen);
err = iso7816_map_sw (sw);
if (err)
@@ -2047,7 +2052,7 @@ do_decipher (app_t app, ctrl_t ctrl, const char *keyidstr,
gpg_error_t
app_select_sc_hsm (app_t app)
{
- int slot = app->slot;
+ int slot = app_get_slot (app);
int rc;
rc = iso7816_select_application (slot, sc_hsm_aid, sizeof sc_hsm_aid, 0);