Loading .gitignore +2 −0 Original line number Diff line number Diff line Loading @@ -205,6 +205,8 @@ uptime-*.json /src/lib/libtor-string-testing.a /src/lib/libtor-smartlist-core.a /src/lib/libtor-smartlist-core-testing.a /src/lib/libtor-term.a /src/lib/libtor-term-testing.a /src/lib/libtor-thread.a /src/lib/libtor-thread-testing.a /src/lib/libtor-time.a Loading Makefile.am +2 −0 Original line number Diff line number Diff line Loading @@ -56,6 +56,7 @@ TOR_UTIL_LIBS = \ src/lib/libtor-lock.a \ src/lib/libtor-fdio.a \ src/lib/libtor-string.a \ src/lib/libtor-term.a \ src/lib/libtor-smartlist-core.a \ src/lib/libtor-malloc.a \ src/lib/libtor-wallclock.a \ Loading @@ -79,6 +80,7 @@ TOR_UTIL_TESTING_LIBS = \ src/lib/libtor-math-testing.a \ src/lib/libtor-meminfo-testing.a \ src/lib/libtor-osinfo-testing.a \ src/lib/libtor-term-testing.a \ src/lib/libtor-log-testing.a \ src/lib/libtor-lock-testing.a \ src/lib/libtor-fdio-testing.a \ Loading src/common/compat.c +0 −102 Original line number Diff line number Diff line Loading @@ -67,31 +67,6 @@ #include <sys/capability.h> #endif #ifdef _WIN32 #include <conio.h> #include <wchar.h> /* Some mingw headers lack these. :p */ #if defined(HAVE_DECL__GETWCH) && !HAVE_DECL__GETWCH wint_t _getwch(void); #endif #ifndef WEOF #define WEOF (wchar_t)(0xFFFF) #endif #if defined(HAVE_DECL_SECUREZEROMEMORY) && !HAVE_DECL_SECUREZEROMEMORY static inline void SecureZeroMemory(PVOID ptr, SIZE_T cnt) { volatile char *vcptr = (volatile char*)ptr; while (cnt--) *vcptr++ = 0; } #endif /* defined(HAVE_DECL_SECUREZEROMEMORY) && !HAVE_DECL_SECUREZEROMEMORY */ #elif defined(HAVE_READPASSPHRASE_H) #include <readpassphrase.h> #else #include "tor_readpassphrase.h" #endif /* defined(_WIN32) || ... */ /* Includes for the process attaching prevention */ #if defined(HAVE_SYS_PRCTL_H) && defined(__linux__) /* Only use the linux prctl; the IRIX prctl is totally different */ Loading Loading @@ -131,80 +106,3 @@ SecureZeroMemory(PVOID ptr, SIZE_T cnt) /* * Process control */ /** Emit the password prompt <b>prompt</b>, then read up to <b>buflen</b> * bytes of passphrase into <b>output</b>. Return the number of bytes in * the passphrase, excluding terminating NUL. */ ssize_t tor_getpass(const char *prompt, char *output, size_t buflen) { tor_assert(buflen <= SSIZE_MAX); tor_assert(buflen >= 1); #if defined(HAVE_READPASSPHRASE) char *pwd = readpassphrase(prompt, output, buflen, RPP_ECHO_OFF); if (pwd == NULL) return -1; return strlen(pwd); #elif defined(_WIN32) int r = -1; while (*prompt) { _putch(*prompt++); } tor_assert(buflen <= INT_MAX); wchar_t *buf = tor_calloc(buflen, sizeof(wchar_t)); wchar_t *ptr = buf, *lastch = buf + buflen - 1; while (ptr < lastch) { wint_t ch = _getwch(); switch (ch) { case '\r': case '\n': case WEOF: goto done_reading; case 3: goto done; /* Can't actually read ctrl-c this way. */ case '\b': if (ptr > buf) --ptr; continue; case 0: case 0xe0: ch = _getwch(); /* Ignore; this is a function or arrow key */ break; default: *ptr++ = ch; break; } } done_reading: ; #ifndef WC_ERR_INVALID_CHARS #define WC_ERR_INVALID_CHARS 0x80 #endif /* Now convert it to UTF-8 */ r = WideCharToMultiByte(CP_UTF8, WC_NO_BEST_FIT_CHARS|WC_ERR_INVALID_CHARS, buf, (int)(ptr-buf), output, (int)(buflen-1), NULL, NULL); if (r <= 0) { r = -1; goto done; } tor_assert(r < (int)buflen); output[r] = 0; done: SecureZeroMemory(buf, sizeof(wchar_t)*buflen); tor_free(buf); return r; #else #error "No implementation for tor_getpass found!" #endif /* defined(HAVE_READPASSPHRASE) || ... */ } src/common/compat.h +0 −2 Original line number Diff line number Diff line Loading @@ -86,8 +86,6 @@ typedef enum { /* ===== OS compatibility */ ssize_t tor_getpass(const char *prompt, char *output, size_t buflen); /* This needs some of the declarations above so we include it here. */ #include "lib/thread/threads.h" Loading src/common/include.am +1 −8 Original line number Diff line number Diff line Loading @@ -17,20 +17,13 @@ else libor_extra_source= endif if BUILD_READPASSPHRASE_C readpassphrase_source=src/ext/readpassphrase.c else readpassphrase_source= endif LIBOR_A_SRC = \ src/common/address_set.c \ src/common/compat.c \ src/common/util.c \ src/common/token_bucket.c \ src/common/workqueue.c \ $(libor_extra_source) \ $(readpassphrase_source) $(libor_extra_source) src/common/src_common_libor_testing_a-log.$(OBJEXT) \ src/common/log.$(OBJEXT): micro-revision.i Loading Loading
.gitignore +2 −0 Original line number Diff line number Diff line Loading @@ -205,6 +205,8 @@ uptime-*.json /src/lib/libtor-string-testing.a /src/lib/libtor-smartlist-core.a /src/lib/libtor-smartlist-core-testing.a /src/lib/libtor-term.a /src/lib/libtor-term-testing.a /src/lib/libtor-thread.a /src/lib/libtor-thread-testing.a /src/lib/libtor-time.a Loading
Makefile.am +2 −0 Original line number Diff line number Diff line Loading @@ -56,6 +56,7 @@ TOR_UTIL_LIBS = \ src/lib/libtor-lock.a \ src/lib/libtor-fdio.a \ src/lib/libtor-string.a \ src/lib/libtor-term.a \ src/lib/libtor-smartlist-core.a \ src/lib/libtor-malloc.a \ src/lib/libtor-wallclock.a \ Loading @@ -79,6 +80,7 @@ TOR_UTIL_TESTING_LIBS = \ src/lib/libtor-math-testing.a \ src/lib/libtor-meminfo-testing.a \ src/lib/libtor-osinfo-testing.a \ src/lib/libtor-term-testing.a \ src/lib/libtor-log-testing.a \ src/lib/libtor-lock-testing.a \ src/lib/libtor-fdio-testing.a \ Loading
src/common/compat.c +0 −102 Original line number Diff line number Diff line Loading @@ -67,31 +67,6 @@ #include <sys/capability.h> #endif #ifdef _WIN32 #include <conio.h> #include <wchar.h> /* Some mingw headers lack these. :p */ #if defined(HAVE_DECL__GETWCH) && !HAVE_DECL__GETWCH wint_t _getwch(void); #endif #ifndef WEOF #define WEOF (wchar_t)(0xFFFF) #endif #if defined(HAVE_DECL_SECUREZEROMEMORY) && !HAVE_DECL_SECUREZEROMEMORY static inline void SecureZeroMemory(PVOID ptr, SIZE_T cnt) { volatile char *vcptr = (volatile char*)ptr; while (cnt--) *vcptr++ = 0; } #endif /* defined(HAVE_DECL_SECUREZEROMEMORY) && !HAVE_DECL_SECUREZEROMEMORY */ #elif defined(HAVE_READPASSPHRASE_H) #include <readpassphrase.h> #else #include "tor_readpassphrase.h" #endif /* defined(_WIN32) || ... */ /* Includes for the process attaching prevention */ #if defined(HAVE_SYS_PRCTL_H) && defined(__linux__) /* Only use the linux prctl; the IRIX prctl is totally different */ Loading Loading @@ -131,80 +106,3 @@ SecureZeroMemory(PVOID ptr, SIZE_T cnt) /* * Process control */ /** Emit the password prompt <b>prompt</b>, then read up to <b>buflen</b> * bytes of passphrase into <b>output</b>. Return the number of bytes in * the passphrase, excluding terminating NUL. */ ssize_t tor_getpass(const char *prompt, char *output, size_t buflen) { tor_assert(buflen <= SSIZE_MAX); tor_assert(buflen >= 1); #if defined(HAVE_READPASSPHRASE) char *pwd = readpassphrase(prompt, output, buflen, RPP_ECHO_OFF); if (pwd == NULL) return -1; return strlen(pwd); #elif defined(_WIN32) int r = -1; while (*prompt) { _putch(*prompt++); } tor_assert(buflen <= INT_MAX); wchar_t *buf = tor_calloc(buflen, sizeof(wchar_t)); wchar_t *ptr = buf, *lastch = buf + buflen - 1; while (ptr < lastch) { wint_t ch = _getwch(); switch (ch) { case '\r': case '\n': case WEOF: goto done_reading; case 3: goto done; /* Can't actually read ctrl-c this way. */ case '\b': if (ptr > buf) --ptr; continue; case 0: case 0xe0: ch = _getwch(); /* Ignore; this is a function or arrow key */ break; default: *ptr++ = ch; break; } } done_reading: ; #ifndef WC_ERR_INVALID_CHARS #define WC_ERR_INVALID_CHARS 0x80 #endif /* Now convert it to UTF-8 */ r = WideCharToMultiByte(CP_UTF8, WC_NO_BEST_FIT_CHARS|WC_ERR_INVALID_CHARS, buf, (int)(ptr-buf), output, (int)(buflen-1), NULL, NULL); if (r <= 0) { r = -1; goto done; } tor_assert(r < (int)buflen); output[r] = 0; done: SecureZeroMemory(buf, sizeof(wchar_t)*buflen); tor_free(buf); return r; #else #error "No implementation for tor_getpass found!" #endif /* defined(HAVE_READPASSPHRASE) || ... */ }
src/common/compat.h +0 −2 Original line number Diff line number Diff line Loading @@ -86,8 +86,6 @@ typedef enum { /* ===== OS compatibility */ ssize_t tor_getpass(const char *prompt, char *output, size_t buflen); /* This needs some of the declarations above so we include it here. */ #include "lib/thread/threads.h" Loading
src/common/include.am +1 −8 Original line number Diff line number Diff line Loading @@ -17,20 +17,13 @@ else libor_extra_source= endif if BUILD_READPASSPHRASE_C readpassphrase_source=src/ext/readpassphrase.c else readpassphrase_source= endif LIBOR_A_SRC = \ src/common/address_set.c \ src/common/compat.c \ src/common/util.c \ src/common/token_bucket.c \ src/common/workqueue.c \ $(libor_extra_source) \ $(readpassphrase_source) $(libor_extra_source) src/common/src_common_libor_testing_a-log.$(OBJEXT) \ src/common/log.$(OBJEXT): micro-revision.i Loading