MIFARE SDK está disponible en los siguientes lenguajes de programación
- Java (incluido el applet),
- JavaScript,
- Lázaro
- Borland Delfos,
- Constructor de C++,
- Microsoft® Visual C++ .NET,
- Microsoft® Visual C# .NET,
- Microsoft® Visual Basic .NET
MIFARE SDK está disponible en los siguientes lenguajes de programación
Estas funciones se utilizan para escribir datos utilizando la emulación del espacio de direcciones lineal. El método para probar la autenticidad está determinado por el sufijo en los nombres de la función:
Estas funciones se utilizan para la escritura de nuevas teclas A y B, así como bits de acceso en los remolques de todos los sectores. La configuración de los bytes de noveno tráiler está habilitada (un byte de uso general donde se puede introducir cualquier valor). En todos los remolques del sector se establece el mismo valor para toda la tarjeta por lo que las mismas claves y derechos de acceso son válidos. Como es necesario demostrar la autenticidad sobre la base de claves anteriores antes de escribir en los remolques del sector, estas funciones son potencialmente adecuadas para inicializar la nueva tarjeta (la autenticación se realiza con claves de transporte, todos los bytes de clave son 0xFF) o para reinicializarla con las mismas claves y derechos de acceso para todos los sectores. Ciertamente, siempre hay que tener cuidado con los derechos de acceso previamente establecidos (bits de acceso) en caso de que se deshabilite el cambio de algunas claves o bits para el control de derechos de acceso.
SectorTrailerEscribir
Este grupo de funciones ofrece una mayor flexibilidad en el sector de remolques iniciando:
Este grupo de funciones se utiliza para bloquear la lectura de contenido. Siempre lee todo el bloque (16bytes del bloque). Las funciones utilizan el llamado direccionamiento de bloque (el primer bloque tiene la dirección 0; el primer remolque del sector tiene la dirección 3, el siguiente 7, etc. hasta que el último bloque MIFARE® 1K que también es un remolque del último sector, tiene una dirección 63). Estas funciones también permiten la lectura de los contenidos de los trailers del sector (su parte disponible para la lectura, dependiendo de los derechos de acceso establecidos).
Estas funciones funcionan igual que las funciones de grupo BlockRead y están hechas para la lectura de contenido en bloque. La única diferencia es que se utiliza el abordaje sectorial. Eso incluye el envío por separado de direcciones de sector y direcciones de bloque dentro de un sector. Para MIFARE® 1K la dirección del sector puede estar en el rango de 0 a 15, y la dirección de los bloques dentro del sector que va de 0 a 3. Para MIFARE® 4k la dirección del sector puede estar en el rango de 0 a 39 y dado que la segunda mitad de la organización del espacio de direcciones es diferente (por encima de 2 MB) la dirección de bloques en los últimos 8 sectores (sectores 32 a 39) puede estar en el rango de 0 a 15. Siempre se lee todo el bloque (bloque de 16 bytes).
Estas funciones pueden leer el contenido de los trailers del sector (su parte disponible para su lectura, dependiendo de los derechos de acceso establecidos).
Estas funciones se utilizan para la entrada de datos (16 bytes a la vez) en los bloques. Las funciones utilizan el llamado direccionamiento de bloque (el primer bloque tiene la dirección 0; el primer remolque del sector tiene la dirección 3, el siguiente 7, etc. hasta que el último bloque MIFARE® 1K que también es un remolque del último sector, tiene una dirección 63). Este grupo de funciones no permite la entrada directa de datos en los remolques del sector. Para ello, utilice las funciones especiales SectorTrailerWrite y SectorTrailerWriteUnsafe.
Estas funciones funcionan igual que las funciones de grupo BlockWrite; se utilizan para la entrada de datos (16 bytes a la vez) en bloques. La única diferencia es el uso del abordaje sectorial. Direccionamiento sectorial significa direcciones separadas de sectores de envío y de bloques dentro de un sector. Para MIFARE® 1K la dirección del sector puede estar en el rango de 0 a 15, y la dirección de los bloques dentro del sector que va de 0 a 3. Para MIFARE® 4k la dirección del sector puede estar en el rango de 0 a 39 y dado que la segunda mitad de la organización del espacio de direcciones es diferente (por encima de 2 MB) la dirección de bloques en los últimos 8 sectores (sectores 32 a 39) puede estar en el rango de 0 a 15. Este grupo de funciones no permite la entrada directa de datos en los remolques del sector. Para ello, utilice las funciones especiales SectorTrailerWrite y SectorTrailerWriteUnsafe
Estas funciones se utilizan para la escritura de datos en los remolques del sector. Las funciones también se pueden utilizar para el direccionamiento de bloques de remolques sectoriales, así como para el direccionamiento de sectores que está determinado por el parámetro ucAddressingMode. En el caso del direccionamiento en bloque, el primer bloque tiene la dirección 0; el remolque tiene una dirección del primer sector 3 y la siguiente 7, etc. hasta el último bloque de MIFARE® 1k que también es un remolque del último sector y tiene una dirección 63. Este grupo de funciones simplifica la manipulación de bits para la configuración de derechos de acceso de bloques (bits de acceso) y minimiza la posibilidad de bloqueo permanente de todo el sector debido al formato incorrecto de estos bits. El formato de los bits de acceso lo realiza el lector RFID antes de la escritura. Los usuarios de la API pueden elegir los derechos de acceso de bloques apropiados que están representados por valores de 0 a 7 y transmitirlos a estas funciones.
Para los remolques del sector son válidos los siguientes derechos de acceso:
Para los remolques del sector son válidos los siguientes derechos de acceso:
* Si los derechos de acceso para el remolque sectorial de un sector apropiado configuran de modo que sea posible leer la clave B, no se puede utilizar para la autenticación en ninguno de los casos. Estas funciones también establecen nuevas claves de sector si se permite acceder a los derechos.
MIFARE® 4k tiene una organización diferente para los últimos 8 sectores, la segunda mitad del espacio de direcciones. Por lo tanto, en estos sectores los derechos de acceso se establecen de la siguiente manera:
Estas funciones tienen el mismo propósito que la función del grupo SectorTrailerWrite con la diferencia de enviar el contenido de los trailers de sector "raw" y los errores son posibles al formatear los valores de bits de acceso para ingresar. Estas funciones están destinadas a desarrolladores con experiencia en el trabajo con MIFARE®. Todas las reglas mencionadas para las funciones del grupo SectorTrailerWrite se aplican a estas funciones, excepto la opción de los datos "sin procesar" para la entrada de remolques del sector.
Cuando se utiliza un modo de dirección de sector, entonces, en el caso de MIFARE® 1K, el rango puede ser de 0 a 15 (tiene 16 sectores) y el mismo tipo en el modo de direccionamiento de bloque puede usar los valores de 0 a 63 con el posible error si el bloque direccionado no es también el remolque de sector.
Los bloques de valor representan una funcionalidad MIFARE® opcional. Este es en realidad un modo en el que todo el bloque de datos (16 bytes) representa un valor de cuatro bytes. En este modo, puede agregar cualquier bloque de datos (excepto, por supuesto, el bloque 0, el sector cero y el tráiler del sector). Los valores de los bloques de valor tienen un formato especial y, además de los registros de valor, contienen el valor de dirección de un byte, lo que brinda a los usuarios la capacidad adicional de implementar el sistema de copia de seguridad.
Los lectores RFID D-Logic se encargan del formato adecuado de los bloques de valores, por lo que el conjunto de funciones que se manejan solo con valores de cuatro bytes están disponibles para los usuarios. Cabe mencionar que el uso de bloques de valor tiene sentido si los derechos de acceso al bloque deseado se establecen en los valores 1, 6 o 0 (el valor predeterminado en la nueva tarjeta) lo que permite que sus valores aumenten y disminuyan. En primer lugar, los bloques de valor deben iniciarse, el valor y la dirección asociada deben cumplir con el formato apropiado de dieciséis registros de bytes. La mejor y más fácil manera de inicializar bloques de valor es con un conjunto de funciones de API de Windows IS21 ValueBlockWrite o ValueBlockInSectorWrite.
Estas funciones hacen lo mismo que las funciones de grupo ValueBlockRead y son adecuadas para leer valores de 4 bytes de los bloques de valores. Además devuelven la dirección asociada almacenada en el bloque de valores. La única diferencia es el uso del llamado abordaje sectorial. Direccionamiento sectorial significa enviar por separado direcciones sectoriales y de bloque dentro de un sector. Para MIFARE® 1K la dirección del sector puede estar en el rango de 0 a 15, y la dirección de los bloques dentro del sector que va de 0 a 3. Para MIFARE® 4k la dirección del sector puede estar en el rango de 0 a 39 y dado que la segunda mitad de la organización del espacio de direcciones es diferente (por encima de 2 MB) la dirección de bloques en los últimos 8 sectores (sectores 32 a 39) puede estar en el rango de 0 a 15.
Estas funciones hacen lo mismo que las funciones de grupo ValueBlockRead y son adecuadas para leer valores de 4 bytes de los bloques de valores. Además devuelven la dirección asociada almacenada en el bloque de valores. La única diferencia es el uso del llamado abordaje sectorial. Direccionamiento sectorial significa enviar por separado direcciones sectoriales y de bloque dentro de un sector. Para MIFARE® 1K la dirección del sector puede estar en el rango de 0 a 15, y la dirección de los bloques dentro del sector que va de 0 a 3. Para MIFARE® 4k la dirección del sector puede estar en el rango de 0 a 39 y dado que la segunda mitad de la organización del espacio de direcciones es diferente (por encima de 2 MB) la dirección de bloques en los últimos 8 sectores (sectores 32 a 39) puede estar en el rango de 0 a 15.
Estas funciones se utilizan para inicializar y escribir valores de bloques de valor de cuarto byte y almacenar la dirección asociada en el bloque de valores. Funciona utilizando el llamado direccionamiento de bloques (el primer bloque tiene la dirección 0; el remolque tiene una dirección del primer sector 3 y el siguiente 7, etc. hasta el último bloque de MIFARE® 1k que también es un remolque del último sector y tiene una dirección 63).
Estas funciones son similares a las funciones del grupo ValueBlockWrite. Utilizan para la entrada, bloques de valores de 4 bytes de inicialización de valores. Además, almacena la dirección asociada en el valor de bloque. La única diferencia es el uso de direcciones sectoriales. Direccionamiento sectorial significa enviar por separado direcciones sectoriales y de bloque dentro de un sector. Para MIFARE® 1K la dirección del sector puede estar en el rango de 0 a 15, y la dirección de los bloques dentro del sector que va de 0 a 3. Para MIFARE® 4k la dirección del sector puede estar en el rango de 0 a 39 y dado que la segunda mitad de la organización del espacio de direcciones es diferente (por encima de 2 MB) la dirección de bloques en los últimos 8 sectores (sectores 32 a 39) puede estar en el rango de 0 a 15.
Este conjunto de características se utiliza para incrementar el valor de los bloques de valores de 4 bytes. El valor del incremento del bloque de valores se envía como parámetro de estas funciones. Las funciones utilizan direccionamiento de bloques (el primer bloque tiene la dirección 0; el primer remolque del sector tiene la dirección 3, el siguiente 7, etc. hasta que el último bloque MIFARE® 1K que también es un remolque del último sector, tiene una dirección 63).
Estas funciones tienen el mismo propósito que las funciones de grupo ValueBlockIncrement y se utilizan para leer valores de 4 bytes de los bloques de valores. El valor del incremento del bloque de valores se envía como parámetro de estas funciones. La única diferencia es el uso de direcciones sectoriales. Direccionamiento sectorial significa enviar por separado direcciones sectoriales y de bloque dentro de un sector. Para MIFARE® 1K la dirección del sector puede estar en el rango de 0 a 15, y la dirección de los bloques dentro del sector que va de 0 a 3. Para MIFARE® 4k la dirección del sector puede estar en el rango de 0 a 39 y dado que la segunda mitad de la organización del espacio de direcciones es diferente (por encima de 2 MB) la dirección de bloques en los últimos 8 sectores (sectores 32 a 39) puede estar en el rango de 0 a 15.
Este conjunto de funciones se utiliza para disminuir el valor de 4 bytes de los bloques de valor. El valor de la disminución del bloque de valores se envía como parámetro de estas funciones. Las funciones utilizan direccionamiento de bloques (el primer bloque tiene la dirección 0; el primer remolque del sector tiene la dirección 3, el siguiente 7, etc. hasta que el último bloque MIFARE® 1K que también es un remolque del último sector, tiene una dirección 63).
Estas funciones funcionan igual que las funciones del grupo ValueBlockDecrement y están hechas para los bloques de valores de 4 bytes de disminución de valores. El valor de la disminución del bloque de valores se envía como parámetro a estas funciones. La única diferencia es el uso de direcciones sectoriales. Eso incluye el envío por separado de direcciones de sector y direcciones de bloque dentro de un sector. Para MIFARE® 1K la dirección del sector puede estar en el rango de 0 a 15, y la dirección de los bloques dentro del sector que va de 0 a 3. Para MIFARE® 4k la dirección del sector puede estar en el rango de 0 a 39 y dado que la segunda mitad de la organización del espacio de direcciones es diferente (por encima de 2 MB) la dirección de bloques en los últimos 8 sectores (sectores 32 a 39) puede estar en el rango de 0 a 15