title: PC/SC
text: # PC/SC
  
  PC/SC (Personal Computer/Smart Card) es un conjunto de especificaciones para la integración de tarjetas inteligentes en ordenadores personales. En particular se define un API de programación que permite a los desarrolladores trabajar de forma uniforme con lectores de tarjetas de distintos fabricantes (que cumplan con la especificación).
  El API de PC/SC está incorporada en sistemas Microsoft Windows 200x/XP y disponible también Microsoft Windows NT/9x. También hay una implementación libre, de código abierto, llamada PC/SC Lite (proyecto MUSCLE) para sistemas operativos GNU Linux.
  
  # PC/SC
  ## Grupo de trabajo
  
  Las especificaciones PC/SC se desarrollan por un comité (PC/SC Workgroup) en el que participan varias empresas del sector.
  Los miembros principales del grupo son:
  * Gemalto (Axalto + Gemplus)
  * Infineon
  * Microsoft
  * Toshiba
  
  # PC/SC
  ## Organización de la especificación
  
  La especificación se divide en 9 partes que contienen los requisitos detallados de interoperabilidad de dispositivos compatibles, información de diseño, interfaces de programación, etc:
  * Parte 1. Introducción y visión general de la arquitectura
  * Parte 2. Requisitos de interoperabilidad para las tarjetas y los lectores
  * Parte 3. Requisitos de interoperabilidad para los lectores
  * Parte 4. Consideraciones de diseño de los lectores e información de referencia
  * Parte 5. Definición de la interfaz del Resource Manager
  * Parte 6. Definición de la interfaz del Service Provider
  * Parte 7. Consideraciones de diseño para el desarrollo de aplicaciones
  * Parte 8. Recomendación para la implementación de servicios de seguridad y privacidad con tarjetas inteligentes
  * Parte 9. Lectores con capacidades extendidas
  
  # PC/SC
  ## Principales funciones del API
  
  El API de programación es sencilla y proporciona funcionalidades simples. A continuación se enumeran las principales para dar una visión general del modo en que se programa usando este API:
  * SCardEstablishContext y SCardReleaseContext (inicialización y liberación de recursos)
  * SCardConnect, SCardReconnect y SCardDisconnect (conexión y desconexión a una tarjeta en un lector)
  * SCardListReaderGroups, SCardListReaders, ... (exploración de lectores conectados)
  * SCardGetAttrib (obtención de propiedades de los lectores conectados)
  * SCardTransmit (envío de comandos APDU's a una tarjeta conectada)