[pkg-opensc-commit] [opensc] 78/295: Allow tools to enable card lock (#875)
Eric Dorland
eric at moszumanska.debian.org
Sat Jun 24 21:11:18 UTC 2017
This is an automated email from the git hooks/post-receive script.
eric pushed a commit to branch master
in repository opensc.
commit 905d78093c3ef462037f6199a43d7271e55b5a14
Author: CardContact Systems GmbH <support at cardcontact.de>
Date: Mon Sep 19 17:49:34 2016 +0200
Allow tools to enable card lock (#875)
Closes #868
---
src/tools/sc-hsm-tool.c | 3 +--
src/tools/util.c | 23 ++++++++++++++++-------
src/tools/util.h | 3 ++-
3 files changed, 19 insertions(+), 10 deletions(-)
diff --git a/src/tools/sc-hsm-tool.c b/src/tools/sc-hsm-tool.c
index 0309273..14664e3 100644
--- a/src/tools/sc-hsm-tool.c
+++ b/src/tools/sc-hsm-tool.c
@@ -1646,7 +1646,7 @@ int main(int argc, char * const argv[])
sc_ctx_log_to_file(ctx, "stderr");
}
- r = util_connect_card(ctx, &card, opt_reader, opt_wait, verbose);
+ r = util_connect_card_ex(ctx, &card, opt_reader, opt_wait, 0, verbose);
if (r != SC_SUCCESS) {
if (r < 0) {
fprintf(stderr, "Failed to connect to card: %s\n", sc_strerror(err));
@@ -1687,7 +1687,6 @@ fail:
err = 1;
end:
if (card) {
- sc_unlock(card);
sc_disconnect_card(card);
}
if (ctx)
diff --git a/src/tools/util.c b/src/tools/util.c
index e11ffb0..f5a0370 100644
--- a/src/tools/util.c
+++ b/src/tools/util.c
@@ -47,8 +47,8 @@ is_string_valid_atr(const char *atr_str)
}
int
-util_connect_card(sc_context_t *ctx, sc_card_t **cardp,
- const char *reader_id, int do_wait, int verbose)
+util_connect_card_ex(sc_context_t *ctx, sc_card_t **cardp,
+ const char *reader_id, int do_wait, int do_lock, int verbose)
{
struct sc_reader *reader = NULL, *found = NULL;
struct sc_card *card = NULL;
@@ -156,17 +156,26 @@ autofound:
if (verbose)
printf("Using card driver %s.\n", card->driver->name);
- r = sc_lock(card);
- if (r < 0) {
- fprintf(stderr, "Failed to lock card: %s\n", sc_strerror(r));
- sc_disconnect_card(card);
- return 1;
+ if (do_lock) {
+ r = sc_lock(card);
+ if (r < 0) {
+ fprintf(stderr, "Failed to lock card: %s\n", sc_strerror(r));
+ sc_disconnect_card(card);
+ return 1;
+ }
}
*cardp = card;
return 0;
}
+int
+util_connect_card(sc_context_t *ctx, sc_card_t **cardp,
+ const char *reader_id, int do_wait, int verbose)
+{
+ return util_connect_card_ex(ctx, cardp, reader_id, do_wait, 1, verbose);
+}
+
void util_print_binary(FILE *f, const u8 *buf, int count)
{
int i;
diff --git a/src/tools/util.h b/src/tools/util.h
index ac983ce..b907808 100644
--- a/src/tools/util.h
+++ b/src/tools/util.h
@@ -33,7 +33,8 @@ void util_warn(const char *fmt, ...);
void util_error(const char *fmt, ...);
void util_fatal(const char *fmt, ...);
/* All singing all dancing card connect routine */
-int util_connect_card(struct sc_context *, struct sc_card **, const char *reader_id, int wait, int verbose);
+int util_connect_card_ex(struct sc_context *, struct sc_card **, const char *reader_id, int do_wait, int do_lock, int verbose);
+int util_connect_card(struct sc_context *, struct sc_card **, const char *reader_id, int do_wait, int verbose);
int util_getpass (char **lineptr, size_t *n, FILE *stream);
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-opensc/opensc.git
More information about the pkg-opensc-commit
mailing list