차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
ko:smartcard_api [2018/08/07 16:47]
yjjung [BS2SmartCardHeader]
ko:smartcard_api [2026/03/11 15:51] (현재)
줄 7: 줄 7:
   * [[BS2_WriteCard]]:​ SmartCard에 데이터를 저장합니다.   * [[BS2_WriteCard]]:​ SmartCard에 데이터를 저장합니다.
   * [[BS2_EraseCard]]:​ SmartCard를 포맷합니다.   * [[BS2_EraseCard]]:​ SmartCard를 포맷합니다.
 +  * [[BS2_GetLockOverride]]:​ [+ 2.9.12] 특정 조건에 해당하는 장치의 Lock Override 정보를 가져옵니다.
 +  * [[BS2_GetAllLockOverride]]:​ [+ 2.9.12] 장치의 모든 Lock Override 정보를 가져옵니다.
 +  * [[BS2_SetLockOverride]]:​ [+ 2.9.12] 장치에 Lock Override 정보를 설정합니다.
 +  * [[BS2_RemoveLockOverride]]:​ [+ 2.9.12] 특정 조건에 해당하는 장치의 Lock Override 정보를 삭제합니다.
 +  * [[BS2_RemoveAllLockOverride]]:​ [+ 2.9.12] 장치의 모든 Lock Override 정보를 삭제합니다.
 ===== 구조체 ====== ===== 구조체 ======
 ==== BS2CSNCard ==== ==== BS2CSNCard ====
줄 21: 줄 26:
 <WRAP group 100%> <WRAP group 100%>
 ^값      ^설명 ​    ​^사용된 형식 ​  ^ ^값      ^설명 ​    ​^사용된 형식 ​  ^
-|0x00 |알려지지 않은 카드 ​ | +|0x00 |알려지지 않은 카드 ​ ​| ​ | 
-|0x01 |CSN 카드 ​   | +|0x01 |CSN 카드 ​   ​|  ​
-|0x02 |Secure 카드 ​   | +|0x02 |Secure 카드 ​   ​|  ​
-|0x03 |Access 카드 ​ |+|0x03 |Access 카드 ​ ​| ​ | 
 +|0x06 |QR 코드 ​ |  |
 |0x0A |Wiegand 카드 ​ | BS2WiegandConfig.format (이 형식은 ​ BS2WiegandConfig.CSNIndex 혹은 BS2WiegandConfig.CardMask가 0으로 설정될 때 사용됩니다. | |0x0A |Wiegand 카드 ​ | BS2WiegandConfig.format (이 형식은 ​ BS2WiegandConfig.CSNIndex 혹은 BS2WiegandConfig.CardMask가 0으로 설정될 때 사용됩니다. |
 |0x0B |Config 카드 ​ | |0x0B |Config 카드 ​ |
줄 45: 줄 51:
  
 **2. //size//** \\  **2. //size//** \\ 
-카드 템플릿의 ​크기입니다. \\ \\ +데이터 버퍼 사이즈 ​크기입니다. \\ \\ 
 **3. //data//** \\  **3. //data//** \\ 
 카드 템플릿 데이터입니다. \\  카드 템플릿 데이터입니다. \\ 
줄 59: 줄 65:
     uint16_t issueCount;     uint16_t issueCount;
     uint8_t duressMask;     uint8_t duressMask;
-    uint8_t reserved[5]; +    ​uint8_t cardAuthMode;​ 
-} BS2SmartCardHeader; ​ +    uint8_t useAlphanumericID;​ 
 +    uint8_t cardAuthModeEx;​ 
 +    uint8_t numOfFaceTemplate;​ 
 +    ​uint8_t reserved[1]; 
 +} BS2SmartCardHeader;​
 </​code>​ </​code>​
 **1. //​hdrCRC//​** \\  **1. //​hdrCRC//​** \\ 
줄 79: 줄 89:
  
 **4. //​numOfTemplate//​** \\  **4. //​numOfTemplate//​** \\ 
