[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-bugs] #13815 [Tor]: Attempt to port tor to Google's BoringSSL
#13815: Attempt to port tor to Google's BoringSSL
-----------------------------+------------------------------------
 Reporter:  teor             |          Owner:
     Type:  enhancement      |         Status:  new
 Priority:  normal           |      Milestone:  Tor: unspecified
Component:  Tor              |        Version:  Tor: 0.2.6.1-alpha
 Keywords:  lorax tor-relay  |  Actual Points:
Parent ID:  #13415           |         Points:
-----------------------------+------------------------------------
 Split from #13415:
 '''nickm:'''
 Interesting. It looks like building with BoringSSL will require some
 actual porting to detect all the APIs they've removed, and to figure out
 whether we can replace them.
 '''teor:'''
 BoringSSL is even worse - it doesn't even have an openssl executable, only
 builds static libraries, and is a pain to configure correctly under our
 current config scripts.
 I can't seem to stop it finding the system-supplied SSL, even when I
 provide it the BoringSSL directories.
  I get the following warnings when I manually install BoringSSL into
 include/lib/bin dirs, and fake the openssl executable using the bssl
 executable:
 (I've cleaned up some warnings that were irrelevant or trivial.)
     CC src/common/crypto.o
 src/common/crypto.c:170:12: warning: implicit declaration of function
     'ENGINE_get_name' is invalid in C99 [-Wimplicit-function-declaration]
     name = ENGINE_get_name(e);
 src/common/crypto.c:171:10: warning: implicit declaration of function
     'ENGINE_get_id' is invalid in C99 [-Wimplicit-function-declaration]
     id = ENGINE_get_id(e);
 src/common/crypto.c:186:15: warning: implicit declaration of function
     'ENGINE_by_id' is invalid in C99 [-Wimplicit-function-declaration]
     ENGINE *e = ENGINE_by_id("dynamic");
 src/common/crypto.c:188:10: warning: implicit declaration of function
     'ENGINE_ctrl_cmd_string' is invalid in C99
     [-Wimplicit-function-declaration]
     if (!ENGINE_ctrl_cmd_string(e, "ID", engine, 0)
 src/common/crypto.c:227:31: warning: implicit declaration of function
     'SSLeay_version' is invalid in C99 [-Wimplicit-function-declaration]
     const char *raw_version = SSLeay_version(SSLEAY_VERSION);
 src/common/crypto.c:227:46: error: use of undeclared identifier
 'SSLEAY_VERSION'
     const char *raw_version = SSLeay_version(SSLEAY_VERSION);
 src/common/crypto.c:241:51: error: use of undeclared identifier
     'OPENSSL_VERSION_TEXT'
         parse_openssl_version_str(OPENSSL_VERSION_TEXT);
 src/common/crypto.c:251:7: warning: implicit declaration of function
     'RAND_get_rand_method' is invalid in C99 [-Wimplicit-function-
 declaration]
     if (RAND_get_rand_method() != RAND_SSLeay()) {
 src/common/crypto.c:251:33: warning: implicit declaration of function
     'RAND_SSLeay' is invalid in C99 [-Wimplicit-function-declaration]
     if (RAND_get_rand_method() != RAND_SSLeay()) {
 src/common/crypto.c:255:5: warning: implicit declaration of function
     'RAND_set_rand_method' is invalid in C99 [-Wimplicit-function-
 declaration]
     RAND_set_rand_method(RAND_SSLeay());
 src/common/crypto.c:291:9: warning: implicit declaration of function
 'SSLeay' is
     invalid in C99 [-Wimplicit-function-declaration]
     if (SSLeay() == OPENSSL_VERSION_NUMBER &&
 src/common/crypto.c:292:32: error: use of undeclared identifier
 'SSLEAY_VERSION'
     !strcmp(SSLeay_version(SSLEAY_VERSION), OPENSSL_VERSION_TEXT)) {
 src/common/crypto.c:292:49: error: use of undeclared identifier
     'OPENSSL_VERSION_TEXT'
         !strcmp(SSLeay_version(SSLEAY_VERSION), OPENSSL_VERSION_TEXT)) {
     CC src/common/crypto_s2k.o
 src/common/crypto.c:294:57: error: use of undeclared identifier
 'SSLEAY_VERSION'
     "(%lx: %s).", SSLeay(), SSLeay_version(SSLEAY_VERSION));
 ./src/common/../common/torlog.h:190:50: note: expanded from macro
 'log_info'
     log_fn_(LOG_INFO, domain, PRETTY_FUNCTION, args)
 src/common/crypto.c:299:55: error: use of undeclared identifier
     'OPENSSL_VERSION_TEXT'
         (unsigned long)OPENSSL_VERSION_NUMBER, OPENSSL_VERSION_TEXT,
 ./src/common/../common/torlog.h:194:50: note: expanded from macro
 'log_warn'
     log_fn_(LOG_WARN, domain, PRETTY_FUNCTION, args)
 src/common/crypto.c:300:41: error: use of undeclared identifier
 'SSLEAY_VERSION'
     SSLeay(), SSLeay_version(SSLEAY_VERSION));
 ./src/common/../common/torlog.h:194:50: note: expanded from macro
 'log_warn'
     log_fn_(LOG_WARN, domain, PRETTY_FUNCTION, args)
 src/common/crypto.c:339:7: warning: implicit declaration of function
     'ENGINE_load_builtin_engines' is invalid in C99
     [-Wimplicit-function-declaration]
     ENGINE_load_builtin_engines();
 src/common/crypto.c:340:7: warning: implicit declaration of function
     'ENGINE_register_all_complete' is invalid in C99
     [-Wimplicit-function-declaration]
     ENGINE_register_all_complete();
 src/common/crypto.c:350:13: warning: incompatible integer to pointer
 conversion
     assigning to 'ENGINE *' (aka 'struct engine_st *') from 'int'
     [-Wint-conversion]
         e = ENGINE_by_id(accelName);
             ~
 src/common/crypto.c:363:9: warning: implicit declaration of function
     'ENGINE_set_default' is invalid in C99 [-Wimplicit-function-
 declaration]
         ENGINE_set_default(e, ENGINE_METHOD_ALL);
 src/common/crypto.c:363:31: error: use of undeclared identifier
     'ENGINE_METHOD_ALL'
         ENGINE_set_default(e, ENGINE_METHOD_ALL);
 src/common/crypto.c:367:25: warning: implicit declaration of function
     'ENGINE_get_default_RSA' is invalid in C99
     [-Wimplicit-function-declaration]
     log_engine("RSA", ENGINE_get_default_RSA());
 src/common/crypto.c:368:24: warning: implicit declaration of function
     'ENGINE_get_default_DH' is invalid in C99
     [-Wimplicit-function-declaration]
     log_engine("DH", ENGINE_get_default_DH());
 src/common/crypto.c:369:26: warning: implicit declaration of function
     'ENGINE_get_default_ECDH' is invalid in C99
     [-Wimplicit-function-declaration]
     log_engine("ECDH", ENGINE_get_default_ECDH());
 src/common/crypto.c:370:27: warning: implicit declaration of function
     'ENGINE_get_default_ECDSA' is invalid in C99
     [-Wimplicit-function-declaration]
     log_engine("ECDSA", ENGINE_get_default_ECDSA());
 src/common/crypto.c:371:26: warning: implicit declaration of function
     'ENGINE_get_default_RAND' is invalid in C99
     [-Wimplicit-function-declaration]
     log_engine("RAND", ENGINE_get_default_RAND());
 src/common/crypto.c:373:26: warning: implicit declaration of function
     'ENGINE_get_digest_engine' is invalid in C99
     [-Wimplicit-function-declaration]
     log_engine("SHA1", ENGINE_get_digest_engine(NID_sha1));
 src/common/crypto.c:374:30: warning: implicit declaration of function
     'ENGINE_get_cipher_engine' is invalid in C99
     [-Wimplicit-function-declaration]
     log_engine("3DES-CBC", ENGINE_get_cipher_engine(NID_des_ede3_cbc));
 src/common/crypto.c:408:3: warning: implicit declaration of function
     'ERR_remove_state' is invalid in C99 [-Wimplicit-function-declaration]
     ERR_remove_state(0);
 src/common/crypto.c:691:25: error: incomplete definition of type
     'struct buf_mem_st'
     *dest = tor_malloc(buf->length+1);
         ~
 ./src/common/util.h:116:44: note: expanded from macro 'tor_malloc'
 #define tor_malloc(size) tor_malloc_(size DMALLOC_ARGS)
 /test/tor/boringssl-install/include/openssl/base.h:170:16: note: forward
     declaration of 'struct buf_mem_st'
 typedef struct buf_mem_st BUF_MEM;
 src/common/crypto.c:692:20: error: incomplete definition of type
     'struct buf_mem_st'
     memcpy(*dest, buf->data, buf->length);
         ~
 /usr/include/secure/_string.h:65:33: note: expanded from macro 'memcpy'
     builtin_memcpy_chk (dest, src, len, darwin_obsz0 (dest))
 /test/tor/boringssl-install/include/openssl/base.h:170:16: note: forward
     declaration of 'struct buf_mem_st'
 typedef struct buf_mem_st BUF_MEM;
 src/common/crypto.c:692:31: error: incomplete definition of type
     'struct buf_mem_st'
     memcpy(*dest, buf->data, buf->length);
         ~
 /usr/include/secure/_string.h:65:38: note: expanded from macro 'memcpy'
     builtin_memcpy_chk (dest, src, len, darwin_obsz0 (dest))
 /test/tor/boringssl-install/include/openssl/base.h:170:16: note: forward
     declaration of 'struct buf_mem_st'
 typedef struct buf_mem_st BUF_MEM;
 src/common/crypto.c:693:14: error: incomplete definition of type
     'struct buf_mem_st'
     (*dest)[buf->length] = 0; /* nul terminate it */
         ~
 /test/tor/boringssl-install/include/openssl/base.h:170:16: note: forward
     declaration of 'struct buf_mem_st'
 typedef struct buf_mem_st BUF_MEM;
 src/common/crypto.c:694:13: error: incomplete definition of type
     'struct buf_mem_st'
     *len = buf->length;
         ~
 /test/tor/boringssl-install/include/openssl/base.h:170:16: note: forward
     declaration of 'struct buf_mem_st'
 typedef struct buf_mem_st BUF_MEM;
 src/common/crypto.c:695:3: warning: implicit declaration of function
     'BUF_MEM_free' is invalid in C99 [-Wimplicit-function-declaration]
     BUF_MEM_free(buf);
 src/common/crypto.c:1783:19: warning: implicit declaration of function
     'DH_generate_parameters' is invalid in C99
     [-Wimplicit-function-declaration]
     dh_parameters = DH_generate_parameters(DH_BYTES*8, DH_GENERATOR, NULL,
 NULL);
 src/common/crypto.c:2118:12: error: no member named 'length' in 'struct
 dh_st'
     res->dh->length = DH_PRIVATE_KEY_BITS;
     ~
 src/common/crypto.c:3046:2: error: OpenSSL has been built without thread
     support. Tor requires an OpenSSL library with thread support enabled.
 #error OpenSSL has been built without thread support. Tor requires an \
 src/common/crypto.c:3149:3: warning: implicit declaration of function
     'ENGINE_cleanup' is invalid in C99 [-Wimplicit-function-declaration]
     ENGINE_cleanup();
 src/common/crypto.c:3152:3: warning: implicit declaration of function
     'CONF_modules_unload' is invalid in C99 [-Wimplicit-function-
 declaration]
     CONF_modules_unload(1);
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/13815>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
_______________________________________________
tor-bugs mailing list
tor-bugs@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs