Prabhu,

One small problem with your patch.

See the below snip
<snip>
[kamesh@kamesh trunk]$ python tools/examples/get-location-segments.py 
https://svn.eu.apache.org/repos/asf/subversion/trunk 
The certficate details are as follows:
--------------------------------------
Issuer     : 07969287, http://certificates.godaddy.com/repository, GoDaddy.com, 
Inc., Scottsdale, Arizona, US
Hostname   : svn.apache.org
ValidFrom  : Thu, 13 Nov 2008 18:56:12 GMT
ValidUpto  : Thu, 26 Jan 2012 14:18:55 GMT
Fingerprint: cc:54:a4:a9:ec:3a:9b:1c:23:ac:2d:57:c6:96:9f:5f:4a:1d:2d:86

accept (t)temporarily   (p)permanently: p
r836420-r1165254: subversion/trunk
[kamesh@kamesh trunk]$ python tools/examples/get-location-segments.py 
https://svn.eu.apache.org/repos/asf/subversion/trunk 
The certficate details are as follows:
--------------------------------------
Issuer     : 07969287, http://certificates.godaddy.com/repository, GoDaddy.com, 
Inc., Scottsdale, Arizona, US
Hostname   : svn.apache.org
ValidFrom  : Thu, 13 Nov 2008 18:56:12 GMT
ValidUpto  : Thu, 26 Jan 2012 14:18:55 GMT
Fingerprint: cc:54:a4:a9:ec:3a:9b:1c:23:ac:2d:57:c6:96:9f:5f:4a:1d:2d:86

accept (t)temporarily   (p)permanently:  
</snip>

When I press 'p' it should preserve and prompt again. It actually preserves 
this acceptance inside ~/.subversion but somehow it keeps throwing this warning 
screen.

With regards
Kamesh Jayachandran
-----Original Message-----
From: Prabhu Gnana Sundar [mailto:prabh...@collab.net]
Sent: Fri 9/2/2011 4:18 PM
To: Vijayaguru Guruchave
Cc: dev@subversion.apache.org
Subject: Re: [PATCH] get-location-segments.py would work on self-signed ssl 
servers too
 
Thanks Vijay for the detailed explanation...

I am attaching the patch for the script with minor tweaks...


Regards
Prabhu


