]> gitweb.factorcode.org Git - factor.git/blob - basis/openssl/libcrypto/libcrypto.factor
Merge commit 'mongo-factor-driver/master' into mongo-factor-driver
[factor.git] / basis / openssl / libcrypto / libcrypto.factor
1 ! Copyright (C) 2007 Elie CHAFTARI, 2009 Maxim Savchenko
2 ! See http://factorcode.org/license.txt for BSD license.
3 !
4 ! Tested with OpenSSL 0.9.8a_0 on Mac OS X 10.4.9 PowerPC
5 !
6 ! export LD_LIBRARY_PATH=/opt/local/lib
7
8 USING: alien alien.syntax combinators kernel system
9 alien.libraries ;
10
11 IN: openssl.libcrypto
12
13 <<
14 {
15     { [ os openbsd? ] [ ] } ! VM is linked with it
16     { [ os winnt? ] [ "libcrypto" "libeay32.dll" "cdecl" add-library ] }
17     { [ os macosx? ] [ "libcrypto" "libcrypto.dylib" "cdecl" add-library ] }
18     { [ os unix? ] [ "libcrypto" "libcrypto.so" "cdecl" add-library ] }
19 } cond
20 >>
21
22 C-STRUCT: bio-method
23     { "int" "type" }
24     { "void*" "name" }
25     { "void*" "bwrite" }
26     { "void*" "bread" }
27     { "void*" "bputs" }
28     { "void*" "bgets" }
29     { "void*" "ctrl" }
30     { "void*" "create" }
31     { "void*" "destroy" }
32     { "void*" "callback-ctrl" } ;
33
34 C-STRUCT: bio
35     { "void*" "method" }
36     { "void*" "callback" }
37     { "void*" "cb-arg" }
38     { "int" "init" }
39     { "int" "shutdown" }
40     { "int" "flags" }
41     { "int" "retry-reason" }
42     { "int" "num" }
43     { "void*" "ptr" }
44     { "void*" "next-bio" }
45     { "void*" "prev-bio" }
46     { "int" "references" } 
47     { "ulong" "num-read" }
48     { "ulong" "num-write" } 
49     { "void*" "crypto-ex-data-stack" }
50     { "int" "crypto-ex-data-dummy" } ;
51
52 CONSTANT: BIO_NOCLOSE       HEX: 00
53 CONSTANT: BIO_CLOSE         HEX: 01
54
55 CONSTANT: RSA_3             HEX: 3
56 CONSTANT: RSA_F4            HEX: 10001
57
58 CONSTANT: BIO_C_SET_SSL     109
59 CONSTANT: BIO_C_GET_SSL     110
60
61 LIBRARY: libcrypto
62
63 ! ===============================================
64 ! bio.h
65 ! ===============================================
66
67 FUNCTION: bio* BIO_new_file ( char* filename, char* mode ) ;
68
69 FUNCTION: int BIO_printf ( bio* bio, char* format ) ;
70
71 FUNCTION: long BIO_ctrl ( void* bio, int cmd, long larg, void* parg ) ;
72
73 FUNCTION: void* BIO_new_socket ( int fd, int close-flag ) ;
74
75 FUNCTION: void* BIO_new ( void* method ) ;
76
77 FUNCTION: int BIO_set ( void* bio, void* method ) ;
78
79 FUNCTION: int BIO_free ( void* bio ) ;
80
81 FUNCTION: void* BIO_push ( void* bio, void* append ) ;
82
83 FUNCTION: int BIO_read ( void* b, void* buf, int len ) ;
84
85 FUNCTION: int BIO_gets ( void* b, char* buf, int size ) ;
86
87 FUNCTION: int BIO_write ( void* b, void* buf, int len ) ;
88
89 FUNCTION: int BIO_puts ( void* bp, char* buf ) ;
90
91 FUNCTION: ulong ERR_get_error (  ) ;
92
93 FUNCTION: void ERR_clear_error ( ) ;
94
95 FUNCTION: char* ERR_error_string ( ulong e, void* buf ) ;
96
97 FUNCTION: void* BIO_f_buffer (  ) ;
98
99 ! ===============================================
100 ! evp.h
101 ! ===============================================
102
103 CONSTANT: EVP_MAX_MD_SIZE 64
104
105 C-STRUCT: EVP_MD_CTX
106     { "EVP_MD*" "digest" }
107     { "ENGINE*" "engine" }
108     { "ulong" "flags" }
109     { "void*" "md_data" } ;
110
111 TYPEDEF: void* EVP_MD*
112 TYPEDEF: void* ENGINE*
113
114 ! Initialize ciphers and digest tables
115 FUNCTION: void OpenSSL_add_all_ciphers (  ) ;
116
117 FUNCTION: void OpenSSL_add_all_digests (  ) ;
118
119 ! Clean them up before exiting
120 FUNCTION: void EVP_cleanup (  ) ;
121
122 FUNCTION: EVP_MD* EVP_get_digestbyname ( char* name ) ;
123
124 FUNCTION: void EVP_MD_CTX_init ( EVP_MD* ctx ) ;
125
126 FUNCTION: int EVP_MD_CTX_cleanup ( EVP_MD_CTX* ctx ) ;
127
128 FUNCTION: EVP_MD_CTX* EVP_MD_CTX_create ( ) ;
129
130 FUNCTION: void EVP_MD_CTX_destroy ( EVP_MD_CTX* ctx ) ;
131
132 FUNCTION: int EVP_MD_CTX_copy_ex ( EVP_MD_CTX* out, EVP_MD_CTX* in ) ;  
133
134 FUNCTION: int EVP_DigestInit_ex ( EVP_MD_CTX* ctx, EVP_MD* type, ENGINE* impl ) ;
135
136 FUNCTION: int EVP_DigestUpdate ( EVP_MD_CTX* ctx, void* d, uint cnt ) ;
137
138 FUNCTION: int EVP_DigestFinal_ex ( EVP_MD_CTX* ctx, void* md, uint* s ) ;
139
140 FUNCTION: int EVP_Digest ( void* data, uint count, void* md, uint* size, EVP_MD* type, ENGINE* impl ) ;
141
142 FUNCTION: int EVP_MD_CTX_copy ( EVP_MD_CTX* out, EVP_MD_CTX* in ) ;  
143
144 FUNCTION: int EVP_DigestInit ( EVP_MD_CTX* ctx, EVP_MD* type ) ;
145
146 FUNCTION: int EVP_DigestFinal ( EVP_MD_CTX* ctx, void* md, uint* s ) ;
147
148 FUNCTION: void* PEM_read_bio_DHparams ( void* bp, void* x, void* cb,
149                                         void* u ) ;
150
151 ! ===============================================
152 ! rsa.h
153 ! ===============================================
154
155 FUNCTION: void* RSA_generate_key ( int num, ulong e, void* callback,
156                                    void* cb_arg ) ;
157
158 FUNCTION: int RSA_check_key ( void* rsa ) ;
159
160 FUNCTION: void RSA_free ( void* rsa ) ;
161
162 FUNCTION: int RSA_print_fp ( void* fp, void* x, int offset ) ;
163
164 ! ===============================================
165 ! objects.h
166 ! ===============================================
167
168 FUNCTION: int OBJ_sn2nid ( char* s ) ;
169
170 ! ===============================================
171 ! bn.h
172 ! ===============================================
173
174 FUNCTION: int BN_num_bits ( void* a ) ;
175
176 FUNCTION: void* BN_bin2bn ( void* s, int len, void* ret ) ;
177
178 FUNCTION: int BN_bn2bin ( void* a, void* to ) ;
179
180 FUNCTION: void BN_clear_free ( void* a ) ;
181
182 ! ===============================================
183 ! ec.h
184 ! ===============================================
185
186 CONSTANT: POINT_CONVERSION_COMPRESSED 2
187 CONSTANT: POINT_CONVERSION_UNCOMPRESSED 4
188 CONSTANT: POINT_CONVERSION_HYBRID 6
189
190 FUNCTION: int EC_GROUP_get_degree ( void* group ) ;
191
192 FUNCTION: void* EC_POINT_new ( void* group ) ;
193
194 FUNCTION: void EC_POINT_clear_free ( void* point ) ;
195
196 FUNCTION: int EC_POINT_point2oct ( void* group, void* point, int form, void* buf, int len, void* ctx ) ;
197
198 FUNCTION: int EC_POINT_oct2point ( void* group, void* point, void* buf, int len, void* ctx ) ;
199
200 FUNCTION: void* EC_KEY_new_by_curve_name ( int nid ) ;
201
202 FUNCTION: void EC_KEY_free ( void* r ) ;
203
204 FUNCTION: int EC_KEY_set_private_key ( void* key, void* priv_key ) ;
205
206 FUNCTION: int EC_KEY_set_public_key ( void* key, void* pub_key ) ;
207
208 FUNCTION: int EC_KEY_generate_key ( void* eckey ) ;
209
210 FUNCTION: void* EC_KEY_get0_group ( void* key ) ;
211
212 FUNCTION: void* EC_KEY_get0_private_key ( void* key ) ;
213
214 FUNCTION: void* EC_KEY_get0_public_key ( void* key ) ;
215
216 ! ===============================================
217 ! ecdsa.h
218 ! ===============================================
219
220 FUNCTION: int ECDSA_size ( void* eckey ) ;
221
222 FUNCTION: int ECDSA_sign ( int type, void* dgst, int dgstlen, void* sig, void* siglen, void* eckey ) ;
223
224 FUNCTION: int ECDSA_verify ( int type, void* dgst, int dgstlen, void* sig, int siglen, void* eckey ) ;