1*c4bf625eSHasso Tepper.\" 2*c4bf625eSHasso Tepper.\" Copyright (c) 2006-2007 Daniel Roethlisberger <daniel@roe.ch> 3*c4bf625eSHasso Tepper.\" All rights reserved. 4*c4bf625eSHasso Tepper.\" 5*c4bf625eSHasso Tepper.\" Redistribution and use in source and binary forms, with or without 6*c4bf625eSHasso Tepper.\" modification, are permitted provided that the following conditions 7*c4bf625eSHasso Tepper.\" are met: 8*c4bf625eSHasso Tepper.\" 1. Redistributions of source code must retain the above copyright 9*c4bf625eSHasso Tepper.\" notice unmodified, this list of conditions, and the following 10*c4bf625eSHasso Tepper.\" disclaimer. 11*c4bf625eSHasso Tepper.\" 2. Redistributions in binary form must reproduce the above copyright 12*c4bf625eSHasso Tepper.\" notice, this list of conditions and the following disclaimer in the 13*c4bf625eSHasso Tepper.\" documentation and/or other materials provided with the distribution. 14*c4bf625eSHasso Tepper.\" 15*c4bf625eSHasso Tepper.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 16*c4bf625eSHasso Tepper.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17*c4bf625eSHasso Tepper.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18*c4bf625eSHasso Tepper.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19*c4bf625eSHasso Tepper.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20*c4bf625eSHasso Tepper.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21*c4bf625eSHasso Tepper.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22*c4bf625eSHasso Tepper.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23*c4bf625eSHasso Tepper.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24*c4bf625eSHasso Tepper.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25*c4bf625eSHasso Tepper.\" SUCH DAMAGE. 26*c4bf625eSHasso Tepper.\" 27*c4bf625eSHasso Tepper.\" $FreeBSD: src/share/man/man4/cmx.4,v 1.2 2008/03/06 08:47:16 rink Exp $ 28*c4bf625eSHasso Tepper.\" $DragonFly: src/share/man/man4/cmx.4,v 1.1 2008/04/23 08:57:10 hasso Exp $ 29*c4bf625eSHasso Tepper.\" 30*c4bf625eSHasso Tepper.Dd July 7, 2007 31*c4bf625eSHasso Tepper.Dt CMX 4 32*c4bf625eSHasso Tepper.Os 33*c4bf625eSHasso Tepper.Sh NAME 34*c4bf625eSHasso Tepper.Nm cmx 35*c4bf625eSHasso Tepper.Nd Omnikey CardMan 4040 smartcard reader device driver 36*c4bf625eSHasso Tepper.Sh SYNOPSIS 37*c4bf625eSHasso Tepper.Cd device cmx 38*c4bf625eSHasso Tepper.Sh DESCRIPTION 39*c4bf625eSHasso TepperThe 40*c4bf625eSHasso Tepper.Nm 41*c4bf625eSHasso Tepperdriver provides support for the PCCARD based 42*c4bf625eSHasso Tepper.Em Omnikey CardMan 4040 43*c4bf625eSHasso Teppersmartcard reader. 44*c4bf625eSHasso TepperThe driver provides a character device special file based 45*c4bf625eSHasso Tepper.Em Chip/Smart Card Interface Devices (CCID) 46*c4bf625eSHasso Tepperinterface. The driver implements what the vendor calls the 47*c4bf625eSHasso Tepper.Em Synchronious API 48*c4bf625eSHasso Tepperonto the smartcard reader device. 49*c4bf625eSHasso Tepper.Pp 50*c4bf625eSHasso TepperReading and writing is synchronious, meaning that a call to 51*c4bf625eSHasso Tepper.Xr write 2 52*c4bf625eSHasso Tepperdirectly corresponds to a complete CCID command sent to the 53*c4bf625eSHasso Tepperdevice, while the following 54*c4bf625eSHasso Tepper.Xr read 2 55*c4bf625eSHasso Tepperwill return the complete answer from the reader. There is no 56*c4bf625eSHasso Teppersupport for partial reads or writes. There is no upper limit on 57*c4bf625eSHasso TepperCCID request or response sizes, but the complete CCID request 58*c4bf625eSHasso Teppermust be sent to the driver in 59*c4bf625eSHasso Tepper.Xr write 2 60*c4bf625eSHasso Tepperand the complete CCID response must fit into the buffer 61*c4bf625eSHasso Teppersupplied to 62*c4bf625eSHasso Tepper.Xr read 2 . 63*c4bf625eSHasso Tepper.Pp 64*c4bf625eSHasso TepperNon-blocking I/O, 65*c4bf625eSHasso Tepper.Xr select 2 66*c4bf625eSHasso Tepperand 67*c4bf625eSHasso Tepper.Xr poll 2 68*c4bf625eSHasso Tepperare supported and work as expected. An open file descriptor 69*c4bf625eSHasso Tepperwill always be ready for writing, but only ready for reading 70*c4bf625eSHasso Tepperif the device indicates that it has data available. 71*c4bf625eSHasso Tepper.Sh COMPATIBILITY 72*c4bf625eSHasso TepperUserland smartcard code written for the vendor's Linux drivers 73*c4bf625eSHasso Teppershould work with the 74*c4bf625eSHasso Tepper.Nm 75*c4bf625eSHasso Tepperdriver without modification. 76*c4bf625eSHasso Tepper.Sh FILES 77*c4bf625eSHasso Tepper.Bl -tag -width /dev/cmxn -compact 78*c4bf625eSHasso Tepper.It Pa /dev/cmx\fBn\fP 79*c4bf625eSHasso TepperCharacter device special file. 80*c4bf625eSHasso Tepper.\".It Pa /usr/ports/security/openct 81*c4bf625eSHasso Tepper.\"OpenCT, a userspace smartcard daemon containing a 82*c4bf625eSHasso Tepper.\".Em CCID 83*c4bf625eSHasso Tepper.\"driver which directly supports 84*c4bf625eSHasso Tepper.\".Nm 85*c4bf625eSHasso Tepper.\"devices. 86*c4bf625eSHasso Tepper.\".It Pa /usr/ports/devel/pcsc-lite 87*c4bf625eSHasso Tepper.\"PC/SC-Lite, a userspace smartcard daemon. 88*c4bf625eSHasso Tepper.\".It Pa /usr/ports/devel/libccid 89*c4bf625eSHasso Tepper.\"libccid, a generic 90*c4bf625eSHasso Tepper.\".Em CCID 91*c4bf625eSHasso Tepper.\"driver for use by PC/SC-Lite to interface to 92*c4bf625eSHasso Tepper.\".Nm 93*c4bf625eSHasso Tepper.\"devices. 94*c4bf625eSHasso Tepper.El 95*c4bf625eSHasso Tepper.Sh SEE ALSO 96*c4bf625eSHasso Tepper.Xr pccard 4 97*c4bf625eSHasso Tepper.Sh HISTORY 98*c4bf625eSHasso TepperThe 99*c4bf625eSHasso Tepper.Nm cmx 100*c4bf625eSHasso Tepperdriver first appeared in 101*c4bf625eSHasso Tepper.Fx 7.1 102*c4bf625eSHasso Tepperand was imported into 103*c4bf625eSHasso Tepper.Dx 1.13 . 104*c4bf625eSHasso Tepper.Sh AUTHORS 105*c4bf625eSHasso Tepper.An -nosplit 106*c4bf625eSHasso TepperThe 107*c4bf625eSHasso Tepper.Nm 108*c4bf625eSHasso Tepperdriver was written by 109*c4bf625eSHasso Tepper.An Daniel Roethlisberger Aq daniel@roe.ch , 110*c4bf625eSHasso Tepperoriginally based on the Linux driver v1.1.0 by 111*c4bf625eSHasso Tepper.An Omnikey GmbH Aq www.omnikey.com . 112*c4bf625eSHasso TepperEarly testing and bug fixes by 113*c4bf625eSHasso Tepper.An Marcin Cieslak Aq saper@system.pl . 114*c4bf625eSHasso Tepper.Sh BUGS 115*c4bf625eSHasso Tepper.An -nosplit 116*c4bf625eSHasso TepperThe way the 117*c4bf625eSHasso Tepper.Nm 118*c4bf625eSHasso Tepperdriver talks to the CardMan 4040 is a bit rough. Due to the 119*c4bf625eSHasso Teppercomplete lack of hardware documentation other than vendor drivers 120*c4bf625eSHasso Tepperfor other operating systems, the gory details of the device's 121*c4bf625eSHasso TepperI/O registers are not understood very well. There may be error 122*c4bf625eSHasso Tepperconditions which can only be solved by physically reinserting the 123*c4bf625eSHasso Tepperreader. 124