scd: Fix ecc_oid.
[gnupg.git] / scd / iso7816.h
index 4e7a344..6dd1052 100644 (file)
@@ -15,8 +15,6 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, see <http://www.gnu.org/licenses/>.
- *
- * $Id$
  */
 
 #ifndef ISO7816_H
 #include "cardglue.h"
 #endif
 
-/* Command codes used by iso7816_check_keypad. */
+/* Command codes used by iso7816_check_pinpad. */
 #define ISO7816_VERIFY                0x20
 #define ISO7816_CHANGE_REFERENCE_DATA 0x24
 #define ISO7816_RESET_RETRY_COUNTER   0x2C
 
 
-/* Information to be passed to keypad equipped readers.  See
+/* Information to be passed to pinpad equipped readers.  See
    ccid-driver.c for details. */
-struct iso7816_pininfo_s
+struct pininfo_s
 {
-  int mode;    /* A mode of 0 means: Do not use the keypad. */
+  int fixedlen;  /*
+                 * -1: Variable length input is not supported,
+                 *     no information of fixed length yet.
+                 *  0: Use variable length input.
+                 * >0: Fixed length of PIN.
+                 */
   int minlen;
   int maxlen;
-  int padlen;
-  int padchar;
 };
-typedef struct iso7816_pininfo_s iso7816_pininfo_t;
+typedef struct pininfo_s pininfo_t;
 
 
 gpg_error_t iso7816_map_sw (int sw);
@@ -58,38 +59,31 @@ gpg_error_t iso7816_select_path (int slot,
 gpg_error_t iso7816_list_directory (int slot, int list_dirs,
                                     unsigned char **result, size_t *resultlen);
 gpg_error_t iso7816_apdu_direct (int slot,
-                                 const void *apdudata, size_t apdudatalen, 
+                                 const void *apdudata, size_t apdudatalen,
                                  int handle_more,
                                  unsigned char **result, size_t *resultlen);
-gpg_error_t iso7816_check_keypad (int slot, int command,
-                                  iso7816_pininfo_t *pininfo);
+gpg_error_t iso7816_check_pinpad (int slot, int command,
+                                  pininfo_t *pininfo);
 gpg_error_t iso7816_verify (int slot,
                             int chvno, const char *chv, size_t chvlen);
-gpg_error_t iso7816_verify_kp (int slot,
-                               int chvno, const char *chv, size_t chvlen,
-                               iso7816_pininfo_t *pininfo);
+gpg_error_t iso7816_verify_kp (int slot, int chvno, pininfo_t *pininfo);
 gpg_error_t iso7816_change_reference_data (int slot, int chvno,
                                const char *oldchv, size_t oldchvlen,
                                const char *newchv, size_t newchvlen);
 gpg_error_t iso7816_change_reference_data_kp (int slot, int chvno,
-                               const char *oldchv, size_t oldchvlen,
-                               const char *newchv, size_t newchvlen,
-                               iso7816_pininfo_t *pininfo);
+                                             int is_exchange,
+                                              pininfo_t *pininfo);
 gpg_error_t iso7816_reset_retry_counter (int slot, int chvno,
                                          const char *newchv, size_t newchvlen);
-gpg_error_t iso7816_reset_retry_counter_kp (int slot, int chvno,
-                                            const char *newchv,
-                                            size_t newchvlen,
-                                            iso7816_pininfo_t *pininfo);
 gpg_error_t iso7816_reset_retry_counter_with_rc (int slot, int chvno,
                                                  const char *data,
                                                  size_t datalen);
 gpg_error_t iso7816_get_data (int slot, int extended_mode, int tag,
                               unsigned char **result, size_t *resultlen);
 gpg_error_t iso7816_put_data (int slot, int extended_mode, int tag,
-                              const unsigned char *data, size_t datalen);
+                              const void *data, size_t datalen);
 gpg_error_t iso7816_put_data_odd (int slot, int extended_mode, int tag,
-                                  const unsigned char *data, size_t datalen);
+                                  const void *data, size_t datalen);
 gpg_error_t iso7816_manage_security_env (int slot, int p1, int p2,
                                          const unsigned char *data,
                                          size_t datalen);
@@ -99,7 +93,7 @@ gpg_error_t iso7816_compute_ds (int slot, int extended_mode,
                                 unsigned char **result, size_t *resultlen);
 gpg_error_t iso7816_decipher (int slot, int extended_mode,
                               const unsigned char *data, size_t datalen,
-                              int padind,
+                              int le, int padind,
                               unsigned char **result, size_t *resultlen);
 gpg_error_t iso7816_internal_authenticate (int slot, int extended_mode,
                                    const unsigned char *data, size_t datalen,