#ifndef __CRYPTOPP_H__ #define __CRYPTOPP_H__ #define CPP_FEATURES_UTF8 0x01 #define CPP_FEATURES_BASE64 0x02 #define CPP_FEATURES_GZIP 0x04 #define CPP_FEATURES_CRC32 0x08 #define CPP_FEATURES_PSK 0x10 #define CPP_FEATURES_NEWPG 0x20 #define CPP_FEATURES_RSA 0x40 #define CPP_MODE_BASE16 0x0000 #define CPP_MODE_BASE64 0x0001 #define CPP_MODE_PGP 0x0002 #define CPP_MODE_GPG 0x0004 #define CPP_MODE_GPG_ANSI 0x0008 #define CPP_MODE_PRIV_KEY 0x0010 #define CPP_MODE_RSA_2048 0x0020 #define CPP_MODE_RSA_4096 0x0040 #define CPP_MODE_RSA CPP_MODE_RSA_4096 #define CPP_MODE_RSA_ONLY 0x0080 #define CPP_MODE_RSA_ZLIB 0x0100 #define CPP_MODE_RSA_BER 0x0200 #define CPP_ERROR_NONE 0 #define CPP_ERROR_SEH 1 #define CPP_ERROR_NO_KEYA 2 #define CPP_ERROR_NO_KEYB 3 #define CPP_ERROR_NO_KEYX 4 #define CPP_ERROR_BAD_LEN 5 #define CPP_ERROR_BAD_CRC 6 #define CPP_ERROR_NO_PSK 7 #define CPP_ERROR_BAD_PSK 8 #define CPP_ERROR_BAD_KEYB 9 #define CPP_ERROR_NO_PGP_KEY 10 typedef struct { int (__cdecl *rsa_gen_keypair)(short); // ������� RSA-����� ��� ��������� ����� (���� ���� 2048, ���� 2048 � 4096) int (__cdecl *rsa_get_keypair)(short,PBYTE,int*,PBYTE,int*); // ���������� ���� ������ ��� ��������� ����� int (__cdecl *rsa_get_keyhash)(short,PBYTE,int*,PBYTE,int*); // ���������� hash ���� ������ ��� ��������� ����� int (__cdecl *rsa_set_keypair)(short,PBYTE,int); // ������������� �����, ��������� ����� int (__cdecl *rsa_get_pubkey)(HANDLE,PBYTE,int*); // ���������� ������ ���� �� ���������� ��������� int (__cdecl *rsa_set_pubkey)(HANDLE,PBYTE,int); // ��������� ������ ���� ��� ���������� ��������� void (__cdecl *rsa_set_timeout)(int); // ���������� ������� ��� ��������� ��������� ���������� int (__cdecl *rsa_get_state)(HANDLE); // �������� ������ ���������� ��������� int (__cdecl *rsa_get_hash)(PBYTE,int,PBYTE,int*); // ��������� SHA1(key) int (__cdecl *rsa_connect)(HANDLE); // ��������� ������� ��������� ��������� � ��������� ���������� int (__cdecl *rsa_disconnect)(HANDLE); // ��������� ���������� � ��������� ���������� int (__cdecl *rsa_disabled)(HANDLE); // ��������� ���������� �� ������� "disabled" LPSTR (__cdecl *rsa_recv)(HANDLE,LPCSTR); // ���������� ���������� ���� ��� �������� ������������ ��������� int (__cdecl *rsa_send)(HANDLE,LPCSTR); // �������� ��� �������� ��������� ������� int (__cdecl *rsa_encrypt_file)(HANDLE,LPCSTR,LPCSTR); int (__cdecl *rsa_decrypt_file)(HANDLE,LPCSTR,LPCSTR); LPSTR (__cdecl *utf8encode)(LPCWSTR); LPWSTR (__cdecl *utf8decode)(LPCSTR); int (__cdecl *is_7bit_string)(LPCSTR); int (__cdecl *is_utf8_string)(LPCSTR); int (__cdecl *rsa_export_keypair)(short,LPSTR,LPSTR,LPSTR); // export private key int (__cdecl *rsa_import_keypair)(short,LPSTR,LPSTR); // import & activate private key int (__cdecl *rsa_export_pubkey)(HANDLE,LPSTR); // export public key from context int (__cdecl *rsa_import_pubkey)(HANDLE,LPSTR); // import public key into context } RSA_EXPORT; typedef RSA_EXPORT* pRSA_EXPORT; typedef struct { int (__cdecl *rsa_inject)(HANDLE,LPCSTR); // ��������� ��������� � ������� �� �������� int (__cdecl *rsa_check_pub)(HANDLE,PBYTE,int,PBYTE,int); // ��������� ������������ SHA � ��������� ����, ���� ��� ��������� void (__cdecl *rsa_notify)(HANDLE,int); // ����������� � ����� ��������� } RSA_IMPORT; typedef RSA_IMPORT* pRSA_IMPORT; #endif