On Friday 02 September 2011 04:13 PM, vijay wrote:
>
> Actually, there are two issues to be noted.
>
> 1.Bug with neon (Reproducible in Ubuntu 10.10, svn 1.6.12, neon 
> 0.29.3/GNUTLS)
>
> 2.Bug with openssl (Reproducible in Ubuntu 10.10, neon 0.29.x/openssl 
> 0.9.8o)
>
>
> Bug with neon (Reproducible in Ubuntu 10.10, neon 0.29.3/GNUTLS)
> ---------------------------------------------------------------------------------------
>
> Even my svn 1.6 command line binary that comes with Ubuntu 10.10 fails 
> with following error while accessing "https://svn.eu.apache.org";
>
> $ svn info https://svn.eu.apache.org/repos/asf/subversion/README
> svn: OPTIONS of 
> 'https://svn.eu.apache.org/repos/asf/subversion/README': SSL handshake 
> failed: SSL error: A TLS warning alert has been received. 
> (https://svn.eu.apache.org)
>
> This is due to a bug[1] reported in neon-GNUTLS combination.  It is 
> fixed in neon 0.29.5.
>
> The version of our distro's neon is 0.29.3. If we upgrade the neon 
> library, the issue will be fixed.
>
> Bug with openssl (Reproducible in Ubuntu 10.10, neon 0.29.x/openssl 
> 0.9.8o)
> -------------------------------------------------------------------------------------------------
>
> I built subversion trunk with neon 0.29.6 and openssl 0.9.8o. I got 
> the following error message.
>
> svn: E175002: Unable to connect to a repository at URL 
> 'https://svn.eu.apache.org/repos/asf/subversion'
> svn: E175002: OPTIONS of 
> 'https://svn.eu.apache.org/repos/asf/subversion': SSL handshake 
> failed: SSL error code -1/1/336032856 (https://svn.eu.apache.org)
>
> openssl 0.9.8o has TLS Extensions support but it is broken there.
>
> TLS Extensions support was added to openssl in 2006 itself.[openssl 
> 0.9.8o was released in 2010]
>
> <snip-from-log>
> revision 1.33
> date: 2006-01-03 04:44:32 +0530;  author: bodo;  state: Exp;  lines: 
> +12 -0;  commitid: 5gJcTq6NJelx15gr;
> Support TLS extensions (specifically, HostName)
>
> Submitted by: Peter Sylvester
> ----------------------------
> </snip>
>
> Why we say it is broken?
> -------------------------------
> The server "svn.eu.apache.org" or "svn.us.apache.org" sends an alert 
> message during SSL handshake.
>
> We can look at it in the following ssldump output.
>
> <snip>
> vijayaguru@maverick:~/svn-sandbox/Dependencies-Untarred/openssl-0.9.8o/ssl$ 
> sudo ssldump -i eth2 host svn.eu.apache.org
> New TCP connection #1: maverick(35789) <-> harmonia.apache.org(443)
> 1 1  0.4067 (0.4067)  C>S  Handshake
>       ClientHello
>         Version 3.1
>         cipher suites
>         Unknown value 0xc014
>         Unknown value 0xc00a
>         Unknown value 0x39
>         Unknown value 0x38
>         Unknown value 0x88
>         Unknown value 0x87
>         Unknown value 0xc00f
>         Unknown value 0xc005
>         Unknown value 0x35
>         Unknown value 0x84
>         Unknown value 0xc012
>         Unknown value 0xc008
>         TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
>         TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA
>         Unknown value 0xc00d
>         Unknown value 0xc003
>         TLS_RSA_WITH_3DES_EDE_CBC_SHA
>         Unknown value 0xc013
>         Unknown value 0xc009
>         Unknown value 0x33
>         Unknown value 0x32
>         Unknown value 0x9a
>         Unknown value 0x99
>         Unknown value 0x45
>         Unknown value 0x44
>         Unknown value 0xc00e
>         Unknown value 0xc004
>         Unknown value 0x2f
>         Unknown value 0x96
>         Unknown value 0x41
>         TLS_RSA_WITH_IDEA_CBC_SHA
>         Unknown value 0xc011
>         Unknown value 0xc007
>         Unknown value 0xc00c
>         Unknown value 0xc002
>         TLS_RSA_WITH_RC4_128_SHA
>         TLS_RSA_WITH_RC4_128_MD5
>         TLS_DHE_RSA_WITH_DES_CBC_SHA
>         TLS_DHE_DSS_WITH_DES_CBC_SHA
>         TLS_RSA_WITH_DES_CBC_SHA
>         TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA
>         TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA
>         TLS_RSA_EXPORT_WITH_DES40_CBC_SHA
>         TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5
>         TLS_RSA_EXPORT_WITH_RC4_40_MD5
>         Unknown value 0xff
>         compression methods
>                   NULL
> * 1 2  0.8245 (0.4177)  S>C  Alert *
>     level           warning
>     value         unknown value
> </snip>
>
> What does this alert message refer to?
> -------------------------------------------------
> <snip>
>
> From 
> _http://en.wikipedia.org/wiki/Transport_Layer_Security#TLS_record_protocol_
> Alert protocol
>
> This record should normally not be sent during normal handshaking or 
> application exchanges. However, this message can be sent at any time 
> during the handshake and up to the closure of the session. If this is 
> used to signal a fatal error, the session will be closed immediately 
> after sending this record, so this record is used to give a reason for 
> this closure. If the alert level is flagged as a warning, the remote 
> can decide to close the session if it decides that the session is not 
> reliable enough for its needs (before doing so, the remote may also 
> send its own signal).
> </snip>
>
> There are two alert level types.
>
> 1.Warning
> 2.fatal
>
> openssl 1.0.0d handles warning and fatal alert types in different ways.
>
> 1. If it is fatal, terminate the session.
>
> 2.If it is warning, resume it.
>
> You can look at it in  "{openssl-src-dir}/ssl/s23_clnt.c: 
> ssl23_get_server_hello()"
>
> But openssl 0.9.8o terminates the session if it receives an alert 
> message; no matter the level of alert.
>
> Here, in this case, the level of alert is "Warning".
> With openssl 0.9.8o, the connection is closed immediately. We see the 
> following error message.
>
> <snip>
> svn: E175002: Unable to connect to a repository at URL 
> 'https://svn.eu.apache.org/repos/asf/subversion'
> svn: E175002: OPTIONS of 
> 'https://svn.eu.apache.org/repos/asf/subversion': SSL handshake 
> failed: SSL error code -1/1/336032856 (https://svn.eu.apache.org)
> </snip>
>
> openssl 1.0.0d proceeds further and we could successfully complete our 
> svn operation.
>
> Upgrading openssl to 1.0.0d will fix this issue.
>
> Thanks Daniel. It is a very good learning for us.
>
> [1] https://bugs.launchpad.net/ubuntu/+source/subversion/+bug/294648
>
> Thanks & Regards,
> Vijayaguru


Reply via email to