@@ -15,10 +15,10 @@
* If you use a non default db for the certificates you can specify it using the db parameter.
*
*
- * Copyright (c) 2010 Red Hat.
+ * Copyright (c) 2011 Red Hat.
* Written by Alon Levy.
*
- * This code is licenced under the LGPL.
+ * This code is licenced under the GNU LGPL, version 2 or later.
*/
#include <pthread.h>
@@ -458,20 +458,25 @@ static int emulated_initfn(CCIDCardState *base)
}
ASSERT(card->backend); /* 0 is not a value in the enumeration */
/* TODO: a passthru backened that works on local machine. third card type? */
- if (card->backend == BACKEND_CERTIFICATES
- && card->cert1 != NULL && card->cert2 != NULL && card->cert3 != NULL) {
- ret = emulated_initialize_vcard_from_certificates(card);
- } else {
- if (card->backend != BACKEND_CERTIFICATES) {
+ if (card->backend == BACKEND_CERTIFICATES) {
+ if (card->cert1 != NULL && card->cert2 != NULL && card->cert3 != NULL) {
+ ret = emulated_initialize_vcard_from_certificates(card);
+ } else {
printf("%s: you must provide all three certs for certificates backend\n",
EMULATED_DEV_NAME);
return -1;
}
+ } else {
if (card->backend != BACKEND_NSS_EMULATED) {
printf("%s: bad backend specified. The options are:\n%s (default), %s.\n",
EMULATED_DEV_NAME, BACKEND_NSS_EMULATED_NAME, BACKEND_CERTIFICATES_NAME);
return -1;
}
+ if (card->cert1 != NULL || card->cert2 != NULL || card->cert3 != NULL) {
+ printf("%s: unexpected cert parameters to nss emulated backend\n",
+ EMULATED_DEV_NAME);
+ return -1;
+ }
/* default to mirroring the local hardware readers */
ret = wrap_vcard_emul_init(NULL);
}
* fix error reporting in initfn * bump copyright year * update copyright license Signed-off-by: Alon Levy <alevy@redhat.com> --- hw/ccid-card-emulated.c | 19 ++++++++++++------- 1 files changed, 12 insertions(+), 7 deletions(-)