//*************************** ERRORI ***************************// #define ERRORE_LETTURA_CERTIFICATOCA 0x0201 #define ERRORE_LETTURA_CERTIFICATESTORE 0x0202 #define ERRORE_CERTIFICATO_NON_ANCORA_VALIDO 0x0402 #define ERRORE_CERTIFICATO_SCADUTO 0x0403 #define ERRORE_SECRETKEY_NON_TROVATA 0x0501 #define ERRORE_PUBLICKEY_NON_TROVATA 0x0502 #define ERRORE_DECRYPT 0x0503 #define ERRORE_VERIFY 0x0504 #define ERRORE_SIGN 0x0505 #define LDAP_NOMATCH 0x0701 #define LDAP_NOENTRY 0x0702 #define LDAP_NOHOST 0x0703 #define LDAP_NOBIND 0x0704 #define LDAP_NOCERT 0x0705 //************************* ALGORITMI *************************// #define smime_signed_des 300 #define smime_signed_des3 301 #define smime_enveloped_des 302 #define smime_enveloped_des3 303 #define smime_signed_env_des 304 #define smime_signed_env_des3 305 #define smime_counter_signed_des 306 #define smime_counter_signed_des3 307 #define smime_counter_enveloped_des 308 #define smime_counter_enveloped_des3 309 #define smime_counter_signed_env_des 310 #define smime_counter_signed_env_des3 311 #define pkcs7 20 #define pkcs7_data 21 #define pkcs7_signed 22 #define pkcs7_enveloped 23 #define pkcs7_signedAndEnveloped 24 #define pkcs7_digest 25 #define pkcs7_encrypted 26 //*************************** TIPI ***************************// typedef unsigned int SIZE_T; typedef unsigned char UBYTE_T; typedef unsigned long ULONG_T; typedef struct BUFFER_T { SIZE_T length; UBYTE_T *value; } BUFFER; typedef char DN_1[256]; typedef struct DN_T { DN_1 DName; DN_1 rfc822Name; DN_1 URIName; DN_1 DirName; } DN; typedef struct EXT_DN_T { int r_code; DN dn; } EXT_DN; typedef struct SET_DN_T { SIZE_T length; EXT_DN dn[64]; } SET_DN; //*************************** FUNZIONI ***************************// int login(BUFFER* pwd, DN* dn); int changePassword(BUFFER* oldPwd, BUFFER* newPwd); int sign(int algorithm, BUFFER* pwd, BUFFER* inBuf, BUFFER* outBuf); int encrypt(int algorithm, DN* dn, BUFFER* inBuf, BUFFER* outBuf) int verify(BUFFER* inBuf, int* algorithm, SET_DN* dn); int decode(BUFFER* pwd, BUFFER* inBuf, BUFFER* outBuf, int* algorithm); BUFFER* new_BUFFER(); void free_BUFFER(BUFFER* b); void set_BUFFER(BUFFER* b, unsigned char* data, ULONG_T len);