> For the complete documentation index, see [llms.txt](https://sandbox-docs.verifone.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sandbox-docs.verifone.com/adk-5.0-programmers-guide/readme/files/dir_27300797e836bc98b51baa10b2cd3e7f/dir_ed03fad8e11e79f04f96243dc0e0ab4e/crdsync__client_8h.md).

# crdsync\_client.h

[Data Structures](#nested-classes) | [Macros](#define-members) | [Typedefs](#typedef-members) | [Functions](#func-members)

[Go to the source code of this file.](/adk-5.0-programmers-guide/crdsync__client_8h_source.md)

|                 |                                                                |
| --------------- | -------------------------------------------------------------- |
| Data Structures |                                                                |
| struct          | [CRDSYNC\_ServerConfig](#struct_c_r_d_s_y_n_c___server_config) |

|         |                                                                                                                                 |
| ------- | ------------------------------------------------------------------------------------------------------------------------------- |
| Macros  |                                                                                                                                 |
| #define | [CRDSYNC\_Success](#a9e601169c9ae8fcf306f0640d1fc79bf)   0                                                                      |
|         | <p>Operation was successful. <a href="#a9e601169c9ae8fcf306f0640d1fc79bf">More...</a><br></p>                                   |
| #define | [CRDSYNC\_Failure](#a438c2eefe1adbe5b412a561ca7003f65)   1                                                                      |
|         | <p>Operation failed. <a href="#a438c2eefe1adbe5b412a561ca7003f65">More...</a><br></p>                                           |
| #define | [CRDSYNC\_Error\_Power\_Action](#a36be0541d706234898ff7a226df06d3c)   2                                                         |
|         | <p>Power-Up operation failed. <a href="#a36be0541d706234898ff7a226df06d3c">More...</a><br></p>                                  |
| #define | [CRDSYNC\_Error\_Not\_Supported](#a9ad14b772af28822cf3007a004028f84)   3                                                        |
|         | <p>Synchronous card type not supported. <a href="#a9ad14b772af28822cf3007a004028f84">More...</a><br></p>                        |
| #define | [CRDSYNC\_Error\_BadParam](#a18ce9d5f234d75e198c6a6c694e5109d)   4                                                              |
|         | <p>A function parameter is invalid. <a href="#a18ce9d5f234d75e198c6a6c694e5109d">More...</a><br></p>                            |
| #define | [CRDSYNC\_Error\_Protocol](#a7be5ace5182e07f48c854c2d792efb4c)   5                                                              |
|         | <p>Communication error with synchronous card. <a href="#a7be5ace5182e07f48c854c2d792efb4c">More...</a><br></p>                  |
| #define | [CRDSYNC\_Error\_Mem\_Protected](#a8279589bd954c9541310ecf07530e03a)   6                                                        |
|         | <p>SLE Memory protected. <a href="#a8279589bd954c9541310ecf07530e03a">More...</a><br></p>                                       |
| #define | [CRDSYNC\_Error\_PSC\_Required](#a4398c6dd2a7cd44a64fd80865cd12efb)   7                                                         |
|         | <p>PSC Validation Required. <a href="#a4398c6dd2a7cd44a64fd80865cd12efb">More...</a><br></p>                                    |
| #define | [CRDSYNC\_Error\_PSC](#a36b31958b780b18b1381358cb08f6079)   8                                                                   |
|         | <p>PSC Validation Failed. <a href="#a36b31958b780b18b1381358cb08f6079">More...</a><br></p>                                      |
| #define | [CRDSYNC\_Error\_FORMAT](#af23ea59b988dd1a0107bd79e4230341e)   -101                                                             |
|         | <p>Malformed message. <a href="#af23ea59b988dd1a0107bd79e4230341e">More...</a><br></p>                                          |
| #define | [CRDSYNC\_Error\_TLV](#ae324828c9ccef6dc699ea8b497fc07fb)   -102                                                                |
|         | <p>Error parsing TLV input buffer. <a href="#ae324828c9ccef6dc699ea8b497fc07fb">More...</a><br></p>                             |
| #define | [CRDSYNC\_Error\_PARAMETER](#a7aa81e47610895df8f3db4283eee6a56)   -103                                                          |
|         | <p>Missing parameter. <a href="#a7aa81e47610895df8f3db4283eee6a56">More...</a><br></p>                                          |
| #define | [CRDSYNC\_Error\_UNKNOWN\_CLA](#ac65629cac4b09696cb5d70dfd40fa482)   -104                                                       |
|         | <p>Unknown class. <a href="#ac65629cac4b09696cb5d70dfd40fa482">More...</a><br></p>                                              |
| #define | [CRDSYNC\_Error\_UNKNOWN\_INS](#a432ab09e41a0e352cf6edca01dee36a4)   -105                                                       |
|         | <p>Unknown instruction. <a href="#a432ab09e41a0e352cf6edca01dee36a4">More...</a><br></p>                                        |
| #define | [CRDSYNC\_Error\_BLOCKED](#a64ab17b6dd100c1a584970fbdc61a95c)   -106                                                            |
|         | <p>CRDSYNC service is blocked by another client/function call. <a href="#a64ab17b6dd100c1a584970fbdc61a95c">More...</a><br></p> |
| #define | [CRDSYNC\_Error\_NO\_SERVER](#a5616b956f5b62c752e39e42d9ee0f68d)   -201                                                         |
|         | <p>No server configured. <a href="#a5616b956f5b62c752e39e42d9ee0f68d">More...</a><br></p>                                       |
| #define | [CRDSYNC\_Error\_IPC](#a9ff7df4813e73b811e153c746d900945)   -202                                                                |
|         | <p>IPC error (e.g. connection to server lost) <a href="#a9ff7df4813e73b811e153c746d900945">More...</a><br></p>                  |
| #define | [CRDSYNC\_CARDTYPE\_AT24C01SC](#a0498c6b5a79796abfb55dc0b9b2037c2)   1                                                          |
|         | <p>Atmel AT24C01SC. <a href="#a0498c6b5a79796abfb55dc0b9b2037c2">More...</a><br></p>                                            |
| #define | [CRDSYNC\_CARDTYPE\_AT24C02SC](#a0275ae827d5612fc02a2390754ab1ce6)   2                                                          |
|         | <p>Atmel AT24C02SC. <a href="#a0275ae827d5612fc02a2390754ab1ce6">More...</a><br></p>                                            |
| #define | [CRDSYNC\_CARDTYPE\_AT24C04SC](#aedf79d2acabae0e89c9f627faeed61e2)   3                                                          |
|         | <p>Atmel AT24C04SC. <a href="#aedf79d2acabae0e89c9f627faeed61e2">More...</a><br></p>                                            |
| #define | [CRDSYNC\_CARDTYPE\_AT24C08SC](#abc73a9cc90b40c139244436baefd48b7)   4                                                          |
|         | <p>Atmel AT24C08SC. <a href="#abc73a9cc90b40c139244436baefd48b7">More...</a><br></p>                                            |
| #define | [CRDSYNC\_CARDTYPE\_AT24C16SC](#a101ac06486cf501d08af0213a9f91674)   5                                                          |
|         | <p>Atmel AT24C16SC. <a href="#a101ac06486cf501d08af0213a9f91674">More...</a><br></p>                                            |
| #define | [CRDSYNC\_CARDTYPE\_ST14C02SC](#a80ebd75ac4813946bf8dec804f90078a)   6                                                          |
|         | <p>STMicro ST14C02SC. <a href="#a80ebd75ac4813946bf8dec804f90078a">More...</a><br></p>                                          |
| #define | [CRDSYNC\_CARDTYPE\_AT24C32SC](#a61b592579b3b6cf111114ba5a84a2a3b)   7                                                          |
|         | <p>Atmel AT24C16SC. <a href="#a61b592579b3b6cf111114ba5a84a2a3b">More...</a><br></p>                                            |
| #define | [CRDSYNC\_CARDTYPE\_AT24C64SC](#a094e8a68eba25d222082c97981d70ed7)   8                                                          |
|         | <p>Atmel AT24C16SC. <a href="#a094e8a68eba25d222082c97981d70ed7">More...</a><br></p>                                            |
| #define | [CRDSYNC\_CARDTYPE\_SLE4418](#ad5812d694bd9e08939f6097b9da33bfd)   9                                                            |
|         | <p>Siemens SLE4418. <a href="#ad5812d694bd9e08939f6097b9da33bfd">More...</a><br></p>                                            |
| #define | [CRDSYNC\_CARDTYPE\_SLE4428](#a4ca8213e6acb777ca491b936b14684e3)   10                                                           |
|         | <p>Siemens SLE4428. <a href="#a4ca8213e6acb777ca491b936b14684e3">More...</a><br></p>                                            |
| #define | [CRDSYNC\_CARDTYPE\_SLE4432](#a60f7b1166993324b8adfd3297c400f2a)   11                                                           |
|         | <p>Siemens SLE4432. <a href="#a60f7b1166993324b8adfd3297c400f2a">More...</a><br></p>                                            |
| #define | [CRDSYNC\_CARDTYPE\_SLE4442](#ace0f6eb7b9fc63e0f37634f89945322e)   12                                                           |
|         | <p>Siemens SLE4442. <a href="#ace0f6eb7b9fc63e0f37634f89945322e">More...</a><br></p>                                            |
| #define | [CRDSYNC\_CARDTYPE\_AT24C128SC](#afc98db73875c13859903cb976ae37883)   13                                                        |
|         | <p>Atmel AT24C128SC. <a href="#afc98db73875c13859903cb976ae37883">More...</a><br></p>                                           |
| #define | [CRDSYNC\_CARDTYPE\_AT24C256SC](#acc68fe707fe903d871e1b3e422a35a30)   14                                                        |
|         | <p>Atmel AT24C256SC. <a href="#acc68fe707fe903d871e1b3e422a35a30">More...</a><br></p>                                           |

|                 |                                                                                                    |
| --------------- | -------------------------------------------------------------------------------------------------- |
| Typedefs        |                                                                                                    |
| typedef int     | [CRDSYNC\_RET](#af21f57a16d031a8c4583bf2a77834301)                                                 |
|                 | <p>Response code type definition. <a href="#af21f57a16d031a8c4583bf2a77834301">More...</a><br></p> |
| typedef void(\* | [CRDSYNC\_TraceCallback](#a5509d72b001f4754e45644e8f09dbb42)) (const char \*str, void \*data)      |

|                                                                                                                                                                                   |                                                                                                                                                                                 |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Functions                                                                                                                                                                         |                                                                                                                                                                                 |
| int                                                                                                                                                                               | [crdSync\_ConfigureServer](#ab2e78bd9c5c6b74f19cea21b58cc46ff) (unsigned char server\_cnt, const [CRDSYNC\_ServerConfig](#struct_c_r_d_s_y_n_c___server_config) \*server\_cfg)  |
| void                                                                                                                                                                              | [crdSync\_Version](#aad6e42b9b4a77a320b963da0d9ebd455) (char \*version, unsigned char len)                                                                                      |
| void                                                                                                                                                                              | [crdSync\_SetTraceCallback](#a3d9902893c6348c09d6d70f20b0a13b2) ([CRDSYNC\_TraceCallback](#a5509d72b001f4754e45644e8f09dbb42) cbf, void \*cb\_data)                             |
| [CRDSYNC\_RET](/adk-5.0-programmers-guide/readme/files/dir_27300797e836bc98b51baa10b2cd3e7f/dir_ed03fad8e11e79f04f96243dc0e0ab4e/crdsync_8h.md#af21f57a16d031a8c4583bf2a77834301) | [crdSync\_Open](#ae4db0dd5e9a3959cb1c275398d12a5ab) (unsigned char server\_idx, unsigned Options)                                                                               |
|                                                                                                                                                                                   | <p>Open the synchronous card driver<br>. <a href="#ae4db0dd5e9a3959cb1c275398d12a5ab">More...</a><br></p>                                                                       |
| [CRDSYNC\_RET](/adk-5.0-programmers-guide/readme/files/dir_27300797e836bc98b51baa10b2cd3e7f/dir_ed03fad8e11e79f04f96243dc0e0ab4e/crdsync_8h.md#af21f57a16d031a8c4583bf2a77834301) | [crdSync\_Close](#ab0c482a0301b187a94c57efcb14cadbc) (unsigned char server\_idx, unsigned Options)                                                                              |
|                                                                                                                                                                                   | <p>Close the synchronous card driver<br>. <a href="#ab0c482a0301b187a94c57efcb14cadbc">More...</a><br></p>                                                                      |
| [CRDSYNC\_RET](/adk-5.0-programmers-guide/readme/files/dir_27300797e836bc98b51baa10b2cd3e7f/dir_ed03fad8e11e79f04f96243dc0e0ab4e/crdsync_8h.md#af21f57a16d031a8c4583bf2a77834301) | [crdSync\_IsCardPresent](#a6c35c135ee3df66ce32f0046b68ff136) (unsigned char server\_idx)                                                                                        |
|                                                                                                                                                                                   | <p>Check if a card is inserted in the full-sized card reader.<br>. <a href="#a6c35c135ee3df66ce32f0046b68ff136">More...</a><br></p>                                             |
| [CRDSYNC\_RET](/adk-5.0-programmers-guide/readme/files/dir_27300797e836bc98b51baa10b2cd3e7f/dir_ed03fad8e11e79f04f96243dc0e0ab4e/crdsync_8h.md#af21f57a16d031a8c4583bf2a77834301) | [crdSync\_PowerUp](#a7ab38bf1f5e50e8abfcd793fbd0afaca) (unsigned char server\_idx, int CardType, unsigned char AtrBuf\[], unsigned char \*AtrLen)                               |
|                                                                                                                                                                                   | <p>Power up the synchronous card<br>. <a href="#a7ab38bf1f5e50e8abfcd793fbd0afaca">More...</a><br></p>                                                                          |
| [CRDSYNC\_RET](/adk-5.0-programmers-guide/readme/files/dir_27300797e836bc98b51baa10b2cd3e7f/dir_ed03fad8e11e79f04f96243dc0e0ab4e/crdsync_8h.md#af21f57a16d031a8c4583bf2a77834301) | [crdSync\_PowerDown](#ac07f135ba2e36dd12e6b119c6595173f) (unsigned char server\_idx)                                                                                            |
|                                                                                                                                                                                   | <p>Power down the synchronous card<br>. <a href="#ac07f135ba2e36dd12e6b119c6595173f">More...</a><br></p>                                                                        |
| [CRDSYNC\_RET](/adk-5.0-programmers-guide/readme/files/dir_27300797e836bc98b51baa10b2cd3e7f/dir_ed03fad8e11e79f04f96243dc0e0ab4e/crdsync_8h.md#af21f57a16d031a8c4583bf2a77834301) | [crdSync\_ReadData](#a46ece5ab7da04e01c3e816dfbad788b9) (unsigned char server\_idx, int MemoryAddress, unsigned char RxBuf\[], unsigned short RxLen)                            |
|                                                                                                                                                                                   | <p>Read data from the synchronous card<br>. <a href="#a46ece5ab7da04e01c3e816dfbad788b9">More...</a><br></p>                                                                    |
| [CRDSYNC\_RET](/adk-5.0-programmers-guide/readme/files/dir_27300797e836bc98b51baa10b2cd3e7f/dir_ed03fad8e11e79f04f96243dc0e0ab4e/crdsync_8h.md#af21f57a16d031a8c4583bf2a77834301) | [crdSync\_WriteData](#ac37939611b8253d24be1eda8ec7ae0a9) (unsigned char server\_idx, int MemoryAddress, const unsigned char TxBuf\[], unsigned short TxLen)                     |
|                                                                                                                                                                                   | <p>Write data to the synchronous card<br>. <a href="#ac37939611b8253d24be1eda8ec7ae0a9">More...</a><br></p>                                                                     |
| [CRDSYNC\_RET](/adk-5.0-programmers-guide/readme/files/dir_27300797e836bc98b51baa10b2cd3e7f/dir_ed03fad8e11e79f04f96243dc0e0ab4e/crdsync_8h.md#af21f57a16d031a8c4583bf2a77834301) | [crdSync\_PresentSecretCode](#aac1af40e85e5849800866c522caed887) (unsigned char server\_idx, const unsigned char PinCode\[], unsigned short nSize)                              |
|                                                                                                                                                                                   | <p>Present Secret code to the synchronous card<br>. <a href="#aac1af40e85e5849800866c522caed887">More...</a><br></p>                                                            |
| [CRDSYNC\_RET](/adk-5.0-programmers-guide/readme/files/dir_27300797e836bc98b51baa10b2cd3e7f/dir_ed03fad8e11e79f04f96243dc0e0ab4e/crdsync_8h.md#af21f57a16d031a8c4583bf2a77834301) | [crdSync\_ReadSecurityMem](#af865ea38609963f14c129e150586ce0e) (unsigned char server\_idx, unsigned char RxBuff\[], unsigned char \*BufLen)                                     |
|                                                                                                                                                                                   | <p>Read Security Memory from synchronous card<br>. <a href="#af865ea38609963f14c129e150586ce0e">More...</a><br></p>                                                             |
| [CRDSYNC\_RET](/adk-5.0-programmers-guide/readme/files/dir_27300797e836bc98b51baa10b2cd3e7f/dir_ed03fad8e11e79f04f96243dc0e0ab4e/crdsync_8h.md#af21f57a16d031a8c4583bf2a77834301) | [crdSync\_WriteSecurityMem](#a5f567f6f82f15f84a73e08a589da5a55) (unsigned char server\_idx, const unsigned char TxBuf\[], unsigned short TxLen)                                 |
|                                                                                                                                                                                   | <p>Update PIN Code (PSC) in synchronous card<br>. <a href="#a5f567f6f82f15f84a73e08a589da5a55">More...</a><br></p>                                                              |
| [CRDSYNC\_RET](/adk-5.0-programmers-guide/readme/files/dir_27300797e836bc98b51baa10b2cd3e7f/dir_ed03fad8e11e79f04f96243dc0e0ab4e/crdsync_8h.md#af21f57a16d031a8c4583bf2a77834301) | [crdSync\_ReadProtectionMem](#afce4d1364cf78742a866311f793fd433) (unsigned char server\_idx, unsigned char RxBuf\[])                                                            |
|                                                                                                                                                                                   | <p>SLE4442: Read Protection Memory<br>. <a href="#afce4d1364cf78742a866311f793fd433">More...</a><br></p>                                                                        |
| [CRDSYNC\_RET](/adk-5.0-programmers-guide/readme/files/dir_27300797e836bc98b51baa10b2cd3e7f/dir_ed03fad8e11e79f04f96243dc0e0ab4e/crdsync_8h.md#af21f57a16d031a8c4583bf2a77834301) | [crdSync\_WriteProtectionMem](#a4d53646e79d8f7e0cd5ff8076328ebc7) (unsigned char server\_idx, unsigned short MemoryAddress, const unsigned char TxBuf\[], unsigned short TxLen) |
|                                                                                                                                                                                   | <p>SLE4442: Write Protection Memory<br>. <a href="#a4d53646e79d8f7e0cd5ff8076328ebc7">More...</a><br></p>                                                                       |
| [CRDSYNC\_RET](/adk-5.0-programmers-guide/readme/files/dir_27300797e836bc98b51baa10b2cd3e7f/dir_ed03fad8e11e79f04f96243dc0e0ab4e/crdsync_8h.md#af21f57a16d031a8c4583bf2a77834301) | [crdSync\_ReadWithProtectionBit](#afcab5a3b6a0f4e7fa248da2652653d8f) (unsigned char server\_idx, int MemoryAddress, unsigned char RxBuf\[], unsigned short RxLen)               |
|                                                                                                                                                                                   | <p>SLE4428: Read data with protection bit<br>. <a href="#afcab5a3b6a0f4e7fa248da2652653d8f">More...</a><br></p>                                                                 |
| [CRDSYNC\_RET](/adk-5.0-programmers-guide/readme/files/dir_27300797e836bc98b51baa10b2cd3e7f/dir_ed03fad8e11e79f04f96243dc0e0ab4e/crdsync_8h.md#af21f57a16d031a8c4583bf2a77834301) | [crdSync\_WriteWithProtectionBit](#a55cf46f272ccde8eb8c2d1f4d37e490a) (unsigned char server\_idx, int MemoryAddress, unsigned char TxBuf\[], unsigned short TxLen)              |
|                                                                                                                                                                                   | <p>SLE4428: Write data with protection bit<br>. <a href="#a55cf46f272ccde8eb8c2d1f4d37e490a">More...</a><br></p>                                                                |

***

### DataStructure Documentation <a href="#data-structure-documentation" id="data-structure-documentation"></a>

### CRDSYNC\_ServerConfig <a href="#struct_c_r_d_s_y_n_c___server_config" id="struct_c_r_d_s_y_n_c___server_config"></a>

struct CRDSYNC\_ServerConfig

Server configuration

|                |          |                                                           |
| -------------- | -------- | --------------------------------------------------------- |
| Data Fields    |          |                                                           |
| const char \*  | hostname | host name of server, NULL or empty string means localhost |
| unsigned short | port     | port to connect to, 0 means default port (5805)           |

### MacroDefinition Documentation <a href="#macro-definition-documentation" id="macro-definition-documentation"></a>

### CRDSYNC\_CARDTYPE\_AT24C01SC <a href="#a0498c6b5a79796abfb55dc0b9b2037c2" id="a0498c6b5a79796abfb55dc0b9b2037c2"></a>

\#define CRDSYNC\_CARDTYPE\_AT24C01SC   1

Atmel AT24C01SC.

### CRDSYNC\_CARDTYPE\_AT24C02SC <a href="#a0275ae827d5612fc02a2390754ab1ce6" id="a0275ae827d5612fc02a2390754ab1ce6"></a>

\#define CRDSYNC\_CARDTYPE\_AT24C02SC   2

Atmel AT24C02SC.

### CRDSYNC\_CARDTYPE\_AT24C04SC <a href="#aedf79d2acabae0e89c9f627faeed61e2" id="aedf79d2acabae0e89c9f627faeed61e2"></a>

\#define CRDSYNC\_CARDTYPE\_AT24C04SC   3

Atmel AT24C04SC.

### CRDSYNC\_CARDTYPE\_AT24C08SC <a href="#abc73a9cc90b40c139244436baefd48b7" id="abc73a9cc90b40c139244436baefd48b7"></a>

\#define CRDSYNC\_CARDTYPE\_AT24C08SC   4

Atmel AT24C08SC.

### CRDSYNC\_CARDTYPE\_AT24C128SC <a href="#afc98db73875c13859903cb976ae37883" id="afc98db73875c13859903cb976ae37883"></a>

\#define CRDSYNC\_CARDTYPE\_AT24C128SC   13

Atmel AT24C128SC.

### CRDSYNC\_CARDTYPE\_AT24C16SC <a href="#a101ac06486cf501d08af0213a9f91674" id="a101ac06486cf501d08af0213a9f91674"></a>

\#define CRDSYNC\_CARDTYPE\_AT24C16SC   5

Atmel AT24C16SC.

### CRDSYNC\_CARDTYPE\_AT24C256SC <a href="#acc68fe707fe903d871e1b3e422a35a30" id="acc68fe707fe903d871e1b3e422a35a30"></a>

\#define CRDSYNC\_CARDTYPE\_AT24C256SC   14

Atmel AT24C256SC.

### CRDSYNC\_CARDTYPE\_AT24C32SC <a href="#a61b592579b3b6cf111114ba5a84a2a3b" id="a61b592579b3b6cf111114ba5a84a2a3b"></a>

\#define CRDSYNC\_CARDTYPE\_AT24C32SC   7

Atmel AT24C16SC.

### CRDSYNC\_CARDTYPE\_AT24C64SC <a href="#a094e8a68eba25d222082c97981d70ed7" id="a094e8a68eba25d222082c97981d70ed7"></a>

\#define CRDSYNC\_CARDTYPE\_AT24C64SC   8

Atmel AT24C16SC.

### CRDSYNC\_CARDTYPE\_SLE4418 <a href="#ad5812d694bd9e08939f6097b9da33bfd" id="ad5812d694bd9e08939f6097b9da33bfd"></a>

\#define CRDSYNC\_CARDTYPE\_SLE4418   9

Siemens SLE4418.

### CRDSYNC\_CARDTYPE\_SLE4428 <a href="#a4ca8213e6acb777ca491b936b14684e3" id="a4ca8213e6acb777ca491b936b14684e3"></a>

\#define CRDSYNC\_CARDTYPE\_SLE4428   10

Siemens SLE4428.

### CRDSYNC\_CARDTYPE\_SLE4432 <a href="#a60f7b1166993324b8adfd3297c400f2a" id="a60f7b1166993324b8adfd3297c400f2a"></a>

\#define CRDSYNC\_CARDTYPE\_SLE4432   11

Siemens SLE4432.

### CRDSYNC\_CARDTYPE\_SLE4442 <a href="#ace0f6eb7b9fc63e0f37634f89945322e" id="ace0f6eb7b9fc63e0f37634f89945322e"></a>

\#define CRDSYNC\_CARDTYPE\_SLE4442   12

Siemens SLE4442.

### CRDSYNC\_CARDTYPE\_ST14C02SC <a href="#a80ebd75ac4813946bf8dec804f90078a" id="a80ebd75ac4813946bf8dec804f90078a"></a>

\#define CRDSYNC\_CARDTYPE\_ST14C02SC   6

STMicro ST14C02SC.

### CRDSYNC\_Error\_BadParam <a href="#a18ce9d5f234d75e198c6a6c694e5109d" id="a18ce9d5f234d75e198c6a6c694e5109d"></a>

\#define CRDSYNC\_Error\_BadParam   4

A function parameter is invalid.

### CRDSYNC\_Error\_BLOCKED <a href="#a64ab17b6dd100c1a584970fbdc61a95c" id="a64ab17b6dd100c1a584970fbdc61a95c"></a>

\#define CRDSYNC\_Error\_BLOCKED   -106

CRDSYNC service is blocked by another client/function call.

### CRDSYNC\_Error\_FORMAT <a href="#af23ea59b988dd1a0107bd79e4230341e" id="af23ea59b988dd1a0107bd79e4230341e"></a>

\#define CRDSYNC\_Error\_FORMAT   -101

Malformed message.

### CRDSYNC\_Error\_IPC <a href="#a9ff7df4813e73b811e153c746d900945" id="a9ff7df4813e73b811e153c746d900945"></a>

\#define CRDSYNC\_Error\_IPC   -202

IPC error (e.g. connection to server lost)

### CRDSYNC\_Error\_Mem\_Protected <a href="#a8279589bd954c9541310ecf07530e03a" id="a8279589bd954c9541310ecf07530e03a"></a>

\#define CRDSYNC\_Error\_Mem\_Protected   6

SLE Memory protected.

### CRDSYNC\_Error\_NO\_SERVER <a href="#a5616b956f5b62c752e39e42d9ee0f68d" id="a5616b956f5b62c752e39e42d9ee0f68d"></a>

\#define CRDSYNC\_Error\_NO\_SERVER   -201

No server configured.

### CRDSYNC\_Error\_Not\_Supported <a href="#a9ad14b772af28822cf3007a004028f84" id="a9ad14b772af28822cf3007a004028f84"></a>

\#define CRDSYNC\_Error\_Not\_Supported   3

Synchronous card type not supported.

### CRDSYNC\_Error\_PARAMETER <a href="#a7aa81e47610895df8f3db4283eee6a56" id="a7aa81e47610895df8f3db4283eee6a56"></a>

\#define CRDSYNC\_Error\_PARAMETER   -103

Missing parameter.

### CRDSYNC\_Error\_Power\_Action <a href="#a36be0541d706234898ff7a226df06d3c" id="a36be0541d706234898ff7a226df06d3c"></a>

\#define CRDSYNC\_Error\_Power\_Action   2

Power-Up operation failed.

### CRDSYNC\_Error\_Protocol <a href="#a7be5ace5182e07f48c854c2d792efb4c" id="a7be5ace5182e07f48c854c2d792efb4c"></a>

\#define CRDSYNC\_Error\_Protocol   5

Communication error with synchronous card.

### CRDSYNC\_Error\_PSC <a href="#a36b31958b780b18b1381358cb08f6079" id="a36b31958b780b18b1381358cb08f6079"></a>

\#define CRDSYNC\_Error\_PSC   8

PSC Validation Failed.

### CRDSYNC\_Error\_PSC\_Required <a href="#a4398c6dd2a7cd44a64fd80865cd12efb" id="a4398c6dd2a7cd44a64fd80865cd12efb"></a>

\#define CRDSYNC\_Error\_PSC\_Required   7

PSC Validation Required.

### CRDSYNC\_Error\_TLV <a href="#ae324828c9ccef6dc699ea8b497fc07fb" id="ae324828c9ccef6dc699ea8b497fc07fb"></a>

\#define CRDSYNC\_Error\_TLV   -102

Error parsing TLV input buffer.

### CRDSYNC\_Error\_UNKNOWN\_CLA <a href="#ac65629cac4b09696cb5d70dfd40fa482" id="ac65629cac4b09696cb5d70dfd40fa482"></a>

\#define CRDSYNC\_Error\_UNKNOWN\_CLA   -104

Unknown class.

### CRDSYNC\_Error\_UNKNOWN\_INS <a href="#a432ab09e41a0e352cf6edca01dee36a4" id="a432ab09e41a0e352cf6edca01dee36a4"></a>

\#define CRDSYNC\_Error\_UNKNOWN\_INS   -105

Unknown instruction.

### CRDSYNC\_Failure <a href="#a438c2eefe1adbe5b412a561ca7003f65" id="a438c2eefe1adbe5b412a561ca7003f65"></a>

\#define CRDSYNC\_Failure   1

Operation failed.

### CRDSYNC\_Success <a href="#a9e601169c9ae8fcf306f0640d1fc79bf" id="a9e601169c9ae8fcf306f0640d1fc79bf"></a>

\#define CRDSYNC\_Success   0

Operation was successful.

### TypedefDocumentation <a href="#typedef-documentation" id="typedef-documentation"></a>

### CRDSYNC\_RET <a href="#af21f57a16d031a8c4583bf2a77834301" id="af21f57a16d031a8c4583bf2a77834301"></a>

typedef int [CRDSYNC\_RET](/adk-5.0-programmers-guide/readme/files/dir_27300797e836bc98b51baa10b2cd3e7f/dir_ed03fad8e11e79f04f96243dc0e0ab4e/crdsync_8h.md#af21f57a16d031a8c4583bf2a77834301)

Response code type definition.

### CRDSYNC\_TraceCallback <a href="#a5509d72b001f4754e45644e8f09dbb42" id="a5509d72b001f4754e45644e8f09dbb42"></a>

typedef void(\\\* CRDSYNC\_TraceCallback) (const char \\\*str, void \\\*data)

Type of function that is called for traces, see [crdSync\_SetTraceCallback()](#a3d9902893c6348c09d6d70f20b0a13b2)

**Parameters**

\[in] **str** : Trace message. \[in] **data** : Data pointer provided by the application.

### FunctionDocumentation <a href="#function-documentation" id="function-documentation"></a>

### crdSync\_Close() <a href="#ab0c482a0301b187a94c57efcb14cadbc" id="ab0c482a0301b187a94c57efcb14cadbc"></a>

[CRDSYNC\_RET](/adk-5.0-programmers-guide/readme/files/dir_27300797e836bc98b51baa10b2cd3e7f/dir_ed03fad8e11e79f04f96243dc0e0ab4e/crdsync_8h.md#af21f57a16d031a8c4583bf2a77834301) crdSync\_Close

Close the synchronous card driver .

**Parameters**

\[in] **server\_idx** - index of server in server configuration (see crdSync\_ConfigureServer()). \[in] **Options** - Reserved for future use

#### Returns

[CRDSYNC\_Success](#a9e601169c9ae8fcf306f0640d1fc79bf) - Synchronous card driver closed.

[CRDSYNC\_Failure](#a438c2eefe1adbe5b412a561ca7003f65) - Error, synchronous card driver is not opened.

### crdSync\_ConfigureServer() <a href="#ab2e78bd9c5c6b74f19cea21b58cc46ff" id="ab2e78bd9c5c6b74f19cea21b58cc46ff"></a>

int crdSync\_ConfigureServer

Configure servers. Set servers and connect to them.

**Parameters**

\[in] **server\_cnt** : number of servers. Set to 0 to disconnect from all servers. \[in] **server\_cfg** : list of server configurations

#### Returns

\[unsupported block]

### crdSync\_IsCardPresent() <a href="#a6c35c135ee3df66ce32f0046b68ff136" id="a6c35c135ee3df66ce32f0046b68ff136"></a>

[CRDSYNC\_RET](/adk-5.0-programmers-guide/readme/files/dir_27300797e836bc98b51baa10b2cd3e7f/dir_ed03fad8e11e79f04f96243dc0e0ab4e/crdsync_8h.md#af21f57a16d031a8c4583bf2a77834301) crdSync\_IsCardPresent

Check if a card is inserted in the full-sized card reader. .

**Parameters**

\[in] **server\_idx** - index of server in server configuration (see crdSync\_ConfigureServer()).

#### Returns

[CRDSYNC\_Success](#a9e601169c9ae8fcf306f0640d1fc79bf) - A card is inserted.

[CRDSYNC\_Failure](#a438c2eefe1adbe5b412a561ca7003f65) - No card inserted.

### crdSync\_Open() <a href="#ae4db0dd5e9a3959cb1c275398d12a5ab" id="ae4db0dd5e9a3959cb1c275398d12a5ab"></a>

[CRDSYNC\_RET](/adk-5.0-programmers-guide/readme/files/dir_27300797e836bc98b51baa10b2cd3e7f/dir_ed03fad8e11e79f04f96243dc0e0ab4e/crdsync_8h.md#af21f57a16d031a8c4583bf2a77834301) crdSync\_Open

Open the synchronous card driver .

**Parameters**

\[in] **server\_idx** - index of server in server configuration (see crdSync\_ConfigureServer()). \[in] **Options** - Reserved for future use

#### Returns

[CRDSYNC\_Success](#a9e601169c9ae8fcf306f0640d1fc79bf) - Synchronous card driver opened.

[CRDSYNC\_Failure](#a438c2eefe1adbe5b412a561ca7003f65) - Error, synchronous card driver is already opened.

### crdSync\_PowerDown() <a href="#ac07f135ba2e36dd12e6b119c6595173f" id="ac07f135ba2e36dd12e6b119c6595173f"></a>

[CRDSYNC\_RET](/adk-5.0-programmers-guide/readme/files/dir_27300797e836bc98b51baa10b2cd3e7f/dir_ed03fad8e11e79f04f96243dc0e0ab4e/crdsync_8h.md#af21f57a16d031a8c4583bf2a77834301) crdSync\_PowerDown

Power down the synchronous card .

**Parameters**

\[in] **server\_idx** - index of server in server configuration (see crdSync\_ConfigureServer()).

#### Returns

[CRDSYNC\_Success](#a9e601169c9ae8fcf306f0640d1fc79bf) - Card powered down successfully.

[CRDSYNC\_Failure](#a438c2eefe1adbe5b412a561ca7003f65) - Error powering down card - not powered up.

### crdSync\_PowerUp() <a href="#a7ab38bf1f5e50e8abfcd793fbd0afaca" id="a7ab38bf1f5e50e8abfcd793fbd0afaca"></a>

[CRDSYNC\_RET](/adk-5.0-programmers-guide/readme/files/dir_27300797e836bc98b51baa10b2cd3e7f/dir_ed03fad8e11e79f04f96243dc0e0ab4e/crdsync_8h.md#af21f57a16d031a8c4583bf2a77834301) crdSync\_PowerUp

Power up the synchronous card .

**Parameters**

\[in] **server\_idx** - index of server in server configuration (see crdSync\_ConfigureServer()). \[in] **CardType** - Synchronous card type, see Synchronous Card Types \[in,out] **AtrBuf** - Pointer to buffer to hold any response from the card (optional) \[in,out] **AtrLen** - Pointer to 8-bit variable to hold length of card response (optional)

#### Returns

[CRDSYNC\_Success](#a9e601169c9ae8fcf306f0640d1fc79bf) - No card

[CRDSYNC\_Failure](#a438c2eefe1adbe5b412a561ca7003f65) - Error, driver not opened or card not inserted

[CRDSYNC\_Error\_Power\_Action](#a36be0541d706234898ff7a226df06d3c) - Error, unable to power up card

[CRDSYNC\_Error\_Not\_Supported](#a9ad14b772af28822cf3007a004028f84) - Invalid CardType

### crdSync\_PresentSecretCode() <a href="#aac1af40e85e5849800866c522caed887" id="aac1af40e85e5849800866c522caed887"></a>

[CRDSYNC\_RET](/adk-5.0-programmers-guide/readme/files/dir_27300797e836bc98b51baa10b2cd3e7f/dir_ed03fad8e11e79f04f96243dc0e0ab4e/crdsync_8h.md#af21f57a16d031a8c4583bf2a77834301) crdSync\_PresentSecretCode

Present Secret code to the synchronous card .

**Parameters**

\[in] **server\_idx** - index of server in server configuration (see crdSync\_ConfigureServer()). \[in] **PinCode** - Pointer to buffer where Pin Code is stored \[in] **nSize** - PinCode size (e.g. 2 for SLE4428, 3 for SLE4442)

#### Returns

[CRDSYNC\_Success](#a9e601169c9ae8fcf306f0640d1fc79bf) - Operation successful

[CRDSYNC\_Failure](#a438c2eefe1adbe5b412a561ca7003f65) - Error - driver not opened, card not inserted or powered up

[CRDSYNC\_Error\_BadParam](#a18ce9d5f234d75e198c6a6c694e5109d) - Invalid parameter, nSize is wrong, or PinCode is NULL

[CRDSYNC\_Error\_Protocol](#a7be5ace5182e07f48c854c2d792efb4c) - Error communicating with the card

### crdSync\_ReadData() <a href="#a46ece5ab7da04e01c3e816dfbad788b9" id="a46ece5ab7da04e01c3e816dfbad788b9"></a>

[CRDSYNC\_RET](/adk-5.0-programmers-guide/readme/files/dir_27300797e836bc98b51baa10b2cd3e7f/dir_ed03fad8e11e79f04f96243dc0e0ab4e/crdsync_8h.md#af21f57a16d031a8c4583bf2a77834301) crdSync\_ReadData

Read data from the synchronous card .

**Parameters**

\[in] **server\_idx** - index of server in server configuration (see crdSync\_ConfigureServer()). \[in] **MemoryAddress** - memory address where to start reading from if -1, start at current location \[in,out] **RxBuf** - Pointer to buffer where read data is stored Must be large enough to hold 'RxLen' bytes \[in] **RxLen** - Number of bytes to read from card

#### Returns

[CRDSYNC\_Success](#a9e601169c9ae8fcf306f0640d1fc79bf) - Operation successful

[CRDSYNC\_Failure](#a438c2eefe1adbe5b412a561ca7003f65) - Error - driver not opened, card not inserted or powered up

[CRDSYNC\_Error\_BadParam](#a18ce9d5f234d75e198c6a6c694e5109d) - Invalid parameter, RxLen is zero, or RxBuf is NULL

[CRDSYNC\_Error\_Protocol](#a7be5ace5182e07f48c854c2d792efb4c) - Error communicating with the card - wrong CardType

### crdSync\_ReadProtectionMem() <a href="#afce4d1364cf78742a866311f793fd433" id="afce4d1364cf78742a866311f793fd433"></a>

[CRDSYNC\_RET](/adk-5.0-programmers-guide/readme/files/dir_27300797e836bc98b51baa10b2cd3e7f/dir_ed03fad8e11e79f04f96243dc0e0ab4e/crdsync_8h.md#af21f57a16d031a8c4583bf2a77834301) crdSync\_ReadProtectionMem

SLE4442: Read Protection Memory .

**Parameters**

\[in] **server\_idx** - index of server in server configuration (see crdSync\_ConfigureServer()). \[out] **RxBuf** - Pointer to 4-byte-buffer where protection memory shall be stored

#### Returns

[CRDSYNC\_Success](#a9e601169c9ae8fcf306f0640d1fc79bf) - Operation successful

[CRDSYNC\_Failure](#a438c2eefe1adbe5b412a561ca7003f65) - Error - driver not opened, card not inserted or powered up

[CRDSYNC\_Error\_BadParam](#a18ce9d5f234d75e198c6a6c694e5109d) - Invalid parameter, RxBuf is NULL

### crdSync\_ReadSecurityMem() <a href="#af865ea38609963f14c129e150586ce0e" id="af865ea38609963f14c129e150586ce0e"></a>

[CRDSYNC\_RET](/adk-5.0-programmers-guide/readme/files/dir_27300797e836bc98b51baa10b2cd3e7f/dir_ed03fad8e11e79f04f96243dc0e0ab4e/crdsync_8h.md#af21f57a16d031a8c4583bf2a77834301) crdSync\_ReadSecurityMem

Read Security Memory from synchronous card .

Without a preceding successful [crdSync\_PresentSecretCode()](#aac1af40e85e5849800866c522caed887) only the first byte is read. This represents the Error Counter (EC). Each set bit shows a remaining PSC entry try. Max. PSC entry tries: 8 for SLE4428, 3 for SLE 4442. With a preceding successful [crdSync\_PresentSecretCode()](#aac1af40e85e5849800866c522caed887) additionally the PSC is read.

**Parameters**

\[in] **server\_idx** - index of server in server configuration (see crdSync\_ConfigureServer()). \[out] **RxBuff** - Pointer to buffer where security memory has to be stored \[in,out] **BufLen** - security memory length returned

#### Returns

[CRDSYNC\_Success](#a9e601169c9ae8fcf306f0640d1fc79bf) - Operation successful

[CRDSYNC\_Failure](#a438c2eefe1adbe5b412a561ca7003f65) - Error - driver not opened, card not inserted or powered up

[CRDSYNC\_Error\_BadParam](#a18ce9d5f234d75e198c6a6c694e5109d) - Invalid parameter, TxLen is zero, or TxBuf is NULL

[CRDSYNC\_Error\_Protocol](#a7be5ace5182e07f48c854c2d792efb4c) - Error communicating with the card

### crdSync\_ReadWithProtectionBit() <a href="#afcab5a3b6a0f4e7fa248da2652653d8f" id="afcab5a3b6a0f4e7fa248da2652653d8f"></a>

[CRDSYNC\_RET](/adk-5.0-programmers-guide/readme/files/dir_27300797e836bc98b51baa10b2cd3e7f/dir_ed03fad8e11e79f04f96243dc0e0ab4e/crdsync_8h.md#af21f57a16d031a8c4583bf2a77834301) crdSync\_ReadWithProtectionBit

SLE4428: Read data with protection bit .

Read `RxLen` data bytes + 1 byte protection bit per data byte

**Parameters**

\[in] **server\_idx** - index of server in server configuration (see crdSync\_ConfigureServer()). \[in] **MemoryAddress** - memory address where to start reading from if -1, start at current location \[out] **RxBuf** - Pointer to buffer where the read data (incl. protection bits) has to be stored Must be large enough to hold 2\*RxLen bytes \[in] **RxLen** - Number of data bytes to read if 0, operation effectively sets the current address

#### Returns

[CRDSYNC\_Success](#a9e601169c9ae8fcf306f0640d1fc79bf) - Operation successful

[CRDSYNC\_Failure](#a438c2eefe1adbe5b412a561ca7003f65) - Error - driver not opened, card not inserted or powered up

[CRDSYNC\_Error\_BadParam](#a18ce9d5f234d75e198c6a6c694e5109d) - Invalid parameter, RxLen is zero, or RxBuf is NULL

[CRDSYNC\_Error\_Protocol](#a7be5ace5182e07f48c854c2d792efb4c) - Error communicating with the card

### crdSync\_SetTraceCallback() <a href="#a3d9902893c6348c09d6d70f20b0a13b2" id="a3d9902893c6348c09d6d70f20b0a13b2"></a>

void crdSync\_SetTraceCallback

Set callback function for trace output.

**Parameters**

\[in] **cbf** : Callback function for trace messages, may be NULL. \[in] **cb\_data** : Data pointer that is passed on to the callback function cbf, may be NULL.

### crdSync\_Version() <a href="#aad6e42b9b4a77a320b963da0d9ebd455" id="aad6e42b9b4a77a320b963da0d9ebd455"></a>

void crdSync\_Version

Get Version of library

**Parameters**

\[in,out] **version** in: Buffer for version info, out: C-String with library name and version \[in] **len** Allocated size of version

### crdSync\_WriteData() <a href="#ac37939611b8253d24be1eda8ec7ae0a9" id="ac37939611b8253d24be1eda8ec7ae0a9"></a>

[CRDSYNC\_RET](/adk-5.0-programmers-guide/readme/files/dir_27300797e836bc98b51baa10b2cd3e7f/dir_ed03fad8e11e79f04f96243dc0e0ab4e/crdsync_8h.md#af21f57a16d031a8c4583bf2a77834301) crdSync\_WriteData

Write data to the synchronous card .

{% hint style="info" %}
For SLE4428 and SLE4442 a preceding successful [crdSync\_PresentSecretCode()](#aac1af40e85e5849800866c522caed887) is needed.
{% endhint %}

\*\*Parameters\*\*

\[in] **server\_idx** - index of server in server configuration (see crdSync\_ConfigureServer()). \[in] **MemoryAddress** - memory address where to start reading from \[in] **TxBuf** - Pointer to buffer where data to write is stored \[in] **TxLen** - Number of bytes to write to the card

#### Returns

[CRDSYNC\_Success](#a9e601169c9ae8fcf306f0640d1fc79bf) - Operation successful

[CRDSYNC\_Failure](#a438c2eefe1adbe5b412a561ca7003f65) - Error - driver not opened, card not inserted or powered up

[CRDSYNC\_Error\_BadParam](#a18ce9d5f234d75e198c6a6c694e5109d) - Invalid parameter, TxLen is zero, or TxBuf is NULL

[CRDSYNC\_Error\_Protocol](#a7be5ace5182e07f48c854c2d792efb4c) - Error communicating with the card - wrong CardType

### crdSync\_WriteProtectionMem() <a href="#a4d53646e79d8f7e0cd5ff8076328ebc7" id="a4d53646e79d8f7e0cd5ff8076328ebc7"></a>

[CRDSYNC\_RET](/adk-5.0-programmers-guide/readme/files/dir_27300797e836bc98b51baa10b2cd3e7f/dir_ed03fad8e11e79f04f96243dc0e0ab4e/crdsync_8h.md#af21f57a16d031a8c4583bf2a77834301) crdSync\_WriteProtectionMem

SLE4442: Write Protection Memory .

{% hint style="info" %}
The data must have been already stored on the card by means of [crdSync\_WriteData()](#ac37939611b8253d24be1eda8ec7ae0a9). The contents of `TxBuf` is compared with the data on the card. Only in case of match the protection bits are set.
{% endhint %}

\*\*Parameters\*\*

\[in] **server\_idx** - index of server in server configuration (see crdSync\_ConfigureServer()). \[in] **MemoryAddress** - memory address where to start writing if -1, start at current location \[in] **TxBuf** - Pointer to buffer where the source data is stored \[in] **TxLen** - Number of bytes of source data

#### Returns

[CRDSYNC\_Success](#a9e601169c9ae8fcf306f0640d1fc79bf) - Operation successful

[CRDSYNC\_Failure](#a438c2eefe1adbe5b412a561ca7003f65) - Error - driver not opened, card not inserted or powered up

[CRDSYNC\_Error\_BadParam](#a18ce9d5f234d75e198c6a6c694e5109d) - Invalid parameter, TxLen is zero, or TxBuf is NULL

[CRDSYNC\_Error\_Protocol](#a7be5ace5182e07f48c854c2d792efb4c) - Error communicating with the card

### crdSync\_WriteSecurityMem() <a href="#a5f567f6f82f15f84a73e08a589da5a55" id="a5f567f6f82f15f84a73e08a589da5a55"></a>

[CRDSYNC\_RET](/adk-5.0-programmers-guide/readme/files/dir_27300797e836bc98b51baa10b2cd3e7f/dir_ed03fad8e11e79f04f96243dc0e0ab4e/crdsync_8h.md#af21f57a16d031a8c4583bf2a77834301) crdSync\_WriteSecurityMem

Update PIN Code (PSC) in synchronous card .

{% hint style="info" %}
A preceding successful [crdSync\_PresentSecretCode()](#aac1af40e85e5849800866c522caed887) is needed.
{% endhint %}

\*\*Parameters\*\*

\[in] **server\_idx** - index of server in server configuration (see crdSync\_ConfigureServer()). \[in,out] **TxBuf** - Pointer to buffer where PSC data is stored \[in] **TxLen** - Number of bytes to write to the card (e.g. 2 for SLE4428, 3 for SLE4442)

#### Returns

[CRDSYNC\_Success](#a9e601169c9ae8fcf306f0640d1fc79bf) - Operation successful

[CRDSYNC\_Failure](#a438c2eefe1adbe5b412a561ca7003f65) - Error - driver not opened, card not inserted or powered up

[CRDSYNC\_Error\_BadParam](#a18ce9d5f234d75e198c6a6c694e5109d) - Invalid parameter, TxLen is zero, or TxBuf is NULL

[CRDSYNC\_Error\_Protocol](#a7be5ace5182e07f48c854c2d792efb4c) - Error communicating with the card

### crdSync\_WriteWithProtectionBit() <a href="#a55cf46f272ccde8eb8c2d1f4d37e490a" id="a55cf46f272ccde8eb8c2d1f4d37e490a"></a>

[CRDSYNC\_RET](/adk-5.0-programmers-guide/readme/files/dir_27300797e836bc98b51baa10b2cd3e7f/dir_ed03fad8e11e79f04f96243dc0e0ab4e/crdsync_8h.md#af21f57a16d031a8c4583bf2a77834301) crdSync\_WriteWithProtectionBit

SLE4428: Write data with protection bit .

{% hint style="info" %}
The data must have been already stored on the card by means of [crdSync\_WriteData()](#ac37939611b8253d24be1eda8ec7ae0a9). The contents of `TxBuf` is compared with the data on the card. Only in case of match the protection bits are set.
{% endhint %}

\*\*Parameters\*\*

\[in] **server\_idx** - index of server in server configuration (see crdSync\_ConfigureServer()). \[in] **MemoryAddress** - memory address where to start writing if -1, start at current location \[in] **TxBuf** - Pointer to buffer where the source data is stored \[in] **TxLen** - Number of bytes of source data

#### Returns

[CRDSYNC\_Success](#a9e601169c9ae8fcf306f0640d1fc79bf) - Operation successful

[CRDSYNC\_Failure](#a438c2eefe1adbe5b412a561ca7003f65) - Error - driver not opened, card not inserted or powered up

[CRDSYNC\_Error\_BadParam](#a18ce9d5f234d75e198c6a6c694e5109d) - Invalid parameter, RxLen is zero, or RxBuf is NULL

[CRDSYNC\_Error\_Protocol](#a7be5ace5182e07f48c854c2d792efb4c) - Error communicating with the card

[CRDSYNC\_Error\_Not\_Supported](#a9ad14b772af28822cf3007a004028f84) - Bad Card Type


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://sandbox-docs.verifone.com/adk-5.0-programmers-guide/readme/files/dir_27300797e836bc98b51baa10b2cd3e7f/dir_ed03fad8e11e79f04f96243dc0e0ab4e/crdsync__client_8h.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
