dinamo.h
Vá para a documentação deste arquivo.
1 /* Dinamo Networks. */
2 /* Date: 20190528(AAAAMMDD) */
3 
4 
5 
6 #ifndef NETDFENCE_H_INCLUDED
7 #define NETDFENCE_H_INCLUDED
8 
15 #ifdef _WIN32
16  #include <windows.h>
17 #endif
18 
19 #include <time.h>
20 
30 #ifdef _WIN32
31  typedef unsigned __int64 ND_uint64_t;
32  typedef unsigned __int64 ND_OATH_uint64_t;
33  #define AAP_API __stdcall
34 
35  typedef unsigned long long int QWORD;
36 #else
37  typedef unsigned long long ND_uint64_t;
38  typedef unsigned long long ND_OATH_uint64_t;
39  #ifdef INTEL_GCC
40  #define AAP_API __attribute__((stdcall))
41  #else
42  #define AAP_API
43  #endif /* INTEL_GCC */
44 
45  typedef unsigned char BYTE;
46  typedef unsigned int DWORD;
47  typedef unsigned long long int QWORD;
48  typedef unsigned short WORD;
49  typedef int BOOL;
50  typedef unsigned int UINT;
51  typedef signed int INT;
52  typedef signed char CHAR;
53 
54  #ifndef FALSE
55  #define FALSE (0)
56  #endif
57  #ifndef TRUE
58  #define TRUE (1)
59  #endif
60 
61 #endif
62 
63 typedef unsigned long DN_ULONG;
64 
65 typedef void *HSESSIONCTX;
66 typedef void *HHASHCTX;
67 typedef void *HKEYCTX;
68 typedef void *HCERTCTX;
69 typedef void *HSPBCTX;
70 typedef void *HCHAPCTX;
71 typedef void *HLOGCTX;
72 typedef void *HOBJMETACTX;
73 typedef void *HP11ATTRCTX;
74 typedef void *HOBJMETASEARCHCTX;
75 
76 
77 /* Client network errors. Negative errors. */
78 
79 #define D_SOCKET_FAILED (-10)
80 #define D_GETHOSTNAME_FAILED (-11)
81 #define D_CONNECT_FAILED (-12)
82 #define D_SEND_FAILED (-13)
83 #define D_RECV_FAILED (-14)
84 #define D_INVALID_PACKAGE_SIZE (-15)
85 #define D_SETSOCKOPT_FAILED (-16)
86 #define D_GETSOCKOPT_FAILED (-17)
87 #define D_ALL_LOAD_BALANCE_HSM_FAILED (-18)
88 
89 /* OpenSSL generated errors 1 to 100 */
90 
91 #define D_SSL_CTX_NEW_FAILED (1)
92 #define D_SSL_NEW_FAILED (2)
93 #define D_SSL_CONNECT_FAILED (3)
94 
95 /* System errors */
96 
97 #define D_WSASTARTUP (2001)
98 #define D_MEMORY_ALLOC (2002)
99 
100 
101 /* Client errors */
102 
103 #define D_INVALID_PARAM (1001)
104 #define D_INVALID_TYPE (1002)
105 #define D_INVALID_STATE (1003)
106 #define D_LOGGING_NOT_STARTED (1004)
107 #define D_MORE_DATA (1005)
108 #define D_INVALID_RESPONSE (1006)
109 #define D_INVALID_CONTEXT (1007)
110 #define D_KEY_GEN_ERROR (1008)
111 #define D_KEY_DEL_ERROR (1009)
112 #define D_KEY_NOT_EXISTS (1010)
113 #define D_INVALID_DATA_LENGTH (1011)
114 #define D_INVALID_KEY_ALG (1012)
115 #define D_INVALID_PADDING (1013)
116 #define D_INVALID_KEY (1014)
117 #define D_BAD_DATA (1015)
118 #define D_INVALID_PUBKEY (1016)
119 #define D_INVALID_ALG_ID (1017)
120 #define D_INVALID_HASH (1018)
121 #define D_INIT_HASH_FAILED (1019)
122 #define D_INVALID_HASH_STATE (1020)
123 #define D_END_HASH_FAILED (1021)
124 #define D_GET_INFO_ERROR (1022)
125 #define D_INVALID_PIN_LEN (1023)
126 #define D_OPEN_FILE_FAILED (1025)
127 #define D_BACKUP_FAILED (1026)
128 #define D_RESTORE_FAILED (1027)
129 #define D_INVALID_CALLBACK (1028)
130 #define D_NOT_IMPLEMENTED (1029)
131 #define D_AUTH_FAILED (1030)
132 #define D_INVALID_CLEAR_OP (1031)
133 #define D_CHANGE_PWD_ERROR (1032)
134 #define D_PWD_SIZE_ERROR (1033)
135 #define D_IMPORT_KEY_ERROR (1034)
136 #define D_INVALID_KEY_ID (1035)
137 #define D_INVALID_FLAG (1036)
138 #define D_INVALID_SIGNATURE (1037)
139 #define D_INVALID_PUB_KEY (1038)
140 #define D_INVALID_KEY_STATE (1039)
141 #define D_CREATE_USER_ERROR (1040)
142 #define D_NO_MORE_OBJECT (1041)
143 #define D_PUT_ENV_VAR_FAILED (1042)
144 #define D_INVALID_FILE_SIZE (1043)
145 #define D_INVALID_TEXT_SIZE (1044)
146 #define D_FILE_ACCESS_ERROR (1045)
147 #define D_INVALID_COUNTER (1046)
148 #define D_INVALID_MODE (1047)
149 #define D_INVALID_STRUCT_ID (1048)
150 #define D_INVALID_IP_ADDRESS (1049)
151 #define D_GET_PEER_IP_ERROR (1050)
152 #define D_CERTIFICATE_PARSE_FAILED (1051)
153 #define D_INVALID_KEY_PART_1 (1052)
154 #define D_INVALID_KEY_PART_2 (1053)
155 #define D_INVALID_KEY_PART_3 (1054)
156 #define D_VERIFY_DAC_FAILED (1055)
157 #define D_DEPRECATED (1056)
158 #define D_NO_MATCHING_KEY_FOUND (1057)
159 #define D_CALLBACK_ERROR (1058)
160 #define D_INTERNAL_ERROR (1059)
161 #define D_KEY_NOT_EXPORTABLE_ERROR (1060)
162 
163 #define D_INVALID_SPB_ID (1062)
164 #define D_JSON_PARSE_ERROR (1063)
165 #define D_JSON_PARSE_WRONG_TYPE_ERROR (1064)
166 #define D_JSON_SET_VALUE_ERROR (1065)
167 #define D_JSON_UNSET_VALUE_ERROR (1066)
168 #define D_JSON_VALUE_NOT_FOUND (1067)
169 #define D_JSON_OBJ_CREATE_ERROR (1068)
170 
171 #define D_SLP_PARSE_ERROR (1069)
172 #define D_SLP_INTERNAL_ERROR (1070)
173 #define D_SLP_TOO_MANY_SERVERS_ERROR (1071)
174 
175 #define D_INVALID_SERVER_VERSION (1072)
176 
177 #define D_GENERATE_PKCS12_ERROR (1073)
178 #define D_SET_LOAD_BALANCE_LIST_ERROR (1074)
179 
180 
181 
182 /* Server errors */
183 
184 #define D_KEEP_ALIVE_ERROR (3001)
185 #define D_RECEIVE_LOG_ERROR (3002)
186 #define D_ERROR_NOTIFY (3003)
187 
188 
189 /* Server returned errors */
190 
191 #define D_ERR_UNKNOWN (5000)
192 #define D_ERR_NET_FAIL (5001)
193 #define D_ERR_ACCESS_DENIED (5002)
194 #define D_ERR_CANNOT_CREATE_OBJ (5003)
195 #define D_ERR_CANNOT_OPEN_OBJ (5004)
196 #define D_ERR_CANNOT_DEL_OBJ (5005)
197 #define D_ERR_CANNOT_ALLOC_RES (5006)
198 #define D_ERR_INVALID_CTX (5007)
199 #define D_ERR_INVALID_OPERATION (5008)
200 #define D_ERR_INVALID_KEY (5009)
201 #define D_ERR_NO_TLS_USED (5010)
202 #define D_ERR_CANNOT_CHANGE_PWD (5011)
203 #define D_ERR_OBJ_NOT_EXPORTABLE (5012)
204 #define D_ERR_USR_ALREADY_EXISTS (5013)
205 #define D_ERR_INVALID_USR_NAME (5014)
206 #define D_ERR_CANNOT_CREATE_USR (5015)
207 #define D_ERR_NO_MORE_LOG_SLOTS (5016)
208 #define D_ERR_CANNOT_DELETE_USR (5017)
209 #define D_ERR_CANNOT_DELETE_MASTER (5018)
210 #define D_ERR_NOT_IMPLEMENTED (5019)
211 #define D_ERR_USR_NOT_FOUND (5020)
212 #define D_ERR_INVALID_PAYLOAD (5021)
213 #define D_ERR_OBJ_ALREADY_EXISTS (5022)
214 #define D_ERR_INVALID_OBJ_NAME (5023)
215 #define D_ERR_OBJ_IN_USE (5024)
216 #define D_ERR_CANNOT_WRITE_BACKUP_BLOB (5025)
217 #define D_ERR_CANNOT_OPEN_BACKUP_BLOB (5026)
218 #define D_ERR_CANNOT_RESTORE_BACKUP_BLOB (5027)
219 #define D_ERR_INVALID_BACKUP_PIN_OR_LEN (5028)
220 #define D_ERR_INVALID_XML_SIGNATURE (5029)
221 #define D_ERR_INVALID_CERTIFICATE (5030)
222 #define D_ERR_VERIFY_XML_FAILED (5031)
223 #define D_ERR_INVALID_XML (5032)
224 #define D_ERR_SIGN_XML_FAILED (5033)
225 #define D_ERR_UPACK_VERIFY_FAILED (5034)
226 #define D_ERR_CANNOT_TRUNCATE_LOG (5035)
227 #define D_ERR_CANNOT_BACKUP_OLD_LOG (5036)
228 #define D_ERR_CERTIFICATE_EXPIRED (5037)
229 #define D_ERR_CERTIFICATE_FAILED (5038)
230 #define D_ERR_CERTIFICATE_NOT_FOUND (5039)
231 #define D_ERR_CERTIFICATE_REVOKED (5040)
232 #define D_ERR_CERTIFICATE_ISSUER_FAILED (5041)
233 #define D_ERR_CERTIFICATE_NOT_YET_VALID (5042)
234 #define D_ERR_CERT_EXPIRED_SIGN_VALID (5043)
235 #define D_ERR_CRL_EXPIRED (5044)
236 #define D_ERR_INVALID_CRL_SIGN (5045)
237 #define D_ERR_CRL_CERT_MISMATCH (5046)
238 #define D_ERR_CERT_REVOKED (D_ERR_CERTIFICATE_REVOKED)
239 #define D_ERR_CERT_REVOKED_LIBCLIENT_FIX1 (5047)
240 #define D_ERR_ACCESS_DENIED_TOKEN_NOT_NEEDED (5048)
241 #define D_ERR_ACCESS_DENIED_TOKEN_NEEDED (5049)
242 #define D_ERR_CERT_REVOKED_CRL_VAL_UNUSED (5050)
243 #define D_ERR_CERT_VALID_CRL_VAL_UNUSED (5051)
244 #define D_ERR_CANNOT_PARSE_XML (5052)
245 #define D_ERR_CANNOT_CREATE_XML_SIG_TEMPL (5053)
246 #define D_ERR_CANNOT_ADD_XML_SIG_TEMPL_REF (5054)
247 #define D_ERR_CANNOT_ADD_XML_SIG_TEMPL_TRANS (5055)
248 #define D_ERR_CANNOT_ADD_XML_SIG_KEY_INFO (5056)
249 #define D_ERR_CANNOT_ADD_XML_SIG_KEY_CERT (5057)
250 #define D_ERR_CANNOT_ALLOC_XML_SIG_CTX (5058)
251 #define D_ERR_CANNOT_PARSE_DER_PRIV_KEY (5059)
252 #define D_ERR_XML_CANNOT_LOAD_PRIV_KEY (5060)
253 #define D_ERR_XML_CANNOT_LOAD_CERT (5061)
254 #define D_ERR_XML_CANNOT_CREATE_KEY_MNG (5062)
255 #define D_ERR_XML_CANNOT_INIT_KEY_MNG (5063)
256 #define D_ERR_XML_CANNOT_LOAD_TRUSTED_CERTS (5064)
257 #define D_ERR_XML_SIG_NODE_NOT_FOUND (5065)
258 #define D_ERR_XML_CERT_NODE_NOT_FOUND (5066)
259 #define D_ERR_XML_CANNOT_DECODE_CERT_NODE (5067)
260 #define D_ERR_CANNOT_PARSE_DER_CERT (5068)
261 #define D_ERR_CANNOT_DECODE_XML_COMPRESS (5069)
262 #define D_ERR_INVALID_CERTIFICATE_NULL_RES (5070)
263 #define D_ERR_CANNOT_RECREATE_MASTER (5071)
264 #define D_ERR_CANNOT_CREATE_USR_STORAGE1 (5072)
265 #define D_ERR_CANNOT_CREATE_USR_STORAGE2 (5073)
266 #define D_ERR_CANNOT_CREATE_USR_DEFAULT_ACL (5074)
267 #define D_ERR_CANNOT_ALLOC_CTX (5075)
268 #define D_ERR_CANNOT_LOAD_PRIV_KEY (5076)
269 #define D_ERR_CANNOT_DECODE_PUB_KEY (5077)
270 #define D_ERR_CANNOT_GENERATE_RND_DATA (5078)
271 #define D_ERR_CACHE_LAYER_EXHAUSTED (5079)
272 #define D_ERR_RSA_POWER_SIGN_FAILED (5080)
273 #define D_ERR_CANNOT_GET_SYS_INFO (5100)
274 #define D_ERR_CANNOT_ALLOC_UPACK_ID (5101)
275 #define D_ERR_CANNOT_ALLOC_UPACK_PATH (5102)
276 #define D_ERR_CANNOT_WRITE_UPACK_OBJ (5103)
277 #define D_ERR_INVALID_CRL (5104)
278 #define D_ERR_OPERATION_FAILED (5105)
279 #define D_ERR_GET_USR_ACL_FAILED (5106)
280 #define D_ERR_INVALID_SIGNATURE (5107)
281 #define D_ERR_CANNOT_GENERATE_SOFT_TOKEN (5108)
282 #define D_ERR_INVALID_SECRET (5109)
283 #define D_ERR_ACCESS_DENIED_USR_BLOCKED (5120)
284 #define D_ERR_INVALID_IMEI (5121)
285 #define D_ERR_REPLAY_DETECTED (5122)
286 #define D_ERR_NON_APPROVED_FIPS_OPERATION (5123)
287 #define D_ERR_ACCESS_DENIED_OBJ_BLOCKED (5124)
288 #define D_ERR_FIPS_DRBG_CONTINUOUS_TEST (5125)
289 #define D_ERR_FIPS_RSA_CONTINUOUS_TEST (5126)
290 #define D_ERR_FIPS_ECC_CONTINUOUS_TEST (5127)
291 #define D_ERR_FIPS_DES_CONTINUOUS_TEST (5128)
292 #define D_ERR_FIPS_AES_CONTINUOUS_TEST (5129)
293 #define D_ERR_CANNOT_UPDATE_OBJ (5175)
294 #define D_ERR_CANNOT_GET_PWD_POLICY (5176)
295 #define D_ERR_PWD_BLOCKED_BY_POLICY (5177)
296 #define D_ERR_PWD_EXPIRED (5178)
297 #define D_ERR_CERT_VALID_CRL_VAL_UNUSED_CRL_EXPIRED (5179)
298 #define D_ERR_CERT_VALID_CRL_EXPIRED (5180)
299 #define D_ERR_INVALID_CERT_SIGN (5181)
300 #define D_ERR_CANNOT_LOAD_CORRUPTED_OBJ (5200)
301 #define D_ERR_INVALID_CERT_ISPB_MISMATCH (5230)
302 #define D_ERR_INVALID_CA (5231)
303 #define D_ERR_DEPRECATED_FUNCTION (5303)
304 #define D_ERR_SERVER_BUSY (5304)
305 #define D_ERR_SL_BE_BUSY (5305)
306 #define D_ERR_SVMK_MISMATCH (5306)
307 #define D_ERR_INVALID_CERT_SN_MISMATCH (5307)
308 #define D_ERR_CANNOT_DEC_SYM_KEY (5308)
309 #define D_ERR_CANNOT_REC_SYM_KEY (5309)
310 #define D_SUCCESS_CANNOT_OPEN_OBJ_AT_REPL (5401)
311 #define D_ERR_CANNOT_OPEN_INVALID_OBJ_AT_REPL (5402)
312 #define D_ERR_CANNOT_SL_BE_CHECK_OBJ (5500)
313 #define D_ERR_CANNOT_WRITE_AUTH_INFO_OBJ (5501)
314 #define D_ERR_CANNOT_GEN_RSA_KEY (5502)
315 #define D_ERR_CANNOT_GEN_ECC_CURVE (5503)
316 #define D_ERR_CANNOT_GEN_ECC_KEY (5504)
317 #define D_ERR_CANNOT_GEN_ECC_DER (5505)
318 #define D_ERR_CANNOT_GEN_ECC_DER_KEY (5506)
319 #define D_ERR_CANNOT_CREATE_UNKNOWN_OBJ (5507)
320 #define D_ERR_CANNOT_WRITE_FIPS_MODE (5508)
321 #define D_ERR_CANNOT_WRITE_LOGIN_BLOCK_INFO (5509)
322 #define D_ERR_CANNOT_SETUP_LIVE_SYNC_OBJ (5510)
323 #define D_ERR_CANNOT_CREATE_LIVE_SYNC_OBJ (5511)
324 #define D_ERR_CANNOT_OPEN_LOG (5512)
325 #define D_ERR_COULD_NOT_OPEN_OBJ (5513)
326 #define D_ERR_CANNOT_EXPORT_RAW_OBJ (5514)
327 #define D_ERR_CANNOT_RENAME_OBJ (5515)
328 #define D_ERR_REPLICATION_CANNOT_OPEN_OBJ (5516)
329 #define D_ERR_CANNOT_SETUP_LIVE_SYNC_IMG (5517)
330 #define D_ERR_CANNOT_LOAD_LIVE_SYNC_IMG (5518)
331 #define D_ERR_CANNOT_SETUP_LIVE_SYNC_DEL_USR (5519)
332 #define D_ERR_CANNOT_DEL_LIVE_SYNC_USR (5520)
333 #define D_ERR_CANNOT_SETUP_LIVE_SYNC_DEL_CONFIG (5521)
334 #define D_ERR_CANNOT_DEL_LIVE_SYNC_CONFIG (5522)
335 #define D_ERR_CANNOT_SETUP_LIVE_SYNC_CONFIG (5523)
336 #define D_ERR_CANNOT_CREATE_LIVE_SYNC_CONFIG (5524)
337 #define D_ERR_CANNOT_SETUP_LIVE_SYNC_USER (5525)
338 #define D_ERR_CANNOT_CREATE_LIVE_SYNC_USER (5526)
339 #define D_ERR_CANNOT_SETUP_LIVE_SYNC_ACL (5527)
340 #define D_ERR_CANNOT_CREATE_LIVE_SYNC_ACL (5528)
341 #define D_ERR_CANNOT_DEL_AUTH_INFO_OBJ (5529)
342 #define D_ERR_INVALID_KEY_NULL_RES (5530)
343 #define D_ERR_INVALID_MSG_NULL_RES (5531)
344 #define D_ERR_CANNOT_GEN_SYM_KEY (5532)
345 #define D_ERR_CANNOT_SETUP_USR_AUTH_INFO (5533)
346 #define D_ERR_CANNOT_BIND_USR_AUTH_INFO (5534)
347 #define D_ERR_CANNOT_GET_CERT_SN (5535)
348 #define D_ERR_CANNOT_GET_CERT_ISPB (5536)
349 #define D_ERR_INVALID_HASH (5537)
350 #define D_ERR_INVALID_SIG_LEN (5538)
351 #define D_ERR_INVALID_PUBKEY_LEN (5539)
352 #define D_ERR_INVALID_PSKC_XML (5540)
353 #define D_ERR_CANNOT_FIND_PSKC_XML_NODE (5541)
354 #define D_ERR_CANNOT_FIND_PSKC_XML_ATTR (5542)
355 #define D_ERR_INVALID_PSKC_KEY_DERIVATION (5543)
356 #define D_ERR_INVALID_PSKC_KEY_DERIVATION_IT (5544)
357 #define D_ERR_INVALID_PSKC_KEY_DERIVATION_LEN (5545)
358 #define D_ERR_INVALID_PSKC_KEY_DERIVATION_SALT_LEN (5546)
359 #define D_ERR_PSKC_KEY_DERIVATION_FAILED (5547)
360 #define D_ERR_INVALID_PSKC_KEY_ALG (5548)
361 #define D_ERR_INVALID_PSKC_KEY_METHOD (5549)
362 #define D_ERR_INVALID_OATH_EPOCH (5550)
363 #define D_ERR_INVALID_OATH_TIMESTEP (5551)
364 #define D_ERR_INVALID_OATH_DRIFT (5552)
365 #define D_ERR_INVALID_PSKC_SECRET_LEN (5553)
366 #define D_ERR_UNKNOWN_PADDING_TYPE (5554)
367 #define D_ERR_DATA_TOO_LARGE_FOR_MODULUS (5555)
368 #define D_ERR_DATA_GREATER_THAN_MODULUS_LEN (5556)
369 #define D_ERR_PADDING_CHECK_FAILED (5557)
370 #define D_ERR_DATA_TOO_LARGE_FOR_KEY_SIZE (5558)
371 #define D_ERR_DATA_TOO_SMALL_FOR_KEY_SIZE (5559)
372 #define D_ERR_INVALID_TYPE1_PADDING (5560)
373 #define D_ERR_INVALID_TYPE2_PADDING (5561)
374 #define D_ERR_BAD_FIXED_HDR_PADDING (5562)
375 #define D_ERR_MISSING_NULL_PADDING (5563)
376 #define D_ERR_BAD_PAD_BYTE_COUNT (5564)
377 #define D_ERR_DATA_TOO_LARGE_FOR_PADDING (5565)
378 #define D_ERR_BN_NO_INVERSE (5566)
379 #define D_ERR_STATIC_BN_CANNOT_EXPAND (5567)
380 #define D_ERR_BN_IS_NOT_PRIME (5568)
381 #define D_ERR_TOO_MANY_BN_ITERATIONS (5569)
382 #define D_ERR_BN_IS_NOT_A_SQUARE (5570)
383 #define D_ERR_BN_DIV_BY_ZERO (5571)
384 #define D_ERR_BN_NOT_INITIALIZED (5572)
385 #define D_ERR_BN_INVALID_RANGE (5573)
386 #define D_ERR_BN_BAD_RECIPROCAL (5574)
387 #define D_ERR_BN_CALLED_WITH_EVEN_MODULUS (5575)
388 #define D_ERR_BN_INPUT_NOT_REDUCED (5576)
389 #define D_ERR_BN_TOO_MANY_TMP_VARIABLES (5577)
390 #define D_ERR_BN_INVALID_LEN (5578)
391 #define D_ERR_BN_ENCODING_ERROR (5579)
392 #define D_ERR_INVALID_PUBLIC_EXP (5580)
393 #define D_ERR_INVALID_SPB_HDR_LEN (5581)
394 #define D_ERR_INVALID_SPB_HDR_VER (5582)
395 #define D_ERR_INVALID_SPB_HDR_SPECIAL_TREATMENT (5583)
396 #define D_ERR_INVALID_SPB_HDR_R0 (5584)
397 #define D_ERR_INVALID_SPB_HDR_DST_ASYM_ALG (5585)
398 #define D_ERR_INVALID_SPB_HDR_DST_SYM_ALG (5586)
399 #define D_ERR_INVALID_SPB_HDR_SIGN_KEY_TYPE (5587)
400 #define D_ERR_INVALID_SPB_HDR_DST_CA (5588)
401 #define D_ERR_INVALID_SPB_HDR_SIGN_CA (5589)
402 #define D_ERR_INVALID_SIGN_CERT_SN_MISMATCH (5590)
403 #define D_ERR_INVALID_DST_CERT_SN_MISMATCH (5591)
404 #define D_ERR_INVALID_SPB_MSG_LEN (5592)
405 #define D_ERR_CANNOT_PARSE_JSON (5593)
406 #define D_ERR_INVALID_SPB_CHARSET_SIG_OK (5594)
407 #define D_ERR_JSON_MORE_DATA (5595)
408 #define D_ERR_CANNOT_VIRTUALIZE_JSON (5596)
409 #define D_ERR_CANNOT_CHANGE_OEM_JSON (5597)
410 #define D_ERR_CANNOT_MERGE_JSON (5598)
411 #define D_ERR_INVALID_SPB_CHARSET (5599)
412 #define D_ERR_CANNOT_GET_JSON (5600)
413 #define D_ERR_INVALID_SPB_CHARSET_SIG_ERR (5601)
414 #define D_ERR_SERVER_STARTED (5700)
415 #define D_ERR_THROTTLED_VM_SIZE (10000)
416 #define D_ERR_THROTTLED_RAM (10001)
417 #define D_ERR_CANNOT_ALLOC_SOCKET (11000)
418 #define D_ERR_CANNOT_ALLOC_MEM (11001)
419 #define D_ERR_CANNOT_ALLOC_KEY (11002)
420 #define D_ERR_CANNOT_ALLOC_SL_BE_HANDLE (11003)
421 #define D_ERR_CANNOT_ALLOC_IOM (11004)
422 #define D_ERR_CANNOT_INIT_DRBG (11005)
423 #define D_ERR_CANNOT_SEED_DRBG (11006)
424 #define D_ERR_CANNOT_USE_IOM (11007)
425 #define D_ERR_CANNOT_ALLOC_OBJ_HANDLE (11008)
426 #define D_ERR_REPL_CANNOT_ALLOC_SL_BE_HANDLE (11009)
427 #define D_ERR_CANNOT_ALLOC_TLS_CTX (11010)
428 #define D_ERR_CANNOT_ALLOC_TLS_SOCKET (11011)
429 #define D_ERR_CANNOT_SERIALIZE_XML (11012)
430 #define D_ERR_CANNOT_ALLOC_BN (11013)
431 #define D_ERR_CANNOT_ALLOC_JSON (11014)
432 #define D_ERR_REPLICATION_BUSY (36000)
433 #define D_ERR_REPLICATION_D_BUSY (36001)
434 #define D_ERR_REPLICATION_S_BUSY (36002)
435 #define D_ERR_REPLICATION_STORAGE_LAYER_BUSY (36003)
436 #define D_ERR_REPLICATION_SEC_LAYER_BUSY (36004)
437 #define D_ERR_REPLICATION_PEER_NOT_SYNCED (36500)
438 #define D_ERR_REPLICATION_CANNOT_PREPARE_TRANS (37001)
439 #define D_ERR_REPLICATION_CANNOT_P2P_HANDSHAKE (37002)
440 #define D_ERR_REPLICATION_CANNOT_P2P_FIND (37003)
441 #define D_ERR_REPLICATION_CANNOT_P2P_CONNECT (37004)
442 #define D_ERR_REPLICATION_CANNOT_P2P_SEND (37005)
443 #define D_ERR_REPLICATION_CANNOT_P2P_RECV (37006)
444 #define D_ERR_REPLICATION_CANNOT_P2P_SEND_ALL (37007)
445 #define D_ERR_REPLICATION_CANNOT_P2P_RECV_ALL (37008)
446 #define D_ERR_REPLICATION_CANNOT_P2P_SCONNECT (37009)
447 #define D_ERR_REPLICATION_CANNOT_P2P_SSEND (37010)
448 #define D_ERR_REPLICATION_CANNOT_P2P_SRECV (37011)
449 #define D_ERR_REPLICATION_CANNOT_P2P_SSEND_ALL (37012)
450 #define D_ERR_REPLICATION_CANNOT_P2P_SRECV_ALL (37013)
451 #define D_ERR_REPLICATION_CANNOT_P2P_WORK (37014)
452 #define D_ERR_REPLICATION_NOT_FOUND (37015)
453 #define D_ERR_REPLICATION_ACK_NOT_FOUND (37016)
454 #define D_ERR_REPLICATION_INVALID_OPERATION (37017)
455 #define D_ERR_REPLICATION_INVALID_EVENT (37018)
456 #define D_ERR_REPLICATION_OPERATION_FAILED (37019)
457 #define D_ERR_REPLICATION_COMMIT_FAILED (37020)
458 #define D_ERR_REPLICATION_ERASE_FAILED (37021)
459 #define D_ERR_REPLICATION_INQUIRE_FAILED (37022)
460 #define D_ERR_REPLICATION_UPDATE_ACK_FAILED (37023)
461 #define D_ERR_REPLICATION_DISPATCH_FAILED (37024)
462 #define D_ERR_REPLICATION_CANNOT_SL_BE_TRANSP (37025)
463 #define D_ERR_REPLICATION_CANNOT_PRUNE_LOG (37026)
464 #define D_ERR_REPLICATION_CANNOT_LOAD_LOG (37027)
465 #define D_ERR_REPLICATION_CANNOT_WORK (37028)
466 #define D_ERR_REPLICATION_CANNOT_VALIDATE_EVENT (37029)
467 #define D_ERR_REPLICATION_TRANS_MISMATCH (37030)
468 #define D_ERR_REPLICATION_CANNOT_SYNC_POINT (37031)
469 #define D_ERR_REPLICATION_UNDEFINED_LIVE_SYNC (37032)
470 #define D_ERR_REPLICATION_CONNECTED_LIVE_SYNC (37033)
471 #define D_ERR_REPLICATION_SELF_LIVE_SYNC (37034)
472 #define D_ERR_REPLICATION_OBJ_IN_USE (37035)
473 #define D_ERR_REPLICATION_CANNOT_BEGIN_TRANS (37036)
474 #define D_ERR_REPLICATION_MAX_NODE_COUNT_REACHED (37037)
475 #define D_ERR_REPL_CANNOT_PREPARE_LS_TRANS (37038)
476 #define D_ERR_REPL_PART_CANNOT_ADD_LOG (37039)
477 #define D_ERR_REPL_COOR_CANNOT_ADD_LOG (37040)
478 #define D_ERR_CANNOT_LOAD_LICENSE (47000)
479 #define D_ERR_INVALID_LICENSE (47001)
480 #define D_ERR_LICENSE_EXPIRED (47002)
481 #define D_ERR_LICENSE_BLOCKED (47003)
482 
483 
484 /* Server error macros */
485 
486 #define D_IS_REPL_BUSY_ERR(dw) ( \
487  (DWORD)(dw) == (DWORD) D_ERR_REPLICATION_BUSY || \
488  (DWORD)(dw) == (DWORD) D_ERR_REPLICATION_D_BUSY || \
489  (DWORD)(dw) == (DWORD) D_ERR_REPLICATION_S_BUSY || \
490  (DWORD)(dw) == (DWORD) D_ERR_REPLICATION_STORAGE_LAYER_BUSY || \
491  (DWORD)(dw) == (DWORD) D_ERR_REPLICATION_SEC_LAYER_BUSY \
492  )
493 
494 
495 
496 
497 #define NOT_LISTED_ERROR (-999999)
498 
499 /* DOpenSession - Options/parameters */
500 
501 /* dwParam */
502 #define SS_ANONYMOUS (0x00000001) /*pbData == AUTH_PWD ou AUTH_PWD_EX*/
503 #define SS_USER_PWD (0x00000002) /*pbData == AUTH_PWD*/
504 #define SS_CERTIFICATE (0x00000004) /*pbData == SS_MEDIA_FILE*/
505 #define SS_CLUSTER (0x00000008) /*pbData == NULL*/
506 #define SS_USR_PWD_EX (0x00000010) /*pbData == AUTH_PWD_EX*/
507 #define SS_ATOKEN (0x00000020) /*pbData == AUTH_ATOKEN*/
508 
509 /* dwFlags */
510 #define ENCRYPTED_CONN (0x00000001) /* Encrypted communication */
511 #define USER_INTERACTIVE (0x00000002) /* User interactive. Not implemented. */
512 #define CLEAR_CONN (0x00000004) /* Not encrypted communication */
513 #define LB_BYPASS (0x00000008) /* Load balance bypass */
514 #define CACHE_BYPASS (0x00000010) /* Session Cache bypass */
515 
516 /* Strong authentication */
517 
518 #define SA_AUTH_NONE (0x00000000) /* No strong authentication */
519 #define SA_AUTH_OTP (0x00000001) /* OTP authentication */
520 #define SA_AUTH_CERTIFICATE (0x00000002) /* Certificate authentication */
521 
522 /* SetSessionParam/GetSessionParam */
523 
524 /* dwParam */
525 #define SP_SESSION_TIMEOUT (0x00000001) /* Time-out sessao pbData == dwTimeout (ms) */
526 #define SP_SEND_TIMEOUT (0x00000002) /* Time-out send pbData == dwTimeout (ms) */
527 #define SP_RECV_TIMEOUT (0x00000004) /* Time-out recv pbData == dwTimeout (ms) */
528 #define SP_ENCRYPTED (0x00000008) /* Read-only pbData == bSessionEncrypted (TRUE/FALSE) */
529 #define SP_SESSION_ID (0x00000010) /* Read-only pbData == dwSessionId */
530 #define SP_SESSION_CID (0x00000020) /* Read-only pbData == DWORD */
531 #define SP_SESSION_TYPE (0x00000040) /* Read-only pbData == DWORD */
532 #define SP_SESSION_CIPHER (0x00000080) /* Read-only pbData == char * */
533 
534 /* SP_SESSION_TYPE */
535 
536 #define SP_SESSION_TYPE_CLEAR_CONN (1)
537 #define SP_SESSION_TYPE_SSL2 (2)
538 #define SP_SESSION_TYPE_SSL3 (3)
539 #define SP_SESSION_TYPE_TLS1 (4)
540 #define SP_SESSION_TYPE_TLS1_1 (5)
541 #define SP_SESSION_TYPE_TLS1_2 (6)
542 #define SP_SESSION_TYPE_UNKNOWN (7)
543 
544 
545 /* CloseSession */
546 
547 /* dwFlags */
548 #define WAIT_OPERATIONS (0x00000004) /* Wait the end of all operations in progress. Not implemented. */
549 #define CLOSE_PHYSICALLY (0x00000008) /* Force the end of the connection with the HSM. Session will not be cached. */
550 
551 
552 /* DBackupObject */
553 
554 #define D_BACKUP_OBJ (1)
555 #define D_RESTORE_OBJ (2)
556 
557 #define D_MAX_BACKUP_OBJ_LEN (1024*4)
558 
559 /* Backup */
560 
561 #define MAKE_BACKUP (0)
562 #define MAKE_RESTORE (1) /* Deprecated. Only defined for backward compatibility. */
563 #define MAKE_RESTORE_WITH_NET_CONFIG MAKE_RESTORE
564 #define MAKE_RESTORE_WITHOUT_NET_CONFIG (2)
565 
566 /* GetHsmData/SetHsmData */
567 
568 /* dwParam */
569 #define HD_AUDIT_START (0x00000001) /* Indicate that the connection will be used to retrieve logs. */
570 #define HD_AUDIT_RECV (0x00000002) /* Receive logs from server. */
571 
572 /* dwFlags */
573 #define DATA_ONLY (0x00000008) /* Backup/Restore only data */
574 #define CONFIG_ONLY (0x00000010) /* Backup/Restore only configurations*/
575 
576 
577 /* GetHsmConfig/SetHsmConfig */
578 
579 /* dwParam*/
580 #define HC_PASS_PORT_VALUE (0x00000001) /* Monitoring port. pbData == wPortNumber */
581 #define HC_PASS_PORT_ENABLE (0x00000002) /* Enable/disable monitoring port. pbData == bEnable */
582 #define HC_MAX_CONNECT (0x00000004) /* Maximum connections (processing). pbData == dwMaxConnections */
583 #define HC_MAX_MONITORING (0x00000008) /* Maximum connections (monitoring). pbData == dwMaxConnections */
584 #define HC_PERMISSION_IP (0x00000010) /* Clients IP list. pbData == szIPList (xxx.xxx.xxx.xxx;xxx...) */
585 
586 /* dwFlags */
587 #define ENABLE_VALUES (0x00000020) /* Enable values indicated by pbData. */
588 #define DISABLE_VALUES (0x00000040) /* Disable values indicated by pbData. */
589 
590 
591 /* DAdmOperation */
592 
593 /* dwParam */
594 #define AO_SHUTDOWN (0x00000001) /* Shutdown HSM. pbData == NULL */
595 #define AO_RESTART (0x00000002) /* Restart HSM services. pbData == NULL */
596 #define AO_KEEPALIVE (0x00000004) /* Keep session alive. */
597 #define AO_SET_DATE_TIME (0x00000008) /* Set the HSM's time and date. pbData == struct tm (time.h) */
598 #define AO_ADD_CLUSTER_LIST (0x00000010) /* DEPRECATED! */
599 #define AO_DEL_CLUSTER_LIST (0x00000012) /* DEPRECATED! */
600 #define AO_GET_CLUSTER_LIST (0x00000014) /* DEPRECATED! */
601 #define AO_RST_CLUSTER_LIST (0x00000018) /* DEPRECATED! */
602 #define AO_SET_PWD_SEC_POLICY (0x00000019) /* Define password security policies. */
603 #define AO_GET_PWD_SEC_POLICY (0x00000020) /* Recover password security policies. */
604 #define AO_REPL_UPDATE (0x00000021) /* Process an update replication command. pbData == NULL */
605 #define AO_REPL_NODE_MESSAGE (0x00000022) /* Send comands to the HSM's replication subsystem. pbData == *REPL_NODE_MSG */
606 #define AO_LOG_CACHE_STATE (0x00000023) /* Get cache log state. pbData == *DWORD */
607 #define AO_LOG_CACHE_ENABLE (0x00000024) /* Enable log cache. pbData == NULL */
608 #define AO_LOG_CACHE_DISABLE (0x00000025) /* Disable log cache. pbData == NULL */
609 #define AO_SET_TLS_BUNDLE (0x00000026) /* Set TLS bundle. pbData == TLS_BUNDLE_INFO */
610 
611 #define AO_KEEPALIVE_FLAG_NOISELESS ((DWORD) -2371)
612 
613 #define AO_LOG_CACHE_STATE_ENABLED (11)
614 #define AO_LOG_CACHE_STATE_DISABLED (22)
615 
616 //
617 // Replication operation messages
618 // to be used with AO_REPL_NODE_MESSAGE.
619 //
620 #define RNM_PROBE (1)
621 #define RNM_DOWN (2)
622 #define RNM_SLP_BYPASS_ADD (3)
623 #define RNM_SLP_BYPASS_DEL (4)
624 
625 /* SetUserParam/GetUserParam */
626 
627 /* dwParam */
628 #define UP_USER_NAME (0x00000001) /* User name. pbData == szUserName */
629 #define UP_AUTH_MASK (0x00000002) /* Authorization mask. pdData == dwAuthMask */
630 #define UP_ACCESS_TYPE (0x00000004) /* Access type mask. pbData == dwAccessType */
631 #define UP_CERTIFICATE (0x00000008) /* User certificate. pbData == pbCertificate */
632 #define UP_PASSWORD (0x00000010) /* User password. pbData == pwd */
633 #define UP_INVALID_LOGIN_ATTEMPTS (0x00000020) /* Amount of invalid login attempts. pbData == DWORD */
634 #define UP_BLOCK_USR (0x00000040) /* Block user. == szUserName */
635 #define UP_UNBLOCK_USR (0x00000080) /* Unblock user. == szUserName */
636 #define UP_USR_PASSWORD (0x00000100) /* Re-define user password. == USER_INFO */
637 #define UP_USR_PA_STATE (0x00000200) /* Partition autorization state. == USER_PA_INFO */
638 
639 /* FindUser */
640 
641 /* dwFindType */
642 #define FU_USER_ID (0x00000001) /* User ID pvFindParam == szUserId */
643 #define FU_USER_NAME (0x00000002) /* User ID pvFindParam == szUserName */
644 #define FU_AUTH_MASK (0x00000004) /* Authorization mask. pvFindParam == dwAuthMask */
645 #define FU_ACCESS_TYPE (0x00000008) /* Access type. pvFindParam == dwAccessType */
646 #define FU_ROOT_ID (0x00000010) /* Root certificate issuer. pvFindParam == szRootCN */
647 
648 /* dwFlags */
649 #define PARTIAL_VALUE (0x00000080) /* pvFindParam contains part of the search value. */
650 
651 /* DGetHsmInfo */
652 
653 #define HI_BATTERY_LIFE (0x00000001) /* Battery remaining life time. pbData == tLife (time_t) */
654 #define HI_PERFOMANCE_COUNT (0x00000002) /* Use percentage: CPU, Memory e disk. pbData == * PERFOMANCE_COUNT */
655 #define HI_MODULE_INFO (0x00000004) /* Existing modules. pbData == * MODULE_INFO */
656 #define HI_HSM_INFO (0x00000008) /* HSM's model and version. pbData == szHsmInfo */
657 #define HI_OPERATIONS_COUNT (0x00000010) /* Operation counter. pbData == * OPERATIONS_INFO */
658 #define HI_SYS_HEALTH (0x00000020) /* Elapsed time since last update and battery check. pbData == * SYS_HEALTH */
659 #define HI_FIPS_MODE (0x00000040) /* Recover HSM's operation mode. pbData == *DWORD */
660 #define HI_DISK_INFO (0x00000080) /* Recover HSM's disk usage information. pbData == *SYS_DISK_INFO */
661 #define HI_REPL_INFO (0x00000100) /* Recover HSM's replication information. pbData == *SYS_REPL_INFO */
662 #define HI_CURRENT_DATE (0x00000200) /* Recover HSM's date and time. pbData == *QWORD */
663 #define HI_HW_STR (0x00000400) /* Recover HSM's date and time. pbData == *SYS_HW_STR_INFO */
664 #define HI_NTP_INFO (0x00000800) /* Recover HSM's date and time. pbData == *SYS_NTP_INFO */
665 #define HI_STATS_INFO (0x00001000) /* Recover HSM's statistics info. pbData == *SYS_STATUS_INFO */
666 #define HI_COUNTER_INFO (0x00002000) /* Recover HSM's counter info. pbData == *SYS_COUNTER_INFO */
667 #define HI_FIPS_RCODE_INFO (0x00004000) /* Recover HSM's FIPS auto-test return code. pbData == *DWORD */
668 #define HI_PENDING_INFO (0x00008000) /* Recover HSM's pending info. pbData == *SYS_PENDING_INFO */
669 #define HI_ALL_INFO (0x00010000) /* Recover HSM's ALL info. pbData == *SYS_ALL_INFO */
670 
671 
672 #define INVALID_OBJ_TYPE (0)
673 
674 #define MSGSH_NO_INFO (0xFFFFFFFF)
675 
676 
677 #define GET_INFO_MAX_REPL_DOMAIN_NAME (1024)
678 #define GET_INFO_MAX_REPL_NODES (255)
679 #define GET_INFO_MAX_SN_LEN (255)
680 #define GET_INFO_MAX_HW_STR_LEN (255)
681 #define GET_INFO_MAX_TPKEY_LEN (16)
682 #define GET_INFO_MAX_NTP_SVRS (16)
683 #define GET_INFO_MAX_NTPQ_LEN (256)
684 #define GET_INFO_MAX_NTP_KT_LEN (16)
685 #define GET_INFO_MAX_NTP_KM_LEN (64)
686 
687 
688 //Replication states returned by SYS_REPL_INFO structure.
689 #define REPL_STATE_TWOPC_VIRTUAL (1)
690 #define REPL_STATE_TWOPC_PREPARED (2)
691 #define REPL_STATE_TWOPC_COMMITTED (3)
692 #define REPL_STATE_TWOPC_COMMITTED_TM (4)
693 
694 //Replication events returned by SYS_REPL_INFO structure.
695 #define REPL_EVENT_ET_NULL (1)
696 #define REPL_EVENT_ET_CREATE_USR (2)
697 #define REPL_EVENT_ET_DELETE_USR (3)
698 #define REPL_EVENT_ET_CREATE_OBJ (4)
699 #define REPL_EVENT_ET_DELETE_OBJ (5)
700 #define REPL_EVENT_ET_DELETE_USR_OTP_AUTH_INFO (6)
701 #define REPL_EVENT_ET_WRITE_USR_OTP_AUTH_INFO (7)
702 #define REPL_EVENT_ET_UPDATE_USR_OTP_AUTH_INFO (8)
703 #define REPL_EVENT_ET_CHANGE_USR_PWD (9)
704 #define REPL_EVENT_ET_SET_USR_LOCK_COUNT (10)
705 #define REPL_EVENT_ET_SET_GLOBAL_SEC_POLICY (11)
706 #define REPL_EVENT_ET_SET_SYS_DATE_TIME (12)
707 #define REPL_EVENT_ET_UPDATE_ACL (13)
708 #define REPL_EVENT_ET_BLOCK_OBJ (14)
709 #define REPL_EVENT_ET_UPDATE_OBJ (15)
710 #define REPL_EVENT_ET_SET_USR_NS_AUTH_COOKIE (16)
711 #define REPL_EVENT_ET_SET_USR_OTP_MOV_FACTOR (17)
712 
713 /* DListUserTrusts */
714 
715 #define OP_LST_USR_TRUSTERS (0x01) /* List users that permits the current logged user to access it's partition. */
716 #define OP_LST_USR_TRUSTEES (0x02) /* List users that have permission to access the current logged user's partition. */
717 
718 
719 /* DAssignToken/DUnassignToken */
720 
721 #define AT_GO3_TOKEN (1) /* DEPRECATED! */
722 #define AT_OATH_TOKEN (2) /* Assign a OATH EVENT OTP token */
723 #define AT_OATH_TOKEN_TOTP (3) /* Assign a OATH TIME OTP token */
724 
725 //
726 // mod_OATH's NEW_SA; use with structure OATH_SA_v1.
727 //
728 #define MAX_OATH_HMAC_LEN (128) // up to hmac-sha512, in bytes
729 
730 #define OATH_SA_v1_type_SHA1 (0x01)
731 #define OATH_SA_v1_HOTP_DYN_TRUNC_OFF (16)
732 #define OATH_SA_v2_default_TIME_STEP (30)
733 #define OATH_SA_v2_default_T0_Epoch (0)
734 
735 
736 /* DOATHResync */
737 
738 #define OATH_MIN_HOTP_LEN (6 + 1) //plus 1 for the null terminator
739 #define OATH_MAX_HOTP_LEN (16 + 1) //plus 1 for the null terminator
740 
741 /* DOATHGetBlobInfo */
742 
743 #define OATH_ISSUE_OATH_BLOB_t (1)
744 
745 /* DEncrypt/DDecrypt */
746 
747 #define D_NO_RSA_PADDING (3)
748 #define D_FORCE_ACTUAL_RSA (4)
749 
750 
751 /* DPKCS7Sign - Sign using PKCS#7 */
752 
753 #define TAC_MOD_CORE_P7_TEXT 0x0001
754 #define TAC_MOD_CORE_P7_NOCERTS 0x0002
755 #define TAC_MOD_CORE_P7_NOSIGS 0x0004
756 #define TAC_MOD_CORE_P7_NOCHAIN 0x0008
757 #define TAC_MOD_CORE_P7_NOINTERN 0x0010
758 #define TAC_MOD_CORE_P7_NOVERIFY 0x0020
759 #define TAC_MOD_CORE_P7_DETACHED 0x0040
760 #define TAC_MOD_CORE_P7_BINARY 0x0080
761 #define TAC_MOD_CORE_P7_NOATTR 0x0100
762 #define TAC_MOD_CORE_P7_NOSMIMECAP 0x0200
763 #define TAC_MOD_CORE_P7_NOOLDMIMETYPE 0x0400
764 #define TAC_MOD_CORE_P7_CRLFEOL 0x0800
765 #define TAC_MOD_CORE_P7_NOCRL 0x2000
766 
767 #define TAC_MOD_CORE_P7_COSIGN 0x80000000
768 
769 
770 
771 /* HASH algorithms */
772 
773 #define ALG_MD5 (1)
774 #define ALG_SHA1 (2)
775 #define ALG_SSL_SHA1_MD5 (3)
776 #define ALG_SHA2_256 (4)
777 #define ALG_SHA2_384 (5)
778 #define ALG_SHA2_512 (6)
779 #define ALG_SHA2_224 (7) //Currently only available for offline use
780 
781 
782 #define ALG_MD5_InclC14N (1)
783 #define ALG_SHA1_InclC14N (2)
784 #define ALG_MD5_ExclC14N (31)
785 #define ALG_SHA1_ExclC14N (32)
786 
787 #define MD5_LEN (16)
788 #define SHA1_LEN (20)
789 #define SSL_SHA1_MD5_LEN (36)
790 #define SHA2_224_LEN (28)
791 #define SHA2_256_LEN (32)
792 #define SHA2_384_LEN (48)
793 #define SHA2_512_LEN (64)
794 #define CMAC_3DES_LEN (8)
795 #define CMAC_AES_LEN (16)
796 
797 #define MAX_HASH_LEN SHA2_512_LEN
798 
799 /* Digital signature */
800 
801 #define NO_HASH_OID (1)
802 #define MD5_HASH_OID (2)
803 #define SHA_HASH_OID (3)
804 #define SHA256_HASH_OID (4)
805 #define SHA384_HASH_OID (5)
806 #define SHA512_HASH_OID (6)
807 #define SHA224_HASH_OID (7)
808 
809 #define MD5_HASH_OID_LEN (18)
810 #define SHA_HASH_OID_LEN (15)
811 #define SHA224_HASH_OID_LEN (19)
812 #define SHA256_HASH_OID_LEN (19)
813 #define SHA384_HASH_OID_LEN (19)
814 #define SHA512_HASH_OID_LEN (19)
815 
816 /* Symmetric cryptography algorithms */
817 
818 #define ALG_DES (1)
819 #define ALG_3DES_112 (2) /* EDE */
820 #define ALG_3DES_168 (3) /* EDE */
821 #define ALG_DESX (91)
822 
823 #define ALG_AES_128 (7)
824 #define ALG_AES_192 (8)
825 #define ALG_AES_256 (9)
826 
827 #define ALG_ARC4 (10)
828 
829 /* Symmetric key sizes (bytes) */
830 
831 #define ALG_DES_LEN (8)
832 #define ALG_DES3_112_LEN (16)
833 #define ALG_DES3_168_LEN (24)
834 
835 //Deprecated
836 #define DES_LEN (ALG_DES_LEN)
837 #define DES3_112_LEN (ALG_DES3_112_LEN)
838 #define DES3_168_LEN (ALG_DES3_168_LEN)
839 
840 #define ALG_DESX_LEN (24)
841 
842 #define ALG_AES_128_LEN (16)
843 #define ALG_AES_192_LEN (24)
844 #define ALG_AES_256_LEN (32)
845 
846 #define ALG_ARC4_LEN (16)
847 
848 /* Block sizes */
849 
850 #define DES_BLOCK (8)
851 #define DES3_BLOCK (8)
852 #define DESX_BLOCK (8)
853 #define AES_BLOCK (16)
854 #define AES_128_BLOCK (16)
855 #define AES_192_BLOCK (16)
856 #define AES_256_BLOCK (16)
857 
858 /* Operation modes */
859 
860 #define MODE_NONE (0)
861 #define MODE_ECB (1 << 0)
862 #define MODE_CBC (1 << 1)
863 #define MODE_CFB (1 << 2)
864 #define MODE_OFB (1 << 3)
865 
866 /* Operation directions */
867 
868 #define D_ENCRYPT (0 << 7)
869 #define D_DECRYPT (1 << 7)
870 
871 /* Asymmetric algorithms */
872 
873 #define ALG_RSA_512 (4)
874 #define ALG_RSA_1024 (5)
875 #define ALG_RSA_2048 (6)
876 #define ALG_RSA_4096 (11)
877 #define ALG_RSA_1152 (121)
878 #define ALG_RSA_1408 (122)
879 #define ALG_RSA_1984 (123)
880 #define ALG_RSA_8192 (124)
881 #define ALG_RSA_2304 (126)
882 #define ALG_RSA_2560 (127)
883 #define ALG_RSA_2816 (128)
884 #define ALG_RSA_3072 (129)
885 
886 #define ALG_ECC_SECP112R1 (18) // SECG/WTLS curve over a 112 bit prime field
887 #define ALG_ECC_SECP112R2 (19) // SECG curve over a 112 bit prime field
888 #define ALG_ECC_SECP128R1 (20) // SECG curve over a 128 bit prime field
889 #define ALG_ECC_SECP128R2 (21) // SECG curve over a 128 bit prime field
890 #define ALG_ECC_SECP160K1 (22) // SECG curve over a 160 bit prime field
891 #define ALG_ECC_SECP160R1 (23) // SECG curve over a 160 bit prime field
892 #define ALG_ECC_SECP160R2 (24) // SECG/WTLS curve over a 160 bit prime field
893 #define ALG_ECC_SECP192K1 (25) // SECG curve over a 192 bit prime field
894 #define ALG_ECC_SECP192R1 (26) // NIST/X9.62/SECG curve over a 192 bit prime field
895 #define ALG_ECC_SECP224K1 (27) // SECG curve over a 224 bit prime field
896 #define ALG_ECC_SECP224R1 (28) // NIST/SECG curve over a 224 bit prime field
897 #define ALG_ECC_SECP256K1 (29) // SECG curve over a 256 bit prime field
898 #define ALG_ECC_SECP256R1 (30) // X9.62/SECG curve over a 256 bit prime field
899 #define ALG_ECC_SECP384R1 (31) // NIST/SECG curve over a 384 bit prime field
900 #define ALG_ECC_SECP521R1 (32) // NIST/SECG curve over a 521 bit prime field
901 #define ALG_ECC_X9_62_PRIME192V1 (ALG_ECC_SECP192R1)
902 #define ALG_ECC_X9_62_PRIME192V2 (33) // X9.62 curve over a 192 bit prime field
903 #define ALG_ECC_X9_62_PRIME192V3 (34) // X9.62 curve over a 192 bit prime field
904 #define ALG_ECC_X9_62_PRIME239V1 (35) // X9.62 curve over a 239 bit prime field
905 #define ALG_ECC_X9_62_PRIME239V2 (36) // X9.62 curve over a 239 bit prime field
906 #define ALG_ECC_X9_62_PRIME239V3 (37) // X9.62 curve over a 239 bit prime field
907 #define ALG_ECC_X9_62_PRIME256V1 (ALG_ECC_SECP256R1)
908 
909 #define ALG_ECC_BRAINPOOL_P160R1 (38) // RFC 5639 standard curves
910 #define ALG_ECC_BRAINPOOL_P160T1 (39)
911 #define ALG_ECC_BRAINPOOL_P192R1 (40)
912 #define ALG_ECC_BRAINPOOL_P192T1 (41)
913 #define ALG_ECC_BRAINPOOL_P224R1 (42)
914 #define ALG_ECC_BRAINPOOL_P224T1 (43)
915 #define ALG_ECC_BRAINPOOL_P256R1 (44)
916 #define ALG_ECC_BRAINPOOL_P256T1 (45)
917 #define ALG_ECC_BRAINPOOL_P320R1 (46)
918 #define ALG_ECC_BRAINPOOL_P320T1 (47)
919 #define ALG_ECC_BRAINPOOL_P384R1 (48)
920 #define ALG_ECC_BRAINPOOL_P384T1 (49)
921 #define ALG_ECC_BRAINPOOL_P512R1 (50)
922 #define ALG_ECC_BRAINPOOL_P512T1 (51)
923 
924 
925 /* blobs */
926 #define BLOB_TYPE (12)
927 #define ALG_OBJ_BLOB (12)
928 #define ALG_OBJ_BLOB_X509 (13)
929 #define ALG_OBJ_BLOB_PKCS7 (14)
930 #define ALG_OBJ_BLOB_CRL (15)
931 #define ALG_OBJ_BLOB_HOTP (16)
932 #define ALG_OBJ_BLOB_DPGO3 (17) /* TAC-PASS (Vasco Digipass GO3 Compatible) */
933 #define ALG_OBJ_MAP (90)
934 #define ALG_OBJ_EXT_MAP_2_OBJ (125)
935 
936 
937 /* Public key objects */
938 
939 #define ALG_OBJ_PUBKEY_BLOB (350)
940 #define ALG_OBJ_PUBKEY_RSA_BLOB (351) // pkcs1/oem
941 #define ALG_OBJ_PUBKEY_ECC_BLOB (352) // SubjectPublicKeyInfo
942 #define ALG_OBJ_PUBKEY_SPKI_RSA_BLOB (353) // SubjectPublicKeyInfo
943 
944 /* HMAC objects */
945 
946 #define ALG_HMAC_MD5 (92)
947 #define ALG_HMAC_SHA1 (93)
948 #define ALG_HMAC_SHA2_256 (94)
949 #define ALG_HMAC_SHA2_384 (95)
950 #define ALG_HMAC_SHA2_512 (96)
951 
952 /* CMAC algorithms - DCreateHash Only */
953 
954 #define ALG_CMAC_AES (250)
955 #define ALG_CMAC_DES (251)
956 
957 /* PKCS11 objects */
958 
959 #define ALG_PKCS11_MAP (120) // pkcs11 shell obj
960 
961 
962 
963 #define MAX_ALG_ID (ALG_OBJ_PUBKEY_SPKI_RSA_BLOB)
964 
965 
966 /* Public keys -> most significant bit of the DWORD must be set. */
967 
968 #define ALG_RSA_512_PUB (ALG_RSA_512 | 1 << 31)
969 #define ALG_RSA_1024_PUB (ALG_RSA_1024 | 1 << 31)
970 #define ALG_RSA_2048_PUB (ALG_RSA_2048 | 1 << 31)
971 #define ALG_RSA_4096_PUB (ALG_RSA_4096 | 1 << 31)
972 #define ALG_RSA_1152_PUB (ALG_RSA_1152 | 1 << 31)
973 #define ALG_RSA_1408_PUB (ALG_RSA_1408 | 1 << 31)
974 #define ALG_RSA_1984_PUB (ALG_RSA_1984 | 1 << 31)
975 #define ALG_RSA_8192_PUB (ALG_RSA_8192 | 1 << 31)
976 #define ALG_RSA_2304_PUB (ALG_RSA_2304 | 1 << 31)
977 #define ALG_RSA_2560_PUB (ALG_RSA_2560 | 1 << 31)
978 #define ALG_RSA_2816_PUB (ALG_RSA_2816 | 1 << 31)
979 #define ALG_RSA_3072_PUB (ALG_RSA_3072 | 1 << 31)
980 
981 
982 #define ALG_ECC_SECP112R1_PUB (ALG_ECC_SECP112R1 | (1 << 31))
983 #define ALG_ECC_SECP112R2_PUB (ALG_ECC_SECP112R2 | (1 << 31))
984 #define ALG_ECC_SECP128R1_PUB (ALG_ECC_SECP128R1 | (1 << 31))
985 #define ALG_ECC_SECP128R2_PUB (ALG_ECC_SECP128R2 | (1 << 31))
986 #define ALG_ECC_SECP160K1_PUB (ALG_ECC_SECP160K1 | (1 << 31))
987 #define ALG_ECC_SECP160R1_PUB (ALG_ECC_SECP160R1 | (1 << 31))
988 #define ALG_ECC_SECP160R2_PUB (ALG_ECC_SECP160R2 | (1 << 31))
989 #define ALG_ECC_SECP192K1_PUB (ALG_ECC_SECP192K1 | (1 << 31))
990 #define ALG_ECC_SECP192R1_PUB (ALG_ECC_SECP192R1 | (1 << 31))
991 #define ALG_ECC_SECP224K1_PUB (ALG_ECC_SECP224K1 | (1 << 31))
992 #define ALG_ECC_SECP224R1_PUB (ALG_ECC_SECP224R1 | (1 << 31))
993 #define ALG_ECC_SECP256K1_PUB (ALG_ECC_SECP256K1 | (1 << 31))
994 #define ALG_ECC_SECP256R1_PUB (ALG_ECC_SECP256R1 | (1 << 31))
995 #define ALG_ECC_SECP384R1_PUB (ALG_ECC_SECP384R1 | (1 << 31))
996 #define ALG_ECC_SECP521R1_PUB (ALG_ECC_SECP521R1 | (1 << 31))
997 #define ALG_ECC_X9_62_PRIME192V1_PUB (ALG_ECC_SECP192R1_PUB)
998 #define ALG_ECC_X9_62_PRIME192V2_PUB (ALG_ECC_X9_62_PRIME192V2 | (1 << 31))
999 #define ALG_ECC_X9_62_PRIME192V3_PUB (ALG_ECC_X9_62_PRIME192V3 | (1 << 31))
1000 #define ALG_ECC_X9_62_PRIME239V1_PUB (ALG_ECC_X9_62_PRIME239V1 | (1 << 31))
1001 #define ALG_ECC_X9_62_PRIME239V2_PUB (ALG_ECC_X9_62_PRIME239V2 | (1 << 31))
1002 #define ALG_ECC_X9_62_PRIME239V3_PUB (ALG_ECC_X9_62_PRIME239V3 | (1 << 31))
1003 #define ALG_ECC_X9_62_PRIME256V1_PUB (ALG_ECC_SECP256R1_PUB)
1004 
1005 #define ALG_ECC_BRAINPOOL_P160R1_PUB (ALG_ECC_BRAINPOOL_P160R1 | (1 << 31))
1006 #define ALG_ECC_BRAINPOOL_P160T1_PUB (ALG_ECC_BRAINPOOL_P160T1 | (1 << 31))
1007 #define ALG_ECC_BRAINPOOL_P192R1_PUB (ALG_ECC_BRAINPOOL_P192R1 | (1 << 31))
1008 #define ALG_ECC_BRAINPOOL_P192T1_PUB (ALG_ECC_BRAINPOOL_P192T1 | (1 << 31))
1009 #define ALG_ECC_BRAINPOOL_P224R1_PUB (ALG_ECC_BRAINPOOL_P224R1 | (1 << 31))
1010 #define ALG_ECC_BRAINPOOL_P224T1_PUB (ALG_ECC_BRAINPOOL_P224T1 | (1 << 31))
1011 #define ALG_ECC_BRAINPOOL_P256R1_PUB (ALG_ECC_BRAINPOOL_P256R1 | (1 << 31))
1012 #define ALG_ECC_BRAINPOOL_P256T1_PUB (ALG_ECC_BRAINPOOL_P256T1 | (1 << 31))
1013 #define ALG_ECC_BRAINPOOL_P320R1_PUB (ALG_ECC_BRAINPOOL_P320R1 | (1 << 31))
1014 #define ALG_ECC_BRAINPOOL_P320T1_PUB (ALG_ECC_BRAINPOOL_P320T1 | (1 << 31))
1015 #define ALG_ECC_BRAINPOOL_P384R1_PUB (ALG_ECC_BRAINPOOL_P384R1 | (1 << 31))
1016 #define ALG_ECC_BRAINPOOL_P384T1_PUB (ALG_ECC_BRAINPOOL_P384T1 | (1 << 31))
1017 #define ALG_ECC_BRAINPOOL_P512R1_PUB (ALG_ECC_BRAINPOOL_P512R1 | (1 << 31))
1018 #define ALG_ECC_BRAINPOOL_P512T1_PUB (ALG_ECC_BRAINPOOL_P512T1 | (1 << 31))
1019 
1020 /* Binary objects */
1021 
1022 #define ALG_OBJ_INVALID_TYPE (0)
1023 #define ALG_OBJ_NULL (ALG_OBJ_INVALID_TYPE)
1024 #define ALG_OBJ (12)
1025 #define OBJ_BLOCK (1)
1026 
1027 
1028 /* RSA module sizes */
1029 #define RSA_512_LEN (64)
1030 #define RSA_1024_LEN (128)
1031 #define RSA_2048_LEN (256)
1032 #define RSA_4096_LEN (512)
1033 #define RSA_1152_LEN (144)
1034 #define RSA_1408_LEN (176)
1035 #define RSA_1984_LEN (248)
1036 #define RSA_8192_LEN (1024)
1037 #define RSA_2304_LEN (288)
1038 #define RSA_2560_LEN (320)
1039 #define RSA_2816_LEN (352)
1040 #define RSA_3072_LEN (384)
1041 
1042 
1043 #define RSA_512_PUB_LEN (RSA_512_LEN * 2)
1044 #define RSA_1024_PUB_LEN (RSA_1024_LEN * 2)
1045 #define RSA_2048_PUB_LEN (RSA_2048_LEN * 2)
1046 #define RSA_4096_PUB_LEN (RSA_4096_LEN * 2)
1047 #define RSA_1152_PUB_LEN (RSA_1152_LEN * 2)
1048 #define RSA_1408_PUB_LEN (RSA_1408_LEN * 2)
1049 #define RSA_1984_PUB_LEN (RSA_1984_LEN * 2)
1050 #define RSA_8192_PUB_LEN (RSA_8192_LEN * 2)
1051 #define RSA_2304_PUB_LEN (RSA_2304_LEN * 2)
1052 #define RSA_2560_PUB_LEN (RSA_2560_LEN * 2)
1053 #define RSA_2816_PUB_LEN (RSA_2816_LEN * 2)
1054 #define RSA_3072_PUB_LEN (RSA_3072_LEN * 2)
1055 
1056 #define MAX_RSA_PUB_LEN RSA_8192_PUB_LEN
1057 #define MAX_RSA_LEN RSA_8192_LEN
1058 
1059 
1060 /* ECC key sizes (bits) */
1061 #define ECC_SECP112R1_LEN (112)
1062 #define ECC_SECP112R2_LEN (112)
1063 #define ECC_SECP128R1_LEN (128)
1064 #define ECC_SECP128R2_LEN (128)
1065 #define ECC_SECP160K1_LEN (160)
1066 #define ECC_SECP160R1_LEN (160)
1067 #define ECC_SECP160R2_LEN (160)
1068 #define ECC_SECP192K1_LEN (192)
1069 #define ECC_SECP192R1_LEN (192)
1070 #define ECC_SECP224K1_LEN (224)
1071 #define ECC_SECP224R1_LEN (224)
1072 #define ECC_SECP256K1_LEN (256)
1073 #define ECC_SECP256R1_LEN (256)
1074 #define ECC_SECP384R1_LEN (384)
1075 #define ECC_SECP521R1_LEN (521)
1076 #define ECC_X9_62_PRIME192V1_LEN (ECC_SECP192R1_LEN)
1077 #define ECC_X9_62_PRIME192V2_LEN (192)
1078 #define ECC_X9_62_PRIME192V3_LEN (192)
1079 #define ECC_X9_62_PRIME239V1_LEN (239)
1080 #define ECC_X9_62_PRIME239V2_LEN (239)
1081 #define ECC_X9_62_PRIME239V3_LEN (239)
1082 #define ECC_X9_62_PRIME256V1_LEN (ECC_SECP256R1_LEN)
1083 
1084 #define ECC_BRAINPOOL_P160R1_LEN (160) // RFC 5639 standard curves
1085 #define ECC_BRAINPOOL_P160T1_LEN (160)
1086 #define ECC_BRAINPOOL_P192R1_LEN (192)
1087 #define ECC_BRAINPOOL_P192T1_LEN (192)
1088 #define ECC_BRAINPOOL_P224R1_LEN (224)
1089 #define ECC_BRAINPOOL_P224T1_LEN (224)
1090 #define ECC_BRAINPOOL_P256R1_LEN (256)
1091 #define ECC_BRAINPOOL_P256T1_LEN (256)
1092 #define ECC_BRAINPOOL_P320R1_LEN (320)
1093 #define ECC_BRAINPOOL_P320T1_LEN (320)
1094 #define ECC_BRAINPOOL_P384R1_LEN (384)
1095 #define ECC_BRAINPOOL_P384T1_LEN (384)
1096 #define ECC_BRAINPOOL_P512R1_LEN (512)
1097 #define ECC_BRAINPOOL_P512T1_LEN (512)
1098 
1099 /* Initialization vector sizes */
1100 
1101 #define DES_IV_LEN (8)
1102 #define AES_IV_LEN (16)
1103 
1104 /* Padding */
1105 
1106 #define D_NO_PADDING (0)
1107 #define D_PKCS5_PADDING (1)
1108 #define D_ZERO_PADDING (2)
1109 #define D_OAEP_PADDING (3)
1110 #define D_PKCS1_PADDING (4)
1111 
1112 /* Key Blobs */
1113 
1114 #define PRIVATEKEY_BLOB (1)
1115 #define PUBLICKEY_BLOB (2)
1116 #define SIMPLE_BLOB (3)
1117 #define PLAINTEXTKEY_BLOB (4)
1118 #define RAW_BLOB (5) //Deprecated
1119 #define HOTP_BLOB (6)
1120 #define SIMPLE_BLOB_OAEP (7)
1121 #define SIMPLE_BLOB_PKCS1 (SIMPLE_BLOB)
1122 #define PUBLICKEY_BLOB_X509 (8)
1123 #define SYM_WRAPPED_KEY_BLOB (9)
1124 #define OPAQUE_BLOB (10)
1125 #define PUBLICKEY_BLOB_HSM (11)
1126 #define PUBLICKEY_RSA_PARTS_HSM (12)
1127 #define PRIVATEKEY_BLOB_P8 (13)
1128 #define PRIVATEKEY_BLOB_STRICT (14)
1129 #define SYM_WRAPPED_KEY_BLOB_P11 (15)//Importkey only
1130 
1131 
1132 
1133 /* Pkcs11 Blobs */
1134 #define P11_BLOB (1)
1135 
1136 /* Pkcs11 Update Flags */
1137 
1138 #define UPDATE_P11_target ( 1 << 0 )
1139 #define UPDATE_P11_associate ( 1 << 1 )
1140 #define UPDATE_P11_Class ( 1 << 2 )
1141 #define UPDATE_P11_App ( 1 << 3 )
1142 #define UPDATE_P11_Id ( 1 << 4 )
1143 #define UPDATE_P11_Label ( 1 << 5 )
1144 #define UPDATE_P11_Trusted ( 1 << 6 )
1145 #define UPDATE_P11_WrapWithTrusted ( 1 << 7 )
1146 #define UPDATE_P11_Local ( 1 << 8 )
1147 #define UPDATE_P11_CertificateCategory ( 1 << 9 )
1148 #define UPDATE_P11_JavaMidpSecDomain ( 1 << 10 )
1149 #define UPDATE_P11_KeyGenMechanism ( 1 << 11 )
1150 
1151 /* Key types */
1152 
1153 /* Flags */
1154 
1155 #define EXPORTABLE_KEY (0x00000001) /* Mark the key as exportable. */
1156 #define NO_CRYPTO (0x00000002) /* The key will not be encrypted inside the HSM. Deprecated in newer versions. */
1157 #define TEMPORARY_KEY (0x00000004) /* Mark key as temporary. Key will exist while the session exists. (default in ImportKey). */
1158 #define PERMANENT_KEY (0x00000008) /* The key will be persistent in the HSM. (default in GenerateKey and ImportKeyPart). */
1159 #define DESTROY_KEY (0x00000010) /* Destroy key handle after function use. */
1160 #define REMOVE_FROM_HSM (0x00000020) /* Erase a key from the HSM and destroys it's handle. */
1161 #define REMOVE_FROM_HCM (REMOVE_FROM_HSM) /* DEPRECATED. use REMOVE_FROM_HSM */
1162 #define REMOVE_ATTRIBUTE (0x00000040)
1163 #define RSA_PUB_EXP3 (0x00000800) /* Use exponent 0x03 when generating a RSA key pair */
1164 #define MOD_SPB_RELATED (0x00001000) /* Mark as mod_SPB related object */
1165 
1166 /* SetKeyParam/GetKeyParam */
1167 
1168 #define DKP_ALGID (1) /* Key algorithm ID. pbData == nAlgId */
1169 #define DKP_IV (2) /* Initialization Vector. pbData == pbIV */
1170 #define DKP_PADDING (3) /* Padding format. pbData == dwPadding */
1171 #define DKP_MODE (4) /* Operation mode. pbData == dwOpMode */
1172 #define DKP_OWNER (5) /* Key owner. pbData == szUserId (separated by ";" ) */
1173 #define DKP_USER (6) /* Key user. pbData == szUserId (separated by ";" )*/
1174 #define DKP_READ_LOCK (7) /* Key read lock status. pbData == NULL */
1175 #define DKP_ENCRYPTED (8) /* Encrypted object. */
1176 #define DKP_KEYLEN (9) /* Key size (bytes). */
1177 #define DKP_TEMPORARY_KEY (10) /* Temporary key. pbData == dwTempKey */
1178 #define DKP_MAP_VALUE (11) /* Values of a MAP object.pbData == MAP_2_OBJ_INFO*/
1179 #define DKP_BLOCKED (12) /* Block object. pbData == nBlocked (TRUE|FALSE)*/
1180 #define DKP_CERT_X509_INFO (13) /* Returns information of a x.509 certificate. pbData == CERT_X509_INFO */
1181 #define DKP_SESSION (14) /* Session associated to the key handle. pbData == HSESSIONCTX */
1182 #define DKP_KEY_ID (15) /* Key name associated to the key handle. pbData == szKeyId */
1183 #define DKP_PUB_KEY_EXP (16) /* Public exponent for the key. pbData == DBLOB */
1184 #define DKP_SP80057_INFO (17) /* Object's SP80057 info. pbData == OBJ_SP80057_INFO */
1185 #define DKP_KEY_INFO (18) /* Key info. pbData == GET_USR_KEY_OFFLINE */
1186 
1187 
1188 /* SetHashParam/GetHashParam */
1189 
1190 #define DHP_ALGID (1) /* Hash algorithm. */
1191 #define DHP_HASH_VALUE (2) /* Hash value. */
1192 #define DHP_HASH_SIZE (4) /* Hash size (bytes). */
1193 
1194 /* HashSessionKey */
1195 
1196 #define DHS_LITTLE_ENDIAN (1)
1197 
1198 /* DSetObjParam */
1199 #define OP_OBJ_BLOCKED (1) /* User blocked */
1200 #define OP_OBJ_UNBLOCKED (2) /* Used unblocked */
1201 
1202 /* LogParam */
1203 
1204 #define LP_LOG_PATH (0x00000001) /* Log file full path. */
1205 #define LP_LOG_LEVEL (0x00000002) /* Log level. */
1206 
1207 #define LOG_ERROR_LEVEL (0)
1208 #define LOG_DEBUG_LEVEL (3)
1209 
1210 #define LOG_DISABLED_LEVEL (1000)
1211 
1212 /*
1213  DGetHSMLogInit
1214  Remote log start and offset options
1215 */
1216 
1217 #define GET_LOG_START_FULL (0x00000000) //Deprecated - Use RLOG_GET_LOG_START_FULL instead.
1218 #define GET_LOG_END_FULL (0x00000000) //Deprecated - Use RLOG_GET_LOG_END_FULL instead.
1219 
1220 #define RLOG_GET_LOG_START_FULL (0x00000000)
1221 #define RLOG_GET_LOG_END_FULL (0x00000000)
1222 
1223 #define RLOG_GET_ZLOG_START_FULL (RLOG_GET_LOG_START_FULL)
1224 #define RLOG_GET_ZLOG_END_FULL (0xFFFFFFFF)
1225 
1226 // Set both to get full compressed OEM log (pkzip format).
1227 #define RLOG_GET_OEM_ZLOG_START_FULL (RLOG_GET_LOG_START_FULL)
1228 #define RLOG_GET_OEM_ZLOG_END_FULL (RLOG_GET_ZLOG_END_FULL -1)
1229 
1230 
1231 
1232 
1233 /* Permissions */
1234 
1235 #define ACL_NOP (0x00000000) // "may the Force be with ya'!"
1236 #define ACL_OBJ_DEL (ACL_NOP + 1) // delete objects
1237 #define ACL_OBJ_READ (ACL_OBJ_DEL << 1) // read obj content
1238 #define ACL_OBJ_LIST (ACL_OBJ_READ) // list usr objs
1239 #define ACL_OBJ_CREATE (ACL_OBJ_DEL << 2) // create obj
1240 #define ACL_OBJ_UPDATE (ACL_OBJ_DEL << 3) // update obj (hdr and alike)
1241 #define ACL_OBJ_WRITE (ACL_OBJ_UPDATE) // update obj
1242 #define ACL_USR_CREATE (ACL_OBJ_DEL << 4) // create usr
1243 #define ACL_USR_DELETE (ACL_USR_CREATE) // makes no sense only to create
1244 #define ACL_USR_REMOTE_LOG (ACL_OBJ_DEL << 5) // can usr use remote log/info?
1245 #define ACL_USR_LIST (ACL_OBJ_DEL << 6) // can usr get user-list?
1246 #define ACL_SYS_OPERATOR (ACL_OBJ_DEL << 7) // operate as master (adm mode)
1247 #define ACL_SYS_BACKUP (ACL_OBJ_DEL << 8) // extract full appliance backup
1248 #define ACL_SYS_RESTORE (ACL_SYS_BACKUP) // restore full appliance backup
1249 #define ACL_SYS_UDATE_HSM (ACL_OBJ_DEL << 9) // firmware and stuff like that
1250 #define ACL_NS_AUTHORIZATION (ACL_OBJ_DEL << 10) // user must be authorized with "m of n"
1251 #define ACL_VIRTUAL_X509_AUTH (ACL_OBJ_DEL << 28) // presence means SA (user must use 2F PKI)
1252 #define ACL_VIRTUAL_OTP_AUTH (ACL_OBJ_DEL << 29) // presence means SA (user must use 2-F OTP)
1253 #define ACL_CHANGE_PWD_NEXT_TIME (ACL_OBJ_DEL << 30) // can force usrs to change pwd on next login
1254 
1255 
1256 #define ACL_DEFAULT_OWNER ( ACL_OBJ_DEL | ACL_OBJ_READ | ACL_OBJ_CREATE | \
1257  ACL_OBJ_UPDATE |ACL_OBJ_WRITE \
1258  )
1259 
1260 /* DGenerateCVV/DVerifyCVV */
1261 
1262 #define MIN_CVV_LEN (3 + 1)
1263 #define MAX_PAN_LEN (24 + 1)
1264 #define MAX_EXP_DATE_LEN (4 + 1)
1265 #define MAX_SVC_LEN (3 + 1)
1266 
1267 /* DGeneratePVV */
1268 
1269 #define EFT_MIN_PVKI (0x00)
1270 #define EFT_MAX_PVKI (0x06)
1271 #define EFT_PVV_LEN (4)
1272 
1273 /* DGeneratePIN */
1274 
1275 #define GP_DEFAULT_PIN (1)
1276 #define GP_USER_DEF_PIN (2)
1277 #define GP_RANDOM_PIN (3)
1278 
1279 /* DEFTExportKey/DEFTKeKImport */
1280 
1281 #define EK_EFT_KEK_EXPORT_RAW (1) // BLOB() == envelope + checksum[3];
1282 #define EK_EFT_KEK_EXPORT_VISA1 (2) // Variant-1 ZCMK, BLOB() == envelope + checksum[3];
1283 #define EK_EFT_KEK_EXPORT_LMK (3) // BLOB() == 3DES_CBC(SVMK, Key)
1284 #define EK_EFT_KEK_EXPORT_JCB (4) // BLOB() == envelope + checksum[8];
1285 
1286 /* DPINBlockTranslate */
1287 
1288 // translate types
1289 #define TP_TRANSLATE_TYPE_AUTO (0xFF)
1290 #define TP_TRANSLATE_TYPE_IBM_3624 (0x36)
1291 #define TP_TRANSLATE_TYPE_ISO_0 (1) // == VISA 1; HSM default
1292 #define TP_TRANSLATE_TYPE_ISO_1 (2)
1293 #define TP_TRANSLATE_TYPE_ISO_3 (3)
1294 
1295 /* Other constants */
1296 
1297 
1298 #define MAX_USR_PWD (16)
1299 #define MAX_USR_LEN (16)
1300 #define MAX_CN_LEN (256)
1301 #define MAX_PATH_LEN (256)
1302 #define MAX_MODULE_NAME_LEN (128)
1303 #define MAX_MODULE_VERSION_LEN (32)
1304 #define MAX_ADDR_LEN (128)
1305 #define MAX_CHANNEL_CIPHER_NAME_LEN (128)
1306 #define MIN_PIN_LEN (8)
1307 #define MIN_BACKUP_OBJ_PIN_LEN (8)
1308 #define MAX_BACKUP_OBJ_PIN_LEN (32)
1309 #define MIN_BACKUP_PIN_LEN (8)
1310 #define MAX_BACKUP_PIN_LEN (32)
1311 #define MAX_OBJ_NAME_LEN (32)
1312 #define MAX_PIN_LEN (6)
1313 #define MAX_MODULE_NAME_VERSION_LEN (1024)
1314 #define MAX_IP_LEN (15)
1315 #define MAX_NET_NAME (16)
1316 #define MAX_HOTP_PIN (4)
1317 #define MAX_HOTP_IMEI (24)
1318 #define MAX_HOTP_APP_NAME (13)
1319 #define MAX_HOTP_LOGO_LEN (1632)
1320 #define MAX_P11_OBJ_ID (128)
1321 #define MAX_OBJ_ID_BIN_LEN (32 + 1)
1322 #define MAX_OBJ_ID MAX_OBJ_ID_BIN_LEN
1323 #define MAX_OBJ_ID_LEN (MAX_USR_LEN + 1 + MAX_OBJ_ID)
1324 #define MAX_OBJ_ID_FQN_LEN (MAX_OBJ_ID_LEN)
1325 #define MAX_P11_DATE_TXT (8)
1326 #define MIN_EFT_PIN_LEN (4)
1327 #define MAX_EFT_PIN_LEN (12)
1328 #define MIN_KSI_LEN (5)
1329 #define MIN_CTR_LEN (5)
1330 #define MAX_HSM_DOMAIN_NAME (32)
1331 #define MAX_HSM_MODEL_NAME (32)
1332 #define MAX_HSM_ID_NAME (32)
1333 
1334 
1335 /* MOD EFT*/
1336 
1337 #define EFT_VISA_KEY_CHECKSUM_LEN (3)
1338 #define EFT_JCB_KEY_CHECKSUM_LEN (8)
1339 #define EFT_EXP_DATE_LEN (4)
1340 
1341 #define EFT_EMV_SDA_SEQ_LEN (2)
1342 #define EFT_EMV_SDA_DAC_LEN (2)
1343 #define EFT_EMV_ARC_LEN (2)
1344 #define EFT_EMV_CSU_LEN (4)
1345 #define EFT_EMV_PAD_LEN (8)
1346 
1347 #define EFT_EMV_IDN_LEN (2)
1348 #define EFT_EMV_IDN_ATC_LEN (2)
1349 #define EFT_EMV_IDN_UN_LEN (4)
1350 
1351 #define EFT_EMV_CSR_VISA_TRACK_NUM_LEN (3)
1352 #define EFT_EMV_CSR_VISA_SERVICE_ID_LEN (4)
1353 #define EFT_EMV_CSR_VISA_ISSUER_ID_LEN (4)
1354 #define EFT_EMV_CSR_VISA_PUB_KEY_INDEX_LEN (3)
1355 
1356 #define EFT_EMV_CSR_VISA_HASH_SIZE (20)
1357 #define EFT_EMV_CSR_MASTER_HASH_SIZE (28)
1358 
1359 
1360 
1361 /* DGenerateICCMK */
1362 
1363 #define EFT_EMV_GEN_ICC_MK_OP_CBC_EXP (0x01)
1364 #define EFT_EMV_GEN_ICC_MK_OP_ECB_EXP (0x02)
1365 
1366 /* DMAC_ISO9797_1_Met2*/
1367 
1368 #define EMV_MAC_TYPE_ALG1 (1)
1369 #define EMV_MAC_TYPE_ALG3 (2)
1370 
1371 /* DGenerateEMV_MAC/DGenerateEMV_HMAC/DCalculateARPC */
1372 
1373 #define EMV_OP_ISO_9797_1_M2_COMMON (0x01)
1374 #define EMV_OP_ISO_9797_1_M2_MCHIP (0x02)
1375 #define EMV_OP_ISO_9797_1_M2_VISA (0x03)
1376 #define EMV_OP_ISO_9797_1_M2_VISA_CRYPTOGRAM (0x04)
1377 #define EMV_OP_ISO_9797_1_M2_VISA_ICC_V1_4_PAN_AUTO (0x05)
1378 #define EMV_OP_ISO_9797_1_M2_RAW (0x06)
1379 #define EMV_OP_ISO_9797_1_M1_VISA_CRYPTOGRAM_PADD_V10 (0x7F)
1380 #define EMV_OP_ISO_9797_1_M2_ELO (0x07)
1381 #define EMV_OP_ISO_9797_1_M2_JCB (0x08)
1382 #define EMV_OP_ISO_9797_1_M1_JCB (0x09)
1383 #define EMV_OP_ISO_9797_1_M1_JCB_CRYPTOGRAM (0x0A)
1384 
1385 /* DGenerateDDA_ICCCert */
1386 
1387 #define EFT_EMV_DDA_OP_RSA_SIGN1 (0x01) // rsa + sha1
1388 
1389 /* DGenerateEMV_CSR */
1390 
1391 #define EFT_EMV_OP_CSR_VISA (0x01)
1392 #define EFT_EMV_OP_CSR_MASTER (0x02)
1393 #define EFT_EMV_OP_CSR_ELO (0x03)
1394 #define EFT_EMV_OP_CSR_JCB (0x04)
1395 
1396 
1397 /* DGenerateISO9796Cert2 */
1398 
1399 #define CORE_P_ISO_9796_USER_ID_LEN (32)
1400 #define CORE_P_ISO_9796_USER_NAME_LEN (32)
1401 #define CORE_P_ISO_9796_KEY_LEN (512) // 128
1402 #define CORE_P_ISO_9796_MIN_KEY_LEN (64)
1403 #define CORE_P_ISO_9796_EXPONENT_LEN (8)
1404 #define CORE_P_ISO_9796_MIN_EXPONENT_LEN (1)
1405 
1406 
1407 /* DGenerateEMV_PinBlock */
1408 
1409 #define PBC_EMV_PIN_BLOCK_OP_COMMON (EMV_OP_ISO_9797_1_M2_COMMON)
1410 #define PBC_EMV_PIN_BLOCK_OP_MCHIP (EMV_OP_ISO_9797_1_M2_MCHIP)
1411 #define PBC_EMV_PIN_BLOCK_OP_VISA (EMV_OP_ISO_9797_1_M2_VISA)
1412 #define PBC_EMV_PIN_BLOCK_OP_VISA_CRYPTOGRAM (EMV_OP_ISO_9797_1_M2_VISA_CRYPTOGRAM)
1413 #define PBC_EMV_PIN_BLOCK_OP_ELO (EMV_OP_ISO_9797_1_M2_ELO)
1414 #define PBC_EMV_PIN_BLOCK_OP_JCB (EMV_OP_ISO_9797_1_M2_JCB)
1415 
1416 #define PBC_EMV_PIN_BLOCK_MAX_OUTPUT (64)
1417 
1418 
1419 /* DDeriveKeyFromBuffer */
1420 
1421 #define EMV_DERIVE_KEY_OP_XOR (0x01)
1422 #define EMV_DERIVE_KEY_OP_ECB (0x02)
1423 
1424 
1425 /* DGeneratePKCS10CSR */
1426 
1427 #define CORE_P10_CSR_VERSION1 (0x00)
1428 #define CORE_P10_CSR_DN_MAX_LEN (2048)
1429 
1430 #define P10_CSR_DER (1)
1431 #define P10_CSR_PEM (2)
1432 
1433 #define CORE_P10_HASH_SHA1 (0x01)
1434 #define CORE_P10_HASH_SHA224 (0x02)
1435 #define CORE_P10_HASH_SHA256 (0x03)
1436 #define CORE_P10_HASH_SHA384 (0x04)
1437 #define CORE_P10_HASH_SHA512 (0x05)
1438 
1439 /* DPKCS8ExportKey */
1440 
1441 // ASCII
1442 #define CORE_P8_EXPORT_PWD_LEN (16)
1443 #define ND_MIN_P8_PWD_LEN (8)
1444 #define ND_MAX_P8_PWD_LEN (CORE_P8_EXPORT_PWD_LEN)
1445 
1446 /* SPB */
1447 
1448 #define ND_SPB_MSG_HEADER_V2_LEN (588)
1449 #define ND_SPB_MAX_NOTIFY_DATA_SEG (32 * 1024)
1450 
1451 
1452 //dwFlags
1453 #define ND_SPB_USE_CIP1 (0x80000000)
1454 
1455 /* DSPBEncode */
1456 
1457 #define ND_SPB_HASH_MODE_SHA1 (0x02)
1458 #define ND_SPB_HASH_MODE_SHA256 (0x03)
1459 
1460 //dwFlags
1461 #define ND_SPB_ENCODE_GEN_01 (0x01)
1462 
1463 /* DSPBDecode */
1464 
1465 #define ND_SPB_REMOVE_PADDING (0x01)
1466 
1467 //dwFlags
1468 #define ND_SPB_OUT_NO_PADDING (0x01)
1469 #define ND_SPB_OUT_WITH_PADDING (0x02)
1470 
1471 #define ND_SPB_ISPB_LEN (8)
1472 #define ND_SPB_CA_LEN (2)
1473 #define ND_SPB_DOMAIN_MAX_LEN (5)
1474 #define ND_SPB_SN_MAX_LEN (32)
1475 #define ND_SPB_ID_MAX_LEN (ND_SPB_SN_MAX_LEN + 1 + ND_SPB_CA_LEN + 1)
1476 #define ND_SPB_ID_MAX_FQN_LEN (MAX_USR_LEN + 1 + ND_SPB_SN_MAX_LEN + 1 + ND_SPB_CA_LEN + 1)
1477 #define ND_SPB_MAX_SUBJECT (1024)
1478 #define ND_SPB_MAX_ISSUER (1024)
1479 #define ND_SPB_MAX_ALG_ID (256)
1480 
1481 //strong auth
1482 #define SA_TP_MAX_DES_LEN (16 + 1)
1483 #define SA_TP_MAX_OFFSET_LEN (6 + 1)
1484 #define SA_TP_MAX_SERIAL_LEN (10 + 1)
1485 #define SA_TP_MAX_MKEY_LEN (32 + 1)
1486 #define SA_TP_MAX_OTP_LEN (6 + 1)
1487 
1488 #define SA_HOTP_CHAP_LEN (10)
1489 
1490 /* Module OATH */
1491 
1492 /* DOATHIssueHOTPBlob */
1493 #define ISSUE_OATH_MIN_OTP_LEN (6)
1494 #define ISSUE_OATH_MAX_OTP_LEN (16)
1495 #define ISSUE_OATH_MAX_OTP_RETRY (129)
1496 
1497 //bSeedLen
1498 #define ISSUE_OATH_SHA1_LEN (20)
1499 #define ISSUE_OATH_SHA256_LEN (32)
1500 #define ISSUE_OATH_SHA512_LEN (64)
1501 
1502 //bTruncationOffset
1503 #define ISSUE_OATH_DYN_TRUNC (OATH_SA_v1_HOTP_DYN_TRUNC_OFF)
1504 
1505 //wTimeStep
1506 #define ISSUE_OATH_DEFAULT_TIME_STEP (OATH_SA_v2_default_TIME_STEP)
1507 #define ISSUE_OATH_HOTP_TS (0)
1508 
1509 //otT0
1510 #define ISSUE_OATH_HOTP_T0 (OATH_SA_v2_default_T0_Epoch)
1511 
1512 //otMovingFactor
1513 #define ISSUE_OATH_INIT_MF (0)
1514 
1515 #define ISSUE_OATH_OUTPUT_BLOB_LEN (160)
1516 
1517 #define OATH_MAX_PSK_LEN (255)
1518 
1519 #define ISSUE_OATH_GENERATE_HOTP (1)
1520 #define ISSUE_OATH_GENERATE_TOTP (2)
1521 #define ISSUE_OATH_IMPORT_HOTP (3)
1522 #define ISSUE_OATH_IMPORT_TOTP (4)
1523 
1524 
1525 #define DEFAULT_PORT (4433)
1526 
1527 
1528 /* DListObjsFilter */
1529 
1530 #define LST_NO_FILTER (1)
1531 #define LST_FILTER (2)
1532 
1533 /* DSPBCalculateObjectId */
1534 
1535 #define SPB_GENERATE_KEY_NAME (1)
1536 #define SPB_GENERATE_CER_NAME (2)
1537 
1538 
1539 /* DIPFilterOperation */
1540 
1541 #define D_IPF_ENABLE (1)
1542 #define D_IPF_DISABLE (2)
1543 #define D_IPF_LIST (33)
1544 #define D_IPF_ADD (44)
1545 #define D_IPF_DEL (55)
1546 
1547 
1548 /* DCert2CertInfo */
1549 
1550 #define P2C_SPB_CERT_INFO (1)
1551 #define P2C_CERT_BASIC_INFO (2)
1552 
1553 //CERT_X509_BASIC_INFO
1554 #define DN_MAX_SUBJECT (1024)
1555 #define DN_MAX_ISSUER (1024)
1556 #define DN_MAX_SN (1024)
1557 #define DN_MAX_EMAIL (1024)
1558 #define DN_MAX_ALG_ID (256)
1559 
1560 
1561 /* DGenerateDUKPT */
1562 
1563 // flags/modes; duk, pek, and mek are mutually exclusive;
1564 #define NEW_DUKPT_MODE_DUK (0x00000000)
1565 #define NEW_DUKPT_MODE_EXP (1 << 31)
1566 #define NEW_DUKPT_MODE_DE (1 << 30)
1567 #define NEW_DUKPT_MODE_PEK (1 << 29)
1568 #define NEW_DUKPT_MODE_MEK (1 << 28)
1569 #define NEW_DUKPT_MODE_TMP (1 << 27)
1570 #define NEW_DUKPT_MODE_IPEK (1 << 26)
1571 
1572 
1573 /* DGetNetInfo */
1574 
1575 #define NET_INFO_MAX_SROUTE_COUNT (48)
1576 #define NET_INFO_MAX_SROUTE_LEN (52)
1577 #define NET_INFO_MAX_SNMP_T_COUNT (16)
1578 #define NET_INFO_MAX_SNMP_SC_STR (255)
1579 #define NET_INFO_MAX_SNMP_SL_STR (255)
1580 #define NET_INFO_MAX_SNMP_C_STR (64)
1581 
1582 //Flags
1583 #define NET_INFO_INFO_0 (0)
1584 #define NET_INFO_INFO_1 (1)
1585 
1586 /* Bond mode - comes in bond gateway info. */
1587 #define NET_INFO_BOND_HOT_STANDBY "hot standby"
1588 #define NET_INFO_BOND_BALANCE "balance"
1589 #define NET_INFO_BOND_AGGREGATION "aggregation"
1590 
1591 
1592 
1593 /* DCertEncodingConvert and DGetHSMTLSCert*/
1594 
1595 #define CERT_OUT_DER 1
1596 #define CERT_OUT_PEM 2
1597 
1598 
1599 
1600 /* DGenEcdhKey - dwOP*/
1601 
1602 #define DN_GEN_KEY_KDF_RAW_SECRET (0x01)
1603 #define DN_GEN_KEY_X9_63_SHA256 (0x02)
1604 
1605 
1606 #define DN_ECDH_GEN_KEY_MAX_DATA (1024)
1607 #define DN_GEN_ECDH_MAX_SHARED_LEN (128)
1608 
1609 /* DCreateHash */
1610 
1611 #define DN_HASH_OFFLINE (1)
1612 
1613 
1614 /* DFindHSM */
1615 
1616 //Service Type
1617 #define DN_FIND_SRVC_TYPE_IP (1)
1618 #define DN_FIND_SRVC_TYPE_AAP (2)
1619 #define DN_FIND_SRVC_TYPE_ALL (3)
1620 
1621 //Filter
1622 #define DN_FIND_FILTER_TYPE_POCKET (0x01)
1623 #define DN_FIND_FILTER_TYPE_XP (0x02) //Not implemented
1624 #define DN_FIND_FILTER_TYPE_ST (0x04) //Not implemented
1625 #define DN_FIND_FILTER_TYPE_LEGACY (0x08) //Not implemented
1626 #define DN_FIND_FILTER_TYPE_UNKNOWN (0x10) //Not implemented
1627 #define DN_FIND_FILTER_TYPE_HSM (0x40000000)
1628 #define DN_FIND_FILTER_TYPE_ALL (0x80000000)
1629 
1630 #define DN_SLP_POCKET_ID "$pocket"
1631 #define DN_SLP_HSM_MODEL_POCKET "DMP"
1632 #define DN_SLP_HSM_MODEL_XP "DXP"
1633 #define DN_SLP_HSM_MODEL_ST "DST"
1634 #define DN_SLP_HSM_MODEL_LEGACY "lhM"
1635 #define DN_SLP_HSM_MODEL_UNKNOWN "DHSM"
1636 
1637 
1638 /* DManageAToken */
1639 
1640 #define DN_USR_A_TOKEN_KLEN (16)
1641 #define DN_RND_CHAP_LEN (16)
1642 
1643 #define DN_A_TOKEN_OP_ISSUE (1)
1644 #define DN_A_TOKEN_OP_REVOKE (2)
1645 #define DN_A_TOKEN_OP_LIST (3)
1646 #define DN_A_TOKEN_OP_L_ISSUE (4)
1647 #define DN_A_TOKEN_OP_L_REVOKE (5)
1648 
1649 #define DN_A_TOKEN_INFINITE (~0)
1650 
1651 
1652 /* DBatchSign */
1653 
1654 #define DN_BATCH_SIGN_BLOCK_HEADER ((DWORD *2) + MAX_OBJ_ID_FQN_LEN)
1655 
1656 
1657 /* DSetLBList and DGetLBList */
1658 
1659 #define DN_LB_LIST (1)
1660 #define DN_MAX_LB_HSM_COUNT (16)
1661 #define DN_MAX_LB_SETS (16)
1662 
1663 /* DGetUserKey */
1664 
1665 #define D_GET_USR_KEY_OFFLINE (1)
1666 
1667 /*
1668 *
1669 * Unaligned structures
1670 *
1671 */
1672 
1677 typedef struct tag_HSM_ADDR
1678 {
1679  char szAddr[MAX_ADDR_LEN];
1680  int nPort;
1681  time_t tmNow;
1682  int nqtdcache; /* Amount of sessions in cache.*/
1683 }HSM_ADDR;
1684 
1689 typedef struct tag_LOAD_BALANCE_LIST
1690 {
1694 
1700 typedef struct tag_SLP_SRVR_INFO
1701 {
1702  int nPort;
1703  char szIP[MAX_IP_LEN + 1];
1704  char szId[MAX_HSM_ID_NAME + 1];
1705  char szModel[MAX_HSM_MODEL_NAME + 1];
1706 }SLP_SRVR_INFO;
1707 
1712 typedef struct tag_DBLOB
1713 {
1714  void *pvData;
1716 } DBLOB;
1717 
1718 
1719 
1720 
1721 
1722 /* DCert2CertInfo */
1723 
1724 typedef struct tag_SPB_CERT_X509_INFO
1725 {
1727 
1728  char szAlgId[ND_SPB_MAX_ALG_ID];
1729 
1730  char szISPB[ND_SPB_ISPB_LEN+1];
1731  char szCA[ND_SPB_CA_LEN+1];
1732  char szSN[ND_SPB_SN_MAX_LEN+1];
1733 
1734  char szSubject[ND_SPB_MAX_SUBJECT];
1735  char szIssuer[ND_SPB_MAX_ISSUER];
1736 
1737  struct tm tmNotBefore;
1738  struct tm tmNotAfter;
1739 
1741 
1743 
1744 
1745 typedef struct tag_CERT_X509_BASIC_INFO
1746 {
1748 
1749  char szAlgId[DN_MAX_ALG_ID];
1750 
1751  char szSubject[DN_MAX_SUBJECT];
1752  char szIssuer[DN_MAX_ISSUER];
1753  char szSN[DN_MAX_SN];
1754 
1755  struct tm tmNotBefore;
1756  struct tm tmNotAfter;
1757 
1760  char szEmail[DN_MAX_EMAIL];
1761 
1763 
1764 
1765 typedef struct tag_IP_FILTER_INFO
1766 {
1767  char szUser[MAX_USR_LEN + 1];
1768  char szIp[MAX_IP_LEN + 1];
1770 
1771 
1772 /* DECPrivateKey2Info and DECPublicKey2Info */
1773 
1774 #define DN_EC_MAX_BIG_NUM (1024)
1775 
1776 //Field type definitions
1777 #define DN_EC_KEY_FIELD_TYPE_NOT_DEFINED (0)
1778 #define DN_EC_KEY_FIELD_TYPE_PRIME_FIELD (1)
1779 #define DN_EC_KEY_FIELD_TYPE_BINARY_FIELD (2)
1780 
1781 //Out format options
1782 #define DN_BN_2_ARRAY_OUT_BIN (1)
1783 #define DN_BN_2_ARRAY_OUT_HEX (2)
1784 
1785 //In format options
1786 #define DN_EC_KEY_IN_FORMAT_DER (1)
1787 
1788 typedef struct tag_DN_EC_BIG_NUMBER
1789 {
1793 
1794 typedef struct tag_DN_EC_POINT_INFO
1795 {
1796  DN_EC_BIG_NUMBER bnX;//Point's x-coordinate
1797  DN_EC_BIG_NUMBER bnY;//Point's y-coordinate
1799 
1800 typedef struct tag_DN_EC_GROUP_INFO
1801 {
1802  int nFieldType; //See definitions above
1803 
1804  DN_EC_BIG_NUMBER bnP;//In Fp fields this is p for F2M fields it's m
1805 
1806  DN_EC_BIG_NUMBER bnA;//Parameter a of the equation
1807  DN_EC_BIG_NUMBER bnB;//Parameter b of the equation
1808 
1810 
1811  DN_EC_BIG_NUMBER bnOrder;//Order n of the generator g
1812  DN_EC_POINT_INFO stGeneratorPoint;//Generator g / base point
1813 
1814 
1816 
1817 typedef struct tag_DN_EC_PUB_KEY_INFO
1818 {
1819 
1821  DN_EC_POINT_INFO stPublicPoint;//Public point - w
1822 
1824 
1825 typedef struct tag_DN_EC_PRIV_KEY_INFO
1826 {
1827 
1829  DN_EC_BIG_NUMBER bnPrivatevalue;//Private value - s
1830 
1832 
1836 typedef struct tag_RSA_PUB_KEY_PARTS
1837 {
1842 
1843 
1844 #define DN_USER_INFO_CERT_OP_ASSOCIATE (1)
1845 #define DN_USER_INFO_CERT_OP_UNASSOCIATE (2)
1846 
1850 typedef struct tag_USER_INFO_CERT
1851 {
1852  char szUserId[MAX_USR_LEN + 1];
1860 
1864 typedef struct tag_TLS_BUNDLE_INFO
1865 {
1866  char szKEY[MAX_OBJ_ID_FQN_LEN];
1867  char szCERT[MAX_OBJ_ID_FQN_LEN];
1869 
1870 
1874 typedef struct tag_GET_USR_KEY_OFFLINE
1875 {
1876  char szKeyId[MAX_OBJ_ID_LEN];
1877  int nAlgId;
1883 
1884 
1885 
1886 
1887 #ifdef _WIN32
1888  #pragma pack(push, 1) /* Align by 1 for portability issues.*/
1889 #else
1890  #pragma pack(1)
1891 #endif
1892 
1893 
1894 /* Aligned structures */
1895 
1896 typedef struct tag_OBJ_HDR_V1
1897 {
1902 
1903 } OBJ_HDR_V1;
1904 
1905 
1906 /*
1907  Estrutura contendo os atributos SP80057 de um objeto do HSM.
1908 */
1909 typedef struct tag_OBJ_SP80057_INFO
1910 {
1911 
1926 
1927 
1928 /*
1929  Estados de objetos KMIP/SP.800-57.
1930 */
1931 #define DN_SL_SP80057_STATE_UNKNOWN (0)
1932 #define DN_SL_SP80057_STATE_PRE_ACTIVE (1)
1933 #define DN_SL_SP80057_STATE_ACTIVE (2)
1934 #define DN_SL_SP80057_STATE_DEACTIVATED (3)
1935 #define DN_SL_SP80057_STATE_COMPROMISED (4)
1936 #define DN_SL_SP80057_STATE_DESTROYED (5)
1937 #define DN_SL_SP80057_STATE_DESTROYED_C (6)
1938 
1939 /*
1940  Máscara de uso de objetos SP.800-57.
1941 */
1942 #define DN_SP80057_UM_SIGN (0x00000001)
1943 #define DN_SP80057_UM_VERIFY (0x00000002)
1944 #define DN_SP80057_UM_ENCRYPT (0x00000004)
1945 #define DN_SP80057_UM_DECRYPT (0x00000008)
1946 #define DN_SP80057_UM_WRAP_KEY (0x00000010)
1947 #define DN_SP80057_UM_UNWRAP_KEY (0x00000020)
1948 #define DN_SP80057_UM_EXPORT (0x00000040)
1949 #define DN_SP80057_UM_MAC_GENERATE (0x00000080)
1950 #define DN_SP80057_UM_MAC_VERIFY (0x00000100)
1951 #define DN_SP80057_UM_DERIVE_KEY (0x00000200)
1952 #define DN_SP80057_UM_CONTENT_COMMITMENT (0x00000400)
1953 #define DN_SP80057_UM_KEY_AGREEMENT (0x00000800)
1954 #define DN_SP80057_UM_CERTIFICATE_SIGN (0x00001000)
1955 #define DN_SP80057_UM_CRL_SIGN (0x00002000)
1956 #define DN_SP80057_UM_GENERATE_CRYPTOGRAM (0x00004000)
1957 #define DN_SP80057_UM_VALIDATE_CRYPTOGRAM (0x00008000)
1958 #define DN_SP80057_UM_TRANSLATE_ENCRYPT (0x00010000)
1959 #define DN_SP80057_UM_TRANSLATE_DECRYPT (0x00020000)
1960 #define DN_SP80057_UM_TRANSLATE_WRAP (0x00040000)
1961 #define DN_SP80057_UM_TRANSLATE_UNWRAP (0x00080000)
1962 
1963 
1964 /* DListObjsFilter */
1965 
1966 typedef struct tag_OBJ_LIST_FILTER
1967 {
1970 
1972 
1973 #define OBJ_LIST_VERB_VERSION ( 1 << 0 )
1974 #define OBJ_LIST_VERB_TYPE ( 1 << 1 )
1975 #define OBJ_LIST_VERB_ATTRIB ( 1 << 2 )
1976 #define OBJ_LIST_OBJS_OR ( 1 << 31 )
1977 
1978 typedef struct tag_OBJ_LIST_FILTER_OUT_DATA
1979 {
1981  char szObjName[MAX_OBJ_ID_FQN_LEN];
1982 
1984  char szSlot1ObjName[MAX_OBJ_ID_FQN_LEN];
1985 
1987  char szSlot2ObjName[MAX_OBJ_ID_FQN_LEN];
1988 
1991 
1993 
1997 typedef struct tag_ISSUE_OTP_BLOB
1998 {
2028 
2032 typedef struct tab_ISSUE_OATH_BLOB_t
2033 {
2058  DWORD pad_cks_tag[3];
2064 
2065 
2069 typedef struct tag_OATH_PSKC_TRANSLATE_OUTPUT
2070 {
2072  char szKeyId[OATH_MAX_PSK_LEN+1];
2074 
2078 typedef struct tag_OATH_SA_v1
2079 {
2091 } OATH_SA_v1;
2092 
2093 typedef struct tag_MOD_OATH_SA_v2
2094 {
2105 } OATH_SA_v2;
2106 
2107 
2108 typedef struct tag_STAT_CLUSTER_IP
2109 {
2110  char szIp[MAX_IP_LEN + 1];
2112 
2113 
2114 //GMT
2115 typedef struct tag_P11_DATE{
2116  char year[4]; /* the year ("1900" - "9999") */
2117  char month[2]; /* the month ("01" - "12") */
2118  char day[2]; /* the day ("01" - "31") */
2119 } P11_DATE;
2120 
2121 typedef struct tag_CERT_X509_INFO
2122 {
2124 
2128 
2131 
2133 
2134 typedef struct tag_HOTP_INFO_EX
2135 {
2136  DWORD dwStructId; //Structure identifier -> SA_ST_ID_HOTP_INFO_EX
2137  char szObjId[MAX_OBJ_NAME_LEN + 1]; //HSM HOTP object name
2138  DWORD dwObjAttr; //HSM object attributes
2139  DWORD dwObjHotpFlags; //SoftToken type -> SA_ATTR_OATH_USE_IMEI, SA_ATTR_OATH_USE_TIME ...
2140  char szStPin[MAX_HOTP_PIN + 1]; //SoftToken PIN
2141  char szStIMEI[MAX_HOTP_IMEI + 1]; //SoftToken related device's serial number
2142  char szStAppName[MAX_HOTP_APP_NAME + 1]; //SoftToken application name
2143  DBLOB *pdbStLogoImage; //SoftToken logo image
2144 }HOTP_INFO_EX; //DESCONTINUADO!
2145 
2146 
2147 //DGetNetInfo
2148 typedef struct tag_SYS_NET_INFO
2149 {
2150  BYTE pbMac[6];
2151  char szIp[MAX_IP_LEN + 1];
2152  char szMask[MAX_IP_LEN + 1];
2153  char szDefGateway[MAX_IP_LEN + 1];
2155  DWORD dwSpeed; //Mb/s
2156  char szName[MAX_NET_NAME + 1];
2157 } SYS_NET_INFO;
2158 
2159 typedef struct tag_SYS_NET_INFO_1
2160 {
2163 
2165  char szCommunity[NET_INFO_MAX_SNMP_C_STR + 1];
2166  char szSysContact[NET_INFO_MAX_SNMP_SC_STR + 1];
2167  char szSyaLocation[NET_INFO_MAX_SNMP_SL_STR + 1];
2169 
2170 } SYS_NET_INFO_1;
2171 
2176 typedef struct tag_SYS_HEALTH
2177 {
2180 }SYS_HEALTH;
2181 
2182 typedef struct tag_SYS_DISK_INFO
2183 {
2187 }SYS_DISK_INFO;
2188 
2193 typedef struct tag_SYS_STATUS_INFO
2194 {
2203 
2208 typedef struct tag_SYS_COUNTER_INFO
2209 {
2216 
2217 
2218 #define DN_MAX_HSM_ALIAS (128)
2219 #define DN_UPACK_MAX_DESCRIPTION (255 + 1)
2220 
2225 typedef struct tag_SYS_PENDING_INFO
2226 {
2228  char szPendingUpackDescription[DN_UPACK_MAX_DESCRIPTION];
2229  char szHsmAlias[DN_MAX_HSM_ALIAS+1];
2231 
2232 
2233 typedef struct tag_SYS_HW_STR_INFO
2234 {
2235  char szSerialNumber[GET_INFO_MAX_SN_LEN + 1];
2236  char szHardwareString[GET_INFO_MAX_HW_STR_LEN + 1];
2237  char szTpKey[GET_INFO_MAX_TPKEY_LEN + 1];
2239 
2240 typedef struct tag_SYS_NTP_SVR_INFO
2241 {
2242  char szAddr[MAX_IP_LEN + 1];
2243  char szNtpqInfo[GET_INFO_MAX_NTPQ_LEN + 1];
2246  char szKeyType[GET_INFO_MAX_NTP_KT_LEN + 1];
2247  char szKeyMat[GET_INFO_MAX_NTP_KM_LEN + 1];
2249 
2250 typedef struct tag_SYS_NTP_INFO
2251 {
2254 }SYS_NTP_INFO;
2255 
2256 
2257 
2258 typedef struct tag_SYS_REPL_INFO
2259 {
2260  char szDomain[GET_INFO_MAX_REPL_DOMAIN_NAME + 1];
2266  DWORD dwaPeers[GET_INFO_MAX_REPL_NODES + 1]; //Zero terminated IPv4 array. Last item == 0x00000000
2267  DWORD dwaPendingAcks[GET_INFO_MAX_REPL_NODES + 1]; //Zero terminated IPv4 array. Last item == 0x00000000
2274  DWORD dwaNodes[GET_INFO_MAX_REPL_NODES + 1]; //Zero terminated IPv4 array. Last item == 0x00000000
2275 }SYS_REPL_INFO;
2276 
2277 
2281 typedef struct tag_SYS_ALL_INFO
2282 {
2294 }SYS_ALL_INFO;
2295 
2296 
2297 typedef struct tag_REPL_NODE_MSG
2298 {
2299  BYTE bOP; //RNM_PROBE, RNM_DOWN...
2300  DWORD dwPeer; //IPv4
2301 }REPL_NODE_MSG;
2302 
2303 
2304 typedef struct tag_HOTP_CHAP
2305 {
2306  DWORD dwStructId; //Structure Id -> SA_ST_ID_HOTP_CHAP
2307  char szChallenge[SA_HOTP_CHAP_LEN + 1]; //Server created challenge
2308 }HOTP_CHAP;//DEPRECATED!
2309 
2310 typedef struct tag_HOTP_SYNC
2311 {
2312  DWORD dwStructId; //Structure Id -> SA_ST_ID_HOTP_SYNC
2313  char szObjId[MAX_OBJ_NAME_LEN + 1]; //HOTPToken to synchronize
2314  char szOTP1[SA_TP_MAX_OTP_LEN]; //Expected response from HOTPToken
2315  char szOTP2[SA_TP_MAX_OTP_LEN]; //Server Counter Response
2316 }HOTP_SYNC;
2317 
2318 typedef struct tag_HIP_PARAM
2319 {
2323 }HIP_PARAM; //DEPRECATED!
2324 
2325 typedef struct tag_HIP_OUTPUT
2326 {
2327  char szHipChallenge[1];
2329  BYTE pbImage[1];
2330 }HIP_OUTPUT; //DEPRECATED!
2331 
2335 typedef struct tag_USER_BLOCK
2336 {
2337  char szUserId[MAX_USR_LEN+1];
2338  int nBlocked;
2340 }USER_BLOCK;
2341 
2345 typedef struct tag_DN_A_TOKEN
2346 {
2347  char pcUserName[MAX_USR_LEN];
2349 }DN_A_TOKEN;
2350 
2355 typedef struct tag_DN_A_TOKEN_FULL
2356 {
2360 
2365 struct AUTH_PWD
2366 {
2367  char szAddr[MAX_ADDR_LEN];
2368  int nPort;
2369  char szUserId[MAX_USR_LEN];
2370  char szPassword[MAX_USR_PWD];
2371 };
2372 
2378 {
2379  char szAddr[MAX_ADDR_LEN];
2380  int nPort;
2381  char szUserId[MAX_USR_LEN];
2382  char szPassword[MAX_USR_PWD];
2390 };
2391 
2396 typedef struct tag_AUTH_ATOKEN
2397 {
2398  char szAddr[MAX_ADDR_LEN];
2399  int nPort;
2401 }AUTH_ATOKEN;
2402 
2407 typedef struct tag_TLS_MUTUAL_AUTH_INFO
2408 {
2414 
2419 {
2420  char szUserId[MAX_USR_LEN+1];
2421  char szPassword[MAX_USR_PWD+1];
2423 };
2424 
2425 /*
2426  Estados de autorização de partição do usuário.
2427 */
2428 
2429 #define ND_PA_ACL_OBJ_OPEN (ACL_OBJ_READ)
2430 #define ND_PA_ACL_OBJ_EXPORT (ACL_OBJ_CREATE)
2431 #define ND_PA_ACL_OBJ_DEL (ACL_OBJ_DEL)
2432 #define ND_PA_ACL_OBJ_BLOCK (ACL_OBJ_UPDATE)
2433 #define ND_PA_ACL_NS_DEL (ACL_USR_DELETE)
2434 
2435 #define NSAUTH_ACL_FULL (~0)
2436 
2437 /*
2438  Estados de autorização de partição do usuário.
2439 */
2440 #define ND_PA_STATE_Unknown (0)
2441 #define ND_PA_STATE_Absent (1)
2442 #define ND_PA_STATE_Null (2)
2443 #define ND_PA_STATE_Associated (3)
2444 #define ND_PA_STATE_Authorized (4)
2445 
2449 typedef struct tag_USER_PA_INFO
2450 {
2451  char szUserId[MAX_USR_LEN + 1];
2469 }USER_PA_INFO;
2470 
2471 
2472 
2474 {
2476  char szObj1Id[MAX_OBJ_NAME_LEN + 1];
2478  char szObj2Id[MAX_OBJ_NAME_LEN + 1];
2479 };
2480 
2481 typedef struct tab_EXT_MAP_2_OBJ_INFO
2482 {
2483 
2485  char szObjId1[MAX_OBJ_ID_FQN_LEN];
2487  char szObjId2[MAX_OBJ_ID_FQN_LEN];
2488 
2490 
2491 
2493 {
2495  char szModuleNameVersion[MAX_MODULE_NAME_VERSION_LEN];
2496 };
2497 
2498 typedef struct tag_PKCS11_OBJ_MAP
2499 {
2501  BYTE associate[MAX_OBJ_ID_LEN];
2502 
2503  DWORD Class; // CKO_DATA, etc;
2504 
2507  BYTE Label[MAX_P11_OBJ_ID + 1];
2508 
2509  //The three BYTEs below are overloaded
2510  //must use the MACROs to set the desired parameters.
2511  //Macros defined below.
2512 
2513  BYTE Trusted; // boolean/overloaded
2514  BYTE WrapWithTrusted; // boolean/overloaded
2515  BYTE Local; // boolean/overloaded
2516 
2520 
2521 } PKCS11_OBJ_MAP;
2522 
2523 //Trusted -> CKA_TRUSTED, CKA_DERIVE, CKA_ENCRYPT,
2524 //CKA_DECRYPT, CKA_WRAP, CKA_UNWRAP
2525 #define PKCS11_SET_FLAG(x, p) ((x) |= (1 << (p)))
2526 #define PKCS11_UNSET_FLAG(x, p) ((x) &= ~(1 << (p)))
2527 #define PKCS11_GET_FLAG(x, p) ((x) & (1 << (p)))
2528 
2529 //Enable driven option. Disabled by default.
2530 #define PKCS11_SET_OBJ_MAP_CKA_TRUSTED(x) PKCS11_SET_FLAG(x, 7)
2531 #define PKCS11_UNSET_OBJ_MAP_CKA_TRUSTED(x) PKCS11_UNSET_FLAG(x, 7)
2532 #define PKCS11_GET_OBJ_MAP_CKA_TRUSTED(x) PKCS11_GET_FLAG(x, 7)
2533 
2534 //Disable driven option. Enabled by default.
2535 #define PKCS11_SET_OBJ_MAP_CKA_DERIVE(x) PKCS11_UNSET_FLAG(x, 6)
2536 #define PKCS11_UNSET_OBJ_MAP_CKA_DERIVE(x) PKCS11_SET_FLAG(x, 6)
2537 #define PKCS11_GET_OBJ_MAP_CKA_DERIVE(x) (!PKCS11_GET_FLAG(x, 6))
2538 
2539 #define PKCS11_SET_OBJ_MAP_CKA_ENCRYPT(x) PKCS11_UNSET_FLAG(x, 5)
2540 #define PKCS11_UNSET_OBJ_MAP_CKA_ENCRYPT(x) PKCS11_SET_FLAG(x, 5)
2541 #define PKCS11_GET_OBJ_MAP_CKA_ENCRYPT(x) (!PKCS11_GET_FLAG(x, 5))
2542 
2543 #define PKCS11_SET_OBJ_MAP_CKA_DECRYPT(x) PKCS11_UNSET_FLAG(x, 4)
2544 #define PKCS11_UNSET_OBJ_MAP_CKA_DECRYPT(x) PKCS11_SET_FLAG(x, 4)
2545 #define PKCS11_GET_OBJ_MAP_CKA_DECRYPT(x) (!PKCS11_GET_FLAG(x, 4))
2546 
2547 #define PKCS11_SET_OBJ_MAP_CKA_WRAP(x) PKCS11_UNSET_FLAG(x, 3)
2548 #define PKCS11_UNSET_OBJ_MAP_CKA_WRAP(x) PKCS11_SET_FLAG(x, 3)
2549 #define PKCS11_GET_OBJ_MAP_CKA_WRAP(x) (!PKCS11_GET_FLAG(x, 3))
2550 
2551 #define PKCS11_SET_OBJ_MAP_CKA_UNWRAP(x) PKCS11_UNSET_FLAG(x, 2)
2552 #define PKCS11_UNSET_OBJ_MAP_CKA_UNWRAP(x) PKCS11_SET_FLAG(x, 2)
2553 #define PKCS11_GET_OBJ_MAP_CKA_UNWRAP(x) (!PKCS11_GET_FLAG(x, 2))
2554 
2555 //WrapWithTrusted
2556 
2557 //Enable driven option. Disabled by default.
2558 #define PKCS11_SET_OBJ_MAP_CKA_WRAP_WITH_TRUSTED(x) PKCS11_SET_FLAG(x, 7)
2559 #define PKCS11_UNSET_OBJ_MAP_CKA_WRAP_WITH_TRUSTED(x) PKCS11_UNSET_FLAG(x, 7)
2560 #define PKCS11_GET_OBJ_MAP_CKA_WRAP_WITH_TRUSTED(x) PKCS11_GET_FLAG(x, 7)
2561 
2562 //Local
2563 //Enable driven option. Disabled by default.
2564 #define PKCS11_SET_OBJ_MAP_CKA_LOCAL(x) PKCS11_SET_FLAG(x, 7)
2565 #define PKCS11_UNSET_OBJ_MAP_CKA_LOCAL(x) PKCS11_UNSET_FLAG(x, 7)
2566 #define PKCS11_GET_OBJ_MAP_CKA_LOCAL(x) PKCS11_GET_FLAG(x, 7)
2567 
2568 //DAdmOperation options - AO_SET_PWD_SEC_POLICY/AO_GET_PWD_SEC_POLICY
2569 
2570 typedef struct tag_PWD_SEC_POLICY
2571 {
2572 
2573  //USE
2574  BYTE bMaxInvalidLogins; //Number of attempts. 0 == sets to HSM internal default.
2575  BYTE bExpiration; //Number of days. 0 == disable policy.
2576  BYTE bHistory; //Number of passwords to track. 0 == disable policy.
2577  //FORMAT
2578  BYTE bMinLength; //Minimal number of chars (ASCII).
2579  BYTE bMinSpecial; //Minimal number of non-alpha chars.
2580  BYTE bUpper; //Minimal number of upper-case chars.
2581  BYTE bLower; //Minimal number of lower-case chars.
2582 
2584 
2588 typedef struct tag_EFT_VISA_KEY_PARTS
2589 {
2590  BYTE pbKeyPart1[3 * DES_BLOCK];
2591  BYTE pbKeyPart1Checksum[EFT_VISA_KEY_CHECKSUM_LEN];
2592  BYTE pbKeyPart2[3 * DES_BLOCK];
2593  BYTE pbKeyPart2Checksum[EFT_VISA_KEY_CHECKSUM_LEN];
2594  BYTE pbKeyPart3[3 * DES_BLOCK];
2595  BYTE pbKeyPart3Checksum[EFT_VISA_KEY_CHECKSUM_LEN];
2599 
2603 typedef struct tag_EFT_FULL_CKS_KEY_PARTS
2604 {
2605  BYTE pbKeyPart1[3 * DES_BLOCK];
2606  BYTE pbKeyPart1Checksum[DES_BLOCK];
2607  BYTE pbKeyPart2[3 * DES_BLOCK];
2608  BYTE pbKeyPart2Checksum[DES_BLOCK];
2609  BYTE pbKeyPart3[3 * DES_BLOCK];
2610  BYTE pbKeyPart3Checksum[DES_BLOCK];
2611  BYTE pbMKCheckSum[DES_BLOCK];
2614 
2619 typedef struct tag_DN_CALC_ARPC_EMV_METHOD_1
2620 {
2621  char szIssuerMK[MAX_OBJ_ID_BIN_LEN];
2622  char szPAN[MAX_PAN_LEN];
2624  BYTE pbARQC[DES_BLOCK];
2626  BYTE pbNONCE[DES_BLOCK];
2629 
2630 typedef struct tag_DN_CALC_ARPC_EMV_METHOD_2
2631 {
2632  char szIssuerMK[MAX_OBJ_ID_BIN_LEN];
2633  char szPAN[MAX_PAN_LEN];
2635  BYTE pbNONCE[DES_BLOCK];
2638  BYTE pbARQC[DES_BLOCK];
2644 
2645 
2650 typedef struct GEN_ECDH_X9_63_ {
2651  char szTargetKeyName[MAX_OBJ_ID_FQN_LEN];
2659 
2660 
2661 
2662 #ifdef _WIN32
2663  #pragma pack(pop)
2664 #else
2665  #pragma pack()
2666 #endif
2667 
2668 /* Library exported functions */
2669 
2670 #ifdef __cplusplus
2671  extern "C" {
2672 #endif /* __cplusplus */
2673 
2674 /* Error codes */
2675 
2677  int nErrorValue,
2678  char *szErrorCode,
2679  char *szErrorDesc
2680 );
2695 int AAP_API DInitialize(
2696  DWORD dwReserved
2697 );
2698 
2699 
2700 
2701 
2717 int AAP_API DSetLBList( DWORD dwParam,
2718  void *pvList,
2719  DWORD dwListCount,
2720  DWORD dwReserved);
2721 
2736 int AAP_API DGetLBList(DWORD dwParam,
2737  void *pvList,
2738  DWORD *pdwListCount,
2739  DWORD dwReserved);
2740 
2741 
2770 int AAP_API DOpenSession(
2771  HSESSIONCTX * phSession,
2772  DWORD dwParam,
2773  BYTE * pbData,
2774  DWORD dwDataLen,
2775  DWORD dwFlags
2776 );
2777 
2795  HSESSIONCTX hSession,
2796  DWORD dwParam,
2797  BYTE * pbData,
2798  DWORD dwDataLen,
2799  DWORD dwFlags
2800 );
2801 
2818  HSESSIONCTX hSession,
2819  DWORD dwParam,
2820  BYTE* pbData,
2821  DWORD* pdwDataLen,
2822  DWORD dwFlags
2823 );
2824 
2839  HSESSIONCTX * phSession,
2840  DWORD dwFlags
2841 );
2842 
2850 int AAP_API DFinalize();
2851 
2867 typedef int (AAP_API * funcListKeyCallback)(char *szKeyName, void *pParam, BOOL bFinal);
2868 
2872 int AAP_API DListObjs(
2873  HSESSIONCTX hSession,
2874  funcListKeyCallback fncallback,
2875  void *pParam
2881 );
2882 
2902 int AAP_API DBackupData(
2903  HSESSIONCTX hSession,
2904  char * szBackupFile,
2905  char * szPin,
2906  int nDirection
2907 );
2908 
2935 int AAP_API DBackupObject( HSESSIONCTX hSession,
2936  DWORD dwOP,
2937  char *szObjectId,
2938  char *szPin,
2939  BYTE *pbData,
2940  DWORD *pdwDataLen,
2941  DWORD dwReserved );
2942 
2950 typedef int (AAP_API * funcLogEventCallback)(char *szEvent, void *pParam, BOOL bFinal);
2951 
2964  HSESSIONCTX hSession,
2965  funcLogEventCallback fncallback,
2966  void *pParam
2967 );
2968 
2994  HSESSIONCTX hSession,
2995  DWORD dwParam,
2996  BYTE * pbData,
2997  DWORD dwDataLen,
2998  DWORD dwFlags
2999 );
3000 
3017 int AAP_API DGetHSMTLSCert(char *szAddress,
3018  int nPort,
3019  DWORD dwOutFormat,
3020  BYTE **ppbOutCert,
3021  DWORD *pdwOutCertLen,
3022  DWORD dwFlags);
3023 
3034 typedef int (AAP_API * funcReadLocalFileCallback)(BYTE *pbData, DWORD * pdwDataLen, void *pParam, BOOL *pbFinal);
3035 
3057 int AAP_API DWriteFile(
3058  HSESSIONCTX hSession,
3059  char * szFileId,
3060  DWORD dwFileSize,
3061  funcReadLocalFileCallback fncallback,
3062  void *pParam
3063 );
3064 
3075 typedef int (AAP_API * funcWriteLocalFileCallback)(BYTE *pbData, DWORD dwDataLen, void *pParam, BOOL bFinal);
3076 
3089 int AAP_API DReadFile(
3090  HSESSIONCTX hSession,
3091  char * szFileId,
3092  funcWriteLocalFileCallback fncallback,
3093  void *pParam
3094 );
3095 
3104 int AAP_API DRemoveObj(
3105  HSESSIONCTX hSession,
3106  char *szObjId
3107 );
3108 
3122 int AAP_API DGetStatLog (
3123  HSESSIONCTX hSession,
3124  DWORD dwStart,
3125  DWORD dwOffset,
3126  DWORD *pdwLogSize,
3127  BYTE **ppbLog
3128 );
3129 
3139 int AAP_API DTruncateLog (
3140  HSESSIONCTX hSession
3141 );
3142 
3167 int AAP_API DFindHSM( DWORD dwServiceType,
3168  DWORD dwFilter,
3169  void **ppvOutputData,
3170  DWORD *pdwOutputDataLen,
3171  DWORD dwFlags );
3172 
3181 typedef int (AAP_API * funcListAKeysCallback)(void *pvToken, void *pParam, BOOL bFinal);
3182 
3183 
3220 int AAP_API DManageAToken( HSESSIONCTX hSession,
3221  BYTE bOP,
3222  DN_A_TOKEN_FULL *pstATokenFull,
3223  funcListAKeysCallback fnCallBack,
3224  void *pvCallbackParam,
3225  DWORD dwParam);
3226 
3227 #define DN_ATOKEN_CACHE_GET_COUNT (0)
3228 #define DN_ATOKEN_CACHE_GC (1)
3229 
3253  DWORD dwOP,
3254  void *pOutData,
3255  DWORD dwParam);
3256 
3257 
3258 #define DN_LB_LIST (1)
3259 
3260 int AAP_API DSetLBList( DWORD dwParam,
3261  void *pvList,
3262  DWORD dwListCount,
3263  DWORD dwReserved);
3264 
3265 int AAP_API DGetLBList(DWORD dwParam,
3266  void *pvList,
3267  DWORD *pdwListCount,
3268  DWORD dwReserved);
3269 
3270 
3273 int DIPFilterOperation( HSESSIONCTX hSession,
3274  BYTE bOP,
3275  char *szUser,
3276  char *szIP,
3277  int (AAP_API * ListIpFilterCallback)( void *pInData, DWORD dwInDataLen, void *pParam, BOOL bFinal),
3278  void *pParam,
3279  DWORD *pdwStatus,
3280  DWORD dwReserved );
3281 
3282 int AAP_API DRenameObj( HSESSIONCTX hSession,
3283  char *szOldObjName,
3284  char *szNewObjName,
3285  DWORD dwFlags );
3286 
3287 int AAP_API DUPackPush ( HSESSIONCTX hSession, DWORD dwPackSize,
3288  BYTE *pbPack );
3289 
3290 int AAP_API DUPackInfo ( DWORD dwPackSize, BYTE *pbPack,
3291  DWORD *pdwUPackVersion, BYTE **ppbUPackDescr,
3292  BYTE **ppbUPackSignature );
3293 
3294 int AAP_API DGetObjInfo( const HSESSIONCTX hSession, const char *szObjId,
3295  const int nAlgId, const BYTE *pbData,
3296  DWORD *pdwDataLen);
3297 
3298 int AAP_API DGenerateMapObj( const HSESSIONCTX hSession, const char *szMapId,
3299  const char *szObj1Id, const int nObj1AlgId,
3300  const char *szObj2Id, const int nObj2AlgId);
3301 
3302 int AAP_API DRemoveMapObj( const HSESSIONCTX hSession, const char *szMapObjId );
3303 
3304 int AAP_API DListUserSessions( HSESSIONCTX hSession,
3305  int (AAP_API * ListUserSessionsCallback)( DWORD dwStartTime, char *szInfo, void *pParam, BOOL bFinal),
3306  void *pParam);
3307 
3308 int AAP_API DListObjsFilter( HSESSIONCTX hSession,
3309  DWORD dwFilterType,
3310  void *pvFilter,
3311  int (AAP_API * ListObjCallback)(void *pvIN, void *pParam, BOOL bFinal),
3312  void *pParam );
3313 
3315  int (AAP_API * ListLoadedModulesCallback)(char *szModuleInfo,
3316  void *pParam,
3317  BOOL bFinal),
3318  void *pParam);
3319 
3348 int AAP_API DCreateUser(
3349  HSESSIONCTX hSession,
3350  struct USER_INFO userInfo
3351 );
3352 
3365 int AAP_API DRemoveUser(
3366  HSESSIONCTX hSession,
3367  char * szUserId
3368 );
3369 
3393  HSESSIONCTX hSession,
3394  DWORD dwParam,
3395  BYTE * pbData,
3396  DWORD dwDataLen,
3397  DWORD dwFlags
3398 );
3399 
3418  HSESSIONCTX hSession,
3419  DWORD dwParam,
3420  BYTE * pbData,
3421  DWORD * pdwDataLen,
3422  DWORD dwFlags
3423 );
3424 
3434 typedef int (AAP_API * funcListUsersCallback)(char *szUserName, void *pParam, BOOL bFinal);
3435 
3445 int AAP_API DListUsers(
3446  HSESSIONCTX hSession,
3447  funcListUsersCallback fncallback,
3448  void *pParam
3449 );
3450 
3451 //OATH SA
3452 
3453 
3454 
3469 int AAP_API DAssignToken(const HSESSIONCTX hSession,
3470  const char * szUserId,
3471  const DWORD dwParam,
3472  BYTE * pbData,
3473  const DWORD dwDataLen);
3474 
3488 int AAP_API DUnassignToken(const HSESSIONCTX hSession,
3489  const DWORD dwParam,
3490  const char *szUserId);
3491 
3492 
3493 
3506 int AAP_API DOATHResync(const HSESSIONCTX hSession,
3507  char *szUser,
3508  char *szOTP1,
3509  char *szOTP2,
3510  DWORD dwParam);
3511 
3512 
3517 /* PKCS#11 */
3518 
3519 int AAP_API DGeneratePkcs11Map(HSESSIONCTX hSession, char *szP11MapId,
3520  BYTE bTemporary, DWORD dwBlobType,
3521  DWORD dwFlags, BYTE * pbData,
3522  DWORD dwDataLen);
3523 
3524 int AAP_API DUpdatePkcs11Map(HSESSIONCTX hSession, char *szP11MapId,
3525  DWORD dwBlobType, DWORD dwFlags,
3526  DWORD dwUpdateMask, BYTE * pbData,
3527  DWORD dwDataLen);
3528 
3529 int AAP_API DGetPkcs11Map(HSESSIONCTX hSession, char *szP11MapId,
3530  DWORD dwBlobType, DWORD dwFlags,
3531  BYTE ** ppbData, DWORD * pdwDataLen);
3532 
3533 
3534 int AAP_API DListPkcs11Maps(HSESSIONCTX hSession,
3535  int (AAP_API * ListKeyCallback)(char *szKeyName,
3536  void *pParam,
3537  BOOL bFinal),
3538  void *pParam);
3539 
3540 
3541 #define MNG_OBJ_META_A_KEY_TYPE (1)
3542 #define MNG_OBJ_META_A_CLASS (2)
3543 #define MNG_OBJ_META_A_EXTRACTABLE (3)
3544 #define MNG_OBJ_META_A_SENSITIVE (4)
3545 #define MNG_OBJ_META_A_N_EXTRACTABLE (5)
3546 #define MNG_OBJ_META_A_LOCAL (6)
3547 #define MNG_OBJ_META_A_CERT_TYPE (7)
3548 #define MNG_OBJ_META_A_RSA_MODULUS (8)
3549 #define MNG_OBJ_META_A_RSA_PUB_EXP (9)
3550 #define MNG_OBJ_META_A_PUB_KEY_INFO (10)
3551 #define MNG_OBJ_META_A_EC_PARAMS (11)
3552 #define MNG_OBJ_META_A_SUBJECT (12)
3553 #define MNG_OBJ_META_A_ISSUER (13)
3554 #define MNG_OBJ_META_A_SN (14)
3555 #define MNG_OBJ_META_A_TOKEN (15)
3556 #define MNG_OBJ_META_A_MODIFIABLE (16)
3557 #define MNG_OBJ_META_A_DERIVE (17)
3558 #define MNG_OBJ_META_A_WRAP (18)
3559 #define MNG_OBJ_META_A_UNWRAP (19)
3560 #define MNG_OBJ_META_A_SIGN (20)
3561 #define MNG_OBJ_META_A_VERIFY (21)
3562 #define MNG_OBJ_META_A_ENCRYPT (22)
3563 #define MNG_OBJ_META_A_DECRYPT (23)
3564 #define MNG_OBJ_META_A_OBJ_ID (24)
3565 #define MNG_OBJ_META_A_MODULUS_BITS (25)
3566 #define MNG_OBJ_META_A_PRIVATE (26)
3567 #define MNG_OBJ_META_A_LABEL (27)
3568 #define MNG_OBJ_META_A_ID (28)
3569 #define MNG_OBJ_META_A_APPLICATION (29)
3570 #define MNG_OBJ_META_A_TRUSTED (30)
3571 #define MNG_OBJ_META_A_JMIDP_SEC_DOMAIN (31)
3572 #define MNG_OBJ_META_A_CERT_CATEGORY (32)
3573 #define MNG_OBJ_META_A_KEY_GEN_MECHANISM (33)
3574 #define MNG_OBJ_META_A_WRAP_WITH_TRUSTED (34)
3575 #define MNG_OBJ_META_A_HSM_ASSOCIATE (35)
3576 #define MNG_OBJ_META_A_SIGN_RECOVER (36)
3577 #define MNG_OBJ_META_A_VERIFY_RECOVER (37)
3578 
3579 #define MNG_OBJ_META_A_HSM_OBJ_VERSION (502)
3580 #define MNG_OBJ_META_A_HSM_OBJ_TYPE (503)
3581 #define MNG_OBJ_META_A_HSM_OBJ_ATTR (504)
3582 #define MNG_OBJ_META_A_HSM_OBJ_LEN (505)
3583 #define MNG_OBJ_META_A_HSM_OBJ_ID (506)
3584 #define MNG_OBJ_META_A_HSM_OBJ_PVALUE (507)
3585 
3586 
3587 
3588 
3589 #define MNG_OBJ_META_READ_ONLY_ATTR(a) ( (MNG_OBJ_META_A_KEY_TYPE == (a)) || \
3590  (MNG_OBJ_META_A_CLASS == (a)) || \
3591  (MNG_OBJ_META_A_EXTRACTABLE == (a)) || \
3592  (MNG_OBJ_META_A_SENSITIVE == (a)) || \
3593  (MNG_OBJ_META_A_N_EXTRACTABLE == (a)) || \
3594  (MNG_OBJ_META_A_LOCAL == (a)) || \
3595  (MNG_OBJ_META_A_CERT_TYPE == (a)) || \
3596  (MNG_OBJ_META_A_RSA_MODULUS == (a)) || \
3597  (MNG_OBJ_META_A_RSA_PUB_EXP == (a)) || \
3598  (MNG_OBJ_META_A_PUB_KEY_INFO == (a)) || \
3599  (MNG_OBJ_META_A_EC_PARAMS == (a)) || \
3600  (MNG_OBJ_META_A_ISSUER == (a)) || \
3601  (MNG_OBJ_META_A_SN == (a)) || \
3602  (MNG_OBJ_META_A_TOKEN == (a)) || \
3603  (MNG_OBJ_META_A_MODIFIABLE == (a)) || \
3604  (MNG_OBJ_META_A_MODULUS_BITS == (a)) || \
3605  (MNG_OBJ_META_A_PRIVATE == (a)) || \
3606  (MNG_OBJ_META_A_HSM_OBJ_VERSION == (a)) || \
3607  (MNG_OBJ_META_A_HSM_OBJ_TYPE == (a)) || \
3608  (MNG_OBJ_META_A_HSM_OBJ_ATTR == (a)) || \
3609  (MNG_OBJ_META_A_HSM_OBJ_LEN == (a)) || \
3610  (MNG_OBJ_META_A_HSM_OBJ_ID == (a)) || \
3611  (MNG_OBJ_META_A_HSM_OBJ_PVALUE == (a)) )
3612 
3613 
3614 /* DManageObjMetadata */
3615 
3616 #define MNG_OBJ_META_GET (1)
3617 #define MNG_OBJ_META_UPDATE (3)
3618 #define MNG_OBJ_META_DEL (4)
3619 
3620 
3621 int AAP_API DCreateObjMetadata( HOBJMETACTX *phOutMeta,
3622  DWORD dwParam );
3623 
3625  DWORD dwParam );
3626 
3627 int AAP_API DSetObjMetadata( HOBJMETACTX hInMeta,
3628  DWORD dwOption,
3629  void *pvOptionData,
3630  DWORD dwOptionDataLen,
3631  DWORD dwParam );
3632 
3634  DWORD dwOption,
3635  DWORD dwParam );
3636 
3637 int AAP_API DGetObjMetadata( HOBJMETACTX hInMeta,
3638  DWORD dwOption,
3639  void *pvOptionData,
3640  DWORD *pdwOptionDataLen,
3641  DWORD dwParam );
3642 
3644  char *szData,
3645  DWORD dwDataLen,
3646  DWORD dwParam);
3647 
3649  char *szData,
3650  DWORD *pdwDataLen,
3651  DWORD dwParam);
3652 
3653 int AAP_API DManageObjMetadata( HSESSIONCTX hSession,
3654  BYTE bOP,
3655  char *szObjName,
3656  HOBJMETACTX hInMeta,
3657  HOBJMETACTX *phOutMeta,
3658  DWORD dwParam );
3659 
3661  HOBJMETACTX hInMeta,
3662  HOBJMETASEARCHCTX *phMetaSearchCtx,
3663  DWORD dwParam );
3664 
3665 int AAP_API DFindObjMetadataCont( HOBJMETASEARCHCTX hMetaSearchCtx,
3666  HOBJMETACTX *phOutMeta,
3667  DWORD dwOutMetaMaxCount,
3668  DWORD *pdwOutMetaDataCount,
3669  DWORD dwParam );
3670 
3671 int AAP_API DFindObjMetadataEnd( HOBJMETASEARCHCTX *phMetaSearchCtx,
3672  DWORD dwParam );
3673 
3674 #define MNG_OBJ_META_TYPE_ULONG (1)
3675 #define MNG_OBJ_META_TYPE_STR (2)
3676 #define MNG_OBJ_META_TYPE_BOOL (3)
3677 #define MNG_OBJ_META_TYPE_INT_BOOL (4)
3678 
3679 typedef struct tag_OBJ_MET_ATTR
3680 {
3682  const char *pszString;
3684 }OBJ_MET_ATTR;
3685 
3686 int DGetObjMetadataTypeInfo( DWORD dwOption,
3687  void *pvData,
3688  DWORD *pdwDataLen,
3689  DWORD dwReserved );
3690 
3691 const OBJ_MET_ATTR * DGetObjMetadataTypeInfoList(int *pnOutLen);
3692 
3693 
3694 /* P11 HSM Info */
3695 
3696 int AAP_API DGetHSMP11Info( HSESSIONCTX hSession,
3697  HP11ATTRCTX *phOutMeta,
3698  DWORD dwParam );
3699 
3700 #define MNG_HSM_P11_INFO_SLOT_DESC (1)
3701 #define MNG_HSM_P11_INFO_MANUFACTURER_ID (2)
3702 #define MNG_HSM_P11_INFO_SLOT_FLAGS (3)
3703 #define MNG_HSM_P11_INFO_HDW_VERSION (4)
3704 #define MNG_HSM_P11_INFO_FMW_VERSION (5)
3705 #define MNG_HSM_P11_INFO_LABEL (6)
3706 #define MNG_HSM_P11_INFO_MODEL (7)
3707 #define MNG_HSM_P11_INFO_SERIAL_NUMBER (8)
3708 #define MNG_HSM_P11_INFO_TOKEN_FLAGS (9)
3709 #define MNG_HSM_P11_INFO_UTC_TIME (10)
3710 #define MNG_HSM_P11_INFO_MAX_SESSION_COUNT (11)
3711 #define MNG_HSM_P11_INFO_SESSION_COUNT (12)
3712 #define MNG_HSM_P11_INFO_MAX_RW_SESS_COUNT (13)
3713 #define MNG_HSM_P11_INFO_RW_SESS_COUNT (14)
3714 #define MNG_HSM_P11_INFO_MAX_PIN_LEN (15)
3715 #define MNG_HSM_P11_INFO_MIN_PIN_LEN (16)
3716 #define MNG_HSM_P11_INFO_TOTAL_PUB_MEMORY (17)
3717 #define MNG_HSM_P11_INFO_FREE_PUB_MEMORY (18)
3718 #define MNG_HSM_P11_INFO_TOTAL_PRIV_MEMORY (19)
3719 #define MNG_HSM_P11_INFO_FREE_PRIV_MEMORY (20)
3720 #define MNG_HSM_P11_INFO_SVMK_FINGERPRINT (21)
3721 
3723  DWORD dwOption,
3724  void *pvOptionData,
3725  DWORD *pdwOptionDataLen,
3726  DWORD dwParam );
3727 
3729  DWORD dwParam );
3730 
3731 const OBJ_MET_ATTR * DGetHSMP11TypeInfoList(int *pnOutLen);
3732 
3733 
3734 
3735 /* Users */
3736 
3737 
3738 int AAP_API DGetUserAcl ( HSESSIONCTX hSession, char *szUser,
3739  DWORD *pdwUserAcl );
3740 
3741 int AAP_API DListUserTrusts(HSESSIONCTX hSession, char *szUserId,
3742  BYTE bType,
3743  int (AAP_API * ListUserTrustCallback)(char *szUserName,
3744  DWORD dwACL,
3745  void *pParam,
3746  BOOL bFinal),
3747  void *pParam);
3748 
3749 
3750 /* Statistics */
3751 
3752 int AAP_API DGetHsmInfo(HSESSIONCTX hSession, BOOL *pbFinal,
3753  DWORD dwParam, BYTE * pbData,
3754  DWORD* pdwDataLen, DWORD dwFlags);
3755 
3756 
3757 /* Local operations */
3758 
3759 int AAP_API DSetLogParam(HSESSIONCTX hSession, DWORD dwParam,
3760  BYTE * pbData, DWORD dwDataLen,
3761  DWORD dwFlags);
3762 
3763 int AAP_API DGetLogParam(HSESSIONCTX hSession, DWORD dwParam,
3764  BYTE * pbData, DWORD *pdwDataLen,
3765  DWORD dwFlags);
3766 
3767 int AAP_API DGetLibVersion(HSESSIONCTX hSession, char * szVersion,
3768  DWORD *pdwVersionLen, DWORD dwFlags);
3769 
3770 
3771 /* Key management */
3772 
3773 int AAP_API DECParam2AlgId(BYTE *pbECParam, DWORD dwECParamLen,
3774  int *pnAlgId, DWORD dwFlags);
3775 
3776 int AAP_API DECPubKeyDER2AlgId( BYTE *pbECPubKeyDER,
3777  DWORD dwECPubKeyDERLen,
3778  int *pnAlgId,
3779  DWORD dwFlags );
3780 
3900 int AAP_API DGenerateKey(
3901  HSESSIONCTX hSession,
3902  char *szKeyId,
3903  int nAlgId,
3904  DWORD dwFlags,
3905  HKEYCTX * phKey
3906 );
3907 
3921  int nAlgId,
3922  BYTE *pbData,
3923  DWORD *pdwDataLen,
3924  DWORD dwReserved);
3925 
3941 int AAP_API DGetUserKey(
3942  HSESSIONCTX hSession,
3943  char *szKeyId,
3944  DWORD dwFlags,
3945  HKEYCTX * phKey
3946 );
3947 
3948 
3949 
3950 #define D_IMPORT_ALG_PRIV_KEY_RSA (0xFFFFFFE1)
3951 #define D_IMPORT_ALG_PRIV_KEY_ECC (0xFFFFFFE0) //Não implementado
3952 
4028 int AAP_API DImportKey(
4029  HSESSIONCTX hSession,
4030  char *szKeyId,
4031  HKEYCTX hKEKey,
4032  DWORD dwBlobType,
4033  int nAlgId,
4034  DWORD dwFlags,
4035  BYTE * pbData,
4036  DWORD dwDataLen,
4037  HKEYCTX * phKey
4038 );
4039 
4054 int AAP_API DExportKey(
4055  HKEYCTX hKey,
4056  HKEYCTX hKEKey,
4057  DWORD dwBlobType,
4058  DWORD dwFlags,
4059  BYTE * pbData,
4060  DWORD * pdwDataLen
4061 );
4062 
4089  HSESSIONCTX hSession,
4090  char *szKeyId,
4091  char *szSecret,
4092  DWORD dwKeyAlg,
4093  DWORD dwAttrib,
4094  BYTE *pbKeyEnvelope,
4095  DWORD dwKeyEnvelopeLen
4096 );
4097 
4111  HSESSIONCTX hSession,
4112  char *szKeyId,
4113  char *szSecret,
4114  BYTE **ppbKeyEnvelope,
4115  DWORD *pdwKeyEnvelopeLen
4116 );
4117 
4137 int AAP_API DSetKeyParam(
4138  HKEYCTX hKey,
4139  DWORD dwParam,
4140  BYTE * pbData,
4141  DWORD dwDataLen,
4142  DWORD dwFlags
4143 );
4144 
4165 int AAP_API DGetKeyParam(
4166  HKEYCTX hKey,
4167  DWORD dwParam,
4168  BYTE * pbData,
4169  DWORD *pdwDataLen,
4170  DWORD dwFlags
4171 );
4172 
4184 int AAP_API DDeriveKey(
4185  HHASHCTX hHash,
4186  char * szKeyId,
4187  int nAlgId,
4188  DWORD dwFlags,
4189  HKEYCTX * phKey
4190 );
4191 
4204  HKEYCTX hKey,
4205  DWORD dwFlags,
4206  HKEYCTX * phKey
4207 );
4208 
4221  HKEYCTX hKey,
4222  HHASHCTX hHash,
4223  DWORD dwFlags
4224 );
4225 
4237 int AAP_API DDestroyKey(
4238  HKEYCTX * phKey,
4239  DWORD dwFlags
4240 );
4241 
4242 
4265  char *szPriKey,
4266  char *szPubKey,
4267  char *szCert,
4268  void *pvReserved,
4269  DWORD dwReserved);
4270 
4289 int AAP_API DExportPKCS12( const HSESSIONCTX hSession,
4290  const char *szPkcs12Pwd,
4291  const char *szKeyId,
4292  const char *szCertId,
4293  const char *szReserved,
4294  BYTE **ppbPkcs12,
4295  DWORD *pdwPkcs12Len,
4296  DWORD dwReserved);
4297 
4298 
4299 
4302 int AAP_API DRemoveKey(HSESSIONCTX hSession, char *szKeyId);
4303 
4304 
4305 
4306 int AAP_API DImportPKCS12( const HSESSIONCTX hSession, const char *szPkcs12File,
4307  const char *szPkcs12Pwd, const char *szKeyId,
4308  const DWORD dwKeyAttr, const char *szCertId);
4309 
4310 
4311 
4312 
4313 
4314 
4315 int AAP_API DCert2CertInfo( BYTE *pbCert,
4316  DWORD dwCertLen,
4317  DWORD dwOutType,
4318  void *pvCertInfo,
4319  DWORD dwFlags );
4320 
4321 /* Symmetric/Asymmetric operations */
4322 
4351 int AAP_API DEncrypt(
4352  HKEYCTX hKey,
4353  HHASHCTX hHash,
4354  BOOL bFinal,
4355  DWORD dwFlags,
4356  BYTE* pbData,
4357  DWORD* pdwDataLen,
4358  DWORD dwBufLen
4359 );
4360 
4381 int AAP_API DDecrypt(
4382  HKEYCTX hKey,
4383  HHASHCTX hHash,
4384  BOOL bFinal,
4385  DWORD dwFlags,
4386  BYTE* pbData,
4387  DWORD* pdwDataLen
4388 );
4389 
4416 int AAP_API DCreateHash(
4417  HSESSIONCTX hSession,
4418  int nAlgId,
4419  HKEYCTX hKey,
4420  DWORD dwFlags,
4421  HHASHCTX *hHash
4422 );
4423 
4434 int AAP_API DHashData(
4435  HHASHCTX hHash,
4436  BYTE* pbData,
4437  DWORD dwDataLen,
4438  DWORD dwFlags
4439 );
4440 
4456  HHASHCTX hHash,
4457  DWORD dwParam,
4458  BYTE * pbData,
4459  DWORD dwDataLen,
4460  DWORD dwFlags
4461 );
4462 
4480  HHASHCTX hHash,
4481  DWORD dwParam,
4482  BYTE* pbData,
4483  DWORD* pdwDataLen,
4484  DWORD dwFlags
4485 );
4486 
4503 int AAP_API DSignHash(
4504  HHASHCTX hHash,
4505  HKEYCTX hKey,
4506  DWORD dwFlags,
4507  BYTE* pbSignature,
4508  DWORD* pdwSigLen
4509 );
4510 
4511 
4519 int AAP_API DDestroyHash(
4520  HHASHCTX * phHash
4521 );
4522 
4540  HHASHCTX hHash,
4541  BYTE* pbSignature,
4542  DWORD dwSigLen,
4543  HKEYCTX hPubKey,
4544  DWORD dwFlags
4545 );
4546 
4559  HHASHCTX hHash,
4560  DWORD dwFlag,
4561  HHASHCTX * phHash
4562 );
4563 
4573 int AAP_API DGetRandom(
4574  HSESSIONCTX hSession,
4575  BYTE *pbData,
4576  DWORD dwDataLen
4577 );
4578 
4597 int AAP_API DGenEcdhKey(
4598  HSESSIONCTX hSession,
4599  DWORD dwOP,
4600  char *szPriKey,
4601  void *pvInData,
4602  DWORD dwInDataLen,
4603  BYTE *pbOutData,
4604  DWORD *pdwOutDataLen,
4605  DWORD dwFlags
4606 );
4607 
4619 int AAP_API DCRLCertCheck( HSESSIONCTX hSession,
4620  char *szCRL,
4621  char *szCertId,
4622  char *szVerifyInfo);
4623 
4626 /* PIN - CVV */
4627 
4657  HSESSIONCTX hSession,
4658  char *szSrcPEK,
4659  char *szDstPEK,
4660  BYTE bTransBlockType,
4661  char *szPAN,
4662  BYTE *pbInPinBlock,
4663  BYTE *pbOutPinBlock,
4664  DWORD dwParam
4665 );
4666 
4684 int AAP_API DGenerateCVV (
4685  HSESSIONCTX hSession,
4686  char *szKeyId,
4687  char *szPAN,
4688  char *szExpirationDate,
4689  char *szServiceCode,
4690  char *szCVV,
4691  DWORD dwParam
4692 );
4693 
4707 int AAP_API DVerifyCVV (
4708  HSESSIONCTX hSession,
4709  char *szKeyId,
4710  char *szPAN,
4711  char *szExpirationDate,
4712  char *szServiceCode,
4713  char *szCVV,
4714  DWORD dwParam
4715 );
4716 
4737 int AAP_API DGeneratePIN (
4738  HSESSIONCTX hSession,
4739  char *szPGK,
4740  char *szPAN,
4741  DWORD dwOperation,
4742  int nPinLen,
4743  char *szInPin,
4744  char *szOffset,
4745  char *szOutPin,
4746  DWORD dwParam
4747 );
4748 
4763  HSESSIONCTX hSession,
4764  char *szPTK,
4765  char *szPGK,
4766  char *szPAN,
4767  char *szOffset,
4768  BYTE *pbInPinBlock,
4769  DWORD dwParam
4770 );
4771 
4784  int nKeyAlgId,
4785  EFT_VISA_KEY_PARTS *pstKeyParts,
4786  DWORD dwParam
4787 );
4788 
4809 int AAP_API DGenerateDUKPT (
4810  HSESSIONCTX hSession,
4811  BYTE *pbKSI,
4812  BYTE *pbDID_CTR,
4813  char *szDUKPT,
4814  DWORD dwParam
4815 );
4816 
4827  BYTE *pbKSI,
4828  char *szBDKName,
4829  DWORD dwParam
4830 );
4831 
4843  BYTE *pbKSI,
4844  BYTE *pbDID_CTR,
4845  char *szDUKPTName,
4846  DWORD dwParam
4847 );
4848 
4862 int AAP_API DGeneratePVV (
4863  HSESSIONCTX hSession,
4864  char *szPGK,
4865  BYTE bPVKI,
4866  char *szPAN,
4867  char *szPIN,
4868  char *szPVV,
4869  DWORD dwParam
4870 );
4871 
4872 /* EMV */
4885 int AAP_API DGenerateDAC (
4886  HSESSIONCTX hSession,
4887  char *szIMKDAC,
4888  char *szPAN,
4889  BYTE *pbSEQ,
4890  BYTE *pbDAC,
4891  DWORD dwParam
4892 );
4893 
4906 int AAP_API DVerifyDAC (
4907  HSESSIONCTX hSession,
4908  char *szIMKDAC,
4909  char *szPAN,
4910  BYTE *pbSEQ,
4911  BYTE *pbDAC,
4912  DWORD dwParam
4913 );
4914 
4929 int AAP_API DSignSDA (
4930  HSESSIONCTX hSession,
4931  char *szIK,
4932  BYTE *pbDAC,
4933  DWORD dwSDA_DATALen,
4934  BYTE *pbSDA_DATA,
4935  DWORD *pdwSigLen,
4936  BYTE *pbSig,
4937  DWORD dwParam
4938 );
4939 
4959  HSESSIONCTX hSession,
4960  BYTE bOP,
4961  char *szIK,
4962  char *szPAN,
4963  DWORD dwDDA_DATALen,
4964  BYTE *pbDDA_DATA,
4965  DWORD *pdwSigLen,
4966  BYTE *pbSig,
4967  DWORD dwParam
4968 );
4969 
4989 int AAP_API DGenerateICCMK (
4990  HSESSIONCTX hSession,
4991  BYTE bOP,
4992  char *szIK,
4993  char *szKeK,
4994  char *szPAN,
4995  BYTE *pbSEQ,
4996  DWORD *pdwEnvelopeLen,
4997  BYTE *pbEnvelope,
4998  DWORD dwParam
4999 );
5000 
5006  HSESSIONCTX hSession,
5007  BYTE bOP,
5008  char *szIK,
5009  char *szPAN,
5010  BYTE *pbSEQ,
5011  BYTE *pbNONCE,
5012  DWORD dwDataLen,
5013  BYTE *pbData,
5014  BYTE *pbMAC,
5015  DWORD dwParam
5016 );
5017 
5062  HSESSIONCTX hSession,
5063  BYTE bOP,
5064  char *szIK,
5065  char *szPAN,
5066  BYTE *pbSEQ,
5067  BYTE *pbNONCE,
5068  DWORD dwDataLen,
5069  BYTE *pbData,
5070  BYTE *pbMAC,
5071  DWORD dwParam
5072 );
5073 
5088 int AAP_API DCheckIDN (
5089  HSESSIONCTX hSession,
5090  char *szIK,
5091  char *szPAN,
5092  BYTE *pbSEQ,
5093  BYTE *pbATC,
5094  BYTE *pbUN,
5095  BYTE *pbIDN,
5096  DWORD dwParam
5097 );
5098 
5136 int AAP_API DEncryptEMV (
5137  HSESSIONCTX hSession,
5138  BYTE bEncOP,
5139  char *szEncIK,
5140  BYTE *pbEncNONCE,
5141  BYTE bMacOP,
5142  char *szMacIK,
5143  BYTE *pbMacNONCE,
5144  char *szPAN,
5145  BYTE *pbSEQ,
5146  DWORD dwDataLen,
5147  BYTE *pbData,
5148  DWORD *pdwEncDataLen,
5149  BYTE *pbEncData,
5150  BYTE *pbMAC,
5151  DWORD dwParam
5152 );
5153 
5178  HSESSIONCTX hSession,
5179  BYTE bOP,
5180  char *szIK,
5181  BYTE *pbTrackNum,
5182  BYTE *pbServiceID,
5183  BYTE *pbIssuerID,
5184  BYTE *pbExpDate,
5185  DWORD *pdwCSRLen,
5186  BYTE *pbCSR,
5187  DWORD dwParam
5188 );
5189 
5213  HSESSIONCTX hSession,
5214  BYTE bOP,
5215  char *szIK,
5216  BYTE *pbTrackNum,
5217  BYTE *pbServiceID,
5218  BYTE *pbIssuerID,
5219  BYTE *pbExpDate,
5220  DBLOB *pdbCSR,
5221  BYTE *pbHash,
5222  DWORD dwParam
5223 );
5224 
5265  HSESSIONCTX hSession,
5266  BYTE bOP,
5267  BYTE *pbNONCE,
5268  char *szTransportKey,
5269  char *szISSUER_MK,
5270  char *szISSUER_SMC_MK,
5271  char *szPAN,
5272  BYTE *pbSEQ,
5273  BYTE *pbOLD_PB,
5274  BYTE *pbNEW_PB,
5275  BYTE *pbOutBlock,
5276  DWORD *pdwOutBlockLen,
5277  DWORD dwParam
5278 );
5279 
5284 int AAP_API DDeriveEMV_Key (
5285  HSESSIONCTX hSession,
5286  char *szSrcKey,
5287  WORD wBufferLen,
5288  BYTE *pbBuffer,
5289  BYTE bOP,
5290  DWORD dwAttrib,
5291  char *szDstKey,
5292  HKEYCTX *phKey,
5293  DWORD dwParam
5294 );
5295 
5312 int AAP_API DCalculateARPC (
5313  HSESSIONCTX hSession,
5314  char *szIssuerMK,
5315  char *szPAN,
5316  BYTE *pbSEQ,
5317  BYTE *pbARQC,
5318  BYTE *pbARC,
5319  BYTE *pbARPC,
5320  DWORD dwParam
5321 );
5322 
5323 
5324 #define DN_CALC_ARPC_EMV_4_2_M1_ICC (1)
5325 #define DN_CALC_ARPC_EMV_4_2_M1_SK (2)
5326 #define DN_CALC_ARPC_EMV_4_2_M2 (3)
5327 
5346 int AAP_API DCalculateARPC_Ex ( HSESSIONCTX hSession,
5347  DWORD dwOp,
5348  void *pvInData,
5349  BYTE *pbARPC,
5350  DWORD dwParam );
5351 
5365  DWORD dwType,
5366  BYTE *pbKey,
5367  DWORD dwAlg,
5368  const BYTE *pbMsg,
5369  DWORD dwMsgLen,
5370  BYTE *pbMAC
5371 );
5372 
5373 int AAP_API DEFTImportKey( HSESSIONCTX hSession, char *szKeyId,
5374  int nKeyAlgId, EFT_VISA_KEY_PARTS *pstKeyParts,
5375  DWORD dwParam);
5376 
5377 
5378 int AAP_API DEFTExportKey( HSESSIONCTX hSession, BYTE bExportMode,
5379  char *szKEKId, char *szKeyId,
5380  BYTE *pbEncryptedBlock, DWORD *pdwEncryptedBlockLen,
5381  BYTE *pbKeyCheckValue, DWORD dwParam);
5382 
5383 int AAP_API DEFTKeKImport( HSESSIONCTX hSession, BYTE bOP, DWORD dwAlgId,
5384  char *szKeKName, char *szKeyName, DWORD dwAttr,
5385  BYTE *pbKCV1, BYTE *pbKCV2, BYTE *pbKCV3,
5386  BYTE *pbKCVFinal, BYTE *pbBlob, DWORD dwFlags );
5387 
5388 /* DEFTExportZPK */
5389 
5390 #define DN_EXP_ZPK_FLAG_FULL_CKS (1)
5391 
5392 int AAP_API DEFTExportZPK( HSESSIONCTX hSession, char *szKeyId,
5393  int *pnKeyAlg, int *pnKeySize,
5394  EFT_VISA_KEY_PARTS *pstKeyParts, DWORD dwParam);
5395 
5398 /* Digital signature */
5399 
5400 int AAP_API DPowerSignHash ( HSESSIONCTX hSession, char *szKeyId,
5401  int nHashAlgId, DWORD dwDataLen,
5402  BYTE *pbDataBuffer, DWORD *pdwSignLen,
5403  BYTE **ppbSignData );
5404 
5405 
5439 int AAP_API DPKCS7Sign (
5440  HSESSIONCTX hSession,
5441  char *szKeyName,
5442  char *szKeyCert,
5443  char *szCerts,
5444  DWORD dwAttrib,
5445  BYTE *pbContent,
5446  DWORD dwContentLen,
5447  DWORD *pdwSignatureLen,
5448  BYTE **ppbSignature,
5449  DWORD dwParam
5450 );
5451 
5455 /* (CNS) Social Connectivity */
5456 int AAP_API DGenerateCNSCert ( HSESSIONCTX hSession,
5457  char *szKeyID, char *szUsrID, char *szUsrName,
5458  WORD wModulusLen, BYTE *pbModulus,
5459  BYTE bExponentLen, BYTE *pbExponent,
5460  DWORD *pdwCertLen, BYTE *pbCert, DWORD dwParam );
5461 
5462 /* Hash */
5463 int AAP_API DSignHashedData( HKEYCTX hKey, BYTE *pbData, DWORD dwDataLen,
5464  int nHashId, DWORD dwFlags, BYTE* pbSignature,
5465  DWORD* pdwSigLen );
5466 
5467 BOOL DDoRSAPadding( HSESSIONCTX hSession,
5468  DWORD dwPadding,
5469  BYTE*pbBlock,
5470  BYTE *pbData,
5471  DWORD* pdwDataLen,
5472  DWORD dwBlockSize,
5473  DWORD dwFlag );
5474 
5475 int AAP_API DBatchSign( HKEYCTX hKey,
5476  BYTE *pbBlock,
5477  DWORD dwBlockCount,
5478  DWORD dwFlags );
5479 
5480 /* Base64 */
5481 
5482 char * AAP_API DByteArray2Base64( BYTE *pbData,
5483  DWORD dwDataLen,
5484  char *szBase64,
5485  DWORD *pdwBase64Len,
5486  BOOL bNoNewLines );
5487 
5488 BYTE * AAP_API DBase642ByteArray( char *szBase64,
5489  DWORD dwBase64Len,
5490  BYTE *pbData,
5491  DWORD *pdwDataLen);
5492 
5493 
5574 int AAP_API DSignXml(
5575  HKEYCTX hKey,
5576  HHASHCTX hHash,
5577  char *szCertId,
5578  DWORD dwSizeUnsignedXml,
5579  BYTE *pbUnsignedXml,
5580  DWORD dwFilterLen,
5581  BYTE *pbFilter,
5582  DWORD *pdwSizeSignedXml,
5583  BYTE **ppbSignedXml
5584 );
5585 
5591 int AAP_API DVerifySignedXml ( HSESSIONCTX hSession, char *szCertsId,
5592  DWORD dwSizeSignedXml, BYTE *pbSignedXml,
5593  DWORD dwFilterLen, BYTE *pbFilter);
5594 
5619  HSESSIONCTX hSession,
5620  char *szCertsId,
5621  DWORD dwSizeSignedXml,
5622  BYTE *pbSignedXml,
5623  DWORD dwFilterLen,
5624  BYTE *pbFilter,
5625  char *szCRL
5626 );
5627 
5631 /* Library version */
5632 
5633 int AAP_API DVersion ( DWORD dwType, DWORD *pdwMajor,
5634  DWORD *pdwMinor, DWORD *pdwRevision,
5635  DWORD *pdwBuild );
5636 
5654 void * AAP_API DAlloc (
5655  DWORD dwsize
5656 );
5657 
5665 void AAP_API DFree (
5666  void *p
5667 );
5668 
5671 //Free and clean CERT_X509_INFO structure members
5672 void AAP_API DCleanCERT_X509_INFO ( CERT_X509_INFO *pstCert );
5673 
5674 
5675 /* Logs and monitoring */
5676 
5677 int AAP_API DLogLineFormat ( char *szIn, char *szOut );
5678 
5680  HSESSIONCTX hSession,
5681  DWORD *pdwLogLen
5682 );
5683 
5684 int AAP_API DGetHSMLogInit ( HSESSIONCTX hSession,
5685  DWORD dwStart,
5686  DWORD dwOffset,
5687  HLOGCTX *phLogCtx,
5688  DWORD dwParam );
5689 
5690 int AAP_API DGetHSMLogCont ( HLOGCTX hLogCtx,
5691  BYTE *pbLog,
5692  DWORD *pdwLogSize );
5693 
5694 int AAP_API DGetHSMLogEnd ( HLOGCTX *phLogCtx );
5695 
5696 
5697 int AAP_API DGetStatInfo ( HSESSIONCTX hSession, DWORD *pdwSessions,
5698  DWORD *pdwCPU, DWORD *pdwUnit,
5699  DWORD *pdwMemTotal, DWORD *pdwMemUsed,
5700  DWORD *pdwSwapTotal, DWORD *pdwSwapUsed );
5701 
5702 int AAP_API DGetNetInfo ( HSESSIONCTX hSession, BYTE **ppbNetInfo, DWORD *pdwNetInfoCount, DWORD dwFlags );
5703 
5704 
5705 /* Digital certificate */
5706 
5707 
5708 
5709 int AAP_API DGeneratePKCS10CSR ( HSESSIONCTX hSession, char *szKeyName,
5710  BYTE bVersion, char *szDN, DWORD dwOutType,
5711  DWORD *pdwCSRLen, BYTE **ppbCSR, DWORD dwParam );
5712 
5713 int AAP_API DCertEncodingConvert ( BYTE *pbCert,
5714  DWORD dwCertLen,
5715  DWORD dwOutFormat,
5716  BYTE **ppbOutCert,
5717  DWORD *pdwOutCertLen,
5718  DWORD dwReserved );
5719 
5720 
5721 int AAP_API DECPrivateKey2Info( BYTE *pbEC,
5722  DWORD dwECLen,
5723  DWORD dwInForm,
5724  void *pvPrivKeyInfo,
5725  DWORD dwOutForm,
5726  DWORD dwReserved );
5727 
5728 
5729 int AAP_API DECPublicKey2Info( BYTE *pbEC,
5730  DWORD dwECLen,
5731  DWORD dwInForm,
5732  void *pvPubKeyInfo,
5733  DWORD dwOutForm,
5734  DWORD dwReserved );
5735 
5762  HSESSIONCTX hSession,
5763  char *szMasterKeyId,
5764  DWORD dwParamBlobType,
5765  void *pvParamBlob,
5766  DWORD dwParamBlobLen,
5767  BYTE *pbOTPBlob,
5768  DWORD *pdwOTPBlobLen,
5769  DWORD dwFlags
5770 );
5771 
5785  HSESSIONCTX hSession,
5786  char *szMasterKeyId,
5787  char *szOTP,
5788  BYTE *pbOATHBlob,
5789  DWORD *pdwOATHBlobLen,
5790  DWORD dwFlags
5791 );
5792 
5807  HSESSIONCTX hSession,
5808  char *szMasterKeyId,
5809  BYTE bOTPLen,
5810  BYTE *pbOATHBlob,
5811  DWORD dwOATHBlobLen,
5812  char *szOTP,
5813  DWORD dwFlags
5814 );
5815 
5834  const HSESSIONCTX hSession,
5835  char *szMasterKey,
5836  BYTE *pbInBlob,
5837  DWORD dwInBlobLen,
5838  DWORD dwOutBlobType,
5839  BYTE *pbOutInfo,
5840  DWORD *pdwOutInfoLen,
5841  DWORD dwParam
5842 );
5843 
5858  HSESSIONCTX hSession,
5859  char *szMasterKeyId,
5860  char *szOTP1,
5861  char *szOTP2,
5862  BYTE *pbOATHBlob,
5863  DWORD *pdwOATHBlobLen,
5864  DWORD dwFlags
5865 );
5866 
5883  HSESSIONCTX hSession,
5884  char *szMasterKey,
5885  BYTE *pbPSK,
5886  BYTE bPSKLen,
5887  BYTE *pbPSKC,
5888  DWORD dwPSKCLen,
5889  void **pvBlobList,
5890  DWORD *pdwBlobListQuantity,
5891  DWORD dwParam
5892 );
5893 
5896 //DOATHIssueHOTPBlob is DEPRECATED. Use DOATHIssueBlob instead.
5898  HSESSIONCTX hSession,
5899  char *szMasterKeyId,
5900  DWORD dwParamBlobType,
5901  void *pvParamBlob,
5902  DWORD dwParamBlobLen,
5903  BYTE *pbOTPBlob,
5904  DWORD *pdwOTPBlobLen,
5905  DWORD dwFlags
5906 );
5907 
5908 //DOATHCheckHOTP is DEPRECATED. Use DOATHCheckOTP instead.
5909 int AAP_API DOATHCheckHOTP( HSESSIONCTX hSession,
5910  char *szMasterKeyId,
5911  char *szOTP,
5912  BYTE *pbOATHBlob,
5913  DWORD *pdwOATHBlobLen,
5914  DWORD dwFlags );
5915 
5916 //Users
5917 void AAP_API DGenerateHOTPOffline(BYTE *pbSecret,
5918  DWORD dwSecretLen,
5919  ND_OATH_uint64_t nuiMovingFactor,
5920  int nCodeDigits,
5921  BOOL bAddChecksum,
5922  int nTruncOff,
5923  char *szResult);
5924 
5925 
5953 int AAP_API DSPBEncodeInit (
5954  HSESSIONCTX hSession,
5955  char *szSrcISPB,
5956  char *szDstISPB,
5957  DWORD dwTotalDataLen,
5958  BYTE bErrorCode,
5959  BYTE bSpecialTreatment,
5960  HSPBCTX *hSPBCtx,
5961  DWORD dwFlags
5962 );
5963 
5977 int AAP_API DSPBEncodeCont (
5978  HSPBCTX hSPBCtx,
5979  BYTE *pbDataIn,
5980  DWORD dwDataInLen,
5981  BYTE *pbDataOut,
5982  DWORD *pdwDataOutLen
5983 );
5984 
5994 int AAP_API DSPBEncodeEnd (
5995  HSPBCTX *hSPBCtx,
5996  BYTE *pbSPBHeader,
5997  DWORD *pdwSPBHeaderLen
5998 );
5999 
6034 int AAP_API DSPBDecodeInit (
6035  HSESSIONCTX hSession,
6036  char *szSrcISPB,
6037  char *szDstISPB,
6038  BYTE *pbHeader,
6039  DWORD dwHeaderLen,
6040  BYTE bAcceptExpiredCert,
6041  BYTE bAutoUpdateCert,
6042  DWORD dwMessageDataLen,
6043  HSPBCTX *hSPBCtx,
6044  DWORD dwFlags
6045 );
6046 
6061 int AAP_API DSPBDecodeCont (
6062  HSPBCTX hSPBCtx,
6063  BYTE *pbDataIn,
6064  DWORD dwDataInLen,
6065  BYTE **ppbDataOut,
6066  DWORD *pdwDataOutLen
6067 );
6068 
6077  HSPBCTX *hSPBCtx
6078 );
6079 
6092  HSESSIONCTX hSession,
6093  char *szID,
6094  char *szPrivateKeyName,
6095  DWORD dwKeyParam,
6096  DWORD dwParam
6097 );
6098 
6129  HSESSIONCTX hSession,
6130  char *szPrivateKeyName,
6131  BYTE bVersion,
6132  char *szSPBSubject,
6133  DWORD dwOutType,
6134  DWORD *pdwCSRLen,
6135  BYTE **ppbCSR,
6136  DWORD dwParam
6137 );
6138 
6161  HSESSIONCTX hSession,
6162  BYTE bActivate,
6163  char *szUser,
6164  BYTE *pbCertificate,
6165  DWORD dwCertificateLen,
6166  char *szDomain,
6167  DWORD dwParam
6168 );
6169 
6186 int AAP_API DSPBImportPKCS12( HSESSIONCTX hSession,
6187  BYTE bActivate,
6188  char *szUser,
6189  char *szPkcs12File,
6190  char *szPkcs12Pwd,
6191  char *szDomain,
6192  DWORD dwKeyAttr);
6193 
6208 int AAP_API DSPBExportPKCS12( const HSESSIONCTX hSession,
6209  const char *szPkcs12Pwd,
6210  const char *szISPB,
6211  const char *szReserved,
6212  BYTE **ppbPkcs12,
6213  DWORD *pdwPkcs12Len,
6214  DWORD dwReserved);
6215 
6231  HSESSIONCTX hSession,
6232  char *szIdCert,
6233  char *szDomain,
6234  DWORD dwParam
6235 );
6236 
6249  HSESSIONCTX hSession,
6250  char *szIdCert,
6251  BYTE **ppbCertificate,
6252  DWORD *pdwCertificateLen,
6253  DWORD dwParam
6254 );
6255 
6272  char *szISPB,
6273  char *szDomain,
6274  DWORD dwKeyType,
6275  char *szOutObjName,
6276  DWORD dwParam
6277 );
6278 
6290 int AAP_API DSPBMapInfo (
6291  HSESSIONCTX hSession,
6292  char *szIdCert,
6293  EXT_MAP_2_OBJ_INFO *pstExtMap,
6294  DWORD dwParam
6295 );
6296 
6312 int AAP_API DSPBSetISPBMap (
6313  HSESSIONCTX hSession,
6314  char *szISPB,
6315  char *szKeyId,
6316  char *szCertId,
6317  DWORD dwParam
6318 );
6319 
6322 /* Esta API pertence ao grupo SPB, mas precisa da documentacao*/
6324  HSESSIONCTX hSession,
6325  char *szDomain,
6326  BOOL bActive,
6327  DBLOB **pdbList,
6328  DWORD *pdwListLen,
6329  DWORD dwParam
6330 );
6331 
6332 #ifdef __cplusplus
6333  }
6334 #endif
6335 
6336 #endif /* #ifndef NETDFENCE_H_INCLUDED */
int AAP_API DListPkcs11Maps(HSESSIONCTX hSession, int(AAP_API *ListKeyCallback)(char *szKeyName, void *pParam, BOOL bFinal), void *pParam)
DWORD dwObj1AlgId
Definition: dinamo.h:2475
#define NET_INFO_MAX_SROUTE_LEN
Definition: dinamo.h:1576
DWORD dwSysNetInfoCount
Definition: dinamo.h:2162
ND_OATH_uint64_t moving_factor
Definition: dinamo.h:2041
DWORD dwType
Definition: dinamo.h:3683
int AAP_API DGeneratePIN(HSESSIONCTX hSession, char *szPGK, char *szPAN, DWORD dwOperation, int nPinLen, char *szInPin, char *szOffset, char *szOutPin, DWORD dwParam)
#define EFT_EMV_SDA_SEQ_LEN
Definition: dinamo.h:1341
DBLOB dbPublicKey
Definition: dinamo.h:1740
Definition: dinamo.h:1765
void AAP_API DFree(void *p)
int AAP_API DGetLogEvents(HSESSIONCTX hSession, funcLogEventCallback fncallback, void *pParam)
int AAP_API DGetHashParam(HHASHCTX hHash, DWORD dwParam, BYTE *pbData, DWORD *pdwDataLen, DWORD dwFlags)
int AAP_API DSPBMapInfo(HSESSIONCTX hSession, char *szIdCert, EXT_MAP_2_OBJ_INFO *pstExtMap, DWORD dwParam)
BYTE * pbPubKey
Definition: dinamo.h:1880
int AAP_API DAssociatePKCS11Key(HSESSIONCTX hSession, char *szPriKey, char *szPubKey, char *szCert, void *pvReserved, DWORD dwReserved)
int AAP_API DGenerateEMV_CSR(HSESSIONCTX hSession, BYTE bOP, char *szIK, BYTE *pbTrackNum, BYTE *pbServiceID, BYTE *pbIssuerID, BYTE *pbExpDate, DWORD *pdwCSRLen, BYTE *pbCSR, DWORD dwParam)
Definition: dinamo.h:2365
int AAP_API DGenerateDDA_ICCCert(HSESSIONCTX hSession, BYTE bOP, char *szIK, char *szPAN, DWORD dwDDA_DATALen, BYTE *pbDDA_DATA, DWORD *pdwSigLen, BYTE *pbSig, DWORD dwParam)
Definition: dinamo.h:2377
#define DN_MAX_HSM_ALIAS
Definition: dinamo.h:2218
#define MAX_HOTP_PIN
Definition: dinamo.h:1316
unsigned long long int QWORD
Definition: dinamo.h:47
int AAP_API DSetHashParam(HHASHCTX hHash, DWORD dwParam, BYTE *pbData, DWORD dwDataLen, DWORD dwFlags)
DWORD dwState
Definition: dinamo.h:2265
int AAP_API DGetPkcs11Map(HSESSIONCTX hSession, char *szP11MapId, DWORD dwBlobType, DWORD dwFlags, BYTE **ppbData, DWORD *pdwDataLen)
DWORD dwState
Definition: dinamo.h:2452
int AAP_API DTruncateLog(HSESSIONCTX hSession)
DWORD dwHipColor
Definition: dinamo.h:2322
int AAP_API DSPBSetISPBMap(HSESSIONCTX hSession, char *szISPB, char *szKeyId, char *szCertId, DWORD dwParam)
int BOOL
Definition: dinamo.h:49
void AAP_API DGenerateHOTPOffline(BYTE *pbSecret, DWORD dwSecretLen, ND_OATH_uint64_t nuiMovingFactor, int nCodeDigits, BOOL bAddChecksum, int nTruncOff, char *szResult)
int AAP_API DEncryptEMV(HSESSIONCTX hSession, BYTE bEncOP, char *szEncIK, BYTE *pbEncNONCE, BYTE bMacOP, char *szMacIK, BYTE *pbMacNONCE, char *szPAN, BYTE *pbSEQ, DWORD dwDataLen, BYTE *pbData, DWORD *pdwEncDataLen, BYTE *pbEncData, BYTE *pbMAC, DWORD dwParam)
WORD time_step
Definition: dinamo.h:2049
#define GET_INFO_MAX_NTP_KT_LEN
Definition: dinamo.h:684
int AAP_API DGenerateEMV_CSREx(HSESSIONCTX hSession, BYTE bOP, char *szIK, BYTE *pbTrackNum, BYTE *pbServiceID, BYTE *pbIssuerID, BYTE *pbExpDate, DBLOB *pdbCSR, BYTE *pbHash, DWORD dwParam)
int AAP_API DGetStatInfo(HSESSIONCTX hSession, DWORD *pdwSessions, DWORD *pdwCPU, DWORD *pdwUnit, DWORD *pdwMemTotal, DWORD *pdwMemUsed, DWORD *pdwSwapTotal, DWORD *pdwSwapUsed)
WORD wTimeStep
Definition: dinamo.h:2010
int AAP_API DGetObjMetadataJson(HOBJMETACTX hInMeta, char *szData, DWORD *pdwDataLen, DWORD dwParam)
QWORD qwObjects
Definition: dinamo.h:2211
#define ND_SPB_ISPB_LEN
Definition: dinamo.h:1471
Definition: dinamo.h:2032
DWORD dwPubKeyLen
Definition: dinamo.h:1881
DWORD KeyGenMechanism
Definition: dinamo.h:2519
BYTE bBlockedStatus
Definition: dinamo.h:1989
int AAP_API DGetLBList(DWORD dwParam, void *pvList, DWORD *pdwListCount, DWORD dwReserved)
DWORD JavaMidpSecDomain
Definition: dinamo.h:2518
int AAP_API DUpdatePkcs11Map(HSESSIONCTX hSession, char *szP11MapId, DWORD dwBlobType, DWORD dwFlags, DWORD dwUpdateMask, BYTE *pbData, DWORD dwDataLen)
int AAP_API DCert2CertInfo(BYTE *pbCert, DWORD dwCertLen, DWORD dwOutType, void *pvCertInfo, DWORD dwFlags)
DWORD dwId
Definition: dinamo.h:3681
DWORD dwACL
Definition: dinamo.h:2460
int nPort
Definition: dinamo.h:2399
int AAP_API DCreateObjMetadata(HOBJMETACTX *phOutMeta, DWORD dwParam)
#define MAX_HSM_MODEL_NAME
Definition: dinamo.h:1331
Definition: dinamo.h:1997
#define NET_INFO_MAX_SNMP_SL_STR
Definition: dinamo.h:1579
BYTE bPendingBackup
Definition: dinamo.h:2227
DBLOB dbIssuer
Definition: dinamo.h:2126
QWORD qwActiv
Definition: dinamo.h:1913
Definition: dinamo.h:1817
Definition: dinamo.h:1800
int AAP_API DEncrypt(HKEYCTX hKey, HHASHCTX hHash, BOOL bFinal, DWORD dwFlags, BYTE *pbData, DWORD *pdwDataLen, DWORD dwBufLen)
DN_EC_BIG_NUMBER bnP
Definition: dinamo.h:1804
void AAP_API DGenerateDUKPTName(BYTE *pbKSI, BYTE *pbDID_CTR, char *szDUKPTName, DWORD dwParam)
int AAP_API DVerifyPINBlock(HSESSIONCTX hSession, char *szPTK, char *szPGK, char *szPAN, char *szOffset, BYTE *pbInPinBlock, DWORD dwParam)
int AAP_API DOATHGetNextOTP(HSESSIONCTX hSession, char *szMasterKeyId, BYTE bOTPLen, BYTE *pbOATHBlob, DWORD dwOATHBlobLen, char *szOTP, DWORD dwFlags)
int AAP_API DGetHsmInfo(HSESSIONCTX hSession, BOOL *pbFinal, DWORD dwParam, BYTE *pbData, DWORD *pdwDataLen, DWORD dwFlags)
int AAP_API DGetHSMTLSCert(char *szAddress, int nPort, DWORD dwOutFormat, BYTE **ppbOutCert, DWORD *pdwOutCertLen, DWORD dwFlags)
#define MAX_OBJ_ID_FQN_LEN
Definition: dinamo.h:1324
int AAP_API DGetUserKey(HSESSIONCTX hSession, char *szKeyId, DWORD dwFlags, HKEYCTX *phKey)
#define EFT_EMV_PAD_LEN
Definition: dinamo.h:1345
DN_A_TOKEN stAToken
Definition: dinamo.h:2400
int AAP_API DExportPKCS12(const HSESSIONCTX hSession, const char *szPkcs12Pwd, const char *szKeyId, const char *szCertId, const char *szReserved, BYTE **ppbPkcs12, DWORD *pdwPkcs12Len, DWORD dwReserved)
int AAP_API DAdmOperation(HSESSIONCTX hSession, DWORD dwParam, BYTE *pbData, DWORD dwDataLen, DWORD dwFlags)
Definition: dinamo.h:2281
Definition: dinamo.h:1825
int AAP_API DListObjs(HSESSIONCTX hSession, funcListKeyCallback fncallback, void *pParam )
int AAP_API DOATHPskcTranslate(HSESSIONCTX hSession, char *szMasterKey, BYTE *pbPSK, BYTE bPSKLen, BYTE *pbPSKC, DWORD dwPSKCLen, void **pvBlobList, DWORD *pdwBlobListQuantity, DWORD dwParam)
BYTE bSeedLen
Definition: dinamo.h:1999
int AAP_API DSPBExportPKCS12(const HSESSIONCTX hSession, const char *szPkcs12Pwd, const char *szISPB, const char *szReserved, BYTE **ppbPkcs12, DWORD *pdwPkcs12Len, DWORD dwReserved)
QWORD qwInit
Definition: dinamo.h:1912
Definition: dinamo.h:2225
SYS_PENDING_INFO stPendingInfo
Definition: dinamo.h:2293
int(AAP_API * funcListKeyCallback)(char *szKeyName, void *pParam, BOOL bFinal)
Definition: dinamo.h:2867
DWORD dwAttempts
Definition: dinamo.h:2339
OATH_SA_v1 sa_v1
Definition: dinamo.h:2095
Definition: dinamo.h:2176
DWORD dwBatteryOK
Definition: dinamo.h:2179
int AAP_API DHashSessionKey(HKEYCTX hKey, HHASHCTX hHash, DWORD dwFlags)
QWORD qwOrig_creat
Definition: dinamo.h:1921
SYS_REPL_INFO stReplicationInfo
Definition: dinamo.h:2287
int AAP_API DReadFile(HSESSIONCTX hSession, char *szFileId, funcWriteLocalFileCallback fncallback, void *pParam)
Definition: dinamo.h:2240
Definition: dinamo.h:1896
BOOL DDoRSAPadding(HSESSIONCTX hSession, DWORD dwPadding, BYTE *pbBlock, BYTE *pbData, DWORD *pdwDataLen, DWORD dwBlockSize, DWORD dwFlag)
#define ND_SPB_MAX_SUBJECT
Definition: dinamo.h:1477
#define GET_INFO_MAX_NTPQ_LEN
Definition: dinamo.h:683
QWORD qwUsers
Definition: dinamo.h:2210
DBLOB dbCert
Definition: dinamo.h:1858
Definition: dinamo.h:2318
#define NET_INFO_MAX_SNMP_SC_STR
Definition: dinamo.h:1578
#define MAX_HOTP_APP_NAME
Definition: dinamo.h:1318
BYTE bMaxInvalidLogins
Definition: dinamo.h:2574
void * HP11ATTRCTX
Definition: dinamo.h:73
int AAP_API DCheckIDN(HSESSIONCTX hSession, char *szIK, char *szPAN, BYTE *pbSEQ, BYTE *pbATC, BYTE *pbUN, BYTE *pbIDN, DWORD dwParam)
BYTE seed_len
Definition: dinamo.h:2034
DN_EC_BIG_NUMBER bnY
Definition: dinamo.h:1797
#define DN_EC_MAX_BIG_NUM
Definition: dinamo.h:1774
BYTE key_len
Definition: dinamo.h:2084
#define MAX_HSM_ID_NAME
Definition: dinamo.h:1332
#define GET_INFO_MAX_TPKEY_LEN
Definition: dinamo.h:681
DWORD CertificateCategory
Definition: dinamo.h:2517
int AAP_API DInitialize(DWORD dwReserved)
DWORD dwTotalBlocks
Definition: dinamo.h:2185
DN_EC_GROUP_INFO stGroupInfo
Definition: dinamo.h:1828
int AAP_API DGenerateDAC(HSESSIONCTX hSession, char *szIMKDAC, char *szPAN, BYTE *pbSEQ, BYTE *pbDAC, DWORD dwParam)
Definition: dinamo.h:1724
#define MAX_OBJ_ID_LEN
Definition: dinamo.h:1323
Definition: dinamo.h:2325
DWORD dwHipFlags
Definition: dinamo.h:2321
int AAP_API DGetNetInfo(HSESSIONCTX hSession, BYTE **ppbNetInfo, DWORD *pdwNetInfoCount, DWORD dwFlags)
Definition: dinamo.h:2148
Definition: dinamo.h:1745
int AAP_API DSPBGetCertificate(HSESSIONCTX hSession, char *szIdCert, BYTE **ppbCertificate, DWORD *pdwCertificateLen, DWORD dwParam)
int AAP_API DOATHIssueHOTPBlob(HSESSIONCTX hSession, char *szMasterKeyId, DWORD dwParamBlobType, void *pvParamBlob, DWORD dwParamBlobLen, BYTE *pbOTPBlob, DWORD *pdwOTPBlobLen, DWORD dwFlags)
QWORD qwComprom
Definition: dinamo.h:1918
int AAP_API DGetSessionParam(HSESSIONCTX hSession, DWORD dwParam, BYTE *pbData, DWORD *pdwDataLen, DWORD dwFlags)
BYTE WrapWithTrusted
Definition: dinamo.h:2514
BYTE bENABLED
Definition: dinamo.h:2252
int AAP_API DGenerateEMV_PinBlock(HSESSIONCTX hSession, BYTE bOP, BYTE *pbNONCE, char *szTransportKey, char *szISSUER_MK, char *szISSUER_SMC_MK, char *szPAN, BYTE *pbSEQ, BYTE *pbOLD_PB, BYTE *pbNEW_PB, BYTE *pbOutBlock, DWORD *pdwOutBlockLen, DWORD dwParam)
int AAP_API DECPublicKey2Info(BYTE *pbEC, DWORD dwECLen, DWORD dwInForm, void *pvPubKeyInfo, DWORD dwOutForm, DWORD dwReserved)
DN_EC_GROUP_INFO stGroupInfo
Definition: dinamo.h:1820
int AAP_API DDecrypt(HKEYCTX hKey, HHASHCTX hHash, BOOL bFinal, DWORD dwFlags, BYTE *pbData, DWORD *pdwDataLen)
unsigned int DWORD
Definition: dinamo.h:46
QWORD qwProc_s
Definition: dinamo.h:1914
void *AAP_API DAlloc(DWORD dwsize)
QWORD qwCurrentDateTime
Definition: dinamo.h:2288
DWORD dwBlockSize
Definition: dinamo.h:2184
int AAP_API DSPBGetCertificateList(HSESSIONCTX hSession, char *szDomain, BOOL bActive, DBLOB **pdbList, DWORD *pdwListLen, DWORD dwParam)
DWORD dwSessions
Definition: dinamo.h:2195
DWORD dwCPU
Definition: dinamo.h:2196
DWORD dwFIPSReturnCode
Definition: dinamo.h:2292
int AAP_API DSignHash(HHASHCTX hHash, HKEYCTX hKey, DWORD dwFlags, BYTE *pbSignature, DWORD *pdwSigLen)
BYTE bOP
Definition: dinamo.h:2299
Definition: dinamo.h:2418
int AAP_API DSetObjMetadata(HOBJMETACTX hInMeta, DWORD dwOption, void *pvOptionData, DWORD dwOptionDataLen, DWORD dwParam)
QWORD qwDateTime
Definition: dinamo.h:2263
ND_OATH_uint64_t T0
Definition: dinamo.h:2100
DBLOB dbSerialNumber
Definition: dinamo.h:2127
DWORD dwStructId
Definition: dinamo.h:2306
int AAP_API DGenEcdhKey(HSESSIONCTX hSession, DWORD dwOP, char *szPriKey, void *pvInData, DWORD dwInDataLen, BYTE *pbOutData, DWORD *pdwOutDataLen, DWORD dwFlags)
DBLOB * pdbStLogoImage
Definition: dinamo.h:2143
Definition: dinamo.h:2115
Definition: dinamo.h:2159
void * HLOGCTX
Definition: dinamo.h:71
SYS_NTP_INFO stNTPInfo
Definition: dinamo.h:2290
BYTE bTruncationOffset
Definition: dinamo.h:2006
int AAP_API DSPBImportPKCS12(HSESSIONCTX hSession, BYTE bActivate, char *szUser, char *szPkcs12File, char *szPkcs12Pwd, char *szDomain, DWORD dwKeyAttr)
int(AAP_API * funcReadLocalFileCallback)(BYTE *pbData, DWORD *pdwDataLen, void *pParam, BOOL *pbFinal)
Definition: dinamo.h:3034
DWORD dwStructId
Definition: dinamo.h:2312
#define GET_INFO_MAX_REPL_DOMAIN_NAME
Definition: dinamo.h:677
int AAP_API DGetKeyParam(HKEYCTX hKey, DWORD dwParam, BYTE *pbData, DWORD *pdwDataLen, DWORD dwFlags)
Definition: dinamo.h:2182
#define ND_SPB_CA_LEN
Definition: dinamo.h:1472
int AAP_API DBatchSign(HKEYCTX hKey, BYTE *pbBlock, DWORD dwBlockCount, DWORD dwFlags)
#define GET_INFO_MAX_NTP_SVRS
Definition: dinamo.h:682
int nPort
Definition: dinamo.h:1680
Definition: dinamo.h:2134
Definition: dinamo.h:2304
QWORD qwLast_change
Definition: dinamo.h:1920
Definition: dinamo.h:2208
DN_A_TOKEN stAToken
Definition: dinamo.h:2357
int AAP_API DEFTExportZPK(HSESSIONCTX hSession, char *szKeyId, int *pnKeyAlg, int *pnKeySize, EFT_VISA_KEY_PARTS *pstKeyParts, DWORD dwParam)
int AAP_API DGetStatLog(HSESSIONCTX hSession, DWORD dwStart, DWORD dwOffset, DWORD *pdwLogSize, BYTE **ppbLog)
void AAP_API DGenerateBDKName(BYTE *pbKSI, char *szBDKName, DWORD dwParam)
DWORD dwMemTotal
Definition: dinamo.h:2198
int AAP_API DGetHSMP11InfoAttr(HP11ATTRCTX hInMeta, DWORD dwOption, void *pvOptionData, DWORD *pdwOptionDataLen, DWORD dwParam)
int AAP_API DGetHSMLogCont(HLOGCTX hLogCtx, BYTE *pbLog, DWORD *pdwLogSize)
BYTE truncation_offset
Definition: dinamo.h:2086
int AAP_API DVersion(DWORD dwType, DWORD *pdwMajor, DWORD *pdwMinor, DWORD *pdwRevision, DWORD *pdwBuild)
signed int INT
Definition: dinamo.h:51
Definition: dinamo.h:2355
#define DN_MAX_ISSUER
Definition: dinamo.h:1555
DWORD dwObjAttr
Definition: dinamo.h:2138
int AAP_API DGenerateKeyMaterial(HSESSIONCTX hSession, int nAlgId, BYTE *pbData, DWORD *pdwDataLen, DWORD dwReserved)
int nPort
Definition: dinamo.h:2380
int AAP_API DUnsetObjMetadata(HOBJMETACTX hInMeta, DWORD dwOption, DWORD dwParam)
#define MAX_NET_NAME
Definition: dinamo.h:1315
int AAP_API DEFTCheckKeyParts(int nKeyAlgId, EFT_VISA_KEY_PARTS *pstKeyParts, DWORD dwParam)
int nFieldType
Definition: dinamo.h:1802
DWORD dwStructId
Definition: dinamo.h:2136
int AAP_API DSPBDecodeEnd(HSPBCTX *hSPBCtx)
DWORD len
Definition: dinamo.h:1901
#define ND_SPB_MAX_ISSUER
Definition: dinamo.h:1478
int AAP_API DExportKey(HKEYCTX hKey, HKEYCTX hKEKey, DWORD dwBlobType, DWORD dwFlags, BYTE *pbData, DWORD *pdwDataLen)
int AAP_API DGenerateICCMK(HSESSIONCTX hSession, BYTE bOP, char *szIK, char *szKeK, char *szPAN, BYTE *pbSEQ, DWORD *pdwEnvelopeLen, BYTE *pbEnvelope, DWORD dwParam)
int AAP_API DGeneratePkcs11Map(HSESSIONCTX hSession, char *szP11MapId, BYTE bTemporary, DWORD dwBlobType, DWORD dwFlags, BYTE *pbData, DWORD dwDataLen)
int AAP_API DGeneratePVV(HSESSIONCTX hSession, char *szPGK, BYTE bPVKI, char *szPAN, char *szPIN, char *szPVV, DWORD dwParam)
int AAP_API DSPBEncodeInit(HSESSIONCTX hSession, char *szSrcISPB, char *szDstISPB, DWORD dwTotalDataLen, BYTE bErrorCode, BYTE bSpecialTreatment, HSPBCTX *hSPBCtx, DWORD dwFlags)
void AAP_API DCleanCERT_X509_INFO(CERT_X509_INFO *pstCert)
int AAP_API DOATHGetBlobInfo(const HSESSIONCTX hSession, char *szMasterKey, BYTE *pbInBlob, DWORD dwInBlobLen, DWORD dwOutBlobType, BYTE *pbOutInfo, DWORD *pdwOutInfoLen, DWORD dwParam)
int AAP_API DGenerateKey(HSESSIONCTX hSession, char *szKeyId, int nAlgId, DWORD dwFlags, HKEYCTX *phKey)
int AAP_API DFindObjMetadataInit(HSESSIONCTX hSession, HOBJMETACTX hInMeta, HOBJMETASEARCHCTX *phMetaSearchCtx, DWORD dwParam)
Definition: dinamo.h:2498
DBLOB dbPublicKey
Definition: dinamo.h:1758
int AAP_API DCalculateARPC(HSESSIONCTX hSession, char *szIssuerMK, char *szPAN, BYTE *pbSEQ, BYTE *pbARQC, BYTE *pbARC, BYTE *pbARPC, DWORD dwParam)
BYTE bOP
Definition: dinamo.h:2627
int AAP_API DDestroyKey(HKEYCTX *phKey, DWORD dwFlags)
P11_DATE dtNotAfter
Definition: dinamo.h:2130
BYTE bHistory
Definition: dinamo.h:2576
BYTE Trusted
Definition: dinamo.h:2513
int AAP_API DSPBGenerateKey(HSESSIONCTX hSession, char *szID, char *szPrivateKeyName, DWORD dwKeyParam, DWORD dwParam)
QWORD qwVMSize
Definition: dinamo.h:2214
ND_OATH_uint64_t otT0
Definition: dinamo.h:2015
HSM_ADDR * pstLBList
Definition: dinamo.h:1691
Definition: dinamo.h:2335
Definition: dinamo.h:2619
ISSUE_OATH_BLOB_t stOATHBlob
Definition: dinamo.h:2071
#define MAX_IP_LEN
Definition: dinamo.h:1314
DWORD dwRecoveryPulse
Definition: dinamo.h:2272
QWORD qwMask
Definition: dinamo.h:1922
DN_EC_POINT_INFO stPublicPoint
Definition: dinamo.h:1821
int nFilledCount
Definition: dinamo.h:2283
void * HOBJMETACTX
Definition: dinamo.h:72
int AAP_API DVerifyCVV(HSESSIONCTX hSession, char *szKeyId, char *szPAN, char *szExpirationDate, char *szServiceCode, char *szCVV, DWORD dwParam)
int AAP_API DMAC_ISO9797_1_Met2(DWORD dwType, BYTE *pbKey, DWORD dwAlg, const BYTE *pbMsg, DWORD dwMsgLen, BYTE *pbMAC)
Definition: dinamo.h:2233
int AAP_API DFindHSM(DWORD dwServiceType, DWORD dwFilter, void **ppvOutputData, DWORD *pdwOutputDataLen, DWORD dwFlags)
int AAP_API DDuplicateKey(HKEYCTX hKey, DWORD dwFlags, HKEYCTX *phKey)
int AAP_API DCalculateARPC_Ex(HSESSIONCTX hSession, DWORD dwOp, void *pvInData, BYTE *pbARPC, DWORD dwParam)
int AAP_API DPKCS8ExportKey(HSESSIONCTX hSession, char *szKeyId, char *szSecret, BYTE **ppbKeyEnvelope, DWORD *pdwKeyEnvelopeLen)
BYTE bOP
Definition: dinamo.h:2636
int AAP_API DDeriveEMV_Key(HSESSIONCTX hSession, char *szSrcKey, WORD wBufferLen, BYTE *pbBuffer, BYTE bOP, DWORD dwAttrib, char *szDstKey, HKEYCTX *phKey, DWORD dwParam)
DWORD dwAuthType
Definition: dinamo.h:2383
#define EFT_VISA_KEY_CHECKSUM_LEN
Definition: dinamo.h:1337
int AAP_API DSPBDecodeCont(HSPBCTX hSPBCtx, BYTE *pbDataIn, DWORD dwDataInLen, BYTE **ppbDataOut, DWORD *pdwDataOutLen)
int AAP_API DSPBDecodeInit(HSESSIONCTX hSession, char *szSrcISPB, char *szDstISPB, BYTE *pbHeader, DWORD dwHeaderLen, BYTE bAcceptExpiredCert, BYTE bAutoUpdateCert, DWORD dwMessageDataLen, HSPBCTX *hSPBCtx, DWORD dwFlags)
#define NET_INFO_MAX_SNMP_T_COUNT
Definition: dinamo.h:1577
Definition: dinamo.h:1864
DWORD dwPADLen
Definition: dinamo.h:2642
int AAP_API DImportPKCS12(const HSESSIONCTX hSession, const char *szPkcs12File, const char *szPkcs12Pwd, const char *szKeyId, const DWORD dwKeyAttr, const char *szCertId)
time_t tmNow
Definition: dinamo.h:1681
int DGetObjMetadataTypeInfo(DWORD dwOption, void *pvData, DWORD *pdwDataLen, DWORD dwReserved)
OBJ_HDR_V1 stObjectHeader
Definition: dinamo.h:1969
QWORD qwEventType
Definition: dinamo.h:2264
const char * pszString
Definition: dinamo.h:3682
QWORD qwProtect_s
Definition: dinamo.h:1915
int AAP_API DDuplicateHash(HHASHCTX hHash, DWORD dwFlag, HHASHCTX *phHash)
int(AAP_API * funcLogEventCallback)(char *szEvent, void *pParam, BOOL bFinal)
Definition: dinamo.h:2950
SYS_COUNTER_INFO stCounterInfo
Definition: dinamo.h:2291
QWORD qwSLBeFileSize
Definition: dinamo.h:2212
int AAP_API DEFTImportKey(HSESSIONCTX hSession, char *szKeyId, int nKeyAlgId, EFT_VISA_KEY_PARTS *pstKeyParts, DWORD dwParam)
int AAP_API DCloseSession(HSESSIONCTX *phSession, DWORD dwFlags)
int nAlgId
Definition: dinamo.h:1877
Definition: dinamo.h:2345
int AAP_API DSetLBList(DWORD dwParam, void *pvList, DWORD dwListCount, DWORD dwReserved)
BYTE *AAP_API DBase642ByteArray(char *szBase64, DWORD dwBase64Len, BYTE *pbData, DWORD *pdwDataLen)
int AAP_API DListUserSessions(HSESSIONCTX hSession, int(AAP_API *ListUserSessionsCallback)(DWORD dwStartTime, char *szInfo, void *pParam, BOOL bFinal), void *pParam)
DBLOB dbPrivateKey
Definition: dinamo.h:2409
int AAP_API DOATHResync(const HSESSIONCTX hSession, char *szUser, char *szOTP1, char *szOTP2, DWORD dwParam)
int nPubKeyHSMAlgId
Definition: dinamo.h:1759
SYS_HW_STR_INFO stHardwareInfo
Definition: dinamo.h:2289
Definition: dinamo.h:1836
char * szPrivateKeyPwd
Definition: dinamo.h:2410
int AAP_API DGetObjMetadata(HOBJMETACTX hInMeta, DWORD dwOption, void *pvOptionData, DWORD *pdwOptionDataLen, DWORD dwParam)
int AAP_API DOATHCheckHOTP(HSESSIONCTX hSession, char *szMasterKeyId, char *szOTP, BYTE *pbOATHBlob, DWORD *pdwOATHBlobLen, DWORD dwFlags)
#define DN_MAX_ALG_ID
Definition: dinamo.h:1558
int AAP_API DRemoveUser(HSESSIONCTX hSession, char *szUserId)
DWORD dwLBListCount
Definition: dinamo.h:1692
DWORD version
Definition: dinamo.h:1898
#define OATH_MAX_PSK_LEN
Definition: dinamo.h:1517
#define MAX_ADDR_LEN
Definition: dinamo.h:1304
#define ND_SPB_MAX_ALG_ID
Definition: dinamo.h:1479
int(AAP_API * funcListUsersCallback)(char *szUserName, void *pParam, BOOL bFinal)
Definition: dinamo.h:3434
DN_EC_BIG_NUMBER bnCofactor
Definition: dinamo.h:1809
int AAP_API DGenerateMapObj(const HSESSIONCTX hSession, const char *szMapId, const char *szObj1Id, const int nObj1AlgId, const char *szObj2Id, const int nObj2AlgId)
DWORD dwManagerPulse
Definition: dinamo.h:2271
int AAP_API DFindObjMetadataCont(HOBJMETASEARCHCTX hMetaSearchCtx, HOBJMETACTX *phOutMeta, DWORD dwOutMetaMaxCount, DWORD *pdwOutMetaDataCount, DWORD dwParam)
int AAP_API DGetErrorString(int nErrorValue, char *szErrorCode, char *szErrorDesc)
DWORD dwVersion
Definition: dinamo.h:1747
Definition: dinamo.h:1689
int AAP_API DPKCS8ImportKey(HSESSIONCTX hSession, char *szKeyId, char *szSecret, DWORD dwKeyAlg, DWORD dwAttrib, BYTE *pbKeyEnvelope, DWORD dwKeyEnvelopeLen)
int AAP_API DSetUserParam(HSESSIONCTX hSession, DWORD dwParam, BYTE *pbData, DWORD dwDataLen, DWORD dwFlags)
#define DN_UPACK_MAX_DESCRIPTION
Definition: dinamo.h:2219
Definition: dinamo.h:2258
int AAP_API DGenerateCNSCert(HSESSIONCTX hSession, char *szKeyID, char *szUsrID, char *szUsrName, WORD wModulusLen, BYTE *pbModulus, BYTE bExponentLen, BYTE *pbExponent, DWORD *pdwCertLen, BYTE *pbCert, DWORD dwParam)
int AAP_API DEFTKeKImport(HSESSIONCTX hSession, BYTE bOP, DWORD dwAlgId, char *szKeKName, char *szKeyName, DWORD dwAttr, BYTE *pbKCV1, BYTE *pbKCV2, BYTE *pbKCV3, BYTE *pbKCVFinal, BYTE *pbBlob, DWORD dwFlags)
Definition: dinamo.h:2481
BYTE * pbStrongAuth
Definition: dinamo.h:2388
Definition: dinamo.h:1712
int AAP_API DWriteFile(HSESSIONCTX hSession, char *szFileId, DWORD dwFileSize, funcReadLocalFileCallback fncallback, void *pParam)
int AAP_API DGetHSMP11Info(HSESSIONCTX hSession, HP11ATTRCTX *phOutMeta, DWORD dwParam)
#define MAX_OBJ_ID_BIN_LEN
Definition: dinamo.h:1321
int AAP_API DImportKey(HSESSIONCTX hSession, char *szKeyId, HKEYCTX hKEKey, DWORD dwBlobType, int nAlgId, DWORD dwFlags, BYTE *pbData, DWORD dwDataLen, HKEYCTX *phKey)
int AAP_API DEFTExportKey(HSESSIONCTX hSession, BYTE bExportMode, char *szKEKId, char *szKeyId, BYTE *pbEncryptedBlock, DWORD *pdwEncryptedBlockLen, BYTE *pbKeyCheckValue, DWORD dwParam)
BOOL bTempKey
Definition: dinamo.h:1879
DWORD dwFlags
Definition: dinamo.h:1878
int AAP_API DRemoveKey(HSESSIONCTX hSession, char *szKeyId)
Definition: dinamo.h:2078
DN_EC_BIG_NUMBER bnX
Definition: dinamo.h:1796
Definition: dinamo.h:2588
int nBlocked
Definition: dinamo.h:2338
int AAP_API DGenerateEMV_HMAC(HSESSIONCTX hSession, BYTE bOP, char *szIK, char *szPAN, BYTE *pbSEQ, BYTE *pbNONCE, DWORD dwDataLen, BYTE *pbData, BYTE *pbMAC, DWORD dwParam)
BYTE bMinLength
Definition: dinamo.h:2578
ND_uint64_t stCreationTime
Definition: dinamo.h:1990
int AAP_API DBackupData(HSESSIONCTX hSession, char *szBackupFile, char *szPin, int nDirection)
QWORD qwC_occur
Definition: dinamo.h:1917
Definition: dinamo.h:2603
BYTE bUseDefaultMovingFactor
Definition: dinamo.h:2019
Definition: dinamo.h:1850
unsigned long DN_ULONG
Definition: dinamo.h:63
DWORD dwModuleId
Definition: dinamo.h:2494
char *AAP_API DByteArray2Base64(BYTE *pbData, DWORD dwDataLen, char *szBase64, DWORD *pdwBase64Len, BOOL bNoNewLines)
DBLOB dbHSMCert
Definition: dinamo.h:2412
Definition: dinamo.h:2570
int AAP_API DSignXml(HKEYCTX hKey, HHASHCTX hHash, char *szCertId, DWORD dwSizeUnsignedXml, BYTE *pbUnsignedXml, DWORD dwFilterLen, BYTE *pbFilter, DWORD *pdwSizeSignedXml, BYTE **ppbSignedXml)
Definition: dinamo.h:3679
int AAP_API DCRLCertCheck(HSESSIONCTX hSession, char *szCRL, char *szCertId, char *szVerifyInfo)
#define SA_TP_MAX_OTP_LEN
Definition: dinamo.h:1486
int AAP_API DGetLogParam(HSESSIONCTX hSession, DWORD dwParam, BYTE *pbData, DWORD *pdwDataLen, DWORD dwFlags)
DWORD dwParam
Definition: dinamo.h:2320
DBLOB dbPubKey
Definition: dinamo.h:2656
int AAP_API DSPBImportCertificate(HSESSIONCTX hSession, BYTE bActivate, char *szUser, BYTE *pbCertificate, DWORD dwCertificateLen, char *szDomain, DWORD dwParam)
int AAP_API DVerifySignedXml(HSESSIONCTX hSession, char *szCertsId, DWORD dwSizeSignedXml, BYTE *pbSignedXml, DWORD dwFilterLen, BYTE *pbFilter)
SYS_DISK_INFO stDiskInfo
Definition: dinamo.h:2286
unsigned short WORD
Definition: dinamo.h:48
void * HKEYCTX
Definition: dinamo.h:67
int AAP_API DSetLogParam(HSESSIONCTX hSession, DWORD dwParam, BYTE *pbData, DWORD dwDataLen, DWORD dwFlags)
Definition: dinamo.h:2630
SYS_NET_INFO * pstSysNetInfo
Definition: dinamo.h:2161
int AAP_API DDestroyHash(HHASHCTX *phHash)
DBLOB dbSubject
Definition: dinamo.h:2125
int nVersion
Definition: dinamo.h:2123
int AAP_API DCertEncodingConvert(BYTE *pbCert, DWORD dwCertLen, DWORD dwOutFormat, BYTE **ppbOutCert, DWORD *pdwOutCertLen, DWORD dwReserved)
Definition: dinamo.h:2250
#define MAX_USR_LEN
Definition: dinamo.h:1299
int AAP_API DSetObjMetadataJson(HOBJMETACTX hInMeta, char *szData, DWORD dwDataLen, DWORD dwParam)
int AAP_API DOATHCheckOTP(HSESSIONCTX hSession, char *szMasterKeyId, char *szOTP, BYTE *pbOATHBlob, DWORD *pdwOATHBlobLen, DWORD dwFlags)
DWORD dwDiscoveryPulse
Definition: dinamo.h:2273
void * HHASHCTX
Definition: dinamo.h:66
int AAP_API DGenerateEMV_MAC(HSESSIONCTX hSession, BYTE bOP, char *szIK, char *szPAN, BYTE *pbSEQ, BYTE *pbNONCE, DWORD dwDataLen, BYTE *pbData, BYTE *pbMAC, DWORD dwParam)
int AAP_API DListUsers(HSESSIONCTX hSession, funcListUsersCallback fncallback, void *pParam)
int AAP_API DGetObjInfo(const HSESSIONCTX hSession, const char *szObjId, const int nAlgId, const BYTE *pbData, DWORD *pdwDataLen)
#define DES_BLOCK
Definition: dinamo.h:850
int AAP_API DPowerSignHash(HSESSIONCTX hSession, char *szKeyId, int nHashAlgId, DWORD dwDataLen, BYTE *pbDataBuffer, DWORD *pdwSignLen, BYTE **ppbSignData)
int AAP_API DSPBEncodeEnd(HSPBCTX *hSPBCtx, BYTE *pbSPBHeader, DWORD *pdwSPBHeaderLen)
Definition: dinamo.h:2396
DWORD attrib
Definition: dinamo.h:1900
int AAP_API DVerifyDAC(HSESSIONCTX hSession, char *szIMKDAC, char *szPAN, BYTE *pbSEQ, BYTE *pbDAC, DWORD dwParam)
#define SA_HOTP_CHAP_LEN
Definition: dinamo.h:1488
int AAP_API DManageATokenCache(HSESSIONCTX hSession, DWORD dwOP, void *pOutData, DWORD dwParam)
void * HOBJMETASEARCHCTX
Definition: dinamo.h:74
int AAP_API DManageObjMetadata(HSESSIONCTX hSession, BYTE bOP, char *szObjName, HOBJMETACTX hInMeta, HOBJMETACTX *phOutMeta, DWORD dwParam)
DWORD dwCSULen
Definition: dinamo.h:2640
QWORD qwGuid
Definition: dinamo.h:2262
int AAP_API DVerifySignature(HHASHCTX hHash, BYTE *pbSignature, DWORD dwSigLen, HKEYCTX hPubKey, DWORD dwFlags)
int AAP_API DSPBCalculateObjectId(char *szISPB, char *szDomain, DWORD dwKeyType, char *szOutObjName, DWORD dwParam)
int nPort
Definition: dinamo.h:2368
int AAP_API DGenerateDUKPT(HSESSIONCTX hSession, BYTE *pbKSI, BYTE *pbDID_CTR, char *szDUKPT, DWORD dwParam)
Definition: dinamo.h:1677
int AAP_API DListLoadedModules(HSESSIONCTX hSession, int(AAP_API *ListLoadedModulesCallback)(char *szModuleInfo, void *pParam, BOOL bFinal), void *pParam)
#define EFT_EMV_CSU_LEN
Definition: dinamo.h:1344
#define EFT_EMV_ARC_LEN
Definition: dinamo.h:1343
int nStrongAuthLen
Definition: dinamo.h:2389
DWORD dwKeyLen
Definition: dinamo.h:2245
QWORD qwExpiration
Definition: dinamo.h:2358
DWORD dwBoundEth
Definition: dinamo.h:2261
ND_OATH_uint64_t T0
Definition: dinamo.h:2054
P11_DATE dtNotBefore
Definition: dinamo.h:2129
unsigned char BYTE
Definition: dinamo.h:45
Definition: dinamo.h:2492
#define MAX_OBJ_NAME_LEN
Definition: dinamo.h:1311
DWORD dwAuthMask
Definition: dinamo.h:2422
Definition: dinamo.h:2121
int AAP_API DLogLineFormat(char *szIn, char *szOut)
QWORD qwArchive
Definition: dinamo.h:1919
int AAP_API DSPBGenerateCSR(HSESSIONCTX hSession, char *szPrivateKeyName, BYTE bVersion, char *szSPBSubject, DWORD dwOutType, DWORD *pdwCSRLen, BYTE **ppbCSR, DWORD dwParam)
int AAP_API DECPubKeyDER2AlgId(BYTE *pbECPubKeyDER, DWORD dwECPubKeyDERLen, int *pnAlgId, DWORD dwFlags)
int AAP_API DGetRandom(HSESSIONCTX hSession, BYTE *pbData, DWORD dwDataLen)
void * HCHAPCTX
Definition: dinamo.h:70
int AAP_API DOATHIssueBlob(HSESSIONCTX hSession, char *szMasterKeyId, DWORD dwParamBlobType, void *pvParamBlob, DWORD dwParamBlobLen, BYTE *pbOTPBlob, DWORD *pdwOTPBlobLen, DWORD dwFlags)
unsigned long long ND_OATH_uint64_t
Definition: dinamo.h:38
BYTE truncation_offset
Definition: dinamo.h:2045
int AAP_API DFindObjMetadataEnd(HOBJMETASEARCHCTX *phMetaSearchCtx, DWORD dwParam)
DWORD dwObj2AlgId
Definition: dinamo.h:2477
DWORD dwPeer
Definition: dinamo.h:2300
DN_EC_BIG_NUMBER bnB
Definition: dinamo.h:1807
DWORD dwVERB
Definition: dinamo.h:1968
DBLOB dbKDFData
Definition: dinamo.h:2657
DBLOB dbPrivateKeyCert
Definition: dinamo.h:2411
WORD wKeyIndex
Definition: dinamo.h:2244
const OBJ_MET_ATTR * DGetHSMP11TypeInfoList(int *pnOutLen)
QWORD qwSpVal
Definition: dinamo.h:2268
int AAP_API DUPackInfo(DWORD dwPackSize, BYTE *pbPack, DWORD *pdwUPackVersion, BYTE **ppbUPackDescr, BYTE **ppbUPackSignature)
int AAP_API DUPackPush(HSESSIONCTX hSession, DWORD dwPackSize, BYTE *pbPack)
int AAP_API DDestroyHSMP11Info(HP11ATTRCTX *phMeta, DWORD dwParam)
int AAP_API DCreateHash(HSESSIONCTX hSession, int nAlgId, HKEYCTX hKey, DWORD dwFlags, HHASHCTX *hHash)
Definition: dinamo.h:1978
WORD wSpvv
Definition: dinamo.h:2269
#define MAX_OATH_HMAC_LEN
Definition: dinamo.h:728
int AAP_API DRenameObj(HSESSIONCTX hSession, char *szOldObjName, char *szNewObjName, DWORD dwFlags)
#define MAX_P11_OBJ_ID
Definition: dinamo.h:1320
WORD time_step
Definition: dinamo.h:2096
#define NET_INFO_MAX_SNMP_C_STR
Definition: dinamo.h:1580
DWORD dwMemUsed
Definition: dinamo.h:2199
#define DN_MAX_SN
Definition: dinamo.h:1556
int AAP_API DManageAToken(HSESSIONCTX hSession, BYTE bOP, DN_A_TOKEN_FULL *pstATokenFull, funcListAKeysCallback fnCallBack, void *pvCallbackParam, DWORD dwParam)
#define MAX_HOTP_IMEI
Definition: dinamo.h:1317
Definition: dinamo.h:2310
Definition: dinamo.h:2193
DN_EC_BIG_NUMBER bnOrder
Definition: dinamo.h:1811
int AAP_API DPKCS7Sign(HSESSIONCTX hSession, char *szKeyName, char *szKeyCert, char *szCerts, DWORD dwAttrib, BYTE *pbContent, DWORD dwContentLen, DWORD *pdwSignatureLen, BYTE **ppbSignature, DWORD dwParam)
#define MAX_PAN_LEN
Definition: dinamo.h:1263
DN_EC_BIG_NUMBER bnPrivatevalue
Definition: dinamo.h:1829
#define AAP_API
Definition: dinamo.h:42
BYTE bUp
Definition: dinamo.h:2154
SYS_STATUS_INFO stStatusInfo
Definition: dinamo.h:2284
int AAP_API DBackupObject(HSESSIONCTX hSession, DWORD dwOP, char *szObjectId, char *szPin, BYTE *pbData, DWORD *pdwDataLen, DWORD dwReserved)
int AAP_API DListUserTrusts(HSESSIONCTX hSession, char *szUserId, BYTE bType, int(AAP_API *ListUserTrustCallback)(char *szUserName, DWORD dwACL, void *pParam, BOOL bFinal), void *pParam)
QWORD qwDeactiv
Definition: dinamo.h:1916
unsigned int UINT
Definition: dinamo.h:50
DWORD dwSpeed
Definition: dinamo.h:2155
int AAP_API DSignSDA(HSESSIONCTX hSession, char *szIK, BYTE *pbDAC, DWORD dwSDA_DATALen, BYTE *pbSDA_DATA, DWORD *pdwSigLen, BYTE *pbSig, DWORD dwParam)
#define DN_MAX_SUBJECT
Definition: dinamo.h:1554
BYTE bExpiration
Definition: dinamo.h:2575
int DIPFilterOperation(HSESSIONCTX hSession, BYTE bOP, char *szUser, char *szIP, int(AAP_API *ListIpFilterCallback)(void *pInData, DWORD dwInDataLen, void *pParam, BOOL bFinal), void *pParam, DWORD *pdwStatus, DWORD dwReserved)
int nqtdcache
Definition: dinamo.h:1682
Definition: dinamo.h:2093
#define GET_INFO_MAX_SN_LEN
Definition: dinamo.h:679
int AAP_API DDestroyObjMetadata(HOBJMETACTX *phMeta, DWORD dwParam)
int AAP_API DSetSessionParam(HSESSIONCTX hSession, DWORD dwParam, BYTE *pbData, DWORD dwDataLen, DWORD dwFlags)
int AAP_API DGeneratePKCS10CSR(HSESSIONCTX hSession, char *szKeyName, BYTE bVersion, char *szDN, DWORD dwOutType, DWORD *pdwCSRLen, BYTE **ppbCSR, DWORD dwParam)
Definition: dinamo.h:2449
#define GET_INFO_MAX_HW_STR_LEN
Definition: dinamo.h:680
DWORD dwVersion
Definition: dinamo.h:1726
int AAP_API DGetHSMLogInit(HSESSIONCTX hSession, DWORD dwStart, DWORD dwOffset, HLOGCTX *phLogCtx, DWORD dwParam)
DWORD type
Definition: dinamo.h:1899
int AAP_API DRemoveObj(HSESSIONCTX hSession, char *szObjId)
int AAP_API DGetHSMLogEnd(HLOGCTX *phLogCtx)
Definition: dinamo.h:1700
DWORD dwUptime
Definition: dinamo.h:2178
OBJ_HDR_V1 stSlot2Header
Definition: dinamo.h:1986
DWORD dwDiscoveryReset
Definition: dinamo.h:2270
ND_OATH_uint64_t otMovingFactor
Definition: dinamo.h:2022
Definition: dinamo.h:1966
BYTE bOP
Definition: dinamo.h:1853
Definition: dinamo.h:2407
#define DN_MAX_EMAIL
Definition: dinamo.h:1557
int AAP_API DSetKeyParam(HKEYCTX hKey, DWORD dwParam, BYTE *pbData, DWORD dwDataLen, DWORD dwFlags)
DWORD dwObjAlgId2
Definition: dinamo.h:2486
const OBJ_MET_ATTR * DGetObjMetadataTypeInfoList(int *pnOutLen)
Definition: dinamo.h:1909
signed char CHAR
Definition: dinamo.h:52
DWORD Class
Definition: dinamo.h:2503
int AAP_API DECPrivateKey2Info(BYTE *pbEC, DWORD dwECLen, DWORD dwInForm, void *pvPrivKeyInfo, DWORD dwOutForm, DWORD dwReserved)
int nPort
Definition: dinamo.h:1702
int AAP_API DSignHashedData(HKEYCTX hKey, BYTE *pbData, DWORD dwDataLen, int nHashId, DWORD dwFlags, BYTE *pbSignature, DWORD *pdwSigLen)
#define DN_USR_A_TOKEN_KLEN
Definition: dinamo.h:1640
int AAP_API DSPBActivateCertificate(HSESSIONCTX hSession, char *szIdCert, char *szDomain, DWORD dwParam)
BYTE bUpper
Definition: dinamo.h:2580
#define GET_INFO_MAX_NTP_KM_LEN
Definition: dinamo.h:685
OBJ_HDR_V1 stSlot1Header
Definition: dinamo.h:1983
int AAP_API DGetUserParam(HSESSIONCTX hSession, DWORD dwParam, BYTE *pbData, DWORD *pdwDataLen, DWORD dwFlags)
DWORD dwTargetKeyAttributes
Definition: dinamo.h:2655
DWORD dwSwapTotal
Definition: dinamo.h:2200
DWORD dwDataLen
Definition: dinamo.h:1715
DBLOB dbModulus
Definition: dinamo.h:1838
#define ND_SPB_SN_MAX_LEN
Definition: dinamo.h:1474
int AAP_API DUnassignToken(const HSESSIONCTX hSession, const DWORD dwParam, const char *szUserId)
int AAP_API DCreateUser(HSESSIONCTX hSession, struct USER_INFO userInfo)
void * HCERTCTX
Definition: dinamo.h:68
Definition: dinamo.h:2297
int AAP_API DDeriveKey(HHASHCTX hHash, char *szKeyId, int nAlgId, DWORD dwFlags, HKEYCTX *phKey)
int AAP_API DGetStatLogSize(HSESSIONCTX hSession, DWORD *pdwLogLen)
int AAP_API DGetUserAcl(HSESSIONCTX hSession, char *szUser, DWORD *pdwUserAcl)
DBLOB dbPubExponent
Definition: dinamo.h:1839
BYTE bLower
Definition: dinamo.h:2581
DN_EC_BIG_NUMBER bnA
Definition: dinamo.h:1806
DWORD dwObjAlgId1
Definition: dinamo.h:2484
DWORD dwFIPSMode
Definition: dinamo.h:2285
QWORD qwTasks
Definition: dinamo.h:2213
int AAP_API DAssignToken(const HSESSIONCTX hSession, const char *szUserId, const DWORD dwParam, BYTE *pbData, const DWORD dwDataLen)
Definition: dinamo.h:2650
int AAP_API DListObjsFilter(HSESSIONCTX hSession, DWORD dwFilterType, void *pvFilter, int(AAP_API *ListObjCallback)(void *pvIN, void *pParam, BOOL bFinal), void *pParam)
int AAP_API DGetLibVersion(HSESSIONCTX hSession, char *szVersion, DWORD *pdwVersionLen, DWORD dwFlags)
int AAP_API DFinalize()
int(AAP_API * funcListAKeysCallback)(void *pvToken, void *pParam, BOOL bFinal)
Definition: dinamo.h:3181
BYTE Local
Definition: dinamo.h:2515
Definition: dinamo.h:2108
OBJ_HDR_V1 stObjectHeader
Definition: dinamo.h:1980
int AAP_API DGenerateCVV(HSESSIONCTX hSession, char *szKeyId, char *szPAN, char *szExpirationDate, char *szServiceCode, char *szCVV, DWORD dwParam)
DWORD dwTargetKeyAlg
Definition: dinamo.h:2654
DWORD dwUnit
Definition: dinamo.h:2197
Definition: dinamo.h:1794
#define NET_INFO_MAX_SROUTE_COUNT
Definition: dinamo.h:1575
DWORD dwDataLen
Definition: dinamo.h:1791
#define MAX_MODULE_NAME_VERSION_LEN
Definition: dinamo.h:1313
unsigned long long ND_uint64_t
Definition: dinamo.h:37
Definition: dinamo.h:2069
void * HSPBCTX
Definition: dinamo.h:69
int AAP_API DOpenSession(HSESSIONCTX *phSession, DWORD dwParam, BYTE *pbData, DWORD dwDataLen, DWORD dwFlags)
Definition: dinamo.h:1874
int AAP_API DSPBEncodeCont(HSPBCTX hSPBCtx, BYTE *pbDataIn, DWORD dwDataInLen, BYTE *pbDataOut, DWORD *pdwDataOutLen)
BYTE type
Definition: dinamo.h:2080
int AAP_API DRemoveMapObj(const HSESSIONCTX hSession, const char *szMapObjId)
int AAP_API DVerifySignedXmlEx(HSESSIONCTX hSession, char *szCertsId, DWORD dwSizeSignedXml, BYTE *pbSignedXml, DWORD dwFilterLen, BYTE *pbFilter, char *szCRL)
DWORD dwSwapUsed
Definition: dinamo.h:2201
DN_EC_POINT_INFO stGeneratorPoint
Definition: dinamo.h:1812
#define GET_INFO_MAX_REPL_NODES
Definition: dinamo.h:678
int AAP_API DHashData(HHASHCTX hHash, BYTE *pbData, DWORD dwDataLen, DWORD dwFlags)
BYTE bState
Definition: dinamo.h:1923
DWORD dwFreeBlocks
Definition: dinamo.h:2186
int AAP_API DPINBlockTranslate(HSESSIONCTX hSession, char *szSrcPEK, char *szDstPEK, BYTE bTransBlockType, char *szPAN, BYTE *pbInPinBlock, BYTE *pbOutPinBlock, DWORD dwParam)
Definition: dinamo.h:2473
int AAP_API DOATHBlobResync(HSESSIONCTX hSession, char *szMasterKeyId, char *szOTP1, char *szOTP2, BYTE *pbOATHBlob, DWORD *pdwOATHBlobLen, DWORD dwFlags)
BYTE bMinSpecial
Definition: dinamo.h:2579
#define MAX_USR_PWD
Definition: dinamo.h:1298
DWORD dwImageLen
Definition: dinamo.h:2328
int(AAP_API * funcWriteLocalFileCallback)(BYTE *pbData, DWORD dwDataLen, void *pParam, BOOL bFinal)
Definition: dinamo.h:3075
void * pvData
Definition: dinamo.h:1714
int AAP_API DECParam2AlgId(BYTE *pbECParam, DWORD dwECParamLen, int *pnAlgId, DWORD dwFlags)
DWORD dwObjHotpFlags
Definition: dinamo.h:2139
Definition: dinamo.h:1788
void * HSESSIONCTX
Definition: dinamo.h:65