On Wed, Dec 24, 2014 at 5:15 PM, Seth list@sysfu.com wrote:
On Tue, 23 Dec 2014 09:16:56 -0800, Nick Mathewson nickm@freehaven.net wrote:
Strange! There is code in git master that is supposed to prevent this.
Yes, I thought it had been fixed by your commit from this ticket https://trac.torproject.org/projects/tor/ticket/13325
The current Tor's "find_cipher_by_id" is supposed to avoid looking at the get_cipher_by_id field. Do you really get the same errors with master, or is the error different?
Makes no difference, same error for master branch as the rest.
latest Git - master branch - git clone https://git.torproject.org/git/tor
# cd tor; git status On branch master Your branch is up-to-date with 'origin/master'. nothing to commit, working directory clean
# sh autogen.sh ; ./configure --with-openssl-dir=/usr/local --disable-asciidoc ; make
src/common/tortls.c: In function 'find_cipher_by_id': src/common/tortls.c:1478: error: 'SSL_METHOD' has no member named 'get_cipher_by_char' src/common/tortls.c:1484: error: 'SSL_METHOD' has no member named 'get_cipher_by_char' *** [src/common/tortls.o] Error code 1
Huh. So, that code is wrapped inside a block that does
#ifdef HAVE_STRUCT_SSL_METHOD_ST_GET_CIPHER_BY_CHAR
And that macro is supposed to be defined by autoconf if it sees the get_cipher_by_char method in SSL_METHOD_ST.
Hm. Maybe the problem is in our (notoriously wonky) SSL library detection!
Maybe the autoconf script is looking at the headers in /usr/include, instead of /usr/local/include ? That would mess it up.
Instead of using --with-openssl-dir=/usr/local, what happens if you set CFLAGS and LDFLAGS by hand when compiling?
If that works, then the underlying bug here is actually the library detection issues in https://trac.torproject.org/projects/tor/ticket/13817
For the meantime, is there a compiler macro we can use to distinguish libressl from openssl at compile-time?