Blame src/towitoko/pps.h

Packit Service aee942
/*
Packit Service aee942
    pps.h
Packit Service aee942
    Protocol Parameters Selection
Packit Service aee942
Packit Service aee942
    This file is part of the Unix driver for Towitoko smartcard readers
Packit Service aee942
    Copyright (C) 2000 2001 Carlos Prados <cprados@yahoo.com>
Packit Service aee942
Packit Service aee942
    This library is free software; you can redistribute it and/or
Packit Service aee942
    modify it under the terms of the GNU Lesser General Public
Packit Service aee942
    License as published by the Free Software Foundation; either
Packit Service aee942
    version 2 of the License, or (at your option) any later version.
Packit Service aee942
Packit Service aee942
    This library is distributed in the hope that it will be useful,
Packit Service aee942
    but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service aee942
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit Service aee942
    Lesser General Public License for more details.
Packit Service aee942
Packit Service aee942
	You should have received a copy of the GNU Lesser General Public License
Packit Service aee942
	along with this library; if not, write to the Free Software Foundation,
Packit Service aee942
	Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Packit Service aee942
 */
Packit Service aee942
Packit Service aee942
#ifndef _PPS_
Packit Service aee942
#define _PPS_
Packit Service aee942
Packit Service aee942
#include "defines.h"
Packit Service aee942
Packit Service aee942
/*
Packit Service aee942
 * Exported constants definition
Packit Service aee942
 */
Packit Service aee942
Packit Service aee942
#define PPS_OK			0	/* Negotiation OK */
Packit Service aee942
#define PPS_ICC_ERROR		1	/* Comunication error */
Packit Service aee942
#define PPS_HANDSAKE_ERROR	2	/* Agreement not reached */
Packit Service aee942
#define PPS_PROTOCOL_ERROR	3	/* Error starting protocol */
Packit Service aee942
#define PPS_MAX_LENGTH		6
Packit Service aee942
Packit Service aee942
#define PPS_HAS_PPS1(block)	((block[1] & 0x10) == 0x10)
Packit Service aee942
#define PPS_HAS_PPS2(block)	((block[1] & 0x20) == 0x20)
Packit Service aee942
#define PPS_HAS_PPS3(block)	((block[1] & 0x40) == 0x40)
Packit Service aee942
Packit Service aee942
/*
Packit Service aee942
 * Exported data types definition
Packit Service aee942
 */
Packit Service aee942
Packit Service aee942
typedef struct
Packit Service aee942
{
Packit Service aee942
  double f;
Packit Service aee942
  double d;
Packit Service aee942
  double n;
Packit Service aee942
  BYTE t;
Packit Service aee942
}
Packit Service aee942
PPS_ProtocolParameters;
Packit Service aee942
Packit Service aee942
typedef struct
Packit Service aee942
{
Packit Service aee942
  int icc;
Packit Service aee942
  void *protocol;
Packit Service aee942
  PPS_ProtocolParameters parameters;
Packit Service aee942
}
Packit Service aee942
PPS;
Packit Service aee942
Packit Service aee942
/*
Packit Service aee942
 * Exported functions declaration
Packit Service aee942
 */
Packit Service aee942
Packit Service aee942
int PPS_Exchange (int lun, BYTE * params, /*@out@*/ unsigned *length,
Packit Service aee942
	unsigned char *pps1);
Packit Service aee942
Packit Service aee942
#endif /* _PPS_ */
Packit Service aee942