uFCoder 2.58
Loading...
Searching...
No Matches

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...

Functions

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)
 

Detailed Description

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.

Function 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
lpucECCSignature56 bytes ECC signature
lpucUidpointer to a chip UID (in case of successfully executed operation). Returned here for convenience.
lpucUidLenpointer 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).
lpucDlogicCardTypepointer 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
lpucECCSignature56 bytes ECC signature
lpucECCSignatureLenpointer to ECC signature length
lpucUidpointer to a chip UID (in case of successfully executed operation). Returned here for convenience.
lpucUidLenpointer 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).
lpucDlogicCardTypepointer 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
hndUFRhandle of the uFR device
lpucECCSignature56 bytes ECC signature
lpucECCSignatureLenpointer to ECC signature length
lpucUidpointer to a chip UID (in case of successfully executed operation). Returned here for convenience.
lpucUidLenpointer 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).
lpucDlogicCardTypepointer 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
signatureECCSignature acquired by call to the ReadECCSignature() function.
uidCard UID. Best if the card UID is acquired by previous call to the ReadECCSignature() function.
uid_lenCard UID length. Best if the card UID length is acquired by previous call to the ReadECCSignature() function.
DlogicCardTypeCard type. Best if the DlogicCardType is acquired by previous call to the ReadECCSignature() function.
Returns
Operation status