Blame src/towitoko/pps.h

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