1 Index: luaxyssl-0.2+svn65/lxyssl.c
2 ===================================================================
3 --- luaxyssl-0.2+svn65.orig/lxyssl.c 2008-07-01 17:28:52.000000000 +0200
4 +++ luaxyssl-0.2+svn65/lxyssl.c 2008-07-01 17:32:00.000000000 +0200
6 * This code can be distributed under the LGPL license
14 #include <sys/socket.h>
24 if (lua_isstring(L, -1)) {
27 const char *master = luaL_checklstring(L, -1, &len);
28 memcpy(ssl->session->master, master, len < sizeof(ssl->session->master) ? len : sizeof(ssl->session->master));
32 static int Laes(lua_State *L)
36 const unsigned char *key = luaL_checklstring(L, 1, &klen);
37 int bits = luaL_optinteger(L, 2, 128);
38 dual_aes_context *aes = lua_newuserdata(L,sizeof(dual_aes_context));
41 static int Lrc4(lua_State *L)
45 const unsigned char *key = luaL_checklstring(L, 1, &klen);
46 arc4_context *rc4 = lua_newuserdata(L,sizeof(arc4_context));
47 arc4_setup(rc4, (unsigned char *)key, klen);
49 static int Lhash(lua_State *L)
51 const char *type = luaL_checkstring(L,1);
54 const unsigned char *key = luaL_optlstring(L, 2, NULL, &klen);
55 hash_context *obj = lua_newuserdata(L,sizeof(hash_context));
58 static int Laes_encrypt(lua_State *L)
60 dual_aes_context *obj=Pget_aes(L,1);
63 const char *data = luaL_checklstring(L, 2, &len);
67 static int Laes_decrypt(lua_State *L)
69 dual_aes_context *obj=Pget_aes(L,1);
72 const char *data = luaL_checklstring(L, 2, &len);
76 static int Lrc4_crypt(lua_State *L)
78 arc4_context *obj=Pget_rc4(L,1);
81 const char *data = luaL_checklstring(L, 2, &len);
83 unsigned char temp[256];
85 static int Laes_cbc_encrypt(lua_State *L)
87 dual_aes_context *obj=Pget_aes(L,1);
90 const char *data = luaL_checklstring(L, 2, &len);
93 const char *IV = luaL_checklstring(L, 3, &iv_len);
97 static int Laes_cbc_decrypt(lua_State *L)
99 dual_aes_context *obj=Pget_aes(L,1);
102 const char *data = luaL_checklstring(L, 2, &len);
105 const char *IV = luaL_checklstring(L, 3, &iv_len);
108 @@ -1002,9 +1004,9 @@
109 static int Laes_cfb_encrypt(lua_State *L)
111 dual_aes_context *obj=Pget_aes(L,1);
114 const char *data = luaL_checklstring(L, 2, &len);
117 const char *IV = luaL_checklstring(L, 3, &iv_len);
118 int start = luaL_optinteger(L,4,0);
120 @@ -1039,9 +1041,9 @@
121 static int Laes_cfb_decrypt(lua_State *L)
123 dual_aes_context *obj=Pget_aes(L,1);
126 const char *data = luaL_checklstring(L, 2, &len);
129 const char *IV = luaL_checklstring(L, 3, &iv_len);
130 int start = luaL_optinteger(L,4,0);
132 @@ -1079,7 +1081,7 @@
133 static int Lhash_update(lua_State *L)
135 hash_context *obj=Pget_hash(L,1);
138 const char *data = luaL_checklstring(L, 2, &len);
139 obj->update(&obj->eng, (unsigned char *)data, len);
141 @@ -1091,7 +1093,7 @@
143 hash_context *obj=Pget_hash(L,1);
144 unsigned char out[64];
147 const char *data = luaL_optlstring(L, 2, "", &len);
148 obj->update(&obj->eng, (unsigned char *)data, len);
149 obj->finish(&obj->eng, out);
150 @@ -1166,7 +1168,7 @@
151 static int LaddTrustedCA(lua_State *L)
156 const char *ca = luaL_checklstring(L, 1, &ca_len);
158 ret = x509_add_certs( &trustedCA, (unsigned char *) ca, ca_len);
159 @@ -1311,9 +1313,9 @@
160 static int Lsessinfo(lua_State *L) /** sessinfo(c) */
162 xyssl_context *xyssl=Pget(L,1);
165 char *sessid = (char *)luaL_optlstring(L, 2, NULL, &id_len);
168 char *master = (char *)luaL_optlstring(L, 3, NULL, &master_len);
169 int cipher = (int) luaL_optnumber(L,4,0);
170 time_t start = (time_t) luaL_optnumber(L,5,time(NULL));
171 @@ -1597,7 +1599,7 @@
172 static int LsessionCA(lua_State *L) /** setca(ca) **/
174 int top = lua_gettop(L);
178 xyssl_context *xyssl=Pget(L,1);
179 x509_cert *cacert = &xyssl->cacert;
180 @@ -1624,9 +1626,9 @@
181 ssl_context *ssl=&xyssl->ssl;
182 x509_cert *mycert= &xyssl->mycert;
183 rsa_context *rsa = &xyssl->mykey;
191 const char *cert = luaL_optlstring(L, 2, ssl->endpoint ? test_srv_crt: NULL, &cert_len);
192 const char *key = luaL_optlstring(L, 3, ssl->endpoint ? test_srv_key: NULL, &key_len);
193 @@ -1694,7 +1696,7 @@
194 ssl_context *ssl=&xyssl->ssl;
195 x509_cert *cacert = &xyssl->cacert;
196 int verification = luaL_optinteger(L,2,0);
199 const char *expected_peer= luaL_optlstring(L, 3, NULL, &peer_len);
200 ssl_set_authmode( ssl, verification );
201 if (xyssl->peer_cn) free(xyssl->peer_cn);
202 @@ -1748,8 +1750,8 @@
203 static int Lx509verify(lua_State *L) /** x509verify(ca, crt) */
205 int top = lua_gettop(L);
213 @@ -1797,9 +1799,9 @@
214 static int Lrsaverify(lua_State *L) /** rsaverify(data, sig, [crt]) */
216 int top = lua_gettop(L);
225 const char *data = luaL_checklstring(L, 1, &data_size);
226 @@ -1833,8 +1835,8 @@
227 static int Lrsaencrypt(lua_State *L) /** rsaencrypt(data, [crt]) */
229 int top = lua_gettop(L);
234 unsigned char m[512];
237 @@ -1868,9 +1870,9 @@
238 static int Lrsasign(lua_State *L) /** rsasign(data, [key, [pw]]) */
240 int top = lua_gettop(L);
248 unsigned char sig[512];
250 @@ -1905,9 +1907,9 @@
251 static int Lrsadecrypt(lua_State *L) /** rsadecrypt(data, [key, [pw]]) */
253 int top = lua_gettop(L);
262 unsigned char m[512];
263 @@ -2076,8 +2078,8 @@
264 static int Ldhmsecret(lua_State *L) /** dhsecret(public, private, [P, [G]]) */
266 int top = lua_gettop(L);
269 + size_t public_size;
270 + size_t private_size;
273 unsigned char buf[512];