-지문 템플릿의 개수입니다. \\ \\ +지문 템플릿의 개수입니다. \\  
 +<WRAP important>​AOC 카드 구조상 template은 [[smartcard_api#​BS2SmartCardCredentials]]에 저장됩니다. ​\\ 
 +그리고 이곳에는 지문 또는 얼굴이 선택적으로 저장되어집니다. 지문과 얼굴이 함께 저장되어지지 않습니다. \\ 
 +따라서 AOC 카드에 지문 template을 담고자 한다면, numOfFacetemplate은 반드시 0으로 설정 되어야 합니다. 
 +</​WRAP>​ 
 **5. //​templateSize//​** \\  **5. //​templateSize//​** \\ 
 지문 템플릿의 크기입니다. 일반적인 지문 템플릿의 크기는 384 바이트로 고정되어 있습니다. \\ 지문 템플릿의 크기입니다. 일반적인 지문 템플릿의 크기는 384 바이트로 고정되어 있습니다. \\
줄 88: 줄 103:
 **7. //​duressMask//​** \\  **7. //​duressMask//​** \\ 
 협박 지문 유무 마스크 값입니다. \\  협박 지문 유무 마스크 값입니다. \\ 
 +**8. //​cardAuthMode//​** \\ 
 +''​IR Face 기반''​ 카드 인증 모드 설정값입니다. \\ 
 +''​Visual Face 기반''​ **cardAuthModeEx**를 사용합니다. \\ 
 +<WRAP group 50%>
 +^값  ^설명 ​ ^
 +|2 |카드 인증만 사용 ​  |
 +|3 |카드와 지문 인증 사용 ​  |
 +|4 |카드와 PIN 인증 사용 ​ |
 +|5 |카드 인증 후 지문이나 PIN 인증 사용 ​  |
 +|6 |카드, 지문, PIN 인증 사용 ​  |
 +|254 |사용할 수 없음 ​ |
 +|255 |정의되지 않음(시스템에 정의된 모드로 동작) ​ |
 +</​WRAP>​
 +**9. //​useAlphanumericID//​** \\ 
 +Alphanumeric ID를 사용할지 결정하는 flag입니다. \\ 
 +**10. //​cardAuthModeEx//​** \\ 
 +''​IR Face 기반''​ **cardAuthMode**를 사용합니다. \\ 
 +[+ V2.7.1] ''​Visual Face 기반''​ 카드 인증 모드 설정값입니다. \\ 
 +<WRAP group 60%>
 +^값  ^1단계 인증 ​ ^2단계 인증 ​ ^3단계 인증 ​ ^
 +|21  |카드 ​ |      |   |
 +|22  |카드 ​ |얼굴 ​ |   |
 +|23  |카드 ​ |지문 ​ |   |
 +|24  |카드 ​ |PIN  |   |
 +|25  |카드 ​ |얼굴 또는 지문 ​ |   |
 +|26  |카드 ​ |얼굴 또는 PIN  |   |
 +|27  |카드 ​ |지문 또는 PIN  |   |
 +|28  |카드 ​ |얼굴 또는 지문 또는 PIN  |   |
 +|29  |카드 ​ |얼굴 ​ |지문 ​ |
 +|30  |카드 ​ |얼굴 ​ |PIN  |
 +|31  |카드 ​ |지문 ​ |얼굴 ​ |
 +|32  |카드 ​ |지문 ​ |PIN  |
 +|33  |카드 ​ |얼굴 또는 지문 ​ |PIN  |
 +|34  |카드 ​ |얼굴 ​ |지문 또는 PIN  |
 +|35  |카드 ​ |지문 ​ |얼굴 또는 PIN  |
 +|254 |사용할 수 없음 ​ |  |  |
 +|255 |정의되지 않음(시스템 정의 모드) ​ |  |  |
 +</​WRAP>​
 +**11. //​numOfFaceTemplate//​** \\ 
 +얼굴 템플릿 수를 나타냅니다. \\
 +지문과 얼굴이 갖는 기본적인 template의 크기가 다르지만 (지문:​384,​ 얼굴:552) \\
 +이경우에도 변함없이 [[smartcard_api#​BS2SmartCardCredentials]]의 templateData의 전체크기를 고려하여 저장하시면 됩니다. \\
 +<WRAP important>​AOC 카드 구조상 template은 [[smartcard_api#​BS2SmartCardCredentials]]에 저장됩니다. \\
 +그리고 이곳에는 지문 또는 얼굴이 선택적으로 저장되어집니다. 지문과 얼굴이 함께 저장되어지지 않습니다. \\
 +따라서 AOC 카드에 얼굴 template을 담고자 한다면, numOfTemplate은 반드시 0으로 설정 되어야 합니다.
 +</​WRAP>​
 +
 +**12. //​reserved//​** \\ 
 +예약된 공간입니다. \\ 
  
 ==== BS2SmartCardCredentials ==== ==== BS2SmartCardCredentials ====
줄 128: 줄 192:
 SmartCard 헤더입니다. \\ \\  SmartCard 헤더입니다. \\ \\ 
 **2. //​cardID//​** \\  **2. //​cardID//​** \\ 
-단말기에서 사용할 카드 식별자입니다. Access on Card의 경우 배열의 32 byte를 Card ID로 +단말기에서 사용할 카드 식별자입니다. ​\\ 
- 사용하고,​ Secure Credential card는 배열의 24 byte를 Card ID로 사용하게 됩니다. \\ \\ +Access on Card의 경우 배열의 32 byte를 Card ID로 사용하고, ​\\ 
 +Secure Credential card는 배열의 24 byte를 Card ID로 사용하게 됩니다. \\ 
 +Secure Credential Card(SCC)의 경우, 32 byte는 Card ID(24 bytes), issueCount(4 byte) 그리고 Time Stamp(4 byte)로 채워져야 합니다. \\ 
 +또한, BS2UserBlob 구조체의 cardObjs array가 SC Card로 채워야 하며, SC Card 발급시마다 cardObjs 업데이트 되어야 합니다. \\ \\
 **3. //​credentials//​** \\  **3. //​credentials//​** \\ 
 pin code나 지문 템플릿이 저장되어 있는 인증 데이터 영역입니다. \\ \\  pin code나 지문 템플릿이 저장되어 있는 인증 데이터 영역입니다. \\ \\ 
줄 151: 줄 218:
 **3. //​smartCard//​** \\  **3. //​smartCard//​** \\ 
 SmartCard 데이터\\ ​ SmartCard 데이터\\ ​
 +
 +==== BS2LockOverride ====
 +<code cpp>
 +typedef struct {
 +    uint8_t cardID[BS2_CARD_DATA_SIZE];​ ///<​ 32 bytes
 +    uint16_t issueCount;​ ///<​ 2 bytes
 +
 +    BS2_CARD_TYPE type;​ ///<​ 1 byte
 +    uint8_t size;​ ///<​ 1 byte
 +
 +    BS2_USER_ID userID;​ ///<​ 32 bytes
 +    uint8_t reserved[4];​ ///<​ 4 bytes
 +} BS2LockOverride;​
 +</​code>​
 +**1. //​cardID//​** \\ 
 +32byte의 카드ID 입니다. \\ \\
 +**2. //​issueCount//​** \\ 
 +스마트 카드의 발급 회차입니다. \\ \\
 +**3. //type//** \\ 
 +카드 유형을 나타내는 코드 값입니다. 현재 Lock Override 기능을 지원하는 카드 유형은 다음과 같습니다. \\
 +<WRAP group 100%>
 +^값      ^설명 ​    ​^사용된 형식 ​  ^
 +|0x01 |CSN 카드 ​   |  |
 +|0x02 |Secure 카드 ​   |  |
 +</​WRAP>​
 +**4. //size//** \\ 
 +카드 ID의 크기를 나타내며,​ 32의 값을 갖습니다. \\ \\ 
 +**5. //​userID//​** \\ 
 +할당하고자 하는 카드가 이미 특정 사용자에게 할당된 상태라면,​ 해당 사용자의 ID를 설정할 수 있습니다. \\ \\