home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / k95source / ckosslc.h < prev    next >
C/C++ Source or Header  |  2020-01-01  |  29KB  |  597 lines

  1. /*
  2.   C K O S S L . H --  OpenSSL Interface Header for Kermit 95
  3.  
  4.   Copyright (C) 2000, 2004, Trustees of Columbia University in the City of New
  5.   York.  The C-Kermit software may not be, in whole or in part, licensed or
  6.   sold for profit as a software product itself, nor may it be included in or
  7.   distributed with commercial products or otherwise distributed by commercial
  8.   concerns to their clients or customers without written permission of the
  9.   Office of Kermit Development and Distribution, Columbia University.  This
  10.   copyright notice must not be removed, altered, or obscured.
  11.  
  12.   Copyright (C) 2006,2007  Secure Endpoints Inc.
  13.  
  14.   Author:  Jeffrey E Altman (jaltman@secure-endpoints.com),
  15.            Secure Endpoints Inc., New York City
  16. */
  17.  
  18. #ifdef OS2
  19. #ifdef CK_SSL
  20. #ifdef SSLDLL
  21. #define ERR_print_errors                 ck_ERR_print_errors
  22. #define ERR_print_errors_fp              ck_ERR_print_errors_fp
  23. #define ERR_error_string                 ck_ERR_error_string
  24. #define ERR_get_error                    ck_ERR_get_error
  25.  
  26. #define BIO_printf                       ck_BIO_printf
  27. #define BIO_ctrl                         ck_BIO_ctrl
  28. #define BIO_new                          ck_BIO_new
  29. #define BIO_s_file                       ck_BIO_s_file
  30. #define BIO_s_mem                        ck_BIO_s_mem
  31. #define BIO_s_null                       ck_BIO_s_null
  32. #define BIO_read                         ck_BIO_read
  33. #define BIO_write                        ck_BIO_write
  34. #define BIO_new_file                     ck_BIO_new_file
  35. #define BIO_free                         ck_BIO_free
  36. #define BIO_free_all                     ck_BIO_free_all
  37.  
  38. #define X509_get_issuer_name             ck_X509_get_issuer_name
  39. #define X509_verify_cert_error_string    ck_X509_verify_cert_error_string
  40. #define X509_NAME_oneline                ck_X509_NAME_oneline
  41. #define X509_NAME_get_text_by_NID        ck_X509_NAME_get_text_by_NID
  42. #define X509_get_subject_name            ck_X509_get_subject_name
  43. #define X509_STORE_CTX_new               ck_X509_STORE_CTX_new
  44. #define X509_STORE_CTX_free              ck_X509_STORE_CTX_free
  45. #define X509_STORE_CTX_get_current_cert  ck_X509_STORE_CTX_get_current_cert
  46. #define X509_STORE_CTX_get_error         ck_X509_STORE_CTX_get_error
  47. #define X509_STORE_CTX_get_error_depth   ck_X509_STORE_CTX_get_error_depth
  48. #define X509_get_default_cert_dir        ck_X509_get_default_cert_dir
  49. #define X509_free                        ck_X509_free
  50. #define X509_print_ex                    ck_X509_print_ex
  51. #define X509_NAME_print_ex               ck_X509_NAME_print_ex
  52.  
  53. #define RSA_free                         ck_RSA_free
  54. #define RSA_generate_key                 ck_RSA_generate_key
  55. #define RSA_public_decrypt               ck_RSA_public_decrypt 
  56.  
  57. #define DH_new                           ck_DH_new
  58. #define DH_free                          ck_DH_free
  59. #define DH_generate_key                  ck_DH_generate_key
  60. #define DH_generate_parameters           ck_DH_generate_parameters
  61.  
  62. #define DSA_free                         ck_DSA_free
  63. #define DSA_generate_key                 ck_DSA_generate_key
  64. #define DSA_generate_parameters          ck_DSA_generate_parameters
  65.  
  66. #define PEM_read_bio_DHparams            ck_PEM_read_bio_DHparams
  67. #define PEM_ASN1_read_bio                ck_PEM_ASN1_read_bio
  68.  
  69. #define d2i_DHparams                     ck_d2i_DHparams
  70. #define ASN1_TIME_print                  ck_ASN1_TIME_print
  71.  
  72. #ifndef sk_GENERAL_NAME_free
  73. #define sk_GENERAL_NAME_free             ck_sk_GENERAL_NAME_free
  74. #endif /* sk_GENERAL_NAME_free */
  75. #define X509V3_EXT_cleanup               ck_X509V3_EXT_cleanup
  76. #ifndef sk_GENERAL_NAME_value
  77. #define sk_GENERAL_NAME_value            ck_sk_GENERAL_NAME_value
  78. #endif /* sk_GENERAL_NAME_value */
  79. #ifndef sk_GENERAL_NAME_num
  80. #define sk_GENERAL_NAME_num              ck_sk_GENERAL_NAME_num
  81. #endif /* sk_GENERAL_NAME_num */
  82. #define X509V3_EXT_d2i                   ck_X509V3_EXT_d2i
  83. #define X509V3_add_standard_extensions   ck_X509V3_add_standard_extensions
  84. #define X509_get_ext                     ck_X509_get_ext
  85. #define X509_get_ext_by_NID              ck_X509_get_ext_by_NID
  86. #define ASN1_INTEGER_get                 ck_ASN1_INTEGER_get
  87. #define ASN1_STRING_cmp                  ck_ASN1_STRING_cmp
  88. #define X509_get_serialNumber            ck_X509_get_serialNumber
  89. #ifndef sk_X509_REVOKED_value
  90. #define sk_X509_REVOKED_value            ck_sk_X509_REVOKED_value
  91. #endif /* sk_X509_REVOKED_value */
  92. #ifndef sk_X509_REVOKED_num
  93. #define sk_X509_REVOKED_num              ck_sk_X509_REVOKED_num
  94. #endif /* sk_X509_REVOKED_num */
  95. #define X509_cmp_current_time            ck_X509_cmp_current_time
  96. #define X509_OBJECT_free_contents        ck_X509_OBJECT_free_contents
  97. #define X509_STORE_CTX_set_error         ck_X509_STORE_CTX_set_error
  98. #define X509_CRL_verify                  ck_X509_CRL_verify
  99. #define X509_get_pubkey                  ck_X509_get_pubkey
  100. #define X509_STORE_CTX_cleanup           ck_X509_STORE_CTX_cleanup
  101. #define X509_STORE_get_by_subject        ck_X509_STORE_get_by_subject
  102. #define X509_STORE_CTX_init              ck_X509_STORE_CTX_init
  103. #define PEM_read_X509                    ck_PEM_read_X509
  104. #define X509_LOOKUP_hash_dir             ck_X509_LOOKUP_hash_dir
  105. #define X509_LOOKUP_ctrl                 ck_X509_LOOKUP_ctrl
  106. #define X509_STORE_add_lookup            ck_X509_STORE_add_lookup
  107. #define X509_LOOKUP_file                 ck_X509_LOOKUP_file
  108. #define X509_STORE_new                   ck_X509_STORE_new
  109. #define X509_STORE_free                  ck_X509_STORE_free
  110. #define X509_STORE_load_locations        ck_X509_STORE_load_locations
  111. #define X509_STORE_set_default_paths     ck_X509_STORE_set_default_paths
  112. #ifdef ASN1_INTEGER_cmp
  113. #undef ASN1_INTEGER_cmp
  114. #endif /* ASN1_INTEGER_cmp */
  115. #define ASN1_INTEGER_cmp                 ck_ASN1_INTEGER_cmp
  116. #define X509_subject_name_hash           ck_X509_subject_name_hash
  117. #define X509_issuer_name_hash            ck_X509_issuer_name_hash
  118. #define X509_to_user                     ck_X509_to_user
  119. #define X509_userok                      ck_X509_userok
  120. #define CRYPTO_set_mem_functions         ck_CRYPTO_set_mem_functions
  121. #define CRYPTO_set_locking_callback      ck_CRYPTO_set_locking_callback
  122. #define CRYPTO_set_dynlock_create_callback  ck_CRYPTO_set_dynlock_create_callback  
  123. #define CRYPTO_set_dynlock_lock_callback    ck_CRYPTO_set_dynlock_lock_callback    
  124. #define CRYPTO_set_dynlock_destroy_callback ck_CRYPTO_set_dynlock_destroy_callback 
  125. #define RAND_screen                      ck_RAND_screen
  126. #define CRYPTO_num_locks                 ck_CRYPTO_num_locks
  127. #define RAND_status                      ck_RAND_status
  128. #define RAND_file_name                   ck_RAND_file_name
  129. #define RAND_egd                         ck_RAND_egd
  130. #define RAND_load_file                   ck_RAND_load_file
  131. #define RAND_write_file                  ck_RAND_write_file
  132. #define RAND_seed                        ck_RAND_seed
  133. #define sk_free                          ck_sk_free
  134. #define sk_value                         ck_sk_value
  135. #define sk_num                           ck_sk_num
  136. #ifdef ZLIB
  137. #define COMP_zlib                        ck_COMP_zlib
  138. #endif
  139. #define COMP_rle                         ck_COMP_rle
  140. #define ERR_peek_error                   ck_ERR_peek_error
  141. #define sk_pop_free                      ck_sk_pop_free
  142. #define PEM_read_bio_X509                ck_PEM_read_bio_X509
  143. #define SSLeay                           ck_SSLeay
  144. #define SSLeay_version                   ck_SSLeay_version
  145.  
  146. /* need to  be added for OpenSSH */
  147. #define BN_new                            ck_BN_new
  148. #define BN_bin2bn                         ck_BN_bin2bn
  149. #define BN_bn2bin                         ck_BN_bn2bin
  150. #define BN_num_bits                       ck_BN_num_bits
  151. #define BN_cmp                            ck_BN_cmp
  152. #define BN_add_word                       ck_BN_add_word
  153. #define BN_lshift                         ck_BN_lshift
  154. #define BN_set_word                       ck_BN_set_word
  155. #define BN_dec2bn                         ck_BN_dec2bn
  156. #define BN_bn2dec                         ck_BN_bn2dec
  157. #define BN_copy                           ck_BN_copy
  158. #define BN_CTX_new                        ck_BN_CTX_new
  159. #define BN_CTX_free                       ck_BN_CTX_free
  160. #define BN_CTX_get                        ck_BN_CTX_get
  161. #define BN_CTX_start                      ck_BN_CTX_start
  162. #define BN_CTX_end                        ck_BN_CTX_end
  163. #define BN_div                            ck_BN_div
  164. #define BN_sub                            ck_BN_sub
  165. #define BN_value_one                      ck_BN_value_one
  166. #define BN_free                           ck_BN_free
  167. #define BN_hex2bn                         ck_BN_hex2bn
  168. #define BN_is_bit_set                     ck_BN_is_bit_set
  169. #define BN_rand                           ck_BN_rand
  170. #define BN_clear                          ck_BN_clear
  171. #define BN_set_word     ck_BN_set_word
  172. #define BN_bn2hex       ck_BN_bn2hex
  173. #define BN_lshift       ck_BN_lshift
  174. #define BN_add          ck_BN_add
  175. #define BN_mul          ck_BN_mul
  176. #ifndef BN_mod
  177. #define BN_mod          ck_BN_mod
  178. #endif /* BN_mod may be a macro */
  179. #define BN_mod_word     ck_BN_mod_word
  180. #define BN_mod_mul      ck_BN_mod_mul
  181. #define BN_mod_exp      ck_BN_mod_exp
  182. #define BN_is_prime     ck_BN_is_prime
  183. #define BN_ucmp         ck_BN_ucmp
  184. #define BN_mul_word     ck_BN_mul_word
  185. #define BN_rshift1      ck_BN_rshift1
  186. #define BN_dup          ck_BN_dup
  187.  
  188. #define MD5_Final                         ck_MD5_Final
  189. #define MD5_Update                        ck_MD5_Update
  190. #define MD5_Init                          ck_MD5_Init
  191. #define BN_clear_free                     ck_BN_clear_free
  192. #define EVP_DigestFinal                   ck_EVP_DigestFinal
  193. #define EVP_DigestUpdate                  ck_EVP_DigestUpdate
  194. #define EVP_DigestInit                    ck_EVP_DigestInit
  195. #define EVP_sha1                          ck_EVP_sha1
  196. #define EVP_md5                           ck_EVP_md5
  197. #define EVP_des_ede3_cbc                  ck_EVP_des_ede3_cbc
  198. #define EVP_PKEY_free                     ck_EVP_PKEY_free
  199. #define EVP_PKEY_get1_DSA                 ck_EVP_PKEY_get1_DSA
  200. #define EVP_PKEY_get1_RSA                 ck_EVP_PKEY_get1_RSA
  201. #define EVP_get_digestbyname              ck_EVP_get_digestbyname
  202. #define EVP_ripemd160                     ck_EVP_ripemd160
  203.  
  204. #define RSA_new                           ck_RSA_new
  205. #define RSA_public_encrypt                ck_RSA_public_encrypt
  206. #define RSA_private_encrypt               ck_RSA_private_encrypt
  207. #define RSA_private_decrypt               ck_RSA_private_decrypt
  208. #define RSA_sign                          ck_RSA_sign
  209. #define RSA_size                          ck_RSA_size
  210. #define RSA_verify                        ck_RSA_verify
  211.  
  212. #define DSA_new                           ck_DSA_new
  213. #define DSA_SIG_free                      ck_DSA_SIG_free
  214. #define DSA_do_sign                       ck_DSA_do_sign
  215. #define DSA_do_verify                     ck_DSA_do_verify
  216. #define DSA_SIG_new                       ck_DSA_SIG_new
  217.  
  218. #ifndef HMAC_cleanup
  219. #define HMAC_cleanup                      ck_HMAC_cleanup
  220. #endif
  221. #define HMAC_CTX_cleanup                  ck_HMAC_CTX_cleanup
  222. #define HMAC_Final                        ck_HMAC_Final
  223. #define HMAC_Update                       ck_HMAC_Update
  224. #define HMAC_Init                         ck_HMAC_Init
  225.  
  226. #define RAND_add                          ck_RAND_add
  227. #define RAND_bytes                        ck_RAND_bytes
  228.  
  229. #define RSA_blinding_on                   ck_RSA_blinding_on              
  230. #define EVP_aes_256_cbc                   ck_EVP_aes_256_cbc              
  231. #define EVP_aes_192_cbc                   ck_EVP_aes_192_cbc              
  232. #define EVP_aes_128_cbc                   ck_EVP_aes_128_cbc              
  233. #define EVP_rc4                           ck_EVP_rc4                      
  234. #define EVP_cast5_cbc                     ck_EVP_cast5_cbc                
  235. #define EVP_bf_cbc                        ck_EVP_bf_cbc                   
  236. #define EVP_des_cbc                       ck_EVP_des_cbc                  
  237. #define EVP_enc_null                      ck_EVP_enc_null                 
  238. #define EVP_CipherInit                    ck_EVP_CipherInit               
  239. #define EVP_CIPHER_CTX_set_key_length     ck_EVP_CIPHER_CTX_set_key_length
  240. #define EVP_CIPHER_CTX_init               ck_EVP_CIPHER_CTX_init          
  241. #define EVP_CIPHER_CTX_cleanup            ck_EVP_CIPHER_CTX_cleanup       
  242. #define EVP_CIPHER_CTX_key_length      ck_EVP_CIPHER_CTX_key_length
  243. #define EVP_Cipher              ck_EVP_Cipher
  244. #define EVP_CIPHER_CTX_set_app_data       ck_EVP_CIPHER_CTX_set_app_data
  245. #define EVP_CIPHER_CTX_get_app_data      ck_EVP_CIPHER_CTX_get_app_data
  246. #define EVP_CIPHER_CTX_iv_length          ck_EVP_CIPHER_CTX_iv_length
  247.  
  248. #ifndef CKCFTP_C
  249. #ifndef CKUATH_C
  250. #ifndef CKOATH_C
  251. #ifdef des_set_key
  252. #undef des_set_key
  253. #endif
  254. #define des_set_key                       ck_des_set_key
  255. #ifdef des_ncbc_encrypt
  256. #undef des_ncbc_encrypt
  257. #endif
  258. #define des_ncbc_encrypt                  ck_des_ncbc_encrypt
  259. #ifdef des_ede3_cbc_encrypt
  260. #undef des_ede3_cbc_encrypt
  261. #endif
  262. #define des_ede3_cbc_encrypt              ck_des_ede3_cbc_encrypt
  263. #endif /* CKOATH_C */
  264. #endif /* CKUATH_C */
  265. #endif /* CKCFTP_C */
  266.  
  267. #define BF_set_key                        ck_BF_set_key
  268. #define BF_cbc_encrypt                    ck_BF_cbc_encrypt
  269. #define RC4_set_key                       ck_RC4_set_key
  270. #define RC4                               ck_RC4
  271. #define CAST_set_key                      ck_CAST_set_key
  272. #define CAST_cbc_encrypt                  ck_CAST_cbc_encrypt
  273. #define OBJ_nid2sn                        ck_OBJ_nid2sn
  274. #define OBJ_create                        ck_OBJ_create
  275. #define DH_compute_key                    ck_DH_compute_key
  276. #define DH_size                           ck_DH_size
  277. #define ERR_get_error                     ck_ERR_get_error
  278. #define ERR_load_crypto_strings           ck_ERR_load_crypto_strings
  279. #define CRYPTO_free                       ck_CRYPTO_free
  280. #define PEM_write_DSAPrivateKey           ck_PEM_write_DSAPrivateKey
  281. #define PEM_write_RSAPrivateKey           ck_PEM_write_RSAPrivateKey
  282. #define PEM_write_bio_X509                ck_PEM_write_bio_X509
  283. #define PEM_read_PrivateKey               ck_PEM_read_PrivateKey
  284. #define X509_get_default_cert_dir_env     ck_X509_get_default_cert_dir_env
  285. #define X509_get_default_cert_file_env    ck_X509_get_default_cert_file_env
  286. #define EVP_MD_size                       ck_EVP_MD_size
  287.  
  288. #define SHA1_Init               ck_SHA1_Init
  289. #define SHA1_Update             ck_SHA1_Update
  290. #define SHA1_Final              ck_SHA1_Final
  291.  
  292. #define OpenSSL_add_all_ciphers           ck_OpenSSL_add_all_ciphers
  293. #define OpenSSL_add_all_digests           ck_OpenSSL_add_all_digests
  294. #define OPENSSL_add_all_algorithms_noconf ck_OPENSSL_add_all_algorithms_noconf
  295. #define OPENSSL_add_all_algorithms_conf   ck_OPENSSL_add_all_algorithms_conf
  296.  
  297. int     ck_ASN1_INTEGER_cmp(ASN1_INTEGER *x, ASN1_INTEGER *y);
  298. void ck_ERR_print_errors(BIO *bp);
  299. void ck_ERR_print_errors_fp(FILE *fp);
  300. unsigned long ck_ERR_get_error(void);
  301. char *ck_ERR_error_string(unsigned long e,char *buf);
  302.  
  303. int ck_BIO_printf( BIO * bio, const char *, ... );
  304. long    ck_BIO_ctrl(BIO *bp,int cmd,long larg,char *parg);
  305. BIO *   ck_BIO_new(BIO_METHOD *type);
  306. BIO_METHOD *ck_BIO_s_file(void );
  307. BIO_METHOD *ck_BIO_s_mem(void );
  308. BIO_METHOD *ck_BIO_s_null(void );
  309. int     ck_BIO_read(BIO *b, char *data, int len);
  310. int     ck_BIO_write(BIO *b, const char *data, int len);
  311. int     ck_BIO_free(BIO *a);
  312. int     ck_BIO_free_all(BIO *a);
  313. BIO *   ck_BIO_new_file(char *filename, char *mode);
  314. X509_NAME * ck_X509_get_issuer_name(X509 *a);
  315. char *  ck_X509_verify_cert_error_string(int);
  316. char *      ck_X509_NAME_oneline(X509_NAME *a,char *buf,int len);
  317. int     ck_X509_NAME_print_ex(BIO *out, X509_NAME *nm, int indent, unsigned long flags);
  318. int         ck_X509_NAME_get_text_by_NID(X509_NAME *a,int NID,char *buf,int len);
  319. X509_NAME * ck_X509_get_subject_name(X509 *a);
  320. X509 *      ck_X509_STORE_CTX_get_current_cert(X509_STORE_CTX *ctx);
  321. int         ck_X509_STORE_CTX_get_error(X509_STORE_CTX *ctx);
  322. int         ck_X509_STORE_CTX_get_error_depth(X509_STORE_CTX *ctx);
  323. int         ck_ASN1_TIME_print( BIO * bio, ASN1_TIME *a);
  324. void        ck_X509_free(X509 *a);
  325. const char * ck_X509_get_default_cert_dir();
  326. int         ck_X509_print_ex(BIO *bio, X509 *cert, unsigned long, unsigned long);
  327.  
  328. void    ck_RSA_free(RSA *r);
  329. RSA *   ck_RSA_generate_key(int bits, unsigned long e,
  330.                                    void(*callback) (int,int,char *),
  331.                                    char *cb_arg);
  332. DH *    ck_DH_new(void);
  333. void    ck_DH_free(DH *r);
  334. DH *    ck_DH_generate_parameters(int bits, unsigned long e,
  335.                                          void(*callback) (int,int,char *),
  336.                                          char *cb_arg);
  337. int     ck_DH_generate_key(DH * dh);
  338. void    ck_DSA_free(DSA *r);
  339. DSA *   ck_DSA_generate_parameters( int bits,
  340.                                           unsigned char * seed,
  341.                                           int seed_len,
  342.                                           int *counter_ret,
  343.                                           unsigned long *h_ret,
  344.                                           void(*callback) (int,int,char *),
  345.                                           char *cb_arg);
  346. int     ck_DSA_generate_key(DSA * dh);
  347. DH * ck_d2i_DHparams(DH **a,unsigned char **pp, long length);
  348. DH * ck_PEM_read_bio_DHparams(BIO *bp,DH **x,
  349.                               int (*cb) (char *,int,int,void *),void *u);
  350. char * ck_PEM_ASN1_read_bio(char *(*d2i) (),
  351.                                const char *name,BIO *bp,char **x,
  352.                                pem_password_cb *cb, void *u);
  353.  
  354. void ck_sk_GENERAL_NAME_free(STACK_OF(GENERAL_NAME) * sk);
  355. GENERAL_NAME * ck_sk_GENERAL_NAME_value(const STACK_OF(GENERAL_NAME) * sk,
  356.                                          int n);
  357. int ck_sk_GENERAL_NAME_num(STACK_OF(GENERAL_NAME) * sk);
  358. X509_REVOKED * ck_sk_X509_REVOKED_value(STACK_OF(X509_REVOKED) * sk,int n);
  359. int ck_sk_X509_REVOKED_num(STACK_OF(X509_REVOKED) *sk);
  360. long ck_ASN1_INTEGER_get(ASN1_INTEGER *a);
  361. int ck_ASN1_STRING_cmp(ASN1_STRING *a, ASN1_STRING *b);
  362. X509 *ck_PEM_read_X509(FILE *fp,char **x,int (*cb)(char *,int,int,void *),
  363.                         void *u);
  364. X509_EXTENSION * ck_X509_get_ext(X509 *x, int loc);
  365. int ck_X509_get_ext_by_NID(X509 * x, int nid, int lastpos);
  366. ASN1_INTEGER * ck_X509_get_serialNumber(X509 *x);
  367. int ck_X509_cmp_current_time(ASN1_UTCTIME *s);
  368. EVP_PKEY * ck_X509_get_pubkey(X509 *x);
  369. int ck_X509_CRL_verify(X509_CRL *a, EVP_PKEY *r);
  370. int ck_X509_STORE_get_by_subject(X509_STORE_CTX *vs,int type,X509_NAME *name,
  371.                                   X509_OBJECT *ret);
  372.  
  373. X509_STORE_CTX * ck_X509_STORE_CTX_new();
  374. void ck_X509_STORE_CTX_free(X509_STORE_CTX *ctx);
  375. void ck_X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx);
  376. void ck_X509_STORE_CTX_set_error(X509_STORE_CTX *ctx,int s);
  377. void ck_X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store,X509 *x509,
  378.                              STACK_OF(X509) *chain);
  379. void ck_X509_OBJECT_free_contents(X509_OBJECT *a);
  380. int ck_X509V3_add_standard_extensions(void);
  381. void ck_X509V3_EXT_cleanup(void);
  382. void *ck_X509V3_EXT_d2i(X509_EXTENSION *ext);
  383.  
  384. X509_LOOKUP_METHOD * ck_X509_LOOKUP_hash_dir(void);
  385. int ck_X509_LOOKUP_ctrl(X509_LOOKUP *ctx, int cmd, const char *argc,
  386.                            long argl, char ** ret);
  387. X509_LOOKUP_METHOD * ck_X509_LOOKUP_file(void);
  388. X509_LOOKUP * ck(X509_STORE *v, X509_LOOKUP_METHOD *m);
  389. X509_STORE * ck_X509_STORE_new(void);
  390. void ck_X509_STORE_free(X509_STORE *);
  391. int  ck_X509_STORE_load_locations(X509_STORE *,char *,char *);
  392. int  ck_X509_STORE_set_default_paths(X509_STORE *);
  393. int  ck_X509_subject_name_hash(X509 *);
  394. int  ck_X509_issuer_name_hash(X509 *);
  395. int  ck_X509_to_user(X509 *peer_cert, char *userid, int len);
  396. int  ck_X509_userok(X509 *peer_cert, const char *userid);
  397. void ck_CRYPTO_set_mem_functions(void *(*m)(unsigned int),
  398.                                  void *(*r)(void *,unsigned int),
  399.                                  void (*free_func)(void *));
  400. void ck_CRYPTO_set_locking_callback(void (*func)(int mode,int type,
  401.                                     const char *file,int line));
  402. void ck_RAND_screen(void);
  403. int  ck_CRYPTO_num_locks(void);
  404.  
  405. int  ck_RAND_status(void);
  406. char * ck_RAND_file_name(char *,int);
  407. int  ck_RAND_egd(char *);
  408. int  ck_RAND_load_file(char *,int);
  409. int  ck_RAND_write_file(char *);
  410. void ck_RAND_seed(const void * buf, int num);
  411. void ck_sk_free(STACK *);
  412. char * ck_sk_value(const STACK *, int);
  413. int ck_sk_num(const STACK *);
  414.  
  415. #ifdef ZLIB
  416. COMP_METHOD * ck_COMP_zlib(void );
  417. #endif /* ZLIB */
  418. COMP_METHOD * ck_COMP_rle(void );
  419.  
  420. unsigned long ck_ERR_peek_error(void);
  421. void ck_sk_pop_free(STACK *st, void (*func)(void *));
  422. X509 * ck_PEM_read_bio_X509(BIO *bp, X509** x509, pem_password_cb *cb, void *u);
  423. unsigned long ck_SSLeay(void);
  424. const char * ck_SSLeay_version(int);
  425.  
  426. BIGNUM *ck_BN_new(void);
  427. BIGNUM * ck_BN_bin2bn(const unsigned char *s,int len,BIGNUM *ret);
  428. int     ck_BN_bn2bin(const BIGNUM *a, unsigned char *to);
  429. char *  ck_BN_bn2hex(const BIGNUM *a);
  430. int     ck_BN_num_bits(const BIGNUM *a);
  431. int     ck_BN_cmp(const BIGNUM *a, const BIGNUM *b);
  432. int     ck_BN_add_word(BIGNUM *a, BN_ULONG w);
  433. int     ck_BN_lshift(BIGNUM *r, const BIGNUM *a, int n);
  434. int     ck_BN_set_word(BIGNUM *a, BN_ULONG w);
  435. int     ck_BN_dec2bn(BIGNUM **a, const char *str);
  436. char *  ck_BN_bn2dec(const BIGNUM *a);
  437. BIGNUM *ck_BN_copy(BIGNUM *a, const BIGNUM *b);
  438. BN_CTX *ck_BN_CTX_new(void);
  439. void    ck_BN_CTX_free(BN_CTX *c);
  440. void    ck_BN_CTX_start(BN_CTX *ctx);
  441. BIGNUM *ck_BN_CTX_get(BN_CTX *ctx);
  442. void    ck_BN_CTX_end(BN_CTX *ctx);
  443. int     ck_BN_div(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, const BIGNUM *d,BN_CTX *ctx);
  444. int     ck_BN_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b);
  445. const BIGNUM *ck_BN_value_one(void);
  446. void    ck_BN_free(BIGNUM *a);
  447. int     ck_BN_hex2bn(BIGNUM **a, const char *str);
  448. int     ck_BN_is_bit_set(const BIGNUM *a, int n);
  449. int     ck_BN_rand(BIGNUM *rnd, int bits, int top,int bottom);
  450. int     ck_BN_set_word(BIGNUM *a, BN_ULONG w);
  451. char *  ck_BN_bn2hex(const BIGNUM *a);
  452. int     ck_BN_lshift(BIGNUM *r, const BIGNUM *a, int n);
  453. int     ck_BN_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b);
  454. int     ck_BN_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx);
  455. int     ck_BN_mod(BIGNUM *rem, const BIGNUM *m, const BIGNUM *d, BN_CTX *ctx);
  456. BN_ULONG ck_BN_mod_word(const BIGNUM *a, BN_ULONG w);
  457. int     ck_BN_mod_mul(BIGNUM *ret, BIGNUM *a, BIGNUM *b, const BIGNUM *m, BN_CTX *ctx);
  458. int     ck_BN_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,const BIGNUM *m,BN_CTX *ctx);
  459. int     ck_BN_is_prime(const BIGNUM *p,int nchecks,void (*callback)(int,int,void *),BN_CTX *ctx,void *cb_arg);
  460. int     ck_BN_ucmp(const BIGNUM *a, const BIGNUM *b);
  461. int     ck_BN_mul_word(BIGNUM *a, BN_ULONG w);
  462. int     ck_BN_rshift1(BIGNUM *r, const BIGNUM *a);
  463. BIGNUM *ck_BN_dup(const BIGNUM *a);
  464.  
  465. int ck_MD5_Init(MD5_CTX *c);
  466. int ck_MD5_Update(MD5_CTX *c, const void *data, unsigned long len);
  467. int ck_MD5_Final(unsigned char *md, MD5_CTX *c);
  468. unsigned char *ck_MD5(const unsigned char *d, unsigned long n, unsigned char *md);
  469.  
  470. int     ck_EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type);
  471. int     ck_EVP_DigestUpdate(EVP_MD_CTX *ctx,const void *d,
  472.                          unsigned int cnt);
  473. int     ck_EVP_DigestFinal(EVP_MD_CTX *ctx,unsigned char *md,unsigned int *s);
  474. const EVP_MD *ck_EVP_sha1(void);
  475. const EVP_MD *ck_EVP_md5(void);
  476. const EVP_CIPHER *ck_EVP_des_ede3_cbc(void);
  477. const EVP_MD *ck_EVP_ripemd160(void);
  478. const EVP_MD *ck_EVP_get_digestbyname(const char *name);
  479. RSA *           ck_EVP_PKEY_get1_RSA(EVP_PKEY *pkey);
  480. DSA *           ck_EVP_PKEY_get1_DSA(EVP_PKEY *pkey);
  481. void            ck_EVP_PKEY_free(EVP_PKEY *pkey);
  482.  
  483. RSA *   ck_RSA_new(void);
  484. int     ck_RSA_public_encrypt(int flen, const unsigned char *from,
  485.                 unsigned char *to, RSA *rsa,int padding);
  486. int     ck_RSA_private_encrypt(int flen, const unsigned char *from,
  487.                 unsigned char *to, RSA *rsa,int padding);
  488. int     ck_RSA_private_decrypt(int flen, const unsigned char *from,
  489.                 unsigned char *to, RSA *rsa,int padding);
  490. int     ck_RSA_public_decrypt(int flen, const unsigned char *from,
  491.                 unsigned char *to, RSA *rsa,int padding);
  492. int     ck_RSA_size(const RSA *);
  493. int ck_RSA_sign(int type, const unsigned char *m, unsigned int m_len,
  494.         unsigned char *sigret, unsigned int *siglen, RSA *rsa);
  495. int ck_RSA_verify(int type, const unsigned char *m, unsigned int m_len,
  496.         unsigned char *sigbuf, unsigned int siglen, RSA *rsa);
  497.  
  498. DSA *   ck_DSA_new(void);
  499. DSA_SIG * ck_DSA_SIG_new(void);
  500. void    ck_DSA_SIG_free(DSA_SIG *a);
  501. DSA_SIG * ck_DSA_do_sign(const unsigned char *dgst,int dlen,DSA *dsa);
  502. int     ck_DSA_do_verify(const unsigned char *dgst,int dgst_len,
  503.                       DSA_SIG *sig,DSA *dsa);
  504.  
  505. void ck_HMAC_Init(HMAC_CTX *ctx, const void *key, int len,
  506.                const EVP_MD *md);
  507. void ck_HMAC_Update(HMAC_CTX *ctx, const unsigned char *data, int len);
  508. void ck_HMAC_Final(HMAC_CTX *ctx, unsigned char *md, unsigned int *len);
  509. void ck_HMAC_cleanup(HMAC_CTX *ctx);
  510. void ck_HMAC_CTX_cleanup(HMAC_CTX *ctx);
  511. void ck_RAND_add(const void *buf,int num,double entropy);
  512. int  ck_RAND_bytes(unsigned char *buf,int num);
  513. #ifdef CKOSSLC_C
  514. #ifndef const_des_cblock
  515. #define const_des_cblock des_cblock
  516. #endif
  517. int  ck_des_set_key(const_des_cblock *k,des_key_schedule s);
  518. void ck_des_ncbc_encrypt(const unsigned char *input,unsigned char *output,
  519.                       long length,des_key_schedule schedule,des_cblock *ivec,
  520.                       int enc);
  521. void ck_des_ede3_cbc_encrypt(const unsigned char *input,unsigned char *output,
  522.                           long length,
  523.                           des_key_schedule ks1,des_key_schedule ks2,
  524.                           des_key_schedule ks3,des_cblock *ivec,int enc);
  525. #endif /* CKOSSLC_C */
  526. void ck_BF_set_key(BF_KEY *key, int len, const unsigned char *data);
  527. void ck_BF_cbc_encrypt(const unsigned char *in, unsigned char *out, long length,
  528.         const BF_KEY *schedule, unsigned char *ivec, int enc);
  529. void ck_RC4_set_key(RC4_KEY *key, int len, const unsigned char *data);
  530. void ck_RC4(RC4_KEY *key, unsigned long len, const unsigned char *indata,
  531.                 unsigned char *outdata);
  532. void ck_CAST_set_key(CAST_KEY *key, int len, const unsigned char *data);
  533. void ck_CAST_cbc_encrypt(const unsigned char *in, unsigned char *out, long length,
  534.                       CAST_KEY *ks, unsigned char *iv, int enc);
  535. int  ck_DH_compute_key(unsigned char *key,const BIGNUM *pub_key,DH *dh);
  536. int  ck_DH_size(const DH *dh);
  537. const char *    ck_OBJ_nid2sn(int n);
  538. int             ck_OBJ_create(const char *oid,const char *sn,const char *ln);
  539. unsigned long ck_ERR_get_error(void );
  540. void ck_ERR_load_crypto_strings(void);
  541. void    ck_BN_clear_free(BIGNUM *a);
  542. void    ck_BN_clear(BIGNUM *a);
  543. void ck_CRYPTO_free(void *);
  544.  
  545. int ck_PEM_write_DSAPrivateKey(FILE *fp, char *x,
  546.              const EVP_CIPHER *enc, unsigned char *kstr, int klen,
  547.              pem_password_cb *callback, void *u);
  548. int ck_PEM_write_RSAPrivateKey(FILE *fp, char *x,
  549.              const EVP_CIPHER *enc, unsigned char *kstr, int klen,
  550.              pem_password_cb *callback, void *u);
  551. int ck_PEM_write_bio_X509(BIO *a, X509 *x);
  552. EVP_PKEY *ck_PEM_read_PrivateKey(FILE *fp, EVP_PKEY **x, pem_password_cb *cb, void *u);
  553.  
  554. int ck_RSA_blinding_on(RSA *rsa, BN_CTX *ctx);
  555. const EVP_CIPHER *ck_EVP_aes_256_cbc(void);
  556. const EVP_CIPHER *ck_EVP_aes_192_cbc(void);
  557. const EVP_CIPHER *ck_EVP_aes_128_cbc(void);
  558. const EVP_CIPHER *ck_EVP_rc4(void);
  559. const EVP_CIPHER *ck_EVP_cast5_cbc(void); 
  560. const EVP_CIPHER *ck_EVP_bf_cbc(void);  
  561. const EVP_CIPHER *ck_EVP_des_cbc(void);    
  562. const EVP_CIPHER *ck_EVP_enc_null(void);   
  563. int   ck_EVP_CipherInit(EVP_CIPHER_CTX *ctx,const EVP_CIPHER *cipher,
  564.                        const unsigned char *key,const unsigned char *iv,
  565.                        int enc);
  566. void ck_EVP_CIPHER_CTX_init(EVP_CIPHER_CTX *a);
  567. int  ck_EVP_CIPHER_CTX_cleanup(EVP_CIPHER_CTX *a);
  568. int  ck_EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *x, int keylen);
  569. int  ck_EVP_CIPHER_CTX_key_length(const EVP_CIPHER_CTX *ctx);
  570. int  ck_EVP_Cipher(EVP_CIPHER_CTX *c, unsigned char *out, 
  571.            const unsigned char *in, unsigned int inl);
  572. int  ck_EVP_CIPHER_CTX_iv_length(const EVP_CIPHER_CTX *ctx);
  573. void *ck_EVP_CIPHER_CTX_get_app_data(const EVP_CIPHER_CTX *ctx);
  574. void ck_EVP_CIPHER_CTX_set_app_data(EVP_CIPHER_CTX *ctx, void *data);
  575.  
  576. const char *ck_X509_get_default_cert_dir_env(void);
  577. const char *ck_X509_get_default_cert_file_env(void);
  578. int  ck_EVP_MD_size(const EVP_MD *md);
  579.  
  580. void ck_SHA1_Init(SHA_CTX *c);
  581. void ck_SHA1_Update(SHA_CTX *c, const void *data, unsigned long len);
  582. void ck_SHA1_Final(unsigned char *md, SHA_CTX *c);
  583. void ck_OpenSSL_add_all_ciphers(void);
  584. void ck_OpenSSL_add_all_digests(void);
  585. void ck_OPENSSL_add_all_algorithms_noconf(void);
  586. void ck_OPENSSL_add_all_algorithms_conf(void);
  587.  
  588. extern int crypto_dll_loaded;
  589. #ifdef NT
  590. extern HINSTANCE hCRYPTO;
  591. #else /* NT */
  592. extern HMODULE hCRYPTO;
  593. #endif /* NT */
  594. #endif /* OS2    */
  595. #endif /* CK_SSL */
  596. #endif /* SSLDLL */
  597.