SECTOK(3) BSD Library Functions Manual SECTOK(3)NAME
sectok — library for communicating with ISO 7816 smartcards
SYNOPSIS
#include "sectok.h"
int
sectok_open(int rn, int flags, int *swp);
int
sectok_friendly_open(const char *rn, int flags, int *swp);
int
sectok_xopen(int rn, int flags, char *config_path, char *driver_path,
int *swp);
int
sectok_reset(int fd, int flags, unsigned char *atr, int *swp);
int
sectok_apdu(int, fd, int, cla, int, ins, int, p1, int, p2, int, ilen,
unsigned, char, *ibuf, int, olen, unsigned, char, *obuf, int, *swp);
int
sectok_cardpresent(int fd);
int
sectok_close(int fd);
int
sectok_selectfile(int fd, int cla, unsigned char *fid, int *swp);
void
sectok_fmt_fid(char *fname, unsigned char *fid);
int
sectok_parse_atr(int fd, int flags, unsigned char *atr, int len,
struct scparam *param);
void
sectok_parse_fname(char *buf, unsigned char *fid);
int
sectok_parse_input(char *ibuf, unsigned char *obuf, int olen);
int
sectok_get_input(FILE *f, unsigned char *obuf, int omin, int olen);
int
sectok_fdump_reply(FILE *f, unsigned char *p, int n, int sw);
int
sectok_dump_reply(unsigned char *p, int n, int sw);
void
sectok_print_sw(int sw);
char *
sectok_get_sw(int sw);
char *
sectok_get_ins(int ins);
int
sectok_swOK(int sw);
DESCRIPTION
sectok provides initialization, input, output, and other basic routines
for ISO 7816 smart cards. Many of the routines return a status word.
This will either be an error code as given in the include file, or a
SW1/SW2 pair as specified in ISO 7816.
sectok_scopen() opens a connection to a smart card via serial port number
ttyn. Ports are numbered from 0, which corresponds to /dev/tty00 on
UNIX. If there is no card in the reader, sectok_scopen() will either
wait for card insertion, or if flag STONOWAIT is given, it will return
immediately with error STENOCARD. swp points to a status word that will
be set on return.
sectok_reset() resets the card and returns the ATR in the buffer pointed
to by atr if it is not NULL. If the STRFORCE flag is given, a connection
to the card will be established using default protocol parameters even if
the card ATR is illegal.
sectok_apdu() sends an APDU to the card with optional IN and OUT data.
cla - application class
ins - instruction code
p1, p2 - per ISO 7816-3 or application dependent
ilen - length of IN data
ibuf - pointer to IN data
olen - length of OUT data
obuf - pointer to OUT data
swp - pointer to return status word
sectok_cardpresent() returns whether a card is present in the reader.
sectok_close() closes a connection to a smart card.
sectok_selectfile() selects a file given its FID by sending a "select"
apdu to the card.
sectok_fmt_fid() returns a printable name for a FID.
sectok_parse_atr() parses a card ATR and returns the protocol parameters.
If the STRV flag is given it will print the parameters to standard out.
sectok_parse_fname() translates a printable name to a FID.
sectok_print_sw() looks up the error message string affiliated with a
status word and writes it to standard out.
sectok_swOK() returns 1 if sw indicates success, or 0 if it indicates
failure.
SEE ALSOsectok(1)AUTHORS
Jim Rees ⟨rees@umich.edu⟩
BSD August 3, 2001 BSD