From wk at gnupg.org Tue Feb 3 20:52:28 2004 From: wk at gnupg.org (Werner Koch) Date: Tue, 03 Feb 2004 20:52:28 +0100 Subject: [gnutls-dev] OpenPGP security for web servers, again In-Reply-To: (john@neggie.net's message of "Sat, 31 Jan 2004 11:00:18 -0500") References: Message-ID: <87d68wndoj.fsf@alberti.g10code.de> On Sat, 31 Jan 2004 11:00:18 -0500, john said: > HTTP server and browser? It seems that with opencdk and the unique > OpenPGP support in gnutls being under the GPL, we'll never see this > support put into Apache. Does the new Apache license change the There is no technical need to link it into Apache. It is not that difficult to write a socket based daemon providing OpenPGP authentication suing GPGME and GnuPG. The current performance won't be sufficient for a large site, but we are planning to give it a huge boost by keeping the gpg process running as a daemon (it would be possible to use this even direclty w/o the gpgme library). Salam-Shalom, Werner -- Werner Koch The GnuPG Experts http://g10code.com Free Software Foundation Europe http://fsfeurope.org From john at neggie.net Tue Feb 3 20:20:09 2004 From: john at neggie.net (John Belmonte) Date: Tue, 03 Feb 2004 14:20:09 -0500 Subject: [gnutls-dev] OpenPGP security for web servers, again Message-ID: <401FF469.4070203@neggie.net> I've always been frustrated with the lack of PGP support for HTTP. Why, when the people I need to grant access to my web site all have PGP keys, do I have to deal with weak authentication schemes, forcing users to remember new passwords, and the poorly-designed X.509 system? I was surprised to find out that in 1995 the NCSA HTTP server and browser already had PGP support [1]. It was removed due to now-defunct export laws of the U.S. When will such functionality ever be returned to the most popular free HTTP server and browser? It seems that with opencdk and the unique OpenPGP support in gnutls being under the GPL, we'll never see this support put into Apache. Does the new Apache license change the situation? Regards, -John Belmonte [1] http://hoohoo.ncsa.uiuc.edu/docs/PEMPGP.html From john at neggie.net Tue Feb 3 22:54:10 2004 From: john at neggie.net (John Belmonte) Date: Tue, 03 Feb 2004 16:54:10 -0500 Subject: [gnutls-dev] OpenPGP security for web servers, again In-Reply-To: <87d68wndoj.fsf@alberti.g10code.de> References: <87d68wndoj.fsf@alberti.g10code.de> Message-ID: <40201882.7050906@neggie.net> Werner Koch wrote: > There is no technical need to link it into Apache. It is not that > difficult to write a socket based daemon providing OpenPGP > authentication suing GPGME and GnuPG. The current performance won't > be sufficient for a large site, but we are planning to give it a huge > boost by keeping the gpg process running as a daemon (it would be > possible to use this even direclty w/o the gpgme library). I would be interested in more details about how this works. -John -- http:// if ile.org/ From sig at netdot.net Tue Feb 3 08:57:01 2004 From: sig at netdot.net (Aaron VanDevender) Date: Tue, 3 Feb 2004 02:57:01 -0500 Subject: [gnutls-dev] libtasn1-config Message-ID: <20040203075701.GP1658@netdot.net> Why is there no libtasn1-config script? It seems like having such a tool would help out when using gnutls in build scripts. If having a libtasn1-config script seems wasteful, then we could always put in a pkg-config package, ala freedesktop.org, although it would seem somewhat precocious to have libtasn1 support pkg-config when gnutls is still using the old style libgnutls-config. cya .sig From wk at gnupg.org Wed Feb 4 13:58:26 2004 From: wk at gnupg.org (Werner Koch) Date: Wed, 04 Feb 2004 13:58:26 +0100 Subject: [gnutls-dev] OpenPGP security for web servers, again In-Reply-To: <40201882.7050906@neggie.net> (John Belmonte's message of "Tue, 03 Feb 2004 16:54:10 -0500") References: <87d68wndoj.fsf@alberti.g10code.de> <40201882.7050906@neggie.net> Message-ID: <87znbzm26l.fsf@alberti.g10code.de> On Tue, 03 Feb 2004 16:54:10 -0500, John Belmonte said: > I would be interested in more details about how this works. Well, we have use a simple IPC protocol named Assuan which has the advantage that it is mostly plain text and easy to debug ala FTP. It is not yet implemented in gpg but it will be very similar on how we do it in gpgsm. The most straightforward use will be that Apache forks and execs "gpg --server" and communicates like this: -> SIGNER 0x12345678 <- OK -> INPUT FD=7 <- OK -> OUTPUT FD=8 <- OK -> SIGN Apache has setup file descriptor 7 to write the to be signed data to gpg and 8 to read the created signature. Then it can continue with more commands. Instead of setting up the file descriptors in advance we will very soon allow to use file decriptor passing; the code is already available in libassuan but not yet in gpg[sm]. If the data to be signed is short, we may also extend the protocol to pass the data (e.g. a hash) directly without the need to read form file descriptors. The protocol is quite flexible. verification works similar; except that you either get an OK or an ERR back. There are also a lot of status messages the caller can process, those are indicated by responses starting with "S ". Salam-Shalom, Werner p.s Here is a full dump of such a conversation. Due to the missing file descriptor passing feature, we still fire up gpgsm for each opeations; this the BYE as the last command. 13:24:21 gpgsm[15812.0x80a5258] DBG: -> OK GNU Privacy Guard's S/M server ready 13:24:21 gpgsm[15812.0x80a5258] DBG: <- OPTION display=localhost:12.0 13:24:21 gpgsm[15812.0x80a5258] DBG: -> OK 13:24:21 gpgsm[15812.0x80a5258] DBG: <- OPTION ttyname=/dev/pts/1 13:24:21 gpgsm[15812.0x80a5258] DBG: -> OK 13:24:21 gpgsm[15812.0x80a5258] DBG: <- OPTION ttytype=xterm 13:24:21 gpgsm[15812.0x80a5258] DBG: -> OK 13:24:21 gpgsm[15812.0x80a5258] DBG: <- INPUT FD=12 13:24:21 gpgsm[15812.0x80a5258] DBG: -> OK 13:24:21 gpgsm[15812.0x80a5258] DBG: <- MESSAGE FD=18 13:24:21 gpgsm[15812.0x80a5258] DBG: -> OK 13:24:21 gpgsm[15812.0x80a5258] DBG: <- VERIFY 13:24:21 gpgsm[15812]: detached signature 13:24:21 gpgsm[15812]: Signature made 2004-02-04 12:18:08 using certificate ID 1A 13:24:21 gpgsm[15812]: certificate is good 13:24:21 gpgsm[15812]: certificate is good 13:24:21 gpgsm[15812.0x80a5258] DBG: -> S GOODSIG 13:24:21 gpgsm[15812.0x80a5258] DBG: -> S VALIDSIG 3B50BF2BDAF27C30949DBA3ACF8A782-04 20040204T121808 20060104T184908 13:24:21 gpgsm[15812]: Good signature from "/CN=Werner Koch/OU=test/O=g10 Code/C= 13:24:21 gpgsm[15812]: aka "wk at g10code.de" 13:24:21 gpgsm[15812.0x80a5258] DBG: -> S TRUST_FULLY 13:24:21 gpgsm[15812.0x80a5258] DBG: -> OK 13:24:21 gpgsm[15812.0x80a5258] DBG: <- BYE 13:24:21 gpgsm[15812.0x80a5258] DBG: -> OK closing connection -- Werner Koch The GnuPG Experts http://g10code.com Free Software Foundation Europe http://fsfeurope.org From nmav at gnutls.org Wed Feb 11 09:34:51 2004 From: nmav at gnutls.org (Nikos Mavroyanopoulos) Date: Wed, 11 Feb 2004 10:34:51 +0200 Subject: [gnutls-dev] gnutls 1.0.5 Message-ID: <20040211083451.GA1616@gnutls.org> I've just released gnutls 1.0.5. This release includes several features taken from the development branch. The changes are: - Fixed a bug where 'server name' extension was always sent. - Backported several things from the development branch: - Added CRL verification functionality to certtool. - Corrected the CRL distribution point extension handling. - Added PKCS #7 support to certtool utility. - Added support for reading and generating CRL distribution points extensions in certificates. - Added support for generating CRLs in the library and the certtool utility. - Added support for the Subject Key ID PKIX extension. - Added the gnutls_sign_algorithm type. -- Nikos Mavroyanopoulos From nmav at gnutls.org Thu Feb 12 11:20:04 2004 From: nmav at gnutls.org (Nikos Mavroyanopoulos) Date: Thu, 12 Feb 2004 12:20:04 +0200 Subject: [gnutls-dev] gnutls 1.0.6 Message-ID: <20040212102004.GA18587@gnutls.org> I've just released gnutls 1.0.6 which includes all the new features of the 1.1.x branch except for TLS 1.1. Those are: - Improved gnutls-cli's SRP behaviour in SRP ciphersuites. If they are of highest priority then the abbreviated handshake is used. - The error codes GNUTLS_E_NO_TEMPORARY_DH_PARAMS and GNUTLS_E_NO_TEMPORARY_RSA_PARAMS are no longer returned by the handshake function. Ciphersuites that require temporary parameters are removed when such parameters do not exist. - Added the callbacks gnutls_certificate_client_retrieve_function() and gnutls_certificate_server_retrieve_function(), to allow a client or a server to specify certificates for the handshake without storing them to the credentials structure. - Added support for generating and exporting DSA private keys. TLS 1.1 was not included because I couldn't test it against other implementations. If you can test it, a patch that enables it is attached. -- Nikos Mavroyanopoulos -------------- next part -------------- --- gnutls1/lib/gnutls_algorithms.c Thu Feb 12 11:13:34 2004 +++ gnutls/lib/gnutls_algorithms.c Tue Jan 6 22:13:48 2004 @@ -109,6 +109,7 @@ static const gnutls_version_entry sup_versions[] = { {"SSL 3.0", GNUTLS_SSL3, 3, 0, 1}, {"TLS 1.0", GNUTLS_TLS1, 3, 1, 1}, + {"TLS 1.1", GNUTLS_TLS1_1, 3, 2, 1}, {0, 0, 0, 0, 0} }; --- gnutls1/lib/gnutls_cipher.c Thu Feb 12 11:13:33 2004 +++ gnutls/lib/gnutls_cipher.c Wed Feb 11 20:51:21 2004 @@ -228,6 +228,9 @@ *pad = (uint8) (blocksize - (length % blocksize)) + rand; length += *pad; + if ( session->security_parameters.version >= GNUTLS_TLS1_1) + length += blocksize; /* for the IV */ + break; default: gnutls_assert(); @@ -312,6 +315,17 @@ } data_ptr = cipher_data; + if ( block_algo==CIPHER_BLOCK && + session->security_parameters.version >= GNUTLS_TLS1_1) + { + /* copy the random IV. + */ + if (_gnutls_get_random(data_ptr, blocksize, GNUTLS_WEAK_RANDOM) < 0) { + gnutls_assert(); + return GNUTLS_E_MEMORY_ERROR; + } + data_ptr += blocksize; + } memcpy(data_ptr, compressed.data, compressed.size); data_ptr += compressed.size; @@ -403,6 +417,18 @@ ciphertext.size)) < 0) { gnutls_assert(); return ret; + } + + /* ignore the IV in TLS 1.1. + */ + if (session->security_parameters.version >= GNUTLS_TLS1_1) { + ciphertext.size -= blocksize; + ciphertext.data += blocksize; + + if (ciphertext.size == 0) { + gnutls_assert(); + return GNUTLS_E_DECRYPTION_FAILED; + } } pad = ciphertext.data[ciphertext.size - 1] + 1; /* pad */ --- gnutls1/lib/gnutls.h.in.in Thu Feb 12 11:12:11 2004 +++ gnutls/lib/gnutls.h.in.in Tue Feb 10 22:10:06 2004 @@ -148,7 +148,7 @@ #define GNUTLS_TLS1 GNUTLS_TLS1_0 typedef enum gnutls_protocol_version { GNUTLS_SSL3=1, GNUTLS_TLS1_0, - } gnutls_protocol_version; + GNUTLS_TLS1_1 } gnutls_protocol_version; typedef enum gnutls_certificate_type { GNUTLS_CRT_X509=1, GNUTLS_CRT_OPENPGP } gnutls_certificate_type; From papadopo at shfj.cea.fr Fri Feb 13 14:34:20 2004 From: papadopo at shfj.cea.fr (Dimitri Papadopoulos-Orfanos) Date: Fri, 13 Feb 2004 14:34:20 +0100 Subject: [gnutls-dev] building GnuTLS 1.0.6 on Solaris Message-ID: <402CD25C.2070907@shfj.cea.fr> Hi, GnuTLS 1.0.6 still doesn't build out of the box here. The problem is the same as for 1.0.4: the Makefile lacks the inclusion path for OpenCDK. I worked around the bug in the same way. Apart from the usual signed/unsigned warnings, there are a few more serious warnings you may want to fix: "openpgp.c", line 464: warning: argument #2 is incompatible with prototype: prototype: pointer to unsigned int : "/usr/local/opencdk/include/opencdk.h", line 625 argument : pointer to unsigned long "xml.c", line 154: warning: argument #2 is incompatible with prototype: prototype: pointer to unsigned int : "/usr/local/opencdk/include/opencdk.h", line 625 argument : pointer to unsigned long "xml.c", line 315: warning: argument #2 is incompatible with prototype: prototype: pointer to unsigned int : "/usr/local/opencdk/include/opencdk.h", line 627 argument : pointer to unsigned long "mpi.c", line 349: warning: enum type mismatch: arg #1 Regards, -- Dimitri From nmav at gnutls.org Fri Feb 13 23:00:46 2004 From: nmav at gnutls.org (Nikos Mavroyanopoulos) Date: Sat, 14 Feb 2004 00:00:46 +0200 Subject: [gnutls-dev] building GnuTLS 1.0.6 on Solaris In-Reply-To: <402CD25C.2070907@shfj.cea.fr> References: <402CD25C.2070907@shfj.cea.fr> Message-ID: <20040213220046.GA8090@gnutls.org> On Fri, Feb 13, 2004 at 02:34:20PM +0100, Dimitri Papadopoulos-Orfanos wrote: > Hi, > GnuTLS 1.0.6 still doesn't build out of the box here. The problem is the > same as for 1.0.4: the Makefile lacks the inclusion path for OpenCDK. I > worked around the bug in the same way. Could you sent me the config.log? I cannot reproduce it. > Apart from the usual signed/unsigned warnings, there are a few more > serious warnings you may want to fix: > "mpi.c", line 349: warning: enum type mismatch: arg #1 Fixed. Hopefully it was only a prototype error. > Regards, > -- > Dimitri -- Nikos Mavroyanopoulos From papadopo at shfj.cea.fr Mon Feb 16 14:02:54 2004 From: papadopo at shfj.cea.fr (Dimitri Papadopoulos-Orfanos) Date: Mon, 16 Feb 2004 14:02:54 +0100 Subject: [gnutls-dev] building GnuTLS 1.0.6 on Solaris In-Reply-To: <20040213220046.GA8090@gnutls.org> References: <402CD25C.2070907@shfj.cea.fr> <20040213220046.GA8090@gnutls.org> Message-ID: <4030BF7E.9000902@shfj.cea.fr> Hi, >>GnuTLS 1.0.6 still doesn't build out of the box here. The problem is the >>same as for 1.0.4: the Makefile lacks the inclusion path for OpenCDK. I >>worked around the bug in the same way. > > Could you sent me the config.log? I cannot reproduce it. Please find attached config.log and the output of make, make.log. -- Dimitri -------------- next part -------------- A non-text attachment was scrubbed... Name: config.log.gz Type: application/x-tar Size: 11115 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: make.log.gz Type: application/x-tar Size: 3109 bytes Desc: not available URL: From cyrax at b0rken.dk Fri Feb 27 15:44:05 2004 From: cyrax at b0rken.dk (=?iso-8859-1?Q?Mark_Gj=F8l?=) Date: Fri, 27 Feb 2004 15:44:05 +0100 Subject: [gnutls-dev] gnutls fails to compile Message-ID: <20040227144405.GB13807@b0rken.dk> Hi, I'm trying to compile gnutls on a Solaris 9 machine, and I'm having some problems: I have installed opencdk 0.5.3, but when I use the parameter: --with-libopencdk-prefix I get the "The test program compiled, but did not run." error... Ok, then, but I probably don't need opencdk, so I use the option: --disable-openpgp-authentication, and hazzaaah! The configure succeeds! But now I get the following error when compiling... Please ask for more information if so is needed... gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../ -I../../includes/ -I../../lib/minitasn1 -I/usr/local/gbar/_/libgcrypt/1.1.92/include -I/usr/local/gbar/_/libgpg-error/0.6/include -D_REENTRANT -D_THREAD_SAFE -O2 -finline-functions -pipe -I/usr/local/gbar/_/libgcrypt/1.1.92/include -I/usr/local/gbar/_/libgpg-error/0.6/include -MT verify.lo -MD -MP -MF .deps/verify.Tpo -c verify.c -fPIC -DPIC -o .libs/verify.o In file included from ../gnutls_sig.h:3, from verify.c:33: ../auth_cert.h:12: parse error before "gnutls_openpgp_key" ../auth_cert.h:12: warning: no semicolon at end of struct or union ../auth_cert.h:12: warning: no semicolon at end of struct or union ../auth_cert.h:13: warning: data definition has no type or storage class ../auth_cert.h:18: parse error before "gnutls_openpgp_privkey" ../auth_cert.h:18: warning: no semicolon at end of struct or union ../auth_cert.h:19: warning: data definition has no type or storage class ../auth_cert.h:22: parse error before '}' token ../auth_cert.h:22: warning: data definition has no type or storage class ../auth_cert.h:27: parse error before "gnutls_retr_st" ../auth_cert.h:30: parse error before "gnutls_retr_st" gmake[3]: *** [verify.lo] Error 1 gmake[3]: Leaving directory `/export/home/gbar/mg/compile/gnutls/gnutls-1.1.6/lib/x509' -- // Mark Gj?l Is it better to abide by the rules until they're changed or help speed the change by breaking them? -- http://b0rken.dk -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: Digital signature URL: From nmav at gnutls.org Sat Feb 28 10:09:01 2004 From: nmav at gnutls.org (Nikos Mavroyanopoulos) Date: Sat, 28 Feb 2004 11:09:01 +0200 Subject: [gnutls-dev] gnutls fails to compile In-Reply-To: <20040227144405.GB13807@b0rken.dk> References: <20040227144405.GB13807@b0rken.dk> Message-ID: <20040228090901.GA17360@gnutls.org> On Fri, Feb 27, 2004 at 03:44:05PM +0100, Mark Gj?l wrote: > Hi, > I'm trying to compile gnutls on a Solaris 9 machine, and I'm having some > problems: > I have installed opencdk 0.5.3, but when I use the parameter: > --with-libopencdk-prefix I get the "The test program compiled, but did > not run." error... Ok, then, but I probably don't need opencdk, so I use I'm curious about this Could you sent me the config.log file? > the option: --disable-openpgp-authentication, and hazzaaah! The > configure succeeds! But now I get the following error when compiling... > Please ask for more information if so is needed... [...] > from verify.c:33: > ../auth_cert.h:12: parse error before "gnutls_openpgp_key" > ../auth_cert.h:12: warning: no semicolon at end of struct or union > ../auth_cert.h:12: warning: no semicolon at end of struct or union [...] Thanks for reporting this. It was fixed in the cvs. > _______________________________________________ > Gnutls-dev mailing list > Gnutls-dev at gnupg.org > http://lists.gnupg.org/mailman/listinfo/gnutls-dev -- Nikos Mavroyanopoulos From nmav at gnutls.org Sat Feb 28 10:19:08 2004 From: nmav at gnutls.org (Nikos Mavroyanopoulos) Date: Sat, 28 Feb 2004 11:19:08 +0200 Subject: [gnutls-dev] gnutls 1.0.8 Message-ID: <20040228091908.GA478@gnutls.org> Hello, I've just released gnutls 1.0.8, which corrects some bugs of the previous releases. The changes since 1.0.7 are: - Corrected bug in mutual certificate authentication in SSL 3.0. - Several other minor bugfixes. -- Nikos Mavroyanopoulos