aboutsummaryrefslogtreecommitdiffstats
path: root/scd/apdu.h
diff options
context:
space:
mode:
Diffstat (limited to 'scd/apdu.h')
-rw-r--r--scd/apdu.h19
1 files changed, 17 insertions, 2 deletions
diff --git a/scd/apdu.h b/scd/apdu.h
index 47fd1a8f6..44166a3fe 100644
--- a/scd/apdu.h
+++ b/scd/apdu.h
@@ -22,7 +22,7 @@
#define APDU_H
/* ISO 7816 values for the statusword are defined here because they
- should not be visible to the users of the actual iso command
+ should not be visible to the users of the actual ISO command
API. */
enum {
SW_MORE_DATA = 0x6100, /* Note: that the low byte must be
@@ -32,19 +32,31 @@ enum {
SW_CHV_WRONG = 0x6982,
SW_CHV_BLOCKED = 0x6983,
SW_USE_CONDITIONS = 0x6985,
+ SW_NOT_SUPPORTED = 0x6a81,
SW_BAD_PARAMETER = 0x6a80, /* (in the data field) */
SW_REF_NOT_FOUND = 0x6a88,
SW_BAD_P0_P1 = 0x6b00,
SW_INS_NOT_SUP = 0x6d00,
SW_CLA_NOT_SUP = 0x6e00,
- SW_SUCCESS = 0x9000
+ SW_SUCCESS = 0x9000,
+
+ /* The follwoing statuswords are no real ones but used to map host
+ OS errors into status words. A status word is 16 bit so that
+ those values can't be issued by a card. */
+ SW_HOST_OUT_OF_CORE = 0x10001, /* No way yet to differentiate
+ between errnos on a failed malloc. */
+ SW_HOST_INV_VALUE = 0x10002,
+ SW_HOST_INCOMPLETE_CARD_RESPONSE = 0x10003,
};
+/* Note , that apdu_open_reader returns no status word but -1 on error. */
int apdu_open_reader (int port);
unsigned char *apdu_get_atr (int slot, size_t *atrlen);
+
+/* The apdu send functions do return status words. */
int apdu_send_simple (int slot, int class, int ins, int p0, int p1,
int lc, const char *data);
int apdu_send (int slot, int class, int ins, int p0, int p1,
@@ -56,3 +68,6 @@ int apdu_send_le (int slot, int class, int ins, int p0, int p1,
#endif /*APDU_H*/
+
+
+