From 36e94ee40d7946b88a4f2511e03aad059082dec8 Mon Sep 17 00:00:00 2001 From: Bruno Silvestre Date: Sun, 2 Sep 2012 11:15:49 -0300 Subject: [PATCH] LuaSec 0.2 --- INSTALL | 23 ++ LICENSE | 44 ++++ Makefile | 50 +++++ luasec.ncb | Bin 0 -> 1256448 bytes luasec.sln | 21 ++ luasec.suo | Bin 0 -> 9728 bytes luasec.vcproj | 176 ++++++++++++++++ samples/README | 31 +++ samples/certs/clientA.cnf | 316 ++++++++++++++++++++++++++++ samples/certs/clientA.sh | 12 ++ samples/certs/clientB.cnf | 316 ++++++++++++++++++++++++++++ samples/certs/clientB.sh | 12 ++ samples/certs/rootA.cnf | 315 ++++++++++++++++++++++++++++ samples/certs/rootA.sh | 5 + samples/certs/rootB.cnf | 315 ++++++++++++++++++++++++++++ samples/certs/rootB.sh | 5 + samples/certs/serverA.cnf | 316 ++++++++++++++++++++++++++++ samples/certs/serverA.sh | 12 ++ samples/certs/serverB.cnf | 316 ++++++++++++++++++++++++++++ samples/certs/serverB.sh | 12 ++ samples/loop-gc/client.lua | 27 +++ samples/loop-gc/server.lua | 35 ++++ samples/loop/client.lua | 28 +++ samples/loop/server.lua | 36 ++++ samples/oneshot/client.lua | 26 +++ samples/oneshot/server.lua | 35 ++++ samples/want/client.lua | 66 ++++++ samples/want/server.lua | 43 ++++ samples/wantread/client.lua | 55 +++++ samples/wantread/server.lua | 45 ++++ samples/wantwrite/client.lua | 49 +++++ samples/wantwrite/server.lua | 40 ++++ src/Makefile | 61 ++++++ src/buffer.c | 237 +++++++++++++++++++++ src/buffer.h | 45 ++++ src/context.c | 387 ++++++++++++++++++++++++++++++++++ src/context.h | 35 ++++ src/io.c | 34 +++ src/io.h | 70 +++++++ src/socket.h | 47 +++++ src/ssl.c | 393 +++++++++++++++++++++++++++++++++++ src/ssl.h | 38 ++++ src/ssl.lua | 84 ++++++++ src/timeout.c | 155 ++++++++++++++ src/timeout.h | 32 +++ src/usocket.c | 137 ++++++++++++ src/usocket.h | 28 +++ src/wsocket.c | 164 +++++++++++++++ src/wsocket.h | 28 +++ 49 files changed, 4757 insertions(+) create mode 100644 INSTALL create mode 100644 LICENSE create mode 100644 Makefile create mode 100644 luasec.ncb create mode 100644 luasec.sln create mode 100644 luasec.suo create mode 100644 luasec.vcproj create mode 100644 samples/README create mode 100644 samples/certs/clientA.cnf create mode 100755 samples/certs/clientA.sh create mode 100644 samples/certs/clientB.cnf create mode 100755 samples/certs/clientB.sh create mode 100644 samples/certs/rootA.cnf create mode 100755 samples/certs/rootA.sh create mode 100644 samples/certs/rootB.cnf create mode 100755 samples/certs/rootB.sh create mode 100644 samples/certs/serverA.cnf create mode 100755 samples/certs/serverA.sh create mode 100644 samples/certs/serverB.cnf create mode 100755 samples/certs/serverB.sh create mode 100644 samples/loop-gc/client.lua create mode 100644 samples/loop-gc/server.lua create mode 100644 samples/loop/client.lua create mode 100644 samples/loop/server.lua create mode 100644 samples/oneshot/client.lua create mode 100644 samples/oneshot/server.lua create mode 100644 samples/want/client.lua create mode 100644 samples/want/server.lua create mode 100644 samples/wantread/client.lua create mode 100644 samples/wantread/server.lua create mode 100644 samples/wantwrite/client.lua create mode 100644 samples/wantwrite/server.lua create mode 100644 src/Makefile create mode 100644 src/buffer.c create mode 100644 src/buffer.h create mode 100644 src/context.c create mode 100644 src/context.h create mode 100644 src/io.c create mode 100644 src/io.h create mode 100644 src/socket.h create mode 100644 src/ssl.c create mode 100644 src/ssl.h create mode 100644 src/ssl.lua create mode 100644 src/timeout.c create mode 100644 src/timeout.h create mode 100644 src/usocket.c create mode 100644 src/usocket.h create mode 100644 src/wsocket.c create mode 100644 src/wsocket.h diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000..94f4b9d --- /dev/null +++ b/INSTALL @@ -0,0 +1,23 @@ +LuaSec 0.2 +----------- + +* On Linux, BSD, and Mac OS X: + + - Edit 'Makefile' + * Inform the path to install the modules. + * If Lua or OpenSSL are not in the default path, set the + variables INCDIR and LIBDIR. + * For Mac OS X, set the variable MACOSX_VERSION. + + - Use 'make ' to compile + * Platforms: linux, bsd, or macosx + + - Use 'make install' to install the modules. + +* On Windows: + + - Use the Visual C++ project to compile the library. + + - Copy the 'ssl.lua' file to some place in your LUA_PATH. + + - Copy the 'ssl.dll' file to some place in your LUA_CPATH. diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..959e081 --- /dev/null +++ b/LICENSE @@ -0,0 +1,44 @@ +LuaSec 0.2 license +Copyright (C) 2006-2007 Bruno Silvestre + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------------------------------------------- + +LuaSocket 2.0.2 license +Copyright © 2004-2007 Diego Nehab + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..75917c7 --- /dev/null +++ b/Makefile @@ -0,0 +1,50 @@ +# Inform the location to intall the modules +LUAPATH=/usr/local/share/lua/5.1 +CPATH=/usr/local/lib/lua/5.1 + +# Edit the lines below to inform new path, if necessary +# +#INCDIR=-I/usr/local/lua-5.1/include -I/usr/local/openssl-0.9.8/include +#LIBDIR=-L/usr/local/openssl-0.9.8/lib -R/usr/local/openssl-0.9.8/lib + +# For Mac OS X: set the system version +MACOSX_VERSION=10.4 + +DEFS=-DBUFFER_DEBUG + +#---------------------- +# Do not edit this part + +.PHONY: all clean install none linux bsd macosx + +all: none + +none: + @echo "Usage: $(MAKE) " + @echo " * linux" + @echo " * bsd" + @echo " * macosx" + +install: + @cd src ; $(MAKE) CPATH="$(CPATH)" LUAPATH="$(LUAPATH)" install + +linux: + @echo "---------------------" + @echo "** Build for Linux **" + @echo "---------------------" + @cd src ; $(MAKE) INCDIR="$(INCDIR)" LIBDIR="$(LIBDIR)" DEFS="$(DEFS)" $@ + +bsd: + @echo "-------------------" + @echo "** Build for BSD **" + @echo "-------------------" + @cd src ; $(MAKE) INCDIR="$(INCDIR)" LIBDIR="$(LIBDIR)" DEFS="$(DEFS)" $@ + +macosx: + @echo "------------------------------" + @echo "** Build for Mac OS X $(MACOSX_VERSION) **" + @echo "------------------------------" + @cd src ; $(MAKE) INCDIR="$(INCDIR)" LIBDIR="$(LIBDIR)" DEFS="$(DEFS)" MACVER="$(MACOSX_VERSION)" $@ + +clean: + @cd src ; $(MAKE) clean diff --git a/luasec.ncb b/luasec.ncb new file mode 100644 index 0000000000000000000000000000000000000000..a3569d53fd88b3005f1cc070438f53b6285a67b7 GIT binary patch literal 1256448 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

    9f!fW`Cg1vfqYpU@d>k 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 literal 0 HcmV?d00001 diff --git a/luasec.sln b/luasec.sln new file mode 100644 index 0000000..a8f9164 --- /dev/null +++ b/luasec.sln @@ -0,0 +1,21 @@ +Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "luasec", "luasec.vcproj", "{A629932F-8819-4C0B-8835-CBF1FEED6376}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + Debug = Debug + Release = Release + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {A629932F-8819-4C0B-8835-CBF1FEED6376}.Debug.ActiveCfg = Debug|Win32 + {A629932F-8819-4C0B-8835-CBF1FEED6376}.Debug.Build.0 = Debug|Win32 + {A629932F-8819-4C0B-8835-CBF1FEED6376}.Release.ActiveCfg = Release|Win32 + {A629932F-8819-4C0B-8835-CBF1FEED6376}.Release.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/luasec.suo b/luasec.suo new file mode 100644 index 0000000000000000000000000000000000000000..a8a9000bde163fdd3d50c3c34a5976282c37cddc GIT binary patch literal 9728 zcmeHMU2IfE6h7M@+fqP4C|U(qN&%79cKeG3q}^@H-vYL^<)Jaz-QKnf+r7>1Rv;8& z;sb^UuYDJDMYgTeUfPax6wh!2XW!1{f2@7=w--QC`$Ao4St@7}pH zbLY%GbIvzsX1~3#{Nj5b*ItsWv_neeMzTsCvX#4#CsbM{Qi2ShZzPjRqfi9d2k9=- zz;%qZ%$&n=+&SMBKqXKGR0E5E#lTWv3Ggt$Ifn_zax;Gyee#2$+B7gAI(`XpORq$6 zkI8Y&sPj}K^hD9s!-$78gfd)*BAluN&KD&Nl6%oCgwiwF2@ae!4%9v}x$4tana z!0)!|IR{q075RO@qrhW8E$}$-1h58J3p@$90lu@&ysyW-9@qeE1U3Pz-;Db+z!snZ zXat@Gnt*1&16Z=#kZ%V%fKFg5@Ep(uYy-9fJAmhboj^Cx19$-+&|j9e)AUnN=E-&TgrTaM1ZA>4*B=F2SbzE zlzLp^3kM?lgu8bvoX}%zu*|Oq!x7Crq6OW3dTdI0XH~}2BCkF*tw*(JLRBsq2}j5D zqw#d}vRy-dTBj`aM#9rUJrEmn4}_x=EUM_&qFO8vVcuDCIct`;72iJvcwwcZus~fx zG9y!90kUyi+~B9EjNv|rvIKr%JWrrzRDxiL89eF8`@tCQ9Pf|HQPju4aB-PNUm^4| zDiOR#-qT>;L#WqL62$eGk`j}bA%!jHPj2uJ;|9ipbc*@kFxtLtHuOPC5TlvEkGwmA zaU~#o5>NASFT0?8a*^ebX14`z9PdiAMYephu7)ujfwpv|YtBOcw8`XO@~6}9XN+~m z>@r(E*FS20TFtbM*)1fUTxsw>z0j$Awzbxu5UgP#$+eJ|ZSPWluKs38uFLr-q3p`Vev+tQbwwf;xmSlJY$G7cUwb)kbp^LgPG)BhL~IhDTx zZHE9R`g;O0W6(OSH*M)wWURq167UOh0b3gDg7G$E8^iyL(LcYPu^v+{ugGnYM(M)X z!jPGL<=T;*7E+eo*X?{R7Z)vgOvzX+E6P4`!Mu~n`Vw_C!s6GuPFK9U?Q{j()tGwU z<2r%Rvt2ypm@zyyJgWcv2!sg=Wl|AQMiJDCND!aqv2=c_~Hr0f0S%|z4=1c4gRm>7UO@b z(MQlU@B`qu!BHfQnx1R>ue}vrQ(uv2CT=_t|Z8p=0Y( zyS!W3W1|d!fff zd<}Cu4(l^!paS>IFXXQS#2Jt7@(Mb!Gi`AJx_MfBMU% zlN*Cmt>7=T{JJ)Bt*Y+88_CmGFMRoaui{S9UV1|k!qcm4>ny$C7CDP=xHG#a#*Fr% zH$tN!Sifn&pbic8X z?n`9AI(N8FbRSX&7YrkL%$9@yVAHqU{x=nx11$Xa`5fFnKPZ;C(Vmec|HocqzH2{Q S+krj8ULgD2&1`y4-2MeVoVE!7 literal 0 HcmV?d00001 diff --git a/luasec.vcproj b/luasec.vcproj new file mode 100644 index 0000000..b76b049 --- /dev/null +++ b/luasec.vcproj @@ -0,0 +1,176 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/README b/samples/README new file mode 100644 index 0000000..a0d8725 --- /dev/null +++ b/samples/README @@ -0,0 +1,31 @@ +In all examples, the SSL/TLS layer can be disable just commenting the +wrap section. In this case, the examples work with normal TCP +communication. + +Directories: +------------ +* certs + It contains a set of certificates used in the examples. You can use + the scrits to recreate them if necessary (due to certificates + expiration date, for example). First, generate the Root CA 'A' and + 'B', then the servers and clients. + +* oneshot + A simple connection example. + +* loop + Test successive connections between the server and the client + (to check memory leak). + +* loop-gc + Same of above, but the connection is not explicit closed, the gabage + collector is encharge of it. + +* wantread + Test timeout in handshake() and receive(). + +* wantwrite + Test timeout in send(). + +* want + Test want(). diff --git a/samples/certs/clientA.cnf b/samples/certs/clientA.cnf new file mode 100644 index 0000000..f938d90 --- /dev/null +++ b/samples/certs/clientA.cnf @@ -0,0 +1,316 @@ +# +# OpenSSL example configuration file. +# This is mostly being used for generation of certificate requests. +# + +# This definition stops the following lines choking if HOME isn't +# defined. +HOME = . +RANDFILE = $ENV::HOME/.rnd + +# Extra OBJECT IDENTIFIER info: +#oid_file = $ENV::HOME/.oid +oid_section = new_oids + +# To use this configuration file with the "-extfile" option of the +# "openssl x509" utility, name here the section containing the +# X.509v3 extensions to use: +# extensions = +# (Alternatively, use a configuration file that has only +# X.509v3 extensions in its main [= default] section.) + +[ new_oids ] + +# We can add new OIDs in here for use by 'ca' and 'req'. +# Add a simple OID like this: +# testoid1=1.2.3.4 +# Or use config file substitution like this: +# testoid2=${testoid1}.5.6 + +#################################################################### +[ ca ] +default_ca = CA_default # The default ca section + +#################################################################### +[ CA_default ] + +dir = ./demoCA # Where everything is kept +certs = $dir/certs # Where the issued certs are kept +crl_dir = $dir/crl # Where the issued crl are kept +database = $dir/index.txt # database index file. +#unique_subject = no # Set to 'no' to allow creation of + # several ctificates with same subject. +new_certs_dir = $dir/newcerts # default place for new certs. + +certificate = $dir/cacert.pem # The CA certificate +serial = $dir/serial # The current serial number +crlnumber = $dir/crlnumber # the current crl number + # must be commented out to leave a V1 CRL +crl = $dir/crl.pem # The current CRL +private_key = $dir/private/cakey.pem # The private key +RANDFILE = $dir/private/.rand # private random number file + +x509_extensions = usr_cert # The extentions to add to the cert + +# Comment out the following two lines for the "traditional" +# (and highly broken) format. +name_opt = ca_default # Subject Name options +cert_opt = ca_default # Certificate field options + +# Extension copying option: use with caution. +# copy_extensions = copy + +# Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs +# so this is commented out by default to leave a V1 CRL. +# crlnumber must also be commented out to leave a V1 CRL. +# crl_extensions = crl_ext + +default_days = 365 # how long to certify for +default_crl_days= 30 # how long before next CRL +default_md = sha1 # which md to use. +preserve = no # keep passed DN ordering + +# A few difference way of specifying how similar the request should look +# For type CA, the listed attributes must be the same, and the optional +# and supplied fields are just that :-) +policy = policy_match + +# For the CA policy +[ policy_match ] +countryName = match +stateOrProvinceName = match +organizationName = match +organizationalUnitName = optional +commonName = supplied +emailAddress = optional + +# For the 'anything' policy +# At this point in time, you must list all acceptable 'object' +# types. +[ policy_anything ] +countryName = optional +stateOrProvinceName = optional +localityName = optional +organizationName = optional +organizationalUnitName = optional +commonName = supplied +emailAddress = optional + +#################################################################### +[ req ] +default_bits = 1024 +default_keyfile = privkey.pem +distinguished_name = req_distinguished_name +attributes = req_attributes +x509_extensions = v3_ca # The extentions to add to the self signed cert + +# Passwords for private keys if not present they will be prompted for +# input_password = secret +# output_password = secret + +# This sets a mask for permitted string types. There are several options. +# default: PrintableString, T61String, BMPString. +# pkix : PrintableString, BMPString. +# utf8only: only UTF8Strings. +# nombstr : PrintableString, T61String (no BMPStrings or UTF8Strings). +# MASK:XXXX a literal mask value. +# WARNING: current versions of Netscape crash on BMPStrings or UTF8Strings +# so use this option with caution! +string_mask = nombstr + +# req_extensions = v3_req # The extensions to add to a certificate request + +[ req_distinguished_name ] +countryName = Country Name (2 letter code) +countryName_default = BR +countryName_min = 2 +countryName_max = 2 + +stateOrProvinceName = State or Province Name (full name) +stateOrProvinceName_default = Some-State +stateOrProvinceName_default = Espirito Santo + +localityName = Locality Name (eg, city) +localityName_default = Santo Antonio do Canaa + +0.organizationName = Organization Name (eg, company) +0.organizationName_default = Sao Tonico Ltda + +# we can do this but it is not needed normally :-) +#1.organizationName = Second Organization Name (eg, company) +#1.organizationName_default = World Wide Web Pty Ltd + +organizationalUnitName = Organizational Unit Name (eg, section) +organizationalUnitName_default = Department of Computer Science + +commonName = Common Name (eg, YOUR name) +commonName_default = Client A +commonName_max = 64 + +emailAddress = Email Address +emailAddress_max = 64 + +# SET-ex3 = SET extension number 3 + +[ req_attributes ] +challengePassword = A challenge password +challengePassword_min = 4 +challengePassword_max = 20 + +unstructuredName = An optional company name + +[ usr_cert ] + +# These extensions are added when 'ca' signs a request. + +# This goes against PKIX guidelines but some CAs do it and some software +# requires this to avoid interpreting an end user certificate as a CA. + +basicConstraints=CA:FALSE + +# Here are some examples of the usage of nsCertType. If it is omitted +# the certificate can be used for anything *except* object signing. + +# This is OK for an SSL server. +# nsCertType = server + +# For an object signing certificate this would be used. +# nsCertType = objsign + +# For normal client use this is typical +# nsCertType = client, email + +# and for everything including object signing: +# nsCertType = client, email, objsign + +# This is typical in keyUsage for a client certificate. +# keyUsage = nonRepudiation, digitalSignature, keyEncipherment + +# This will be displayed in Netscape's comment listbox. +nsComment = "OpenSSL Generated Certificate" + +# PKIX recommendations harmless if included in all certificates. +subjectKeyIdentifier=hash +authorityKeyIdentifier=keyid,issuer + +# This stuff is for subjectAltName and issuerAltname. +# Import the email address. +# subjectAltName=email:copy +# An alternative to produce certificates that aren't +# deprecated according to PKIX. +# subjectAltName=email:move + +# Copy subject details +# issuerAltName=issuer:copy + +#nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem +#nsBaseUrl +#nsRevocationUrl +#nsRenewalUrl +#nsCaPolicyUrl +#nsSslServerName + +[ v3_req ] + +# Extensions to add to a certificate request + +basicConstraints = CA:FALSE +keyUsage = nonRepudiation, digitalSignature, keyEncipherment + +[ v3_ca ] + + +# Extensions for a typical CA + + +# PKIX recommendation. + +subjectKeyIdentifier=hash + +authorityKeyIdentifier=keyid:always,issuer:always + +# This is what PKIX recommends but some broken software chokes on critical +# extensions. +#basicConstraints = critical,CA:true +# So we do this instead. +basicConstraints = CA:true + +# Key usage: this is typical for a CA certificate. However since it will +# prevent it being used as an test self-signed certificate it is best +# left out by default. +# keyUsage = cRLSign, keyCertSign + +# Some might want this also +# nsCertType = sslCA, emailCA + +# Include email address in subject alt name: another PKIX recommendation +# subjectAltName=email:copy +# Copy issuer details +# issuerAltName=issuer:copy + +# DER hex encoding of an extension: beware experts only! +# obj=DER:02:03 +# Where 'obj' is a standard or added object +# You can even override a supported extension: +# basicConstraints= critical, DER:30:03:01:01:FF + +[ crl_ext ] + +# CRL extensions. +# Only issuerAltName and authorityKeyIdentifier make any sense in a CRL. + +# issuerAltName=issuer:copy +authorityKeyIdentifier=keyid:always,issuer:always + +[ proxy_cert_ext ] +# These extensions should be added when creating a proxy certificate + +# This goes against PKIX guidelines but some CAs do it and some software +# requires this to avoid interpreting an end user certificate as a CA. + +basicConstraints=CA:FALSE + +# Here are some examples of the usage of nsCertType. If it is omitted +# the certificate can be used for anything *except* object signing. + +# This is OK for an SSL server. +# nsCertType = server + +# For an object signing certificate this would be used. +# nsCertType = objsign + +# For normal client use this is typical +# nsCertType = client, email + +# and for everything including object signing: +# nsCertType = client, email, objsign + +# This is typical in keyUsage for a client certificate. +# keyUsage = nonRepudiation, digitalSignature, keyEncipherment + +# This will be displayed in Netscape's comment listbox. +nsComment = "OpenSSL Generated Certificate" + +# PKIX recommendations harmless if included in all certificates. +subjectKeyIdentifier=hash +authorityKeyIdentifier=keyid,issuer:always + +# This stuff is for subjectAltName and issuerAltname. +# Import the email address. +# subjectAltName=email:copy +# An alternative to produce certificates that aren't +# deprecated according to PKIX. +# subjectAltName=email:move + +# Copy subject details +# issuerAltName=issuer:copy + +#nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem +#nsBaseUrl +#nsRevocationUrl +#nsRenewalUrl +#nsCaPolicyUrl +#nsSslServerName + +# This really needs to be in place for it to be a proxy certificate. +proxyCertInfo=critical,language:id-ppl-anyLanguage,pathlen:3,policy:foo diff --git a/samples/certs/clientA.sh b/samples/certs/clientA.sh new file mode 100755 index 0000000..0350ede --- /dev/null +++ b/samples/certs/clientA.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +openssl req -newkey rsa:1024 -sha1 -keyout clientAkey.pem -out clientAreq.pem \ + -nodes -config ./clientA.cnf -days 365 -batch + +openssl x509 -req -in clientAreq.pem -sha1 -extfile ./clientA.cnf \ + -extensions usr_cert -CA rootA.pem -CAkey rootAkey.pem -CAcreateserial \ + -out clientAcert.pem -days 365 + +cat clientAcert.pem rootA.pem > clientA.pem + +openssl x509 -subject -issuer -noout -in clientA.pem diff --git a/samples/certs/clientB.cnf b/samples/certs/clientB.cnf new file mode 100644 index 0000000..40405d1 --- /dev/null +++ b/samples/certs/clientB.cnf @@ -0,0 +1,316 @@ +# +# OpenSSL example configuration file. +# This is mostly being used for generation of certificate requests. +# + +# This definition stops the following lines choking if HOME isn't +# defined. +HOME = . +RANDFILE = $ENV::HOME/.rnd + +# Extra OBJECT IDENTIFIER info: +#oid_file = $ENV::HOME/.oid +oid_section = new_oids + +# To use this configuration file with the "-extfile" option of the +# "openssl x509" utility, name here the section containing the +# X.509v3 extensions to use: +# extensions = +# (Alternatively, use a configuration file that has only +# X.509v3 extensions in its main [= default] section.) + +[ new_oids ] + +# We can add new OIDs in here for use by 'ca' and 'req'. +# Add a simple OID like this: +# testoid1=1.2.3.4 +# Or use config file substitution like this: +# testoid2=${testoid1}.5.6 + +#################################################################### +[ ca ] +default_ca = CA_default # The default ca section + +#################################################################### +[ CA_default ] + +dir = ./demoCA # Where everything is kept +certs = $dir/certs # Where the issued certs are kept +crl_dir = $dir/crl # Where the issued crl are kept +database = $dir/index.txt # database index file. +#unique_subject = no # Set to 'no' to allow creation of + # several ctificates with same subject. +new_certs_dir = $dir/newcerts # default place for new certs. + +certificate = $dir/cacert.pem # The CA certificate +serial = $dir/serial # The current serial number +crlnumber = $dir/crlnumber # the current crl number + # must be commented out to leave a V1 CRL +crl = $dir/crl.pem # The current CRL +private_key = $dir/private/cakey.pem # The private key +RANDFILE = $dir/private/.rand # private random number file + +x509_extensions = usr_cert # The extentions to add to the cert + +# Comment out the following two lines for the "traditional" +# (and highly broken) format. +name_opt = ca_default # Subject Name options +cert_opt = ca_default # Certificate field options + +# Extension copying option: use with caution. +# copy_extensions = copy + +# Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs +# so this is commented out by default to leave a V1 CRL. +# crlnumber must also be commented out to leave a V1 CRL. +# crl_extensions = crl_ext + +default_days = 365 # how long to certify for +default_crl_days= 30 # how long before next CRL +default_md = sha1 # which md to use. +preserve = no # keep passed DN ordering + +# A few difference way of specifying how similar the request should look +# For type CA, the listed attributes must be the same, and the optional +# and supplied fields are just that :-) +policy = policy_match + +# For the CA policy +[ policy_match ] +countryName = match +stateOrProvinceName = match +organizationName = match +organizationalUnitName = optional +commonName = supplied +emailAddress = optional + +# For the 'anything' policy +# At this point in time, you must list all acceptable 'object' +# types. +[ policy_anything ] +countryName = optional +stateOrProvinceName = optional +localityName = optional +organizationName = optional +organizationalUnitName = optional +commonName = supplied +emailAddress = optional + +#################################################################### +[ req ] +default_bits = 1024 +default_keyfile = privkey.pem +distinguished_name = req_distinguished_name +attributes = req_attributes +x509_extensions = v3_ca # The extentions to add to the self signed cert + +# Passwords for private keys if not present they will be prompted for +# input_password = secret +# output_password = secret + +# This sets a mask for permitted string types. There are several options. +# default: PrintableString, T61String, BMPString. +# pkix : PrintableString, BMPString. +# utf8only: only UTF8Strings. +# nombstr : PrintableString, T61String (no BMPStrings or UTF8Strings). +# MASK:XXXX a literal mask value. +# WARNING: current versions of Netscape crash on BMPStrings or UTF8Strings +# so use this option with caution! +string_mask = nombstr + +# req_extensions = v3_req # The extensions to add to a certificate request + +[ req_distinguished_name ] +countryName = Country Name (2 letter code) +countryName_default = BR +countryName_min = 2 +countryName_max = 2 + +stateOrProvinceName = State or Province Name (full name) +stateOrProvinceName_default = Some-State +stateOrProvinceName_default = Espirito Santo + +localityName = Locality Name (eg, city) +localityName_default = Santo Antonio do Canaa + +0.organizationName = Organization Name (eg, company) +0.organizationName_default = Sao Tonico Ltda + +# we can do this but it is not needed normally :-) +#1.organizationName = Second Organization Name (eg, company) +#1.organizationName_default = World Wide Web Pty Ltd + +organizationalUnitName = Organizational Unit Name (eg, section) +organizationalUnitName_default = Department of Computer Science + +commonName = Common Name (eg, YOUR name) +commonName_default = Client B +commonName_max = 64 + +emailAddress = Email Address +emailAddress_max = 64 + +# SET-ex3 = SET extension number 3 + +[ req_attributes ] +challengePassword = A challenge password +challengePassword_min = 4 +challengePassword_max = 20 + +unstructuredName = An optional company name + +[ usr_cert ] + +# These extensions are added when 'ca' signs a request. + +# This goes against PKIX guidelines but some CAs do it and some software +# requires this to avoid interpreting an end user certificate as a CA. + +basicConstraints=CA:FALSE + +# Here are some examples of the usage of nsCertType. If it is omitted +# the certificate can be used for anything *except* object signing. + +# This is OK for an SSL server. +# nsCertType = server + +# For an object signing certificate this would be used. +# nsCertType = objsign + +# For normal client use this is typical +# nsCertType = client, email + +# and for everything including object signing: +# nsCertType = client, email, objsign + +# This is typical in keyUsage for a client certificate. +# keyUsage = nonRepudiation, digitalSignature, keyEncipherment + +# This will be displayed in Netscape's comment listbox. +nsComment = "OpenSSL Generated Certificate" + +# PKIX recommendations harmless if included in all certificates. +subjectKeyIdentifier=hash +authorityKeyIdentifier=keyid,issuer + +# This stuff is for subjectAltName and issuerAltname. +# Import the email address. +# subjectAltName=email:copy +# An alternative to produce certificates that aren't +# deprecated according to PKIX. +# subjectAltName=email:move + +# Copy subject details +# issuerAltName=issuer:copy + +#nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem +#nsBaseUrl +#nsRevocationUrl +#nsRenewalUrl +#nsCaPolicyUrl +#nsSslServerName + +[ v3_req ] + +# Extensions to add to a certificate request + +basicConstraints = CA:FALSE +keyUsage = nonRepudiation, digitalSignature, keyEncipherment + +[ v3_ca ] + + +# Extensions for a typical CA + + +# PKIX recommendation. + +subjectKeyIdentifier=hash + +authorityKeyIdentifier=keyid:always,issuer:always + +# This is what PKIX recommends but some broken software chokes on critical +# extensions. +#basicConstraints = critical,CA:true +# So we do this instead. +basicConstraints = CA:true + +# Key usage: this is typical for a CA certificate. However since it will +# prevent it being used as an test self-signed certificate it is best +# left out by default. +# keyUsage = cRLSign, keyCertSign + +# Some might want this also +# nsCertType = sslCA, emailCA + +# Include email address in subject alt name: another PKIX recommendation +# subjectAltName=email:copy +# Copy issuer details +# issuerAltName=issuer:copy + +# DER hex encoding of an extension: beware experts only! +# obj=DER:02:03 +# Where 'obj' is a standard or added object +# You can even override a supported extension: +# basicConstraints= critical, DER:30:03:01:01:FF + +[ crl_ext ] + +# CRL extensions. +# Only issuerAltName and authorityKeyIdentifier make any sense in a CRL. + +# issuerAltName=issuer:copy +authorityKeyIdentifier=keyid:always,issuer:always + +[ proxy_cert_ext ] +# These extensions should be added when creating a proxy certificate + +# This goes against PKIX guidelines but some CAs do it and some software +# requires this to avoid interpreting an end user certificate as a CA. + +basicConstraints=CA:FALSE + +# Here are some examples of the usage of nsCertType. If it is omitted +# the certificate can be used for anything *except* object signing. + +# This is OK for an SSL server. +# nsCertType = server + +# For an object signing certificate this would be used. +# nsCertType = objsign + +# For normal client use this is typical +# nsCertType = client, email + +# and for everything including object signing: +# nsCertType = client, email, objsign + +# This is typical in keyUsage for a client certificate. +# keyUsage = nonRepudiation, digitalSignature, keyEncipherment + +# This will be displayed in Netscape's comment listbox. +nsComment = "OpenSSL Generated Certificate" + +# PKIX recommendations harmless if included in all certificates. +subjectKeyIdentifier=hash +authorityKeyIdentifier=keyid,issuer:always + +# This stuff is for subjectAltName and issuerAltname. +# Import the email address. +# subjectAltName=email:copy +# An alternative to produce certificates that aren't +# deprecated according to PKIX. +# subjectAltName=email:move + +# Copy subject details +# issuerAltName=issuer:copy + +#nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem +#nsBaseUrl +#nsRevocationUrl +#nsRenewalUrl +#nsCaPolicyUrl +#nsSslServerName + +# This really needs to be in place for it to be a proxy certificate. +proxyCertInfo=critical,language:id-ppl-anyLanguage,pathlen:3,policy:foo diff --git a/samples/certs/clientB.sh b/samples/certs/clientB.sh new file mode 100755 index 0000000..94f8986 --- /dev/null +++ b/samples/certs/clientB.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +openssl req -newkey rsa:1024 -sha1 -keyout clientBkey.pem -out clientBreq.pem \ + -nodes -config ./clientB.cnf -days 365 -batch + +openssl x509 -req -in clientBreq.pem -sha1 -extfile ./clientB.cnf \ + -extensions usr_cert -CA rootB.pem -CAkey rootBkey.pem -CAcreateserial \ + -out clientBcert.pem -days 365 + +cat clientBcert.pem rootB.pem > clientB.pem + +openssl x509 -subject -issuer -noout -in clientB.pem diff --git a/samples/certs/rootA.cnf b/samples/certs/rootA.cnf new file mode 100644 index 0000000..a16a6de --- /dev/null +++ b/samples/certs/rootA.cnf @@ -0,0 +1,315 @@ +# +# OpenSSL example configuration file. +# This is mostly being used for generation of certificate requests. +# + +# This definition stops the following lines choking if HOME isn't +# defined. +HOME = . +RANDFILE = $ENV::HOME/.rnd + +# Extra OBJECT IDENTIFIER info: +#oid_file = $ENV::HOME/.oid +oid_section = new_oids + +# To use this configuration file with the "-extfile" option of the +# "openssl x509" utility, name here the section containing the +# X.509v3 extensions to use: +# extensions = +# (Alternatively, use a configuration file that has only +# X.509v3 extensions in its main [= default] section.) + +[ new_oids ] + +# We can add new OIDs in here for use by 'ca' and 'req'. +# Add a simple OID like this: +# testoid1=1.2.3.4 +# Or use config file substitution like this: +# testoid2=${testoid1}.5.6 + +#################################################################### +[ ca ] +default_ca = CA_default # The default ca section + +#################################################################### +[ CA_default ] + +dir = ./demoCA # Where everything is kept +certs = $dir/certs # Where the issued certs are kept +crl_dir = $dir/crl # Where the issued crl are kept +database = $dir/index.txt # database index file. +#unique_subject = no # Set to 'no' to allow creation of + # several ctificates with same subject. +new_certs_dir = $dir/newcerts # default place for new certs. + +certificate = $dir/cacert.pem # The CA certificate +serial = $dir/serial # The current serial number +crlnumber = $dir/crlnumber # the current crl number + # must be commented out to leave a V1 CRL +crl = $dir/crl.pem # The current CRL +private_key = $dir/private/cakey.pem # The private key +RANDFILE = $dir/private/.rand # private random number file + +x509_extensions = usr_cert # The extentions to add to the cert + +# Comment out the following two lines for the "traditional" +# (and highly broken) format. +name_opt = ca_default # Subject Name options +cert_opt = ca_default # Certificate field options + +# Extension copying option: use with caution. +# copy_extensions = copy + +# Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs +# so this is commented out by default to leave a V1 CRL. +# crlnumber must also be commented out to leave a V1 CRL. +# crl_extensions = crl_ext + +default_days = 365 # how long to certify for +default_crl_days= 30 # how long before next CRL +default_md = sha1 # which md to use. +preserve = no # keep passed DN ordering + +# A few difference way of specifying how similar the request should look +# For type CA, the listed attributes must be the same, and the optional +# and supplied fields are just that :-) +policy = policy_match + +# For the CA policy +[ policy_match ] +countryName = match +stateOrProvinceName = match +organizationName = match +organizationalUnitName = optional +commonName = supplied +emailAddress = optional + +# For the 'anything' policy +# At this point in time, you must list all acceptable 'object' +# types. +[ policy_anything ] +countryName = optional +stateOrProvinceName = optional +localityName = optional +organizationName = optional +organizationalUnitName = optional +commonName = supplied +emailAddress = optional + +#################################################################### +[ req ] +default_bits = 1024 +default_keyfile = privkey.pem +distinguished_name = req_distinguished_name +attributes = req_attributes +x509_extensions = v3_ca # The extentions to add to the self signed cert + +# Passwords for private keys if not present they will be prompted for +# input_password = secret +# output_password = secret + +# This sets a mask for permitted string types. There are several options. +# default: PrintableString, T61String, BMPString. +# pkix : PrintableString, BMPString. +# utf8only: only UTF8Strings. +# nombstr : PrintableString, T61String (no BMPStrings or UTF8Strings). +# MASK:XXXX a literal mask value. +# WARNING: current versions of Netscape crash on BMPStrings or UTF8Strings +# so use this option with caution! +string_mask = nombstr + +# req_extensions = v3_req # The extensions to add to a certificate request + +[ req_distinguished_name ] +countryName = Country Name (2 letter code) +countryName_default = BR +countryName_min = 2 +countryName_max = 2 + +stateOrProvinceName = State or Province Name (full name) +stateOrProvinceName_default = Espirito Santo + +localityName = Locality Name (eg, city) +localityName_default = Santo Antonio do Canaa + +0.organizationName = Organization Name (eg, company) +0.organizationName_default = Santo Tonico Ltda + +# we can do this but it is not needed normally :-) +#1.organizationName = Second Organization Name (eg, company) +#1.organizationName_default = World Wide Web Pty Ltd + +organizationalUnitName = Organizational Unit Name (eg, section) +organizationalUnitName_default = Department of Computer Science + +commonName = Common Name (eg, YOUR name) +commonName_max = 64 +commonName_default = Root A + +emailAddress = Email Address +emailAddress_max = 64 + +# SET-ex3 = SET extension number 3 + +[ req_attributes ] +challengePassword = A challenge password +challengePassword_min = 4 +challengePassword_max = 20 + +unstructuredName = An optional company name + +[ usr_cert ] + +# These extensions are added when 'ca' signs a request. + +# This goes against PKIX guidelines but some CAs do it and some software +# requires this to avoid interpreting an end user certificate as a CA. + +basicConstraints=CA:FALSE + +# Here are some examples of the usage of nsCertType. If it is omitted +# the certificate can be used for anything *except* object signing. + +# This is OK for an SSL server. +# nsCertType = server + +# For an object signing certificate this would be used. +# nsCertType = objsign + +# For normal client use this is typical +# nsCertType = client, email + +# and for everything including object signing: +# nsCertType = client, email, objsign + +# This is typical in keyUsage for a client certificate. +# keyUsage = nonRepudiation, digitalSignature, keyEncipherment + +# This will be displayed in Netscape's comment listbox. +nsComment = "OpenSSL Generated Certificate" + +# PKIX recommendations harmless if included in all certificates. +subjectKeyIdentifier=hash +authorityKeyIdentifier=keyid,issuer + +# This stuff is for subjectAltName and issuerAltname. +# Import the email address. +# subjectAltName=email:copy +# An alternative to produce certificates that aren't +# deprecated according to PKIX. +# subjectAltName=email:move + +# Copy subject details +# issuerAltName=issuer:copy + +#nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem +#nsBaseUrl +#nsRevocationUrl +#nsRenewalUrl +#nsCaPolicyUrl +#nsSslServerName + +[ v3_req ] + +# Extensions to add to a certificate request + +basicConstraints = CA:FALSE +keyUsage = nonRepudiation, digitalSignature, keyEncipherment + +[ v3_ca ] + + +# Extensions for a typical CA + + +# PKIX recommendation. + +subjectKeyIdentifier=hash + +authorityKeyIdentifier=keyid:always,issuer:always + +# This is what PKIX recommends but some broken software chokes on critical +# extensions. +#basicConstraints = critical,CA:true +# So we do this instead. +basicConstraints = CA:true + +# Key usage: this is typical for a CA certificate. However since it will +# prevent it being used as an test self-signed certificate it is best +# left out by default. +# keyUsage = cRLSign, keyCertSign + +# Some might want this also +# nsCertType = sslCA, emailCA + +# Include email address in subject alt name: another PKIX recommendation +# subjectAltName=email:copy +# Copy issuer details +# issuerAltName=issuer:copy + +# DER hex encoding of an extension: beware experts only! +# obj=DER:02:03 +# Where 'obj' is a standard or added object +# You can even override a supported extension: +# basicConstraints= critical, DER:30:03:01:01:FF + +[ crl_ext ] + +# CRL extensions. +# Only issuerAltName and authorityKeyIdentifier make any sense in a CRL. + +# issuerAltName=issuer:copy +authorityKeyIdentifier=keyid:always,issuer:always + +[ proxy_cert_ext ] +# These extensions should be added when creating a proxy certificate + +# This goes against PKIX guidelines but some CAs do it and some software +# requires this to avoid interpreting an end user certificate as a CA. + +basicConstraints=CA:FALSE + +# Here are some examples of the usage of nsCertType. If it is omitted +# the certificate can be used for anything *except* object signing. + +# This is OK for an SSL server. +# nsCertType = server + +# For an object signing certificate this would be used. +# nsCertType = objsign + +# For normal client use this is typical +# nsCertType = client, email + +# and for everything including object signing: +# nsCertType = client, email, objsign + +# This is typical in keyUsage for a client certificate. +# keyUsage = nonRepudiation, digitalSignature, keyEncipherment + +# This will be displayed in Netscape's comment listbox. +nsComment = "OpenSSL Generated Certificate" + +# PKIX recommendations harmless if included in all certificates. +subjectKeyIdentifier=hash +authorityKeyIdentifier=keyid,issuer:always + +# This stuff is for subjectAltName and issuerAltname. +# Import the email address. +# subjectAltName=email:copy +# An alternative to produce certificates that aren't +# deprecated according to PKIX. +# subjectAltName=email:move + +# Copy subject details +# issuerAltName=issuer:copy + +#nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem +#nsBaseUrl +#nsRevocationUrl +#nsRenewalUrl +#nsCaPolicyUrl +#nsSslServerName + +# This really needs to be in place for it to be a proxy certificate. +proxyCertInfo=critical,language:id-ppl-anyLanguage,pathlen:3,policy:foo diff --git a/samples/certs/rootA.sh b/samples/certs/rootA.sh new file mode 100755 index 0000000..1a93e42 --- /dev/null +++ b/samples/certs/rootA.sh @@ -0,0 +1,5 @@ +openssl req -newkey rsa:1024 -sha1 -keyout rootAkey.pem -out rootAreq.pem -nodes -config ./rootA.cnf -days 365 -batch + +openssl x509 -req -in rootAreq.pem -sha1 -extfile ./rootA.cnf -extensions v3_ca -signkey rootAkey.pem -out rootA.pem -days 365 + +openssl x509 -subject -issuer -noout -in rootA.pem diff --git a/samples/certs/rootB.cnf b/samples/certs/rootB.cnf new file mode 100644 index 0000000..3627abc --- /dev/null +++ b/samples/certs/rootB.cnf @@ -0,0 +1,315 @@ +# +# OpenSSL example configuration file. +# This is mostly being used for generation of certificate requests. +# + +# This definition stops the following lines choking if HOME isn't +# defined. +HOME = . +RANDFILE = $ENV::HOME/.rnd + +# Extra OBJECT IDENTIFIER info: +#oid_file = $ENV::HOME/.oid +oid_section = new_oids + +# To use this configuration file with the "-extfile" option of the +# "openssl x509" utility, name here the section containing the +# X.509v3 extensions to use: +# extensions = +# (Alternatively, use a configuration file that has only +# X.509v3 extensions in its main [= default] section.) + +[ new_oids ] + +# We can add new OIDs in here for use by 'ca' and 'req'. +# Add a simple OID like this: +# testoid1=1.2.3.4 +# Or use config file substitution like this: +# testoid2=${testoid1}.5.6 + +#################################################################### +[ ca ] +default_ca = CA_default # The default ca section + +#################################################################### +[ CA_default ] + +dir = ./demoCA # Where everything is kept +certs = $dir/certs # Where the issued certs are kept +crl_dir = $dir/crl # Where the issued crl are kept +database = $dir/index.txt # database index file. +#unique_subject = no # Set to 'no' to allow creation of + # several ctificates with same subject. +new_certs_dir = $dir/newcerts # default place for new certs. + +certificate = $dir/cacert.pem # The CA certificate +serial = $dir/serial # The current serial number +crlnumber = $dir/crlnumber # the current crl number + # must be commented out to leave a V1 CRL +crl = $dir/crl.pem # The current CRL +private_key = $dir/private/cakey.pem # The private key +RANDFILE = $dir/private/.rand # private random number file + +x509_extensions = usr_cert # The extentions to add to the cert + +# Comment out the following two lines for the "traditional" +# (and highly broken) format. +name_opt = ca_default # Subject Name options +cert_opt = ca_default # Certificate field options + +# Extension copying option: use with caution. +# copy_extensions = copy + +# Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs +# so this is commented out by default to leave a V1 CRL. +# crlnumber must also be commented out to leave a V1 CRL. +# crl_extensions = crl_ext + +default_days = 365 # how long to certify for +default_crl_days= 30 # how long before next CRL +default_md = sha1 # which md to use. +preserve = no # keep passed DN ordering + +# A few difference way of specifying how similar the request should look +# For type CA, the listed attributes must be the same, and the optional +# and supplied fields are just that :-) +policy = policy_match + +# For the CA policy +[ policy_match ] +countryName = match +stateOrProvinceName = match +organizationName = match +organizationalUnitName = optional +commonName = supplied +emailAddress = optional + +# For the 'anything' policy +# At this point in time, you must list all acceptable 'object' +# types. +[ policy_anything ] +countryName = optional +stateOrProvinceName = optional +localityName = optional +organizationName = optional +organizationalUnitName = optional +commonName = supplied +emailAddress = optional + +#################################################################### +[ req ] +default_bits = 1024 +default_keyfile = privkey.pem +distinguished_name = req_distinguished_name +attributes = req_attributes +x509_extensions = v3_ca # The extentions to add to the self signed cert + +# Passwords for private keys if not present they will be prompted for +# input_password = secret +# output_password = secret + +# This sets a mask for permitted string types. There are several options. +# default: PrintableString, T61String, BMPString. +# pkix : PrintableString, BMPString. +# utf8only: only UTF8Strings. +# nombstr : PrintableString, T61String (no BMPStrings or UTF8Strings). +# MASK:XXXX a literal mask value. +# WARNING: current versions of Netscape crash on BMPStrings or UTF8Strings +# so use this option with caution! +string_mask = nombstr + +# req_extensions = v3_req # The extensions to add to a certificate request + +[ req_distinguished_name ] +countryName = Country Name (2 letter code) +countryName_default = BR +countryName_min = 2 +countryName_max = 2 + +stateOrProvinceName = State or Province Name (full name) +stateOrProvinceName_default = Espirito Santo + +localityName = Locality Name (eg, city) +localityName_default = Santo Antonio do Canaa + +0.organizationName = Organization Name (eg, company) +0.organizationName_default = Sao Tonico Ltda + +# we can do this but it is not needed normally :-) +#1.organizationName = Second Organization Name (eg, company) +#1.organizationName_default = World Wide Web Pty Ltd + +organizationalUnitName = Organizational Unit Name (eg, section) +organizationalUnitName_default = Department of Computer Science + +commonName = Common Name (eg, YOUR name) +commonName_default = Root B +commonName_max = 64 + +emailAddress = Email Address +emailAddress_max = 64 + +# SET-ex3 = SET extension number 3 + +[ req_attributes ] +challengePassword = A challenge password +challengePassword_min = 4 +challengePassword_max = 20 + +unstructuredName = An optional company name + +[ usr_cert ] + +# These extensions are added when 'ca' signs a request. + +# This goes against PKIX guidelines but some CAs do it and some software +# requires this to avoid interpreting an end user certificate as a CA. + +basicConstraints=CA:FALSE + +# Here are some examples of the usage of nsCertType. If it is omitted +# the certificate can be used for anything *except* object signing. + +# This is OK for an SSL server. +# nsCertType = server + +# For an object signing certificate this would be used. +# nsCertType = objsign + +# For normal client use this is typical +# nsCertType = client, email + +# and for everything including object signing: +# nsCertType = client, email, objsign + +# This is typical in keyUsage for a client certificate. +# keyUsage = nonRepudiation, digitalSignature, keyEncipherment + +# This will be displayed in Netscape's comment listbox. +nsComment = "OpenSSL Generated Certificate" + +# PKIX recommendations harmless if included in all certificates. +subjectKeyIdentifier=hash +authorityKeyIdentifier=keyid,issuer + +# This stuff is for subjectAltName and issuerAltname. +# Import the email address. +# subjectAltName=email:copy +# An alternative to produce certificates that aren't +# deprecated according to PKIX. +# subjectAltName=email:move + +# Copy subject details +# issuerAltName=issuer:copy + +#nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem +#nsBaseUrl +#nsRevocationUrl +#nsRenewalUrl +#nsCaPolicyUrl +#nsSslServerName + +[ v3_req ] + +# Extensions to add to a certificate request + +basicConstraints = CA:FALSE +keyUsage = nonRepudiation, digitalSignature, keyEncipherment + +[ v3_ca ] + + +# Extensions for a typical CA + + +# PKIX recommendation. + +subjectKeyIdentifier=hash + +authorityKeyIdentifier=keyid:always,issuer:always + +# This is what PKIX recommends but some broken software chokes on critical +# extensions. +#basicConstraints = critical,CA:true +# So we do this instead. +basicConstraints = CA:true + +# Key usage: this is typical for a CA certificate. However since it will +# prevent it being used as an test self-signed certificate it is best +# left out by default. +# keyUsage = cRLSign, keyCertSign + +# Some might want this also +# nsCertType = sslCA, emailCA + +# Include email address in subject alt name: another PKIX recommendation +# subjectAltName=email:copy +# Copy issuer details +# issuerAltName=issuer:copy + +# DER hex encoding of an extension: beware experts only! +# obj=DER:02:03 +# Where 'obj' is a standard or added object +# You can even override a supported extension: +# basicConstraints= critical, DER:30:03:01:01:FF + +[ crl_ext ] + +# CRL extensions. +# Only issuerAltName and authorityKeyIdentifier make any sense in a CRL. + +# issuerAltName=issuer:copy +authorityKeyIdentifier=keyid:always,issuer:always + +[ proxy_cert_ext ] +# These extensions should be added when creating a proxy certificate + +# This goes against PKIX guidelines but some CAs do it and some software +# requires this to avoid interpreting an end user certificate as a CA. + +basicConstraints=CA:FALSE + +# Here are some examples of the usage of nsCertType. If it is omitted +# the certificate can be used for anything *except* object signing. + +# This is OK for an SSL server. +# nsCertType = server + +# For an object signing certificate this would be used. +# nsCertType = objsign + +# For normal client use this is typical +# nsCertType = client, email + +# and for everything including object signing: +# nsCertType = client, email, objsign + +# This is typical in keyUsage for a client certificate. +# keyUsage = nonRepudiation, digitalSignature, keyEncipherment + +# This will be displayed in Netscape's comment listbox. +nsComment = "OpenSSL Generated Certificate" + +# PKIX recommendations harmless if included in all certificates. +subjectKeyIdentifier=hash +authorityKeyIdentifier=keyid,issuer:always + +# This stuff is for subjectAltName and issuerAltname. +# Import the email address. +# subjectAltName=email:copy +# An alternative to produce certificates that aren't +# deprecated according to PKIX. +# subjectAltName=email:move + +# Copy subject details +# issuerAltName=issuer:copy + +#nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem +#nsBaseUrl +#nsRevocationUrl +#nsRenewalUrl +#nsCaPolicyUrl +#nsSslServerName + +# This really needs to be in place for it to be a proxy certificate. +proxyCertInfo=critical,language:id-ppl-anyLanguage,pathlen:3,policy:foo diff --git a/samples/certs/rootB.sh b/samples/certs/rootB.sh new file mode 100755 index 0000000..9081188 --- /dev/null +++ b/samples/certs/rootB.sh @@ -0,0 +1,5 @@ +openssl req -newkey rsa:1024 -sha1 -keyout rootBkey.pem -out rootBreq.pem -nodes -config ./rootB.cnf -days 365 -batch + +openssl x509 -req -in rootBreq.pem -sha1 -extfile ./rootB.cnf -extensions v3_ca -signkey rootBkey.pem -out rootB.pem -days 365 + +openssl x509 -subject -issuer -noout -in rootB.pem diff --git a/samples/certs/serverA.cnf b/samples/certs/serverA.cnf new file mode 100644 index 0000000..f86b6b6 --- /dev/null +++ b/samples/certs/serverA.cnf @@ -0,0 +1,316 @@ +# +# OpenSSL example configuration file. +# This is mostly being used for generation of certificate requests. +# + +# This definition stops the following lines choking if HOME isn't +# defined. +HOME = . +RANDFILE = $ENV::HOME/.rnd + +# Extra OBJECT IDENTIFIER info: +#oid_file = $ENV::HOME/.oid +oid_section = new_oids + +# To use this configuration file with the "-extfile" option of the +# "openssl x509" utility, name here the section containing the +# X.509v3 extensions to use: +# extensions = +# (Alternatively, use a configuration file that has only +# X.509v3 extensions in its main [= default] section.) + +[ new_oids ] + +# We can add new OIDs in here for use by 'ca' and 'req'. +# Add a simple OID like this: +# testoid1=1.2.3.4 +# Or use config file substitution like this: +# testoid2=${testoid1}.5.6 + +#################################################################### +[ ca ] +default_ca = CA_default # The default ca section + +#################################################################### +[ CA_default ] + +dir = ./demoCA # Where everything is kept +certs = $dir/certs # Where the issued certs are kept +crl_dir = $dir/crl # Where the issued crl are kept +database = $dir/index.txt # database index file. +#unique_subject = no # Set to 'no' to allow creation of + # several ctificates with same subject. +new_certs_dir = $dir/newcerts # default place for new certs. + +certificate = $dir/cacert.pem # The CA certificate +serial = $dir/serial # The current serial number +crlnumber = $dir/crlnumber # the current crl number + # must be commented out to leave a V1 CRL +crl = $dir/crl.pem # The current CRL +private_key = $dir/private/cakey.pem # The private key +RANDFILE = $dir/private/.rand # private random number file + +x509_extensions = usr_cert # The extentions to add to the cert + +# Comment out the following two lines for the "traditional" +# (and highly broken) format. +name_opt = ca_default # Subject Name options +cert_opt = ca_default # Certificate field options + +# Extension copying option: use with caution. +# copy_extensions = copy + +# Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs +# so this is commented out by default to leave a V1 CRL. +# crlnumber must also be commented out to leave a V1 CRL. +# crl_extensions = crl_ext + +default_days = 365 # how long to certify for +default_crl_days= 30 # how long before next CRL +default_md = sha1 # which md to use. +preserve = no # keep passed DN ordering + +# A few difference way of specifying how similar the request should look +# For type CA, the listed attributes must be the same, and the optional +# and supplied fields are just that :-) +policy = policy_match + +# For the CA policy +[ policy_match ] +countryName = match +stateOrProvinceName = match +organizationName = match +organizationalUnitName = optional +commonName = supplied +emailAddress = optional + +# For the 'anything' policy +# At this point in time, you must list all acceptable 'object' +# types. +[ policy_anything ] +countryName = optional +stateOrProvinceName = optional +localityName = optional +organizationName = optional +organizationalUnitName = optional +commonName = supplied +emailAddress = optional + +#################################################################### +[ req ] +default_bits = 1024 +default_keyfile = privkey.pem +distinguished_name = req_distinguished_name +attributes = req_attributes +x509_extensions = v3_ca # The extentions to add to the self signed cert + +# Passwords for private keys if not present they will be prompted for +# input_password = secret +# output_password = secret + +# This sets a mask for permitted string types. There are several options. +# default: PrintableString, T61String, BMPString. +# pkix : PrintableString, BMPString. +# utf8only: only UTF8Strings. +# nombstr : PrintableString, T61String (no BMPStrings or UTF8Strings). +# MASK:XXXX a literal mask value. +# WARNING: current versions of Netscape crash on BMPStrings or UTF8Strings +# so use this option with caution! +string_mask = nombstr + +# req_extensions = v3_req # The extensions to add to a certificate request + +[ req_distinguished_name ] +countryName = Country Name (2 letter code) +countryName_default = BR +countryName_min = 2 +countryName_max = 2 + +stateOrProvinceName = State or Province Name (full name) +stateOrProvinceName_default = Some-State +stateOrProvinceName_default = Espirito Santo + +localityName = Locality Name (eg, city) +localityName_default = Santo Antonio do Canaa + +0.organizationName = Organization Name (eg, company) +0.organizationName_default = Sao Tonico Ltda + +# we can do this but it is not needed normally :-) +#1.organizationName = Second Organization Name (eg, company) +#1.organizationName_default = World Wide Web Pty Ltd + +organizationalUnitName = Organizational Unit Name (eg, section) +organizationalUnitName_default = Department of Computer Science + +commonName = Common Name (eg, YOUR name) +commonName_default = Server A +commonName_max = 64 + +emailAddress = Email Address +emailAddress_max = 64 + +# SET-ex3 = SET extension number 3 + +[ req_attributes ] +challengePassword = A challenge password +challengePassword_min = 4 +challengePassword_max = 20 + +unstructuredName = An optional company name + +[ usr_cert ] + +# These extensions are added when 'ca' signs a request. + +# This goes against PKIX guidelines but some CAs do it and some software +# requires this to avoid interpreting an end user certificate as a CA. + +basicConstraints=CA:FALSE + +# Here are some examples of the usage of nsCertType. If it is omitted +# the certificate can be used for anything *except* object signing. + +# This is OK for an SSL server. +# nsCertType = server + +# For an object signing certificate this would be used. +# nsCertType = objsign + +# For normal client use this is typical +# nsCertType = client, email + +# and for everything including object signing: +# nsCertType = client, email, objsign + +# This is typical in keyUsage for a client certificate. +# keyUsage = nonRepudiation, digitalSignature, keyEncipherment + +# This will be displayed in Netscape's comment listbox. +nsComment = "OpenSSL Generated Certificate" + +# PKIX recommendations harmless if included in all certificates. +subjectKeyIdentifier=hash +authorityKeyIdentifier=keyid,issuer + +# This stuff is for subjectAltName and issuerAltname. +# Import the email address. +# subjectAltName=email:copy +# An alternative to produce certificates that aren't +# deprecated according to PKIX. +# subjectAltName=email:move + +# Copy subject details +# issuerAltName=issuer:copy + +#nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem +#nsBaseUrl +#nsRevocationUrl +#nsRenewalUrl +#nsCaPolicyUrl +#nsSslServerName + +[ v3_req ] + +# Extensions to add to a certificate request + +basicConstraints = CA:FALSE +keyUsage = nonRepudiation, digitalSignature, keyEncipherment + +[ v3_ca ] + + +# Extensions for a typical CA + + +# PKIX recommendation. + +subjectKeyIdentifier=hash + +authorityKeyIdentifier=keyid:always,issuer:always + +# This is what PKIX recommends but some broken software chokes on critical +# extensions. +#basicConstraints = critical,CA:true +# So we do this instead. +basicConstraints = CA:true + +# Key usage: this is typical for a CA certificate. However since it will +# prevent it being used as an test self-signed certificate it is best +# left out by default. +# keyUsage = cRLSign, keyCertSign + +# Some might want this also +# nsCertType = sslCA, emailCA + +# Include email address in subject alt name: another PKIX recommendation +# subjectAltName=email:copy +# Copy issuer details +# issuerAltName=issuer:copy + +# DER hex encoding of an extension: beware experts only! +# obj=DER:02:03 +# Where 'obj' is a standard or added object +# You can even override a supported extension: +# basicConstraints= critical, DER:30:03:01:01:FF + +[ crl_ext ] + +# CRL extensions. +# Only issuerAltName and authorityKeyIdentifier make any sense in a CRL. + +# issuerAltName=issuer:copy +authorityKeyIdentifier=keyid:always,issuer:always + +[ proxy_cert_ext ] +# These extensions should be added when creating a proxy certificate + +# This goes against PKIX guidelines but some CAs do it and some software +# requires this to avoid interpreting an end user certificate as a CA. + +basicConstraints=CA:FALSE + +# Here are some examples of the usage of nsCertType. If it is omitted +# the certificate can be used for anything *except* object signing. + +# This is OK for an SSL server. +# nsCertType = server + +# For an object signing certificate this would be used. +# nsCertType = objsign + +# For normal client use this is typical +# nsCertType = client, email + +# and for everything including object signing: +# nsCertType = client, email, objsign + +# This is typical in keyUsage for a client certificate. +# keyUsage = nonRepudiation, digitalSignature, keyEncipherment + +# This will be displayed in Netscape's comment listbox. +nsComment = "OpenSSL Generated Certificate" + +# PKIX recommendations harmless if included in all certificates. +subjectKeyIdentifier=hash +authorityKeyIdentifier=keyid,issuer:always + +# This stuff is for subjectAltName and issuerAltname. +# Import the email address. +# subjectAltName=email:copy +# An alternative to produce certificates that aren't +# deprecated according to PKIX. +# subjectAltName=email:move + +# Copy subject details +# issuerAltName=issuer:copy + +#nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem +#nsBaseUrl +#nsRevocationUrl +#nsRenewalUrl +#nsCaPolicyUrl +#nsSslServerName + +# This really needs to be in place for it to be a proxy certificate. +proxyCertInfo=critical,language:id-ppl-anyLanguage,pathlen:3,policy:foo diff --git a/samples/certs/serverA.sh b/samples/certs/serverA.sh new file mode 100755 index 0000000..7fa04e0 --- /dev/null +++ b/samples/certs/serverA.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +openssl req -newkey rsa:1024 -keyout serverAkey.pem -out serverAreq.pem \ + -config ./serverA.cnf -nodes -days 365 -batch + +openssl x509 -req -in serverAreq.pem -sha1 -extfile ./serverA.cnf \ + -extensions usr_cert -CA rootA.pem -CAkey rootAkey.pem -CAcreateserial \ + -out serverAcert.pem -days 365 + +cat serverAcert.pem rootA.pem > serverA.pem + +openssl x509 -subject -issuer -noout -in serverA.pem diff --git a/samples/certs/serverB.cnf b/samples/certs/serverB.cnf new file mode 100644 index 0000000..2a1426a --- /dev/null +++ b/samples/certs/serverB.cnf @@ -0,0 +1,316 @@ +# +# OpenSSL example configuration file. +# This is mostly being used for generation of certificate requests. +# + +# This definition stops the following lines choking if HOME isn't +# defined. +HOME = . +RANDFILE = $ENV::HOME/.rnd + +# Extra OBJECT IDENTIFIER info: +#oid_file = $ENV::HOME/.oid +oid_section = new_oids + +# To use this configuration file with the "-extfile" option of the +# "openssl x509" utility, name here the section containing the +# X.509v3 extensions to use: +# extensions = +# (Alternatively, use a configuration file that has only +# X.509v3 extensions in its main [= default] section.) + +[ new_oids ] + +# We can add new OIDs in here for use by 'ca' and 'req'. +# Add a simple OID like this: +# testoid1=1.2.3.4 +# Or use config file substitution like this: +# testoid2=${testoid1}.5.6 + +#################################################################### +[ ca ] +default_ca = CA_default # The default ca section + +#################################################################### +[ CA_default ] + +dir = ./demoCA # Where everything is kept +certs = $dir/certs # Where the issued certs are kept +crl_dir = $dir/crl # Where the issued crl are kept +database = $dir/index.txt # database index file. +#unique_subject = no # Set to 'no' to allow creation of + # several ctificates with same subject. +new_certs_dir = $dir/newcerts # default place for new certs. + +certificate = $dir/cacert.pem # The CA certificate +serial = $dir/serial # The current serial number +crlnumber = $dir/crlnumber # the current crl number + # must be commented out to leave a V1 CRL +crl = $dir/crl.pem # The current CRL +private_key = $dir/private/cakey.pem # The private key +RANDFILE = $dir/private/.rand # private random number file + +x509_extensions = usr_cert # The extentions to add to the cert + +# Comment out the following two lines for the "traditional" +# (and highly broken) format. +name_opt = ca_default # Subject Name options +cert_opt = ca_default # Certificate field options + +# Extension copying option: use with caution. +# copy_extensions = copy + +# Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs +# so this is commented out by default to leave a V1 CRL. +# crlnumber must also be commented out to leave a V1 CRL. +# crl_extensions = crl_ext + +default_days = 365 # how long to certify for +default_crl_days= 30 # how long before next CRL +default_md = sha1 # which md to use. +preserve = no # keep passed DN ordering + +# A few difference way of specifying how similar the request should look +# For type CA, the listed attributes must be the same, and the optional +# and supplied fields are just that :-) +policy = policy_match + +# For the CA policy +[ policy_match ] +countryName = match +stateOrProvinceName = match +organizationName = match +organizationalUnitName = optional +commonName = supplied +emailAddress = optional + +# For the 'anything' policy +# At this point in time, you must list all acceptable 'object' +# types. +[ policy_anything ] +countryName = optional +stateOrProvinceName = optional +localityName = optional +organizationName = optional +organizationalUnitName = optional +commonName = supplied +emailAddress = optional + +#################################################################### +[ req ] +default_bits = 1024 +default_keyfile = privkey.pem +distinguished_name = req_distinguished_name +attributes = req_attributes +x509_extensions = v3_ca # The extentions to add to the self signed cert + +# Passwords for private keys if not present they will be prompted for +# input_password = secret +# output_password = secret + +# This sets a mask for permitted string types. There are several options. +# default: PrintableString, T61String, BMPString. +# pkix : PrintableString, BMPString. +# utf8only: only UTF8Strings. +# nombstr : PrintableString, T61String (no BMPStrings or UTF8Strings). +# MASK:XXXX a literal mask value. +# WARNING: current versions of Netscape crash on BMPStrings or UTF8Strings +# so use this option with caution! +string_mask = nombstr + +# req_extensions = v3_req # The extensions to add to a certificate request + +[ req_distinguished_name ] +countryName = Country Name (2 letter code) +countryName_default = BR +countryName_min = 2 +countryName_max = 2 + +stateOrProvinceName = State or Province Name (full name) +stateOrProvinceName_default = Some-State +stateOrProvinceName_default = Espirito Santo + +localityName = Locality Name (eg, city) +localityName_default = Santo Antonio do Canaa + +0.organizationName = Organization Name (eg, company) +0.organizationName_default = Sao Tonico Ltda + +# we can do this but it is not needed normally :-) +#1.organizationName = Second Organization Name (eg, company) +#1.organizationName_default = World Wide Web Pty Ltd + +organizationalUnitName = Organizational Unit Name (eg, section) +organizationalUnitName_default = Department of Computer Science + +commonName = Common Name (eg, YOUR name) +commonName_default = Server B +commonName_max = 64 + +emailAddress = Email Address +emailAddress_max = 64 + +# SET-ex3 = SET extension number 3 + +[ req_attributes ] +challengePassword = A challenge password +challengePassword_min = 4 +challengePassword_max = 20 + +unstructuredName = An optional company name + +[ usr_cert ] + +# These extensions are added when 'ca' signs a request. + +# This goes against PKIX guidelines but some CAs do it and some software +# requires this to avoid interpreting an end user certificate as a CA. + +basicConstraints=CA:FALSE + +# Here are some examples of the usage of nsCertType. If it is omitted +# the certificate can be used for anything *except* object signing. + +# This is OK for an SSL server. +# nsCertType = server + +# For an object signing certificate this would be used. +# nsCertType = objsign + +# For normal client use this is typical +# nsCertType = client, email + +# and for everything including object signing: +# nsCertType = client, email, objsign + +# This is typical in keyUsage for a client certificate. +# keyUsage = nonRepudiation, digitalSignature, keyEncipherment + +# This will be displayed in Netscape's comment listbox. +nsComment = "OpenSSL Generated Certificate" + +# PKIX recommendations harmless if included in all certificates. +subjectKeyIdentifier=hash +authorityKeyIdentifier=keyid,issuer + +# This stuff is for subjectAltName and issuerAltname. +# Import the email address. +# subjectAltName=email:copy +# An alternative to produce certificates that aren't +# deprecated according to PKIX. +# subjectAltName=email:move + +# Copy subject details +# issuerAltName=issuer:copy + +#nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem +#nsBaseUrl +#nsRevocationUrl +#nsRenewalUrl +#nsCaPolicyUrl +#nsSslServerName + +[ v3_req ] + +# Extensions to add to a certificate request + +basicConstraints = CA:FALSE +keyUsage = nonRepudiation, digitalSignature, keyEncipherment + +[ v3_ca ] + + +# Extensions for a typical CA + + +# PKIX recommendation. + +subjectKeyIdentifier=hash + +authorityKeyIdentifier=keyid:always,issuer:always + +# This is what PKIX recommends but some broken software chokes on critical +# extensions. +#basicConstraints = critical,CA:true +# So we do this instead. +basicConstraints = CA:true + +# Key usage: this is typical for a CA certificate. However since it will +# prevent it being used as an test self-signed certificate it is best +# left out by default. +# keyUsage = cRLSign, keyCertSign + +# Some might want this also +# nsCertType = sslCA, emailCA + +# Include email address in subject alt name: another PKIX recommendation +# subjectAltName=email:copy +# Copy issuer details +# issuerAltName=issuer:copy + +# DER hex encoding of an extension: beware experts only! +# obj=DER:02:03 +# Where 'obj' is a standard or added object +# You can even override a supported extension: +# basicConstraints= critical, DER:30:03:01:01:FF + +[ crl_ext ] + +# CRL extensions. +# Only issuerAltName and authorityKeyIdentifier make any sense in a CRL. + +# issuerAltName=issuer:copy +authorityKeyIdentifier=keyid:always,issuer:always + +[ proxy_cert_ext ] +# These extensions should be added when creating a proxy certificate + +# This goes against PKIX guidelines but some CAs do it and some software +# requires this to avoid interpreting an end user certificate as a CA. + +basicConstraints=CA:FALSE + +# Here are some examples of the usage of nsCertType. If it is omitted +# the certificate can be used for anything *except* object signing. + +# This is OK for an SSL server. +# nsCertType = server + +# For an object signing certificate this would be used. +# nsCertType = objsign + +# For normal client use this is typical +# nsCertType = client, email + +# and for everything including object signing: +# nsCertType = client, email, objsign + +# This is typical in keyUsage for a client certificate. +# keyUsage = nonRepudiation, digitalSignature, keyEncipherment + +# This will be displayed in Netscape's comment listbox. +nsComment = "OpenSSL Generated Certificate" + +# PKIX recommendations harmless if included in all certificates. +subjectKeyIdentifier=hash +authorityKeyIdentifier=keyid,issuer:always + +# This stuff is for subjectAltName and issuerAltname. +# Import the email address. +# subjectAltName=email:copy +# An alternative to produce certificates that aren't +# deprecated according to PKIX. +# subjectAltName=email:move + +# Copy subject details +# issuerAltName=issuer:copy + +#nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem +#nsBaseUrl +#nsRevocationUrl +#nsRenewalUrl +#nsCaPolicyUrl +#nsSslServerName + +# This really needs to be in place for it to be a proxy certificate. +proxyCertInfo=critical,language:id-ppl-anyLanguage,pathlen:3,policy:foo diff --git a/samples/certs/serverB.sh b/samples/certs/serverB.sh new file mode 100755 index 0000000..c75b00a --- /dev/null +++ b/samples/certs/serverB.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +openssl req -newkey rsa:1024 -keyout serverBkey.pem -out serverBreq.pem \ + -config ./serverB.cnf -nodes -days 365 -batch + +openssl x509 -req -in serverBreq.pem -sha1 -extfile ./serverB.cnf \ + -extensions usr_cert -CA rootB.pem -CAkey rootBkey.pem -CAcreateserial \ + -out serverBcert.pem -days 365 + +cat serverBcert.pem rootB.pem > serverB.pem + +openssl x509 -subject -issuer -noout -in serverB.pem diff --git a/samples/loop-gc/client.lua b/samples/loop-gc/client.lua new file mode 100644 index 0000000..bcf5f8d --- /dev/null +++ b/samples/loop-gc/client.lua @@ -0,0 +1,27 @@ +-- +-- Public domain +-- +require("socket") +require("ssl") + +local params = { + mode = "client", + protocol = "sslv3", + key = "../certs/clientAkey.pem", + certificate = "../certs/clientA.pem", + cafile = "../certs/rootA.pem", + verify = {"peer", "fail_if_no_peer_cert"}, + options = {"all", "no_sslv2"}, +} + +while true do + local peer = socket.tcp() + assert( peer:connect("127.0.0.1", 8888) ) + + -- [[ SSL wrapper + peer = assert( ssl.wrap(peer, params) ) + assert( peer:dohandshake() ) + --]] + + print(peer:receive("*l")) +end diff --git a/samples/loop-gc/server.lua b/samples/loop-gc/server.lua new file mode 100644 index 0000000..32e48f9 --- /dev/null +++ b/samples/loop-gc/server.lua @@ -0,0 +1,35 @@ +-- +-- Public domain +-- +require("socket") +require("ssl") + +local params = { + mode = "server", + protocol = "sslv3", + key = "../certs/serverAkey.pem", + certificate = "../certs/serverA.pem", + cafile = "../certs/rootA.pem", + verify = {"peer", "fail_if_no_peer_cert"}, + options = {"all", "no_sslv2"}, +} + +-- [[ SSL context +local ctx = assert( ssl.newcontext(params) ) +--]] + +local server = socket.tcp() +server:setoption('reuseaddr', true) +assert( server:bind("127.0.0.1", 8888) ) +server:listen() + +while true do + local peer = server:accept() + + -- [[ SSL wrapper + peer = assert( ssl.wrap(peer, ctx) ) + assert( peer:dohandshake() ) + --]] + + peer:send("loop test\n") +end diff --git a/samples/loop/client.lua b/samples/loop/client.lua new file mode 100644 index 0000000..13cd720 --- /dev/null +++ b/samples/loop/client.lua @@ -0,0 +1,28 @@ +-- +-- Public domain +-- +require("socket") +require("ssl") + +local params = { + mode = "client", + protocol = "sslv3", + key = "../certs/clientAkey.pem", + certificate = "../certs/clientA.pem", + cafile = "../certs/rootA.pem", + verify = {"peer", "fail_if_no_peer_cert"}, + options = {"all", "no_sslv2"}, +} + +while true do + local peer = socket.tcp() + assert( peer:connect("127.0.0.1", 8888) ) + + -- [[ SSL wrapper + peer = assert( ssl.wrap(peer, params) ) + assert( peer:dohandshake() ) + --]] + + print(peer:receive("*l")) + peer:close() +end diff --git a/samples/loop/server.lua b/samples/loop/server.lua new file mode 100644 index 0000000..f35b8a9 --- /dev/null +++ b/samples/loop/server.lua @@ -0,0 +1,36 @@ +-- +-- Public domain +-- +require("socket") +require("ssl") + +local params = { + mode = "server", + protocol = "sslv3", + key = "../certs/serverAkey.pem", + certificate = "../certs/serverA.pem", + cafile = "../certs/rootA.pem", + verify = {"peer", "fail_if_no_peer_cert"}, + options = {"all", "no_sslv2"}, +} + +-- [[ SSL context +local ctx = assert( ssl.newcontext(params) ) +--]] + +local server = socket.tcp() +server:setoption('reuseaddr', true) +assert( server:bind("127.0.0.1", 8888) ) +server:listen() + +while true do + local peer = server:accept() + + -- [[ SSL wrapper + peer = assert( ssl.wrap(peer, ctx) ) + assert( peer:dohandshake() ) + --]] + + peer:send("loop test\n") + peer:close() +end diff --git a/samples/oneshot/client.lua b/samples/oneshot/client.lua new file mode 100644 index 0000000..5ecf492 --- /dev/null +++ b/samples/oneshot/client.lua @@ -0,0 +1,26 @@ +-- +-- Public domain +-- +require("socket") +require("ssl") + +local params = { + mode = "client", + protocol = "sslv3", + key = "../certs/clientAkey.pem", + certificate = "../certs/clientA.pem", + cafile = "../certs/rootA.pem", + verify = {"peer", "fail_if_no_peer_cert"}, + options = {"all", "no_sslv2"}, +} + +local peer = socket.tcp() +peer:connect("127.0.0.1", 8888) + +-- [[ SSL wrapper +peer = assert( ssl.wrap(peer, params) ) +assert(peer:dohandshake()) +--]] + +print(peer:receive("*l")) +peer:close() diff --git a/samples/oneshot/server.lua b/samples/oneshot/server.lua new file mode 100644 index 0000000..93261e2 --- /dev/null +++ b/samples/oneshot/server.lua @@ -0,0 +1,35 @@ +-- +-- Public domain +-- +require("socket") +require("ssl") + +local params = { + mode = "server", + protocol = "sslv3", + key = "../certs/serverAkey.pem", + certificate = "../certs/serverA.pem", + cafile = "../certs/rootA.pem", + verify = {"peer", "fail_if_no_peer_cert"}, + options = {"all", "no_sslv2"}, +} + + +-- [[ SSL context +local ctx = assert(ssl.newcontext(params)) +--]] + +local server = socket.tcp() +server:setoption('reuseaddr', true) +assert( server:bind("127.0.0.1", 8888) ) +server:listen() + +local peer = server:accept() + +-- [[ SSL wrapper +peer = assert( ssl.wrap(peer, ctx) ) +assert( peer:dohandshake() ) +--]] + +peer:send("oneshot test\n") +peer:close() diff --git a/samples/want/client.lua b/samples/want/client.lua new file mode 100644 index 0000000..586f0a4 --- /dev/null +++ b/samples/want/client.lua @@ -0,0 +1,66 @@ +-- +-- Test the conn:want() function +-- +-- Public domain +-- +require("socket") +require("ssl") + +local params = { + mode = "client", + protocol = "sslv3", + key = "../certs/clientAkey.pem", + certificate = "../certs/clientA.pem", + cafile = "../certs/rootA.pem", + verify = {"peer", "fail_if_no_peer_cert"}, + options = {"all", "no_sslv2"}, +} + +-- Wait until socket is ready (for reading or writing) +local function wait(peer) + -- What event blocked us? + local err + if peer.want then -- Is it an SSL connection? + err = peer:want() + print("Want? ", err) + else + -- No, it's a normal TCP connection... + err = "timeout" + end + + if err == "read" or err == "timeout" then + socket.select({peer}, nil) + elseif err == "write" then + socket.select(nil, {peer}) + else + peer:close() + os.exit(1) + end +end + +-- Start the TCP connection +local peer = socket.tcp() +assert( peer:connect("127.0.0.1", 8888) ) + +-- [[ SSL wrapper +peer = assert( ssl.wrap(peer, params) ) +peer:settimeout(0.3) +local succ = peer:dohandshake() +while not succ do + wait(peer) + succ = peer:dohandshake() +end +print("** Handshake done") +--]] + +-- If the section above is commented, the timeout is not set. +-- We set it again for safetiness. +peer:settimeout(0.3) + +-- Try to receive a line +local str = peer:receive("*l") +while not str do + wait(peer) + str = peer:receive("*l") +end +peer:close() diff --git a/samples/want/server.lua b/samples/want/server.lua new file mode 100644 index 0000000..4a874b6 --- /dev/null +++ b/samples/want/server.lua @@ -0,0 +1,43 @@ +-- +-- Public domain +-- +require("socket") +require("ssl") + +local params = { + mode = "server", + protocol = "sslv3", + key = "../certs/serverAkey.pem", + certificate = "../certs/serverA.pem", + cafile = "../certs/rootA.pem", + verify = {"peer", "fail_if_no_peer_cert"}, + options = {"all", "no_sslv2"}, +} + +-- [[ SSL context +local ctx = assert(ssl.newcontext(params)) +--]] + +local server = socket.tcp() +server:setoption('reuseaddr', true) +assert( server:bind("127.0.0.1", 8888) ) +server:listen() + +local peer = server:accept() + +-- [[ SSL wrapper +peer = assert( ssl.wrap(peer, ctx) ) +socket.sleep(2) -- force the timeout in the client dohandshake() +assert( peer:dohandshake() ) +--]] + +for i = 1, 10 do + local v = tostring(i) + io.write(v) + io.flush() + peer:send(v) + socket.sleep(1) -- force the timeout in the client receive() +end +io.write("\n") +peer:send("\n") +peer:close() diff --git a/samples/wantread/client.lua b/samples/wantread/client.lua new file mode 100644 index 0000000..36112df --- /dev/null +++ b/samples/wantread/client.lua @@ -0,0 +1,55 @@ +-- +-- Public domain +-- +require("socket") +require("ssl") + +local params = { + mode = "client", + protocol = "sslv3", + key = "../certs/clientAkey.pem", + certificate = "../certs/clientA.pem", + cafile = "../certs/rootA.pem", + verify = {"peer", "fail_if_no_peer_cert"}, + options = {"all", "no_sslv2"}, +} + + +local function wait(peer, err) + if err == "timeout" or err == "wantread" then + socket.select({peer}, nil) + elseif err == "wantwrite" then + socket.select(nil, {peer}) + else + peer:close() + os.exit(1) + end +end + + +local peer = socket.tcp() +assert( peer:connect("127.0.0.1", 8888) ) + +-- [[ SSL wrapper +peer = assert( ssl.wrap(peer, params) ) +peer:settimeout(0.3) +local succ, err = peer:dohandshake() +while not succ do + print("handshake", err) + wait(peer, err) + succ, err = peer:dohandshake() +end +print("** Handshake done") +--]] + +-- If the section above is commented, the timeout is not set. +-- We set it again for safetiness. +peer:settimeout(0.3) + +local str, err, part = peer:receive("*l") +while not str do + print(part, err) + wait(peer, err) + str, err, part = peer:receive("*l") +end +peer:close() diff --git a/samples/wantread/server.lua b/samples/wantread/server.lua new file mode 100644 index 0000000..0be23a5 --- /dev/null +++ b/samples/wantread/server.lua @@ -0,0 +1,45 @@ +-- +-- Test the conn:want() function. +-- +-- Public domain +-- +require("socket") +require("ssl") + +local params = { + mode = "server", + protocol = "sslv3", + key = "../certs/serverAkey.pem", + certificate = "../certs/serverA.pem", + cafile = "../certs/rootA.pem", + verify = {"peer", "fail_if_no_peer_cert"}, + options = {"all", "no_sslv2"}, +} + +-- [[ SSL context +local ctx = assert(ssl.newcontext(params)) +--]] + +local server = socket.tcp() +server:setoption('reuseaddr', true) +assert( server:bind("127.0.0.1", 8888) ) +server:listen() + +local peer = server:accept() + +-- [[ SSL wrapper +peer = assert( ssl.wrap(peer, ctx) ) +socket.sleep(2) -- force the timeout in the client dohandshake() +assert( peer:dohandshake() ) +--]] + +for i = 1, 10 do + local v = tostring(i) + io.write(v) + io.flush() + peer:send(v) + socket.sleep(1) -- force the timeout in the client receive() +end +io.write("\n") +peer:send("\n") +peer:close() diff --git a/samples/wantwrite/client.lua b/samples/wantwrite/client.lua new file mode 100644 index 0000000..c0e7be1 --- /dev/null +++ b/samples/wantwrite/client.lua @@ -0,0 +1,49 @@ +-- +-- Public domain +-- +require("socket") +require("ssl") + +local params = { + mode = "client", + protocol = "sslv3", + key = "../certs/clientAkey.pem", + certificate = "../certs/clientA.pem", + cafile = "../certs/rootA.pem", + verify = {"peer", "fail_if_no_peer_cert"}, + options = {"all", "no_sslv2"}, +} + +local function wait(peer, err) + if err == "wantread" then + socket.select({peer}, nil) + elseif err == "timeout" or err == "wantwrite" then + socket.select(nil, {peer}) + else + peer:close() + os.exit(1) + end +end + + +local peer = socket.tcp() +assert( peer:connect("127.0.0.1", 8888) ) + +-- [[ SSL wrapper +peer = assert( ssl.wrap(peer, params) ) +assert( peer:dohandshake() ) +--]] + +peer:settimeout(0.3) + +local str = "a rose is a rose is a rose is a...\n" +while true do + print("Sending...") + local succ, err = peer:send(str) + while succ do + succ, err = peer:send(str) + end + print("Waiting...", err) + wait(peer, err) +end +peer:close() diff --git a/samples/wantwrite/server.lua b/samples/wantwrite/server.lua new file mode 100644 index 0000000..7d73dce --- /dev/null +++ b/samples/wantwrite/server.lua @@ -0,0 +1,40 @@ +-- +-- Public domain +-- +require("socket") +require("ssl") + +print("Use Ctrl+S and Ctrl+Q to suspend and resume the server.") + +local params = { + mode = "server", + protocol = "sslv3", + key = "../certs/serverAkey.pem", + certificate = "../certs/serverA.pem", + cafile = "../certs/rootA.pem", + verify = {"peer", "fail_if_no_peer_cert"}, + options = {"all", "no_sslv2"}, +} + + +-- [[ SSL context +local ctx = assert(ssl.newcontext(params)) +--]] + +local server = socket.tcp() +server:setoption('reuseaddr', true) +assert( server:bind("127.0.0.1", 8888) ) +server:listen() + +local peer = server:accept() + +-- [[ SSL wrapper + peer = assert( ssl.wrap(peer, ctx) ) + assert( peer:dohandshake() ) +--]] + +while true do + local str = peer:receive("*l") + print(str) +end +peer:close() diff --git a/src/Makefile b/src/Makefile new file mode 100644 index 0000000..cc53eb0 --- /dev/null +++ b/src/Makefile @@ -0,0 +1,61 @@ +CMOD=ssl.so +LMOD=ssl.lua + +OBJS= \ + timeout.o \ + buffer.o \ + io.o \ + usocket.o \ + context.o \ + ssl.o + +LIBS=-lssl -lcrypto + +WARN=-Wall -pedantic + +BSD_CFLAGS=-O2 -fpic $(WARN) $(INCDIR) $(DEFS) +BSD_LDFLAGS=-O -shared -fpic $(LIBDIR) + +LNX_CFLAGS=-O2 -fpic $(WARN) $(INCDIR) $(DEFS) +LNX_LDFLAGS=-O -shared -fpic $(LIBDIR) + +MAC_ENV=env MACOSX_DEPLOYMENT_TARGET='$(MACVER)' +MAC_CFLAGS=-O2 -fno-common $(WARN) $(INCDIR) $(DEFS) +MAC_LDFLAGS=-bundle -undefined dynamic_lookup $(LIBDIR) + +CP=cp +CC=gcc +LD=$(MYENV) gcc +CFLAGS=$(MYCFLAGS) +LDFLAGS=$(MYLDFLAGS) + +.PHONY: all clean install none linux bsd macosx + +all: + +install: $(CMOD) $(LMOD) + $(CP) $(CMOD) $(CPATH) + $(CP) $(LMOD) $(LUAPATH) + +linux: + @make $(CMOD) MYCFLAGS="$(LNX_CFLAGS)" MYLDFLAGS="$(LNX_LDFLAGS)" + +bsd: + @make $(CMOD) MYCFLAGS="$(BSD_CFLAGS)" MYLDFLAGS="$(BSD_LDFLAGS)" + +macosx: + @make $(CMOD) MYCFLAGS="$(MAC_CFLAGS)" MYLDFLAGS="$(MAC_LDFLAGS)" MYENV="$(MAC_ENV)" + + +$(CMOD): $(OBJS) + $(LD) $(LDFLAGS) -o $@ $(OBJS) $(LIBS) + +clean: + rm -f $(OBJS) $(CMOD) + +buffer.o: buffer.c buffer.h io.h timeout.h +io.o: io.c io.h timeout.h +timeout.o: timeout.c timeout.h +usocket.o: usocket.c socket.h io.h timeout.h usocket.h +context.o: context.c context.h +ssl.o: ssl.c socket.h io.h timeout.h usocket.h buffer.h context.h context.c diff --git a/src/buffer.c b/src/buffer.c new file mode 100644 index 0000000..673fd6f --- /dev/null +++ b/src/buffer.c @@ -0,0 +1,237 @@ +/*=========================================================================*\ +* LuaSocket 2.0.2 +* Copyright (C) 2004-2007 Diego Nehab +* +* Input/Output interface for Lua programs +* +* RCS ID: $Id: buffer.c,v 1.28 2007/06/11 23:44:54 diego Exp $ +\*=========================================================================*/ +#include "lua.h" +#include "lauxlib.h" + +#include "buffer.h" + +/*=========================================================================*\ +* Internal function prototypes +\*=========================================================================*/ +static int recvraw(p_buffer buf, size_t wanted, luaL_Buffer *b); +static int recvline(p_buffer buf, luaL_Buffer *b); +static int recvall(p_buffer buf, luaL_Buffer *b); +static int buffer_get(p_buffer buf, const char **data, size_t *count); +static void buffer_skip(p_buffer buf, size_t count); +static int sendraw(p_buffer buf, const char *data, size_t count, size_t *sent); + +/* min and max macros */ +#ifndef MIN +#define MIN(x, y) ((x) < (y) ? x : y) +#endif +#ifndef MAX +#define MAX(x, y) ((x) > (y) ? x : y) +#endif + +/*=========================================================================*\ +* Exported functions +\*=========================================================================*/ +/*-------------------------------------------------------------------------*\ +* Initializes C structure +\*-------------------------------------------------------------------------*/ +void buffer_init(p_buffer buf, p_io io, p_timeout tm) { + buf->first = buf->last = 0; + buf->io = io; + buf->tm = tm; +} + +/*-------------------------------------------------------------------------*\ +* object:send() interface +\*-------------------------------------------------------------------------*/ +int buffer_meth_send(lua_State *L, p_buffer buf) { + int top = lua_gettop(L); + int err = IO_DONE; + size_t size = 0, sent = 0; + const char *data = luaL_checklstring(L, 2, &size); + long start = (long) luaL_optnumber(L, 3, 1); + long end = (long) luaL_optnumber(L, 4, -1); + p_timeout tm = timeout_markstart(buf->tm); + if (start < 0) start = (long) (size+start+1); + if (end < 0) end = (long) (size+end+1); + if (start < 1) start = (long) 1; + if (end > (long) size) end = (long) size; + if (start <= end) err = sendraw(buf, data+start-1, end-start+1, &sent); + /* check if there was an error */ + if (err != IO_DONE) { + lua_pushnil(L); + lua_pushstring(L, buf->io->error(buf->io->ctx, err)); + lua_pushnumber(L, sent+start-1); + } else { + lua_pushnumber(L, sent+start-1); + lua_pushnil(L); + lua_pushnil(L); + } +#ifdef BUFFER_DEBUG + /* push time elapsed during operation as the last return value */ + lua_pushnumber(L, timeout_gettime() - timeout_getstart(tm)); +#endif + return lua_gettop(L) - top; +} + +/*-------------------------------------------------------------------------*\ +* object:receive() interface +\*-------------------------------------------------------------------------*/ +int buffer_meth_receive(lua_State *L, p_buffer buf) { + int err = IO_DONE, top = lua_gettop(L); + luaL_Buffer b; + size_t size; + const char *part = luaL_optlstring(L, 3, "", &size); + p_timeout tm = timeout_markstart(buf->tm); + /* initialize buffer with optional extra prefix + * (useful for concatenating previous partial results) */ + luaL_buffinit(L, &b); + luaL_addlstring(&b, part, size); + /* receive new patterns */ + if (!lua_isnumber(L, 2)) { + const char *p= luaL_optstring(L, 2, "*l"); + if (p[0] == '*' && p[1] == 'l') err = recvline(buf, &b); + else if (p[0] == '*' && p[1] == 'a') err = recvall(buf, &b); + else luaL_argcheck(L, 0, 2, "invalid receive pattern"); + /* get a fixed number of bytes (minus what was already partially + * received) */ + } else err = recvraw(buf, (size_t) lua_tonumber(L, 2)-size, &b); + /* check if there was an error */ + if (err != IO_DONE) { + /* we can't push anyting in the stack before pushing the + * contents of the buffer. this is the reason for the complication */ + luaL_pushresult(&b); + lua_pushstring(L, buf->io->error(buf->io->ctx, err)); + lua_pushvalue(L, -2); + lua_pushnil(L); + lua_replace(L, -4); + } else { + luaL_pushresult(&b); + lua_pushnil(L); + lua_pushnil(L); + } +#ifdef BUFFER_DEBUG + /* push time elapsed during operation as the last return value */ + lua_pushnumber(L, timeout_gettime() - timeout_getstart(tm)); +#endif + return lua_gettop(L) - top; +} + +/*-------------------------------------------------------------------------*\ +* Determines if there is any data in the read buffer +\*-------------------------------------------------------------------------*/ +int buffer_isempty(p_buffer buf) { + return buf->first >= buf->last; +} + +/*=========================================================================*\ +* Internal functions +\*=========================================================================*/ +/*-------------------------------------------------------------------------*\ +* Sends a block of data (unbuffered) +\*-------------------------------------------------------------------------*/ +#define STEPSIZE 8192 +static int sendraw(p_buffer buf, const char *data, size_t count, size_t *sent) { + p_io io = buf->io; + p_timeout tm = buf->tm; + size_t total = 0; + int err = IO_DONE; + while (total < count && err == IO_DONE) { + size_t done; + size_t step = (count-total <= STEPSIZE)? count-total: STEPSIZE; + err = io->send(io->ctx, data+total, step, &done, tm); + total += done; + } + *sent = total; + return err; +} + +/*-------------------------------------------------------------------------*\ +* Reads a fixed number of bytes (buffered) +\*-------------------------------------------------------------------------*/ +static int recvraw(p_buffer buf, size_t wanted, luaL_Buffer *b) { + int err = IO_DONE; + size_t total = 0; + while (err == IO_DONE) { + size_t count; const char *data; + err = buffer_get(buf, &data, &count); + count = MIN(count, wanted - total); + luaL_addlstring(b, data, count); + buffer_skip(buf, count); + total += count; + if (total >= wanted) break; + } + return err; +} + +/*-------------------------------------------------------------------------*\ +* Reads everything until the connection is closed (buffered) +\*-------------------------------------------------------------------------*/ +static int recvall(p_buffer buf, luaL_Buffer *b) { + int err = IO_DONE; + size_t total = 0; + while (err == IO_DONE) { + const char *data; size_t count; + err = buffer_get(buf, &data, &count); + total += count; + luaL_addlstring(b, data, count); + buffer_skip(buf, count); + } + if (err == IO_CLOSED) { + if (total > 0) return IO_DONE; + else return IO_CLOSED; + } else return err; +} + +/*-------------------------------------------------------------------------*\ +* Reads a line terminated by a CR LF pair or just by a LF. The CR and LF +* are not returned by the function and are discarded from the buffer +\*-------------------------------------------------------------------------*/ +static int recvline(p_buffer buf, luaL_Buffer *b) { + int err = IO_DONE; + while (err == IO_DONE) { + size_t count, pos; const char *data; + err = buffer_get(buf, &data, &count); + pos = 0; + while (pos < count && data[pos] != '\n') { + /* we ignore all \r's */ + if (data[pos] != '\r') luaL_putchar(b, data[pos]); + pos++; + } + if (pos < count) { /* found '\n' */ + buffer_skip(buf, pos+1); /* skip '\n' too */ + break; /* we are done */ + } else /* reached the end of the buffer */ + buffer_skip(buf, pos); + } + return err; +} + +/*-------------------------------------------------------------------------*\ +* Skips a given number of bytes from read buffer. No data is read from the +* transport layer +\*-------------------------------------------------------------------------*/ +static void buffer_skip(p_buffer buf, size_t count) { + buf->first += count; + if (buffer_isempty(buf)) + buf->first = buf->last = 0; +} + +/*-------------------------------------------------------------------------*\ +* Return any data available in buffer, or get more data from transport layer +* if buffer is empty +\*-------------------------------------------------------------------------*/ +static int buffer_get(p_buffer buf, const char **data, size_t *count) { + int err = IO_DONE; + p_io io = buf->io; + p_timeout tm = buf->tm; + if (buffer_isempty(buf)) { + size_t got; + err = io->recv(io->ctx, buf->data, BUF_SIZE, &got, tm); + buf->first = 0; + buf->last = got; + } + *count = buf->last - buf->first; + *data = buf->data + buf->first; + return err; +} diff --git a/src/buffer.h b/src/buffer.h new file mode 100644 index 0000000..61d2798 --- /dev/null +++ b/src/buffer.h @@ -0,0 +1,45 @@ +#ifndef BUF_H +#define BUF_H +/*=========================================================================*\ +* LuaSocket 2.0.2 +* Copyright (C) 2004-2007 Diego Nehab +* +* Input/Output interface for Lua programs +* +* Line patterns require buffering. Reading one character at a time involves +* too many system calls and is very slow. This module implements the +* LuaSocket interface for input/output on connected objects, as seen by +* Lua programs. +* +* Input is buffered. Output is *not* buffered because there was no simple +* way of making sure the buffered output data would ever be sent. +* +* The module is built on top of the I/O abstraction defined in io.h and the +* timeout management is done with the timeout.h interface. +* +* +* RCS ID: $Id: buffer.h,v 1.12 2005/10/07 04:40:59 diego Exp $ +\*=========================================================================*/ +#include + +#include "io.h" +#include "timeout.h" + +/* buffer size in bytes */ +#define BUF_SIZE 8192 + +/* buffer control structure */ +typedef struct t_buffer_ { + p_io io; /* IO driver used for this buffer */ + p_timeout tm; /* timeout management for this buffer */ + size_t first, last; /* index of first and last bytes of stored data */ + char data[BUF_SIZE]; /* storage space for buffer data */ +} t_buffer; +typedef t_buffer *p_buffer; + +void buffer_init(p_buffer buf, p_io io, p_timeout tm); +int buffer_meth_send(lua_State *L, p_buffer buf); +int buffer_meth_receive(lua_State *L, p_buffer buf); +int buffer_isempty(p_buffer buf); + +#endif /* BUF_H */ diff --git a/src/context.c b/src/context.c new file mode 100644 index 0000000..dca8c9e --- /dev/null +++ b/src/context.c @@ -0,0 +1,387 @@ +/*-------------------------------------------------------------------------- + * LuaSec 0.2 + * Copyright (C) 2006-2007 Bruno Silvestre + * + *--------------------------------------------------------------------------*/ + +#include +#include +#include + +#include +#include + +#include "context.h" + +struct ssl_option_s { + const char *name; + unsigned long code; +}; +typedef struct ssl_option_s ssl_option_t; + + +static ssl_option_t ssl_options[] = { + /* OpenSSL 0.9.7 and 0.9.8 */ + {"all", SSL_OP_ALL}, + {"cipher_server_preference", SSL_OP_CIPHER_SERVER_PREFERENCE}, + {"dont_insert_empty_fragments", SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS}, + {"ephemeral_rsa", SSL_OP_EPHEMERAL_RSA}, + {"netscape_ca_dn_bug", SSL_OP_NETSCAPE_CA_DN_BUG}, + {"netscape_challenge_bug", SSL_OP_NETSCAPE_CHALLENGE_BUG}, + {"microsoft_big_sslv3_buffer", SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER}, + {"microsoft_sess_id_bug", SSL_OP_MICROSOFT_SESS_ID_BUG}, + {"msie_sslv2_rsa_padding", SSL_OP_MSIE_SSLV2_RSA_PADDING}, + {"netscape_demo_cipher_change_bug", SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG}, + {"netscape_reuse_cipher_change_bug", SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG}, + {"no_session_resumption_on_renegotiation", + SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION}, + {"no_sslv2", SSL_OP_NO_SSLv2}, + {"no_sslv3", SSL_OP_NO_SSLv3}, + {"no_tlsv1", SSL_OP_NO_TLSv1}, + {"pkcs1_check_1", SSL_OP_PKCS1_CHECK_1}, + {"pkcs1_check_2", SSL_OP_PKCS1_CHECK_2}, + {"single_dh_use", SSL_OP_SINGLE_DH_USE}, + {"ssleay_080_client_dh_bug", SSL_OP_SSLEAY_080_CLIENT_DH_BUG}, + {"sslref2_reuse_cert_type_bug", SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG}, + {"tls_block_padding_bug", SSL_OP_TLS_BLOCK_PADDING_BUG}, + {"tls_d5_bug", SSL_OP_TLS_D5_BUG}, + {"tls_rollback_bug", SSL_OP_TLS_ROLLBACK_BUG}, + /* OpenSSL 0.9.8 only */ +#if OPENSSL_VERSION_NUMBER > 0x00908000L + {"cookie_exchange", SSL_OP_COOKIE_EXCHANGE}, + {"no_query_mtu", SSL_OP_NO_QUERY_MTU}, + {"single_ecdh_use", SSL_OP_SINGLE_ECDH_USE}, +#endif + {NULL, 0L} +}; + +/*--------------------------- Auxiliary Functions ----------------------------*/ + +/** + * Return the context. + */ +static p_context checkctx(lua_State *L, int idx) +{ + return (p_context)luaL_checkudata(L, idx, "SSL:Context"); +} + +/** + * Prepare the SSL options flag. + */ +static int set_option_flag(const char *opt, unsigned long *flag) +{ + ssl_option_t *p; + for (p = ssl_options; p->name; p++) { + if (!strcmp(opt, p->name)) { + *flag |= p->code; + return 1; + } + } + return 0; +} + +/** + * Find the protocol. + */ +static SSL_METHOD* str2method(const char *method) +{ + if (!strcmp(method, "sslv3")) return SSLv3_method(); + if (!strcmp(method, "tlsv1")) return TLSv1_method(); + if (!strcmp(method, "sslv23")) return SSLv23_method(); + return NULL; +} + +/** + * Prepare the SSL handshake verify flag. + */ +static int set_verify_flag(const char *str, int *flag) +{ + if (!strcmp(str, "none")) { + *flag |= SSL_VERIFY_NONE; + return 1; + } + if (!strcmp(str, "peer")) { + *flag |= SSL_VERIFY_PEER; + return 1; + } + if (!strcmp(str, "client_once")) { + *flag |= SSL_VERIFY_CLIENT_ONCE; + return 1; + } + if (!strcmp(str, "fail_if_no_peer_cert")) { + *flag |= SSL_VERIFY_FAIL_IF_NO_PEER_CERT; + return 1; + } + return 0; +} + +/*------------------------------ Lua Functions -------------------------------*/ + +/** + * Create a SSL context. + */ +static int create(lua_State *L) +{ + p_context ctx; + SSL_METHOD *method; + + method = str2method(luaL_checkstring(L, 1)); + if (!method) { + lua_pushnil(L); + lua_pushstring(L, "invalid protocol"); + return 2; + } + ctx = (p_context) lua_newuserdata(L, sizeof(t_context)); + if (!ctx) { + lua_pushnil(L); + lua_pushstring(L, "error creating context"); + return 2; + } + ctx->context = SSL_CTX_new(method); + if (!ctx->context) { + lua_pushnil(L); + lua_pushstring(L, "error creating context"); + return 2; + } + ctx->mode = MD_CTX_INVALID; + /* No session support */ + SSL_CTX_set_session_cache_mode(ctx->context, SSL_SESS_CACHE_OFF); + luaL_getmetatable(L, "SSL:Context"); + lua_setmetatable(L, -2); + return 1; +} + +/** + * Load the trusting certificates. + */ +static int load_locations(lua_State *L) +{ + SSL_CTX *ctx = ctx_getcontext(L, 1); + const char *cafile = luaL_optstring(L, 2, NULL); + const char *capath = luaL_optstring(L, 3, NULL); + if (SSL_CTX_load_verify_locations(ctx, cafile, capath) != 1) { + lua_pushboolean(L, 0); + lua_pushfstring(L, "error loading CA locations (%s)", + ERR_reason_error_string(ERR_get_error())); + return 2; + } + lua_pushboolean(L, 1); + return 1; +} + +/** + * Load the certificate file. + */ +static int load_cert(lua_State *L) +{ + SSL_CTX *ctx = ctx_getcontext(L, 1); + const char *filename = luaL_checkstring(L, 2); + if (SSL_CTX_use_certificate_chain_file(ctx, filename) != 1) { + lua_pushboolean(L, 0); + lua_pushfstring(L, "error loading certificate (%s)", + ERR_reason_error_string(ERR_get_error())); + return 2; + } + lua_pushboolean(L, 1); + return 1; +} + +/** + * Load the key file -- only in PEM format. + */ +static int load_key(lua_State *L) +{ + SSL_CTX *ctx = ctx_getcontext(L, 1); + const char *filename = luaL_checkstring(L, 2); + + if (SSL_CTX_use_PrivateKey_file(ctx, filename, SSL_FILETYPE_PEM) != 1) { + lua_pushboolean(L, 0); + lua_pushfstring(L, "error loading private key (%s)", + ERR_reason_error_string(ERR_get_error())); + return 2; + } + lua_pushboolean(L, 1); + return 1; +} + +/** + * Set the cipher list. + */ +static int set_cipher(lua_State *L) +{ + SSL_CTX *ctx = ctx_getcontext(L, 1); + const char *list = luaL_checkstring(L, 2); + if (SSL_CTX_set_cipher_list(ctx, list) != 1) { + lua_pushboolean(L, 0); + lua_pushfstring(L, "error setting cipher list (%s)", + ERR_reason_error_string(ERR_get_error())); + return 2; + } + lua_pushboolean(L, 1); + return 1; +} + +/** + * Set the depth for certificate checking. + */ +static int set_depth(lua_State *L) +{ + SSL_CTX *ctx = ctx_getcontext(L, 1); + SSL_CTX_set_verify_depth(ctx, luaL_checkint(L, 2)); + lua_pushboolean(L, 1); + return 1; +} + +/** + * Set the handshake verify options. + */ +static int set_verify(lua_State *L) +{ + int i; + int flag = 0; + SSL_CTX *ctx = ctx_getcontext(L, 1); + int max = lua_gettop(L); + /* any flag? */ + if (max > 1) { + for (i = 2; i <= max; i++) { + if (!set_verify_flag(luaL_checkstring(L, i), &flag)) { + lua_pushboolean(L, 0); + lua_pushstring(L, "invalid verify option"); + return 2; + } + } + SSL_CTX_set_verify(ctx, flag, NULL); + } + lua_pushboolean(L, 1); + return 1; +} + +/** + * Set the protocol options. + */ +static int set_options(lua_State *L) +{ + int i; + unsigned long flag = 0L; + SSL_CTX *ctx = ctx_getcontext(L, 1); + int max = lua_gettop(L); + /* any option? */ + if (max > 1) { + for (i = 2; i <= max; i++) { + if (!set_option_flag(luaL_checkstring(L, i), &flag)) { + lua_pushboolean(L, 0); + lua_pushstring(L, "invalid option"); + return 2; + } + } + SSL_CTX_set_options(ctx, flag); + } + lua_pushboolean(L, 1); + return 1; +} + +/** + * Set the context mode. + */ +static int set_mode(lua_State *L) +{ + p_context ctx = checkctx(L, 1); + const char *str = luaL_checkstring(L, 2); + if (!strcmp("server", str)) { + ctx->mode = MD_CTX_SERVER; + lua_pushboolean(L, 1); + return 1; + } + if(!strcmp("client", str)) { + ctx->mode = MD_CTX_CLIENT; + lua_pushboolean(L, 1); + return 1; + } + lua_pushboolean(L, 0); + lua_pushstring(L, "invalid mode"); + return 1; +} + +/** + * Package functions + */ +static luaL_Reg funcs[] = { + {"create", create}, + {"locations", load_locations}, + {"loadcert", load_cert}, + {"loadkey", load_key}, + {"setcipher", set_cipher}, + {"setdepth", set_depth}, + {"setverify", set_verify}, + {"setoptions", set_options}, + {"setmode", set_mode}, + {NULL, NULL} +}; + +/*-------------------------------- Metamethods -------------------------------*/ + +/** + * Collect SSL context -- GC metamethod. + */ +static int meth_destroy(lua_State *L) +{ + p_context ctx = checkctx(L, 1); + if (ctx->context) { + SSL_CTX_free(ctx->context); + ctx->context = NULL; + } + return 0; +} + +/** + * Object information -- tostring metamethod. + */ +static int meth_tostring(lua_State *L) +{ + p_context ctx = checkctx(L, 1); + lua_pushfstring(L, "SSL context: %p", ctx); + return 1; +} + +/** + * Context metamethods. + */ +static luaL_Reg meta[] = { + {"__gc", meth_destroy}, + {"__tostring", meth_tostring}, + {NULL, NULL} +}; + + +/*----------------------------- Public Functions ---------------------------*/ + +/** + * Retrieve the SSL context from the Lua stack. + */ +SSL_CTX* ctx_getcontext(lua_State *L, int idx) +{ + p_context ctx = checkctx(L, idx); + return ctx->context; +} + +/** + * Retrieve the mode from the context in the Lua stack. + */ +char ctx_getmode(lua_State *L, int idx) +{ + p_context ctx = checkctx(L, idx); + return ctx->mode; +} + +/*------------------------------ Initialization ------------------------------*/ + +/** + * Registre the module. + */ +int luaopen_ssl_context(lua_State *L) +{ + luaL_newmetatable(L, "SSL:Context"); + luaL_register(L, NULL, meta); + luaL_register(L, "ssl.context", funcs); + return 1; +} diff --git a/src/context.h b/src/context.h new file mode 100644 index 0000000..8544200 --- /dev/null +++ b/src/context.h @@ -0,0 +1,35 @@ +#ifndef __CONTEXT_H__ +#define __CONTEXT_H__ + +/*-------------------------------------------------------------------------- + * LuaSec 0.2 + * Copyright (C) 2006-2007 Bruno Silvestre + * + *--------------------------------------------------------------------------*/ + +#include +#include + +#ifndef LUASEC_API +#define LUASEC_API extern +#endif + +#define MD_CTX_INVALID 0 +#define MD_CTX_SERVER 1 +#define MD_CTX_CLIENT 2 + +typedef struct t_context_ { + SSL_CTX *context; + char mode; +} t_context; +typedef t_context* p_context; + +/* Retrieve the SSL context from the Lua stack */ +SSL_CTX *ctx_getcontext(lua_State *L, int idx); +/* Retrieve the mode from the context in the Lua stack */ +char ctx_getmode(lua_State *L, int idx); + +/* Registre the module. */ +LUASEC_API int luaopen_ssl_context(lua_State *L); + +#endif diff --git a/src/io.c b/src/io.c new file mode 100644 index 0000000..ff2e7ad --- /dev/null +++ b/src/io.c @@ -0,0 +1,34 @@ +/*=========================================================================*\ +* LuaSocket 2.0.2 +* Copyright (C) 2004-2007 Diego Nehab +* +* Input/Output abstraction +* +* RCS ID: $Id: io.c 2 2006-04-30 19:30:47Z brunoos $ +\*=========================================================================*/ +#include "io.h" + +/*=========================================================================*\ +* Exported functions +\*=========================================================================*/ +/*-------------------------------------------------------------------------*\ +* Initializes C structure +\*-------------------------------------------------------------------------*/ +void io_init(p_io io, p_send send, p_recv recv, p_error error, void *ctx) { + io->send = send; + io->recv = recv; + io->error = error; + io->ctx = ctx; +} + +/*-------------------------------------------------------------------------*\ +* I/O error strings +\*-------------------------------------------------------------------------*/ +const char *io_strerror(int err) { + switch (err) { + case IO_DONE: return NULL; + case IO_CLOSED: return "closed"; + case IO_TIMEOUT: return "timeout"; + default: return "unknown error"; + } +} diff --git a/src/io.h b/src/io.h new file mode 100644 index 0000000..b5942d3 --- /dev/null +++ b/src/io.h @@ -0,0 +1,70 @@ +#ifndef IO_H +#define IO_H +/*=========================================================================*\ +* LuaSocket 2.0.2 +* Copyright (C) 2004-2007 Diego Nehab +* +* Input/Output abstraction +* +* This module defines the interface that LuaSocket expects from the +* transport layer for streamed input/output. The idea is that if any +* transport implements this interface, then the buffer.c functions +* automatically work on it. +* +* The module socket.h implements this interface, and thus the module tcp.h +* is very simple. +* +* RCS ID: $Id: io.h 6 2006-04-30 20:33:05Z brunoos $ +\*=========================================================================*/ +#include +#include + +#include "timeout.h" + +/* IO error codes */ +enum { + IO_DONE = 0, /* operation completed successfully */ + IO_TIMEOUT = -1, /* operation timed out */ + IO_CLOSED = -2, /* the connection has been closed */ + IO_UNKNOWN = -3, /* Unknown error */ + IO_SSL = -4 /* SSL error */ +}; + +/* interface to error message function */ +typedef const char *(*p_error) ( + void *ctx, /* context needed by send */ + int err /* error code */ +); + +/* interface to send function */ +typedef int (*p_send) ( + void *ctx, /* context needed by send */ + const char *data, /* pointer to buffer with data to send */ + size_t count, /* number of bytes to send from buffer */ + size_t *sent, /* number of bytes sent uppon return */ + p_timeout tm /* timeout control */ +); + +/* interface to recv function */ +typedef int (*p_recv) ( + void *ctx, /* context needed by recv */ + char *data, /* pointer to buffer where data will be writen */ + size_t count, /* number of bytes to receive into buffer */ + size_t *got, /* number of bytes received uppon return */ + p_timeout tm /* timeout control */ +); + +/* IO driver definition */ +typedef struct t_io_ { + void *ctx; /* context needed by send/recv */ + p_send send; /* send function pointer */ + p_recv recv; /* receive function pointer */ + p_error error; /* strerror function */ +} t_io; +typedef t_io *p_io; + +void io_init(p_io io, p_send send, p_recv recv, p_error error, void *ctx); +const char *io_strerror(int err); + +#endif /* IO_H */ + diff --git a/src/socket.h b/src/socket.h new file mode 100644 index 0000000..8a5b1f2 --- /dev/null +++ b/src/socket.h @@ -0,0 +1,47 @@ +#ifndef SOCKET_H +#define SOCKET_H +/*=========================================================================*\ +* LuaSocket 2.0.2 +* Copyright (C) 2004-2007 Diego Nehab +* +* Socket compatibilization module +* +* BSD Sockets and WinSock are similar, but there are a few irritating +* differences. Also, not all *nix platforms behave the same. This module +* (and the associated usocket.h and wsocket.h) factor these differences and +* creates a interface compatible with the io.h module. +* +* RCS ID: $Id: socket.h 2 2006-04-30 19:30:47Z brunoos $ +\*=========================================================================*/ +#include "io.h" + +/*=========================================================================*\ +* Platform specific compatibilization +\*=========================================================================*/ +#ifdef _WIN32 +#include "wsocket.h" +#else +#include "usocket.h" +#endif + +/*=========================================================================*\ +* The connect and accept functions accept a timeout and their +* implementations are somewhat complicated. We chose to move +* the timeout control into this module for these functions in +* order to simplify the modules that use them. +\*=========================================================================*/ +#include "timeout.h" + +/*=========================================================================*\ +* Functions bellow implement a comfortable platform independent +* interface to sockets +\*=========================================================================*/ +int socket_open(void); +int socket_close(void); +void socket_destroy(p_socket ps); +void socket_setnonblocking(p_socket ps); +void socket_setblocking(p_socket ps); +int socket_waitfd(p_socket ps, int sw, p_timeout tm); +const char *socket_strerror(int err); + +#endif /* SOCKET_H */ diff --git a/src/ssl.c b/src/ssl.c new file mode 100644 index 0000000..f8d6cda --- /dev/null +++ b/src/ssl.c @@ -0,0 +1,393 @@ +/*-------------------------------------------------------------------------- + * LuaSec 0.2 + * Copyright (C) 2006-2007 Bruno Silvestre + * + *--------------------------------------------------------------------------*/ + +#include +#include + +#include +#include + +#include +#include + +#include "io.h" +#include "buffer.h" +#include "timeout.h" +#include "socket.h" +#include "context.h" +#include "ssl.h" + +/** + * Map error code into string. + */ +static const char *ssl_ioerror(void *ctx, int err) +{ + if (err == IO_SSL) { + p_ssl ssl = (p_ssl) ctx; + switch(ssl->error) { + case SSL_ERROR_NONE: return "No error"; + case SSL_ERROR_ZERO_RETURN: return "closed"; + case SSL_ERROR_WANT_READ: return "wantread"; + case SSL_ERROR_WANT_WRITE: return "wantwrite"; + case SSL_ERROR_WANT_CONNECT: return "'connect' not completed"; + case SSL_ERROR_WANT_ACCEPT: return "'accept' not completed"; + case SSL_ERROR_WANT_X509_LOOKUP: return "Waiting for callback"; + case SSL_ERROR_SYSCALL: return "System error"; + case SSL_ERROR_SSL: return ERR_reason_error_string(ERR_get_error()); + default: return "Unknown SSL error"; + } + } + return socket_strerror(err); +} + +/** + * Close the connection before the GC collect the object. + */ +static int meth_destroy(lua_State *L) +{ + p_ssl ssl = (p_ssl) lua_touserdata(L, 1); + if (ssl->ssl) { + socket_setblocking(&ssl->sock); + SSL_shutdown(ssl->ssl); + socket_destroy(&ssl->sock); + SSL_free(ssl->ssl); + ssl->ssl = NULL; + } + return 0; +} + +/** + * Perform the TLS/SSL handshake + */ +static int handshake(p_ssl ssl) +{ + p_timeout tm = timeout_markstart(&ssl->tm); + if (ssl->state == ST_SSL_CLOSED) + return IO_CLOSED; + for ( ; ; ) { + int err = SSL_do_handshake(ssl->ssl); + ssl->error = SSL_get_error(ssl->ssl, err); + switch(ssl->error) { + case SSL_ERROR_NONE: + ssl->state = ST_SSL_CONNECTED; + return IO_DONE; + case SSL_ERROR_WANT_READ: + err = socket_waitfd(&ssl->sock, WAITFD_R, tm); + if (err == IO_TIMEOUT) return IO_SSL; + if (err != IO_DONE) return err; + break; + case SSL_ERROR_WANT_WRITE: + err = socket_waitfd(&ssl->sock, WAITFD_W, tm); + if (err == IO_TIMEOUT) return IO_SSL; + if (err != IO_DONE) return err; + break; + case SSL_ERROR_SYSCALL: + if (ERR_peek_error()) { + ssl->error = SSL_ERROR_SSL; + return IO_SSL; + } + if (err == 0) + return IO_CLOSED; + return errno; + default: + return IO_SSL; + } + } + return IO_UNKNOWN; +} + +/** + * Send data + */ +static int ssl_send(void *ctx, const char *data, size_t count, size_t *sent, + p_timeout tm) +{ + p_ssl ssl = (p_ssl) ctx; + if (ssl->state == ST_SSL_CLOSED) + return IO_CLOSED; + *sent = 0; + for ( ; ; ) { + int err = SSL_write(ssl->ssl, data, (int) count); + ssl->error = SSL_get_error(ssl->ssl, err); + switch(ssl->error) { + case SSL_ERROR_NONE: + *sent = err; + return IO_DONE; + case SSL_ERROR_WANT_READ: + err = socket_waitfd(&ssl->sock, WAITFD_R, tm); + if (err == IO_TIMEOUT) return IO_SSL; + if (err != IO_DONE) return err; + break; + case SSL_ERROR_WANT_WRITE: + err = socket_waitfd(&ssl->sock, WAITFD_W, tm); + if (err == IO_TIMEOUT) return IO_SSL; + if (err != IO_DONE) return err; + break; + case SSL_ERROR_SYSCALL: + if (ERR_peek_error()) { + ssl->error = SSL_ERROR_SSL; + return IO_SSL; + } + if (err == 0) + return IO_CLOSED; + return errno; + default: + return IO_SSL; + } + } + return IO_UNKNOWN; +} + +/** + * Receive data + */ +static int ssl_recv(void *ctx, char *data, size_t count, size_t *got, + p_timeout tm) +{ + p_ssl ssl = (p_ssl) ctx; + if (ssl->state == ST_SSL_CLOSED) + return IO_CLOSED; + *got = 0; + for ( ; ; ) { + int err = SSL_read(ssl->ssl, data, (int) count); + ssl->error = SSL_get_error(ssl->ssl, err); + switch(ssl->error) { + case SSL_ERROR_NONE: + *got = err; + return IO_DONE; + case SSL_ERROR_WANT_READ: + err = socket_waitfd(&ssl->sock, WAITFD_R, tm); + if (err == IO_TIMEOUT) return IO_SSL; + if (err != IO_DONE) return err; + break; + case SSL_ERROR_WANT_WRITE: + err = socket_waitfd(&ssl->sock, WAITFD_W, tm); + if (err == IO_TIMEOUT) return IO_SSL; + if (err != IO_DONE) return err; + break; + case SSL_ERROR_SYSCALL: + if (ERR_peek_error()) { + ssl->error = SSL_ERROR_SSL; + return IO_SSL; + } + if (err == 0) + return IO_CLOSED; + return errno; + default: + return IO_SSL; + } + } + return IO_UNKNOWN; +} + +/** + * Create a new TLS/SSL object and mark it as new. + */ +static int meth_create(lua_State *L) +{ + p_ssl ssl; + int mode = ctx_getmode(L, 1); + SSL_CTX *ctx = ctx_getcontext(L, 1); + + if (mode == MD_CTX_INVALID) { + lua_pushnil(L); + lua_pushstring(L, "invalid mode"); + return 2; + } + ssl = (p_ssl) lua_newuserdata(L, sizeof(t_ssl)); + if (!ssl) { + lua_pushnil(L); + lua_pushstring(L, "error creating SSL object"); + return 2; + } + ssl->ssl = SSL_new(ctx); + if (!ssl->ssl) { + lua_pushnil(L); + lua_pushstring(L, "error creating SSL object"); + return 2;; + } + ssl->state = ST_SSL_NEW; + SSL_set_fd(ssl->ssl, (int) SOCKET_INVALID); + SSL_set_mode(ssl->ssl, SSL_MODE_ENABLE_PARTIAL_WRITE | + SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER); + if (mode == MD_CTX_SERVER) + SSL_set_accept_state(ssl->ssl); + else + SSL_set_connect_state(ssl->ssl); + + io_init(&ssl->io, (p_send) ssl_send, (p_recv) ssl_recv, + (p_error) ssl_ioerror, ssl); + timeout_init(&ssl->tm, -1, -1); + buffer_init(&ssl->buf, &ssl->io, &ssl->tm); + + luaL_getmetatable(L, "SSL:Connection"); + lua_setmetatable(L, -2); + return 1; +} + +/** + * Buffer send function + */ +static int meth_send(lua_State *L) { + p_ssl ssl = (p_ssl) luaL_checkudata(L, 1, "SSL:Connection"); + return buffer_meth_send(L, &ssl->buf); +} + +/** + * Buffer receive function + */ +static int meth_receive(lua_State *L) { + p_ssl ssl = (p_ssl) luaL_checkudata(L, 1, "SSL:Connection"); + return buffer_meth_receive(L, &ssl->buf); +} + +/** + * Select support methods + */ +static int meth_getfd(lua_State *L) +{ + p_ssl ssl = (p_ssl) luaL_checkudata(L, 1, "SSL:Connection"); + lua_pushnumber(L, ssl->sock); + return 1; +} + +/** + * Set the TLS/SSL file descriptor. + * This is done *before* the handshake. + */ +static int meth_setfd(lua_State *L) +{ + p_ssl ssl = (p_ssl) luaL_checkudata(L, 1, "SSL:Connection"); + if (ssl->state != ST_SSL_NEW) + luaL_argerror(L, 1, "invalid SSL object state"); + ssl->sock = luaL_checkint(L, 2); + socket_setnonblocking(&ssl->sock); + SSL_set_fd(ssl->ssl, (int)ssl->sock); + return 0; +} + +/** + * Lua handshake function. + */ +static int meth_handshake(lua_State *L) +{ + p_ssl ssl = (p_ssl) luaL_checkudata(L, 1, "SSL:Connection"); + int err = handshake(ssl); + if (err == IO_DONE) { + lua_pushboolean(L, 1); + return 1; + } + lua_pushboolean(L, 0); + lua_pushstring(L, ssl_ioerror((void*)ssl, err)); + return 2; +} + +/** + * Close the connection. + */ +static int meth_close(lua_State *L) +{ + p_ssl ssl = (p_ssl) luaL_checkudata(L, 1, "SSL:Connection"); + meth_destroy(L); + ssl->state = ST_SSL_CLOSED; + return 0; +} + +/** + * Set timeout. + */ +static int meth_settimeout(lua_State *L) +{ + p_ssl ssl = (p_ssl) luaL_checkudata(L, 1, "SSL:Connection"); + return timeout_meth_settimeout(L, &ssl->tm); +} + +/** + * Check if there is data in the buffer. + */ +static int meth_dirty(lua_State *L) +{ + int res = 0; + p_ssl ssl = (p_ssl) luaL_checkudata(L, 1, "SSL:Connection"); + if (ssl->state != ST_SSL_CLOSED) + res = !buffer_isempty(&ssl->buf) || SSL_pending(ssl->ssl); + lua_pushboolean(L, res); + return 1; +} + +/** + * Return the state information about the SSL object. + */ +static int meth_want(lua_State *L) +{ + p_ssl ssl = (p_ssl) luaL_checkudata(L, 1, "SSL:Connection"); + int code = (ssl->state == ST_SSL_CLOSED) ? SSL_NOTHING : SSL_want(ssl->ssl); + switch(code) { + case SSL_NOTHING: lua_pushstring(L, "nothing"); break; + case SSL_READING: lua_pushstring(L, "read"); break; + case SSL_WRITING: lua_pushstring(L, "write"); break; + case SSL_X509_LOOKUP: lua_pushstring(L, "x509lookup"); break; + } + return 1; +} + +/*---------------------------------------------------------------------------*/ + + +/** + * SSL metamethods + */ +static luaL_Reg meta[] = { + {"close", meth_close}, + {"getfd", meth_getfd}, + {"dirty", meth_dirty}, + {"dohandshake", meth_handshake}, + {"receive", meth_receive}, + {"send", meth_send}, + {"settimeout", meth_settimeout}, + {"want", meth_want}, + {NULL, NULL} +}; + +/** + * SSL functions + */ +static luaL_Reg funcs[] = { + {"create", meth_create}, + {"setfd", meth_setfd}, + {NULL, NULL} +}; + +/** + * Initialize modules + */ +LUASEC_API int luaopen_ssl_core(lua_State *L) +{ + /* Initialize SSL */ + if (!SSL_library_init()) { + lua_pushstring(L, "unable to initialize SSL library"); + lua_error(L); + } + SSL_load_error_strings(); + + /* Initialize internal library */ + socket_open(); + + /* Registre the functions and tables */ + luaL_newmetatable(L, "SSL:Connection"); + lua_newtable(L); + luaL_register(L, NULL, meta); + lua_setfield(L, -2, "__index"); + lua_pushcfunction(L, meth_destroy); + lua_setfield(L, -2, "__gc"); + + luaL_register(L, "ssl.core", funcs); + lua_pushnumber(L, SOCKET_INVALID); + lua_setfield(L, -2, "invalidfd"); + + return 1; +} + diff --git a/src/ssl.h b/src/ssl.h new file mode 100644 index 0000000..98593bd --- /dev/null +++ b/src/ssl.h @@ -0,0 +1,38 @@ +#ifndef __SSL_H__ +#define __SSL_H__ + +/*-------------------------------------------------------------------------- + * LuaSec 0.2 + * Copyright (C) 2006-2007 Bruno Silvestre + * + *--------------------------------------------------------------------------*/ + +#include +#include + +#include "io.h" +#include "buffer.h" +#include "timeout.h" + +#ifndef LUASEC_API +#define LUASEC_API extern +#endif + +#define ST_SSL_NEW 1 +#define ST_SSL_CONNECTED 2 +#define ST_SSL_CLOSED 3 + +typedef struct t_ssl_ { + t_socket sock; + t_io io; + t_buffer buf; + t_timeout tm; + SSL *ssl; + char state; + int error; +} t_ssl; +typedef t_ssl* p_ssl; + +LUASEC_API int luaopen_ssl_core(lua_State *L); + +#endif diff --git a/src/ssl.lua b/src/ssl.lua new file mode 100644 index 0000000..5e2c070 --- /dev/null +++ b/src/ssl.lua @@ -0,0 +1,84 @@ +------------------------------------------------------------------------------ +-- LuaSec 0.2 +-- Copyright (C) 2006-2007 Bruno Silvestre +-- +------------------------------------------------------------------------------ + +module("ssl", package.seeall) + +require("ssl.core") +require("ssl.context") + + +_COPYRIGHT = "LuaSec 0.2 - Copyright (C) 2006-2007 Bruno Silvestre\n" .. + "LuaSocket 2.0.2 - Copyright (C) 2004-2007 Diego Nehab" + +-- +-- +-- +local function optexec(func, param, ctx) + if param then + if type(param) == "table" then + return func(ctx, unpack(param)) + else + return func(ctx, param) + end + end + return true +end + +-- +-- +-- +function newcontext(cfg) + local succ, msg, ctx + -- Create the context + ctx, msg = context.create(cfg.protocol) + if not ctx then return nil, msg end + -- Mode + succ, msg = context.setmode(ctx, cfg.mode) + if not succ then return nil, msg end + -- Load the key + succ, msg = context.loadkey(ctx, cfg.key) + if not succ then return nil, msg end + -- Load the certificate + succ, msg = context.loadcert(ctx, cfg.certificate) + if not succ then return nil, msg end + -- Load the CA certificates + if cfg.cafile or cfg.capath then + succ, msg = context.locations(ctx, cfg.cafile, cfg.capath) + if not succ then return nil, msg end + end + -- Set the verification options + succ, msg = optexec(context.setverify, cfg.verify, ctx) + if not succ then return nil, msg end + -- Set SSL options + succ, msg = optexec(context.setoptions, cfg.options, ctx) + if not succ then return nil, msg end + -- Set the depth for certificate verification + if cfg.depth then + succ, msg = context.setdepth(ctx, cfg.depth) + if not succ then return nil, msg end + end + return ctx +end + +-- +-- +-- +function wrap(sock, cfg) + local ctx, msg + if type(cfg) == "table" then + ctx, msg = newcontext(cfg) + if not ctx then return nil, msg end + else + ctx = cfg + end + local s, msg = core.create(ctx) + if s then + core.setfd(s, sock:getfd()) + sock:setfd(core.invalidfd) + return s + end + return nil, msg +end diff --git a/src/timeout.c b/src/timeout.c new file mode 100644 index 0000000..d141213 --- /dev/null +++ b/src/timeout.c @@ -0,0 +1,155 @@ +/*=========================================================================*\ +* LuaSocket 2.0.2 +* Copyright (C) 2004-2007 Diego Nehab +* +* Timeout management functions +* +* RCS ID: $Id: timeout.c,v 1.30 2005/10/07 04:40:59 diego Exp $ +\*=========================================================================*/ +#include + +#ifdef _WIN32 +#include +#else +#include +#include +#endif + +#include +#include + +#include "timeout.h" + +/* min and max macros */ +#ifndef MIN +#define MIN(x, y) ((x) < (y) ? x : y) +#endif +#ifndef MAX +#define MAX(x, y) ((x) > (y) ? x : y) +#endif + +/*=========================================================================*\ +* Exported functions. +\*=========================================================================*/ +/*-------------------------------------------------------------------------*\ +* Initialize structure +\*-------------------------------------------------------------------------*/ +void timeout_init(p_timeout tm, double block, double total) { + tm->block = block; + tm->total = total; +} + +/*-------------------------------------------------------------------------*\ +* Determines how much time we have left for the next system call, +* if the previous call was successful +* Input +* tm: timeout control structure +* Returns +* the number of ms left or -1 if there is no time limit +\*-------------------------------------------------------------------------*/ +double timeout_get(p_timeout tm) { + if (tm->block < 0.0 && tm->total < 0.0) { + return -1; + } else if (tm->block < 0.0) { + double t = tm->total - timeout_gettime() + tm->start; + return MAX(t, 0.0); + } else if (tm->total < 0.0) { + return tm->block; + } else { + double t = tm->total - timeout_gettime() + tm->start; + return MIN(tm->block, MAX(t, 0.0)); + } +} + +/*-------------------------------------------------------------------------*\ +* Returns time since start of operation +* Input +* tm: timeout control structure +* Returns +* start field of structure +\*-------------------------------------------------------------------------*/ +double timeout_getstart(p_timeout tm) { + return tm->start; +} + +/*-------------------------------------------------------------------------*\ +* Determines how much time we have left for the next system call, +* if the previous call was a failure +* Input +* tm: timeout control structure +* Returns +* the number of ms left or -1 if there is no time limit +\*-------------------------------------------------------------------------*/ +double timeout_getretry(p_timeout tm) { + if (tm->block < 0.0 && tm->total < 0.0) { + return -1; + } else if (tm->block < 0.0) { + double t = tm->total - timeout_gettime() + tm->start; + return MAX(t, 0.0); + } else if (tm->total < 0.0) { + double t = tm->block - timeout_gettime() + tm->start; + return MAX(t, 0.0); + } else { + double t = tm->total - timeout_gettime() + tm->start; + return MIN(tm->block, MAX(t, 0.0)); + } +} + +/*-------------------------------------------------------------------------*\ +* Marks the operation start time in structure +* Input +* tm: timeout control structure +\*-------------------------------------------------------------------------*/ +p_timeout timeout_markstart(p_timeout tm) { + tm->start = timeout_gettime(); + return tm; +} + +/*-------------------------------------------------------------------------*\ +* Gets time in s, relative to January 1, 1970 (UTC) +* Returns +* time in s. +\*-------------------------------------------------------------------------*/ +#ifdef _WIN32 +double timeout_gettime(void) { + FILETIME ft; + double t; + GetSystemTimeAsFileTime(&ft); + /* Windows file time (time since January 1, 1601 (UTC)) */ + t = ft.dwLowDateTime/1.0e7 + ft.dwHighDateTime*(4294967296.0/1.0e7); + /* convert to Unix Epoch time (time since January 1, 1970 (UTC)) */ + return (t - 11644473600.0); +} +#else +double timeout_gettime(void) { + struct timeval v; + gettimeofday(&v, (struct timezone *) NULL); + /* Unix Epoch time (time since January 1, 1970 (UTC)) */ + return v.tv_sec + v.tv_usec/1.0e6; +} +#endif + +/*-------------------------------------------------------------------------*\ +* Sets timeout values for IO operations +* Lua Input: base, time [, mode] +* time: time out value in seconds +* mode: "b" for block timeout, "t" for total timeout. (default: b) +\*-------------------------------------------------------------------------*/ +int timeout_meth_settimeout(lua_State *L, p_timeout tm) { + double t = luaL_optnumber(L, 2, -1); + const char *mode = luaL_optstring(L, 3, "b"); + switch (*mode) { + case 'b': + tm->block = t; + break; + case 'r': case 't': + tm->total = t; + break; + default: + luaL_argcheck(L, 0, 3, "invalid timeout mode"); + break; + } + lua_pushnumber(L, 1); + return 1; +} + diff --git a/src/timeout.h b/src/timeout.h new file mode 100644 index 0000000..1157d43 --- /dev/null +++ b/src/timeout.h @@ -0,0 +1,32 @@ +#ifndef TIMEOUT_H +#define TIMEOUT_H +/*=========================================================================*\ +* LuaSocket 2.0.2 +* Copyright (C) 2004-2007 Diego Nehab +* +* Timeout management functions +* +* RCS ID: $Id: timeout.h 2 2006-04-30 19:30:47Z brunoos $ +\*=========================================================================*/ +#include + +/* timeout control structure */ +typedef struct t_timeout_ { + double block; /* maximum time for blocking calls */ + double total; /* total number of miliseconds for operation */ + double start; /* time of start of operation */ +} t_timeout; +typedef t_timeout *p_timeout; + +int timeout_open(lua_State *L); +void timeout_init(p_timeout tm, double block, double total); +double timeout_get(p_timeout tm); +double timeout_getretry(p_timeout tm); +p_timeout timeout_markstart(p_timeout tm); +double timeout_getstart(p_timeout tm); +double timeout_gettime(void); +int timeout_meth_settimeout(lua_State *L, p_timeout tm); + +#define timeout_iszero(tm) ((tm)->block == 0.0) + +#endif /* TIMEOUT_H */ diff --git a/src/usocket.c b/src/usocket.c new file mode 100644 index 0000000..9ead9f4 --- /dev/null +++ b/src/usocket.c @@ -0,0 +1,137 @@ +/*=========================================================================*\ +* LuaSocket 2.0.2 +* Copyright (C) 2004-2007 Diego Nehab +* +* Socket compatibilization module for Unix +* +* The code is now interrupt-safe. +* The penalty of calling select to avoid busy-wait is only paid when +* the I/O call fail in the first place. +* +* RCS ID: $Id: usocket.c,v 1.38 2007/10/13 23:55:20 diego Exp $ +\*=========================================================================*/ +#include +#include +#include +#include +#include +#include +#include +#include + +#include "socket.h" +#include "usocket.h" + +/*-------------------------------------------------------------------------*\ +* Wait for readable/writable/connected socket with timeout +\*-------------------------------------------------------------------------*/ +#ifdef SOCKET_POLL +int socket_waitfd(p_socket ps, int sw, p_timeout tm) { + int ret; + struct pollfd pfd; + pfd.fd = *ps; + pfd.events = sw; + pfd.revents = 0; + if (timeout_iszero(tm)) return IO_TIMEOUT; /* optimize timeout == 0 case */ + do { + int t = (int)(timeout_getretry(tm)*1e3); + ret = poll(&pfd, 1, t >= 0? t: -1); + } while (ret == -1 && errno == EINTR); + if (ret == -1) return errno; + if (ret == 0) return IO_TIMEOUT; + if (sw == WAITFD_C && (pfd.revents & (POLLIN|POLLERR))) return IO_CLOSED; + return IO_DONE; +} +#else +int socket_waitfd(p_socket ps, int sw, p_timeout tm) { + int ret; + fd_set rfds, wfds, *rp, *wp; + struct timeval tv, *tp; + double t; + if (timeout_iszero(tm)) return IO_TIMEOUT; /* optimize timeout == 0 case */ + do { + /* must set bits within loop, because select may have modifed them */ + rp = wp = NULL; + if (sw & WAITFD_R) { FD_ZERO(&rfds); FD_SET(*ps, &rfds); rp = &rfds; } + if (sw & WAITFD_W) { FD_ZERO(&wfds); FD_SET(*ps, &wfds); wp = &wfds; } + t = timeout_getretry(tm); + tp = NULL; + if (t >= 0.0) { + tv.tv_sec = (int)t; + tv.tv_usec = (int)((t-tv.tv_sec)*1.0e6); + tp = &tv; + } + ret = select(*ps+1, rp, wp, NULL, tp); + } while (ret == -1 && errno == EINTR); + if (ret == -1) return errno; + if (ret == 0) return IO_TIMEOUT; + if (sw == WAITFD_C && FD_ISSET(*ps, &rfds)) return IO_CLOSED; + return IO_DONE; +} +#endif + + +/*-------------------------------------------------------------------------*\ +* Initializes module +\*-------------------------------------------------------------------------*/ +int socket_open(void) { + /* instals a handler to ignore sigpipe or it will crash us */ + signal(SIGPIPE, SIG_IGN); + return 1; +} + +/*-------------------------------------------------------------------------*\ +* Close module +\*-------------------------------------------------------------------------*/ +int socket_close(void) { + return 1; +} + +/*-------------------------------------------------------------------------*\ +* Close and inutilize socket +\*-------------------------------------------------------------------------*/ +void socket_destroy(p_socket ps) { + if (*ps != SOCKET_INVALID) { + socket_setblocking(ps); + close(*ps); + *ps = SOCKET_INVALID; + } +} + +/*-------------------------------------------------------------------------*\ +* Put socket into blocking mode +\*-------------------------------------------------------------------------*/ +void socket_setblocking(p_socket ps) { + int flags = fcntl(*ps, F_GETFL, 0); + flags &= (~(O_NONBLOCK)); + fcntl(*ps, F_SETFL, flags); +} + +/*-------------------------------------------------------------------------*\ +* Put socket into non-blocking mode +\*-------------------------------------------------------------------------*/ +void socket_setnonblocking(p_socket ps) { + int flags = fcntl(*ps, F_GETFL, 0); + flags |= O_NONBLOCK; + fcntl(*ps, F_SETFL, flags); +} + +/*-------------------------------------------------------------------------*\ +* Error translation functions +* Make sure important error messages are standard +\*-------------------------------------------------------------------------*/ +const char *socket_strerror(int err) { + if (err <= 0) return io_strerror(err); + switch (err) { + case EADDRINUSE: return "address already in use"; + case EISCONN: return "already connected"; + case EACCES: return "permission denied"; + case ECONNREFUSED: return "connection refused"; + case ECONNABORTED: return "closed"; + case ECONNRESET: return "closed"; + case EPIPE: return "closed"; + case ETIMEDOUT: return "timeout"; + default: return strerror(errno); + } +} + diff --git a/src/usocket.h b/src/usocket.h new file mode 100644 index 0000000..de8a4a9 --- /dev/null +++ b/src/usocket.h @@ -0,0 +1,28 @@ +#ifndef USOCKET_H +#define USOCKET_H +/*=========================================================================*\ +* LuaSocket 2.0.2 +* Copyright (C) 2004-2007 Diego Nehab +* +* Socket compatibilization module for Unix +* +* RCS ID: $Id: usocket.h 6 2006-04-30 20:33:05Z brunoos $ +\*=========================================================================*/ + +#ifdef SOCKET_POLL +#include +#define WAITFD_R POLLIN +#define WAITFD_W POLLOUT +#define WAITFD_C (POLLIN|POLLOUT) +#else +#define WAITFD_R 1 +#define WAITFD_W 2 +#define WAITFD_C (WAITFD_R|WAITFD_W) +#endif + +typedef int t_socket; +typedef t_socket *p_socket; + +#define SOCKET_INVALID (-1) + +#endif /* USOCKET_H */ diff --git a/src/wsocket.c b/src/wsocket.c new file mode 100644 index 0000000..9f99138 --- /dev/null +++ b/src/wsocket.c @@ -0,0 +1,164 @@ +/*=========================================================================*\ +* LuaSocket 2.0.2 +* Copyright (C) 2004-2007 Diego Nehab +* +* Socket compatibilization module for Win32 +* +* The penalty of calling select to avoid busy-wait is only paid when +* the I/O call fail in the first place. +* +* RCS ID: $Id: wsocket.c,v 1.36 2007/06/11 23:44:54 diego Exp $ +\*=========================================================================*/ +#include + +#include "socket.h" + +/*-------------------------------------------------------------------------*\ +* Initializes module +\*-------------------------------------------------------------------------*/ +int socket_open(void) { + WSADATA wsaData; + WORD wVersionRequested = MAKEWORD(2, 0); + int err = WSAStartup(wVersionRequested, &wsaData ); + if (err != 0) return 0; + if ((LOBYTE(wsaData.wVersion) != 2 || HIBYTE(wsaData.wVersion) != 0) && + (LOBYTE(wsaData.wVersion) != 1 || HIBYTE(wsaData.wVersion) != 1)) { + WSACleanup(); + return 0; + } + return 1; +} + +/*-------------------------------------------------------------------------*\ +* Close module +\*-------------------------------------------------------------------------*/ +int socket_close(void) { + WSACleanup(); + return 1; +} + +/*-------------------------------------------------------------------------*\ +* Wait for readable/writable/connected socket with timeout +\*-------------------------------------------------------------------------*/ +int socket_waitfd(p_socket ps, int sw, p_timeout tm) { + int ret; + fd_set rfds, wfds, efds, *rp = NULL, *wp = NULL, *ep = NULL; + struct timeval tv, *tp = NULL; + double t; + if (timeout_iszero(tm)) return IO_TIMEOUT; /* optimize timeout == 0 case */ + if (sw & WAITFD_R) { + FD_ZERO(&rfds); + FD_SET(*ps, &rfds); + rp = &rfds; + } + if (sw & WAITFD_W) { FD_ZERO(&wfds); FD_SET(*ps, &wfds); wp = &wfds; } + if (sw & WAITFD_C) { FD_ZERO(&efds); FD_SET(*ps, &efds); ep = &efds; } + if ((t = timeout_get(tm)) >= 0.0) { + tv.tv_sec = (int) t; + tv.tv_usec = (int) ((t-tv.tv_sec)*1.0e6); + tp = &tv; + } + ret = select(0, rp, wp, ep, tp); + if (ret == -1) return WSAGetLastError(); + if (ret == 0) return IO_TIMEOUT; + if (sw == WAITFD_C && FD_ISSET(*ps, &efds)) return IO_CLOSED; + return IO_DONE; +} + +/*-------------------------------------------------------------------------*\ +* Close and inutilize socket +\*-------------------------------------------------------------------------*/ +void socket_destroy(p_socket ps) { + if (*ps != SOCKET_INVALID) { + socket_setblocking(ps); /* close can take a long time on WIN32 */ + closesocket(*ps); + *ps = SOCKET_INVALID; + } +} + +/*-------------------------------------------------------------------------*\ +* Put socket into blocking mode +\*-------------------------------------------------------------------------*/ +void socket_setblocking(p_socket ps) { + u_long argp = 0; + ioctlsocket(*ps, FIONBIO, &argp); +} + +/*-------------------------------------------------------------------------*\ +* Put socket into non-blocking mode +\*-------------------------------------------------------------------------*/ +void socket_setnonblocking(p_socket ps) { + u_long argp = 1; + ioctlsocket(*ps, FIONBIO, &argp); +} + +/*-------------------------------------------------------------------------*\ +* Error translation functions +\*-------------------------------------------------------------------------*/ + +/* WinSock doesn't have a strerror... */ +static const char *wstrerror(int err) { + switch (err) { + case WSAEINTR: return "Interrupted function call"; + case WSAEACCES: return "Permission denied"; + case WSAEFAULT: return "Bad address"; + case WSAEINVAL: return "Invalid argument"; + case WSAEMFILE: return "Too many open files"; + case WSAEWOULDBLOCK: return "Resource temporarily unavailable"; + case WSAEINPROGRESS: return "Operation now in progress"; + case WSAEALREADY: return "Operation already in progress"; + case WSAENOTSOCK: return "Socket operation on nonsocket"; + case WSAEDESTADDRREQ: return "Destination address required"; + case WSAEMSGSIZE: return "Message too long"; + case WSAEPROTOTYPE: return "Protocol wrong type for socket"; + case WSAENOPROTOOPT: return "Bad protocol option"; + case WSAEPROTONOSUPPORT: return "Protocol not supported"; + case WSAESOCKTNOSUPPORT: return "Socket type not supported"; + case WSAEOPNOTSUPP: return "Operation not supported"; + case WSAEPFNOSUPPORT: return "Protocol family not supported"; + case WSAEAFNOSUPPORT: + return "Address family not supported by protocol family"; + case WSAEADDRINUSE: return "Address already in use"; + case WSAEADDRNOTAVAIL: return "Cannot assign requested address"; + case WSAENETDOWN: return "Network is down"; + case WSAENETUNREACH: return "Network is unreachable"; + case WSAENETRESET: return "Network dropped connection on reset"; + case WSAECONNABORTED: return "Software caused connection abort"; + case WSAECONNRESET: return "Connection reset by peer"; + case WSAENOBUFS: return "No buffer space available"; + case WSAEISCONN: return "Socket is already connected"; + case WSAENOTCONN: return "Socket is not connected"; + case WSAESHUTDOWN: return "Cannot send after socket shutdown"; + case WSAETIMEDOUT: return "Connection timed out"; + case WSAECONNREFUSED: return "Connection refused"; + case WSAEHOSTDOWN: return "Host is down"; + case WSAEHOSTUNREACH: return "No route to host"; + case WSAEPROCLIM: return "Too many processes"; + case WSASYSNOTREADY: return "Network subsystem is unavailable"; + case WSAVERNOTSUPPORTED: return "Winsock.dll version out of range"; + case WSANOTINITIALISED: + return "Successful WSAStartup not yet performed"; + case WSAEDISCON: return "Graceful shutdown in progress"; + case WSAHOST_NOT_FOUND: return "Host not found"; + case WSATRY_AGAIN: return "Nonauthoritative host not found"; + case WSANO_RECOVERY: return "Nonrecoverable name lookup error"; + case WSANO_DATA: return "Valid name, no data record of requested type"; + default: return "Unknown error"; + } +} + +const char *socket_strerror(int err) { + if (err <= 0) return io_strerror(err); + switch (err) { + case ERROR_FILE_NOT_FOUND: return "closed"; + case WSAEADDRINUSE: return "address already in use"; + case WSAECONNREFUSED: return "connection refused"; + case WSAEISCONN: return "already connected"; + case WSAEACCES: return "permission denied"; + case WSAECONNABORTED: return "closed"; + case WSAECONNRESET: return "closed"; + case WSAETIMEDOUT: return "timeout"; + default: return wstrerror(err); + } +} + diff --git a/src/wsocket.h b/src/wsocket.h new file mode 100644 index 0000000..b977df6 --- /dev/null +++ b/src/wsocket.h @@ -0,0 +1,28 @@ +#ifndef WSOCKET_H +#define WSOCKET_H +/*=========================================================================*\ +* LuaSocket 2.0.2 +* Copyright (C) 2004-2007 Diego Nehab +* +* Socket compatibilization module for Win32 +* +* RCS ID: $Id: wsocket.h 2 2006-04-30 19:30:47Z brunoos $ +\*=========================================================================*/ + +/*=========================================================================*\ +* WinSock include files +\*=========================================================================*/ +#include + +#define WAITFD_R 1 +#define WAITFD_W 2 +#define WAITFD_E 4 +#define WAITFD_C (WAITFD_E|WAITFD_W) + +#define SOCKET_INVALID (INVALID_SOCKET) + +typedef int socklen_t; +typedef SOCKET t_socket; +typedef t_socket *p_socket; + +#endif /* WSOCKET_H */