Loading changes/bug16943 0 → 100644 +8 −0 Original line number Diff line number Diff line o Major features (dirauths, security, hidden services): - Directory authorities can now perform the shared randomness protocol specified by proposal 250. Using this protocol, directory authorities can generate a global fresh random number every day. In the future, this global randomness will be used by hidden services to select their responsible HSDirs. This release only implements the directory authority feature; the hidden service side will be implemented in the future as part of proposal 224 . Resolves ticket #16943 and proposal 250. doc/tor.1.txt +6 −0 Original line number Diff line number Diff line Loading @@ -2239,6 +2239,12 @@ on the public Tor network. in a journal if it is new, or if it differs from the most recently accepted pinning for one of the keys it contains. (Default: 0) [[AuthDirSharedRandomness]] **AuthDirSharedRandomness** **0**|**1**:: Authoritative directories only. Switch for the shared random protocol. If zero, the authority won't participate in the protocol. If non-zero (default), the flag "shared-rand-participate" is added to the authority vote indicating participation in the protocol. (Default: 1) [[BridgePassword]] **BridgePassword** __Password__:: If set, contains an HTTP authenticator that tells a bridge authority to serve all requested bridge information. Used by the (only partially Loading src/common/util.c +21 −0 Original line number Diff line number Diff line Loading @@ -5687,3 +5687,24 @@ clamp_double_to_int64(double number) return signbit(number) ? INT64_MIN : INT64_MAX; } /** Return a uint64_t value from <b>a</b> in network byte order. */ uint64_t tor_htonll(uint64_t a) { #ifdef WORDS_BIGENDIAN /* Big endian. */ return a; #else /* WORDS_BIGENDIAN */ /* Little endian. The worst... */ return htonl((uint32_t)(a>>32)) | (((uint64_t)htonl((uint32_t)a))<<32); #endif /* WORDS_BIGENDIAN */ } /** Return a uint64_t value from <b>a</b> in host byte order. */ uint64_t tor_ntohll(uint64_t a) { return tor_htonll(a); } src/common/util.h +2 −0 Original line number Diff line number Diff line Loading @@ -61,6 +61,8 @@ void *tor_memdup_(const void *mem, size_t len DMALLOC_PARAMS) void *tor_memdup_nulterm_(const void *mem, size_t len DMALLOC_PARAMS) ATTR_MALLOC ATTR_NONNULL((1)); void tor_free_(void *mem); uint64_t tor_htonll(uint64_t a); uint64_t tor_ntohll(uint64_t a); #ifdef USE_DMALLOC extern int dmalloc_free(const char *file, const int line, void *pnt, const int func_id); Loading src/or/config.c +1 −0 Original line number Diff line number Diff line Loading @@ -440,6 +440,7 @@ static config_var_t option_vars_[] = { V(UseNTorHandshake, AUTOBOOL, "1"), V(User, STRING, NULL), V(UserspaceIOCPBuffers, BOOL, "0"), V(AuthDirSharedRandomness, BOOL, "1"), OBSOLETE("V1AuthoritativeDirectory"), OBSOLETE("V2AuthoritativeDirectory"), VAR("V3AuthoritativeDirectory",BOOL, V3AuthoritativeDir, "0"), Loading Loading
changes/bug16943 0 → 100644 +8 −0 Original line number Diff line number Diff line o Major features (dirauths, security, hidden services): - Directory authorities can now perform the shared randomness protocol specified by proposal 250. Using this protocol, directory authorities can generate a global fresh random number every day. In the future, this global randomness will be used by hidden services to select their responsible HSDirs. This release only implements the directory authority feature; the hidden service side will be implemented in the future as part of proposal 224 . Resolves ticket #16943 and proposal 250.
doc/tor.1.txt +6 −0 Original line number Diff line number Diff line Loading @@ -2239,6 +2239,12 @@ on the public Tor network. in a journal if it is new, or if it differs from the most recently accepted pinning for one of the keys it contains. (Default: 0) [[AuthDirSharedRandomness]] **AuthDirSharedRandomness** **0**|**1**:: Authoritative directories only. Switch for the shared random protocol. If zero, the authority won't participate in the protocol. If non-zero (default), the flag "shared-rand-participate" is added to the authority vote indicating participation in the protocol. (Default: 1) [[BridgePassword]] **BridgePassword** __Password__:: If set, contains an HTTP authenticator that tells a bridge authority to serve all requested bridge information. Used by the (only partially Loading
src/common/util.c +21 −0 Original line number Diff line number Diff line Loading @@ -5687,3 +5687,24 @@ clamp_double_to_int64(double number) return signbit(number) ? INT64_MIN : INT64_MAX; } /** Return a uint64_t value from <b>a</b> in network byte order. */ uint64_t tor_htonll(uint64_t a) { #ifdef WORDS_BIGENDIAN /* Big endian. */ return a; #else /* WORDS_BIGENDIAN */ /* Little endian. The worst... */ return htonl((uint32_t)(a>>32)) | (((uint64_t)htonl((uint32_t)a))<<32); #endif /* WORDS_BIGENDIAN */ } /** Return a uint64_t value from <b>a</b> in host byte order. */ uint64_t tor_ntohll(uint64_t a) { return tor_htonll(a); }
src/common/util.h +2 −0 Original line number Diff line number Diff line Loading @@ -61,6 +61,8 @@ void *tor_memdup_(const void *mem, size_t len DMALLOC_PARAMS) void *tor_memdup_nulterm_(const void *mem, size_t len DMALLOC_PARAMS) ATTR_MALLOC ATTR_NONNULL((1)); void tor_free_(void *mem); uint64_t tor_htonll(uint64_t a); uint64_t tor_ntohll(uint64_t a); #ifdef USE_DMALLOC extern int dmalloc_free(const char *file, const int line, void *pnt, const int func_id); Loading
src/or/config.c +1 −0 Original line number Diff line number Diff line Loading @@ -440,6 +440,7 @@ static config_var_t option_vars_[] = { V(UseNTorHandshake, AUTOBOOL, "1"), V(User, STRING, NULL), V(UserspaceIOCPBuffers, BOOL, "0"), V(AuthDirSharedRandomness, BOOL, "1"), OBSOLETE("V1AuthoritativeDirectory"), OBSOLETE("V2AuthoritativeDirectory"), VAR("V3AuthoritativeDirectory",BOOL, V3AuthoritativeDir, "0"), Loading