ome card chips supports originality checking mechanism using Elliptic Curve Digital Signature Algorithm (ECDSA). Chip families that support originality checking mechanism are NTAG 21x and Mifare Ultralight EV1. For details on originality checking, you must have an non-disclosure agreement (NDA) with the manufacturer who will provide you with the relevant documentation.
More...
|
UFR_STATUS DL_API | ReadECCSignature (OUT uint8_t lpucECCSignature[ECC_SIG_LEN], OUT uint8_t lpucUid[MAX_UID_LEN], VAR uint8_t *lpucUidLen, VAR uint8_t *lpucDlogicCardType) |
|
UFR_STATUS DL_API | ReadECCSignatureExt (OUT uint8_t *lpucECCSignature, VAR uint8_t *lpucECCSignatureLen, OUT uint8_t *lpucUid, VAR uint8_t *lpucUidLen, VAR uint8_t *lpucDlogicCardType) |
|
UFR_STATUS DL_API | ReadECCSignatureExtM (UFR_HANDLE hndUFR, OUT uint8_t *lpucECCSignature, VAR uint8_t *lpucECCSignatureLen, OUT uint8_t *lpucUid, VAR uint8_t *lpucUidLen, VAR uint8_t *lpucDlogicCardType) |
|
UFR_STATUS DL_API | OriginalityCheck (IN const uint8_t *signature, IN const uint8_t *uid, uint8_t uid_len, uint8_t DlogicCardType) |
|
ome card chips supports originality checking mechanism using Elliptic Curve Digital Signature Algorithm (ECDSA). Chip families that support originality checking mechanism are NTAG 21x and Mifare Ultralight EV1. For details on originality checking, you must have an non-disclosure agreement (NDA) with the manufacturer who will provide you with the relevant documentation.
◆ ReadECCSignature()
UFR_STATUS DL_API ReadECCSignature |
( |
OUT uint8_t | lpucECCSignature[ECC_SIG_LEN], |
|
|
OUT uint8_t | lpucUid[MAX_UID_LEN], |
|
|
VAR uint8_t * | lpucUidLen, |
|
|
VAR uint8_t * | lpucDlogicCardType ) |
This function returns the ECC signature of the card chip UID. Card chip UID is signed using EC private key known only to a manufacturer.
- Parameters
-
lpucECCSignature | 56 bytes ECC signature |
lpucUid | pointer to a chip UID (in case of successfully executed operation). Returned here for convenience. |
lpucUidLen | pointer to variable which will (in case of successfully executed operation) receive true length of the returned UID. (Maximum UID length is 10 bytes but there is three possible UID sizes: 4, 7 and 10). |
lpucDlogicCardType | pointer to variable which will (in case of successfully executed operation) receive DlogicCardType. Returned here for convenience. For DlogicCardType uFR API uses the same constants as with GetDlogicCardType() function (see Appendix: DLogic CardType enumeration). * |
- Returns
- Operation status
◆ ReadECCSignatureExt()
UFR_STATUS DL_API ReadECCSignatureExt |
( |
OUT uint8_t * | lpucECCSignature, |
|
|
VAR uint8_t * | lpucECCSignatureLen, |
|
|
OUT uint8_t * | lpucUid, |
|
|
VAR uint8_t * | lpucUidLen, |
|
|
VAR uint8_t * | lpucDlogicCardType ) |
This function returns the ECC signature of the card chip UID. Card chip UID is signed using EC private key known only to a manufacturer. Unlike the ReadECCSignature function, this function supports ECC with variable length.
- Parameters
-
lpucECCSignature | 56 bytes ECC signature |
lpucECCSignatureLen | pointer to ECC signature length |
lpucUid | pointer to a chip UID (in case of successfully executed operation). Returned here for convenience. |
lpucUidLen | pointer to variable which will (in case of successfully executed operation) receive true length of the returned UID. (Maximum UID length is 10 bytes but there is three possible UID sizes: 4, 7 and 10). |
lpucDlogicCardType | pointer to variable which will (in case of successfully executed operation) receive DlogicCardType. Returned here for convenience. For DlogicCardType uFR API uses the same constants as with GetDlogicCardType() function (see Appendix: DLogic CardType enumeration). |
- Returns
- Operation status
◆ ReadECCSignatureExtM()
UFR_STATUS DL_API ReadECCSignatureExtM |
( |
UFR_HANDLE | hndUFR, |
|
|
OUT uint8_t * | lpucECCSignature, |
|
|
VAR uint8_t * | lpucECCSignatureLen, |
|
|
OUT uint8_t * | lpucUid, |
|
|
VAR uint8_t * | lpucUidLen, |
|
|
VAR uint8_t * | lpucDlogicCardType ) |
Multi reader support. From library version 5.0.43 and firmware version 5.0.43. This function returns the ECC signature of the card chip UID. Card chip UID is signed using EC private key known only to a manufacturer. Unlike the ReadECCSignature function, this function supports ECC with variable length.
- Parameters
-
hndUFR | handle of the uFR device |
lpucECCSignature | 56 bytes ECC signature |
lpucECCSignatureLen | pointer to ECC signature length |
lpucUid | pointer to a chip UID (in case of successfully executed operation). Returned here for convenience. |
lpucUidLen | pointer to variable which will (in case of successfully executed operation) receive true length of the returned UID. (Maximum UID length is 10 bytes but there is three possible UID sizes: 4, 7 and 10). |
lpucDlogicCardType | pointer to variable which will (in case of successfully executed operation) receive DlogicCardType. Returned here for convenience. For DlogicCardType uFR API uses the same constants as with GetDlogicCardType() function (see Appendix: DLogic CardType enumeration). |
- Returns
- Operation status
◆ OriginalityCheck()
UFR_STATUS DL_API OriginalityCheck |
( |
IN const uint8_t * | signature, |
|
|
IN const uint8_t * | uid, |
|
|
uint8_t | uid_len, |
|
|
uint8_t | DlogicCardType ) |
This function depends on OpenSSL crypto library. Since OpenSSL crypto library is dynamically linked during execution, the only prerequisite for a successful call to this function is that the libeay32.dll is in the current folder (valid for Windows) and / or libcrypto.so is in the environment path (e.g. LD_LIBRARY_PATH on Linux / macOS). OriginalityCheck() performs the check if the chip on the card / tag is NXP genuine.
- Parameters
-
signature | ECCSignature acquired by call to the ReadECCSignature() function. |
uid | Card UID. Best if the card UID is acquired by previous call to the ReadECCSignature() function. |
uid_len | Card UID length. Best if the card UID length is acquired by previous call to the ReadECCSignature() function. |
DlogicCardType | Card type. Best if the DlogicCardType is acquired by previous call to the ReadECCSignature() function. |
- Returns
- Operation status