]> gitweb.factorcode.org Git - factor.git/blob - basis/openssl/libcrypto/libcrypto.factor
Fix permission bits
[factor.git] / basis / openssl / libcrypto / libcrypto.factor
1 ! Copyright (C) 2007 Elie CHAFTARI
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
10 IN: openssl.libcrypto
11
12 <<
13 {
14     { [ os openbsd? ] [ ] } ! VM is linked with it
15     { [ os winnt? ] [ "libcrypto" "libeay32.dll" "cdecl" add-library ] }
16     { [ os macosx? ] [ "libcrypto" "libcrypto.dylib" "cdecl" add-library ] }
17     { [ os unix? ] [ "libcrypto" "libcrypto.so" "cdecl" add-library ] }
18 } cond
19 >>
20
21 C-STRUCT: bio-method
22     { "int" "type" }
23     { "void*" "name" }
24     { "void*" "bwrite" }
25     { "void*" "bread" }
26     { "void*" "bputs" }
27     { "void*" "bgets" }
28     { "void*" "ctrl" }
29     { "void*" "create" }
30     { "void*" "destroy" }
31     { "void*" "callback-ctrl" } ;
32
33 C-STRUCT: bio
34     { "void*" "method" }
35     { "void*" "callback" }
36     { "void*" "cb-arg" }
37     { "int" "init" }
38     { "int" "shutdown" }
39     { "int" "flags" }
40     { "int" "retry-reason" }
41     { "int" "num" }
42     { "void*" "ptr" }
43     { "void*" "next-bio" }
44     { "void*" "prev-bio" }
45     { "int" "references" } 
46     { "ulong" "num-read" }
47     { "ulong" "num-write" } 
48     { "void*" "crypto-ex-data-stack" }
49     { "int" "crypto-ex-data-dummy" } ;
50
51 : BIO_NOCLOSE       HEX: 00 ; inline
52 : BIO_CLOSE         HEX: 01 ; inline
53
54 : RSA_3             HEX: 3 ; inline
55 : RSA_F4            HEX: 10001 ; inline
56
57 : BIO_C_SET_SSL     109 ; inline
58 : BIO_C_GET_SSL     110 ; inline
59
60 LIBRARY: libcrypto
61
62 ! ===============================================
63 ! bio.h
64 ! ===============================================
65
66 FUNCTION: bio* BIO_new_file ( char* filename, char* mode ) ;
67
68 FUNCTION: int BIO_printf ( bio* bio, char* format ) ;
69
70 FUNCTION: long BIO_ctrl ( void* bio, int cmd, long larg, void* parg ) ;
71
72 FUNCTION: void* BIO_new_socket ( int fd, int close-flag ) ;
73
74 FUNCTION: void* BIO_new ( void* method ) ;
75
76 FUNCTION: int BIO_set ( void* bio, void* method ) ;
77
78 FUNCTION: int BIO_free ( void* bio ) ;
79
80 FUNCTION: void* BIO_push ( void* bio, void* append ) ;
81
82 FUNCTION: int BIO_read ( void* b, void* buf, int len ) ;
83
84 FUNCTION: int BIO_gets ( void* b, char* buf, int size ) ;
85
86 FUNCTION: int BIO_write ( void* b, void* buf, int len ) ;
87
88 FUNCTION: int BIO_puts ( void* bp, char* buf ) ;
89
90 FUNCTION: ulong ERR_get_error (  ) ;
91
92 FUNCTION: void ERR_clear_error ( ) ;
93
94 FUNCTION: char* ERR_error_string ( ulong e, void* buf ) ;
95
96 FUNCTION: void* BIO_f_buffer (  ) ;
97
98 ! ===============================================
99 ! evp.h
100 ! ===============================================
101
102 : EVP_MAX_MD_SIZE 64 ;
103
104 C-STRUCT: EVP_MD_CTX
105     { "EVP_MD*" "digest" }
106     { "ENGINE*" "engine" }
107     { "ulong" "flags" }
108     { "void*" "md_data" } ;
109
110 TYPEDEF: void* EVP_MD*
111 TYPEDEF: void* ENGINE*
112
113 ! Initialize ciphers and digest tables
114 FUNCTION: void OpenSSL_add_all_ciphers (  ) ;
115
116 FUNCTION: void OpenSSL_add_all_digests (  ) ;
117
118 ! Clean them up before exiting
119 FUNCTION: void EVP_cleanup (  ) ;
120
121 FUNCTION: EVP_MD* EVP_get_digestbyname ( char* name ) ;
122
123 FUNCTION: void EVP_MD_CTX_init ( EVP_MD* ctx ) ;
124
125 FUNCTION: int EVP_MD_CTX_cleanup ( EVP_MD_CTX* ctx ) ;
126
127 FUNCTION: EVP_MD_CTX* EVP_MD_CTX_create ( ) ;
128
129 FUNCTION: void EVP_MD_CTX_destroy ( EVP_MD_CTX* ctx ) ;
130
131 FUNCTION: int EVP_MD_CTX_copy_ex ( EVP_MD_CTX* out, EVP_MD_CTX* in ) ;  
132
133 FUNCTION: int EVP_DigestInit_ex ( EVP_MD_CTX* ctx, EVP_MD* type, ENGINE* impl ) ;
134
135 FUNCTION: int EVP_DigestUpdate ( EVP_MD_CTX* ctx, void* d, uint cnt ) ;
136
137 FUNCTION: int EVP_DigestFinal_ex ( EVP_MD_CTX* ctx, void* md, uint* s ) ;
138
139 FUNCTION: int EVP_Digest ( void* data, uint count, void* md, uint* size, EVP_MD* type, ENGINE* impl ) ;
140
141 FUNCTION: int EVP_MD_CTX_copy ( EVP_MD_CTX* out, EVP_MD_CTX* in ) ;  
142
143 FUNCTION: int EVP_DigestInit ( EVP_MD_CTX* ctx, EVP_MD* type ) ;
144
145 FUNCTION: int EVP_DigestFinal ( EVP_MD_CTX* ctx, void* md, uint* s ) ;
146
147 FUNCTION: void* PEM_read_bio_DHparams ( void* bp, void* x, void* cb,
148                                         void* u ) ;
149
150 ! ===============================================
151 ! rsa.h
152 ! ===============================================
153
154 FUNCTION: void* RSA_generate_key ( int num, ulong e, void* callback,
155                                    void* cb_arg ) ;
156
157 FUNCTION: int RSA_check_key ( void* rsa ) ;
158
159 FUNCTION: void RSA_free ( void* rsa ) ;
160
161 FUNCTION: int RSA_print_fp ( void* fp, void* x, int offset ) ;