Nick Mathewson
f8d5fb42a3
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-09-12 17:24:41 -04:00
cypherpunks
03c4d0ab9c
rust/protover: fix check for overlapping ranges
...
Closes ticket 27649. Bugfix on e6625113c9
.
2018-09-12 02:47:59 +00:00
cypherpunks
b88a2f28ae
rust/protover: remove version zero from tests
...
This isn't legal according to dir-spec.txt.
We can write separate tests for it if the spec
is changed to make it legal.
2018-09-12 02:47:59 +00:00
Nick Mathewson
0db5c54957
Merge branch 'nss_squashed' into nss_merge
2018-09-04 20:21:07 -04:00
Nick Mathewson
bf5704051c
Merge remote-tracking branch 'teor/travis-osx-master'
2018-08-21 20:04:13 -04:00
Nick Mathewson
aac1e17f22
Merge remote-tracking branch 'teor/travis-osx-034' into maint-0.3.4
2018-08-21 20:04:03 -04:00
Nick Mathewson
f0633bc491
Merge remote-tracking branch 'teor/travis-osx-033' into maint-0.3.3
2018-08-21 20:03:56 -04:00
Nick Mathewson
700f5bcc43
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-08-17 09:38:26 -04:00
Nick Mathewson
e0b8c53f56
Merge branch 'maint-0.3.4'
2018-08-17 09:38:26 -04:00
Nick Mathewson
87aacbfbba
Merge remote-tracking branch 'onionk/rust-protospace' into maint-0.3.3
2018-08-17 09:38:08 -04:00
cypherpunks
7b7dd9ae1c
rust/protover: don't accept whitespace in ProtoSet::from_str()
...
It's impossible for spaces to get here, since spaces are used as
separators between individual protocol entries higher up.
And it shouldn't ignore whitespace that isn't a literal space
character, because that would differ from the C implementation.
These were added in 9925d2e687
.
Fixes #27177 . Bugfix on 0.3.3.5-rc.
2018-08-17 13:34:03 +00:00
Nick Mathewson
ac721bd3b4
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-08-17 09:29:46 -04:00
Nick Mathewson
bedc0b0b8f
Merge branch 'maint-0.3.4'
2018-08-17 09:29:46 -04:00
cypherpunks
cc93f175ed
rust/protover: fix hyphen parsing bug in ProtoSet::from_str()
...
It was parsing "1-2-3" as if it were 1-2, ignoring the 2nd hyphen
and everything after.
Introduced in d1820c1516
.
Fixes #27164 ; bugfix on 0.3.3.1-alpha.
2018-08-17 13:27:24 +00:00
cypherpunks
fc7fed6155
rust/protover: fix docs for UnvalidatedProtoEntry::from_str
...
This got shuffled around in b786b146ed
and hasn't been accurate since 124caf28e6
.
2018-08-17 02:38:23 +00:00
cypherpunks
e65a4fa42c
rust/protover: fix parsing docs
...
The function takes an already validated utf-8 string, and
it never checks if the version numbers are an empty string.
That parse error happens later.
Fix on 701c2b69f5
2018-08-17 02:38:23 +00:00
cypherpunks
7bb658a633
rust/protover: fix ProtoEntry::from_str docs
...
Texxt was copied from a function that returned a single
tuple in 88b2f170e4
.
2018-08-17 02:38:23 +00:00
cypherpunks
6b609ce435
rust: run rustfmt
2018-08-16 08:42:57 -04:00
cypherpunks
ceac10fc3d
rust: max_width=100, other rustfmt settings. #27071
...
These are the 12 stable and documented configuration options,
set to their default values.
use_small_heuristics is only stabilized in rustfmt 0.9, so maintain
support for 0.8.x for now by commenting it out.
comment_width is unstable and did nothing, since wrap_comments defaults
to false.
Default values gotten from `rustfmt --print-config default rustfmt.toml`.
e7932fa9c2/Configurations.md
2018-08-16 08:42:57 -04:00
cypherpunks
fef2ba2267
rust/docs: fix critical typo for missing_docs lint
...
Fix typo from fe66d06a45
.
The exclamation point is what lets an attribute apply to
an entire crate, without the ! it's practically a placebo.
Fix on commits af182d4ab5
and
b6059297d7
, and note there are
still missing docs in both crypto and protover, for now.
https://doc.rust-lang.org/reference/attributes.html
2018-08-16 08:42:57 -04:00
teor
ace98493bd
Merge branch 'travis-osx-034' into travis-osx-master
...
Replace master .travis.yml with 034 .travis.yml.
All the changes in master have been backported to the
034 .travis.yml already.
Replace master src/test/test_rust.sh with 034
src/test/test_rust.sh, which was backported from
master. One 033/034-specific commit needs to be
reverted.
2018-08-10 13:28:19 +10:00
teor
6e0be81211
Merge branch 'travis-osx-033' into travis-osx-034
...
Replace 034 .travis.yml with 033 .travis.yml.
Subsequent commits will restore 034 functionality.
Replace 034 src/test/test_rust.sh with 033
src/test/test_rust.sh, which was backported from
master.
2018-08-10 13:15:16 +10:00
teor
0f3fd10ee0
Stop setting $CARGO_HOME in src/rust/tor_rust/include.am
...
cargo will use the user's $CARGO_HOME, or $HOME/.cargo by default.
Fixes bug 26497; bugfix on 0.3.1.5-alpha.
2018-08-10 11:47:36 +10:00
Nick Mathewson
fdaa483098
Merge branch 'nss_dh_squashed' into nss_dh_squashed_merged
2018-07-31 19:56:23 -04:00
Nick Mathewson
99beed152e
Make the rust tests link.
2018-07-31 19:46:00 -04:00
Nick Mathewson
42c02097db
Add two more dependencies in build.rs
2018-07-18 16:20:31 -04:00
Nick Mathewson
0c4c5eeb55
Use the "testing" variant of several C libraries in build.rs
2018-07-18 16:18:25 -04:00
Nick Mathewson
e2261e7727
Merge remote-tracking branch 'isis/bug26398'
2018-07-18 16:12:29 -04:00
Nick Mathewson
f608cc0f31
Merge remote-tracking branch 'tor-github/pr/179'
2018-07-13 18:30:17 -04:00
Nick Mathewson
f720a5a439
Fix everything that previously referred to src/or
2018-07-05 17:15:50 -04:00
Nick Mathewson
4eac5c6ce6
And tell build.rs to stop looking in src/common
2018-07-05 17:15:24 -04:00
Nick Mathewson
c73bb9937d
Fix build.rs to handle removed common.
2018-07-05 17:14:55 -04:00
Nick Mathewson
43dc92441d
Tabify all of the .am files.
2018-07-01 09:37:28 -04:00
Nick Mathewson
028523c801
Merge branch 'maint-0.3.4'
2018-06-30 09:15:39 -04:00
Nick Mathewson
eee86e627b
Extract memarea into its own library
2018-06-28 09:25:18 -04:00
Nick Mathewson
9cf335c9a5
Extract threading code into a new library.
...
Note that the workqueue code does *not* go here: it is logically at
a higher level, since it needs to use libevent and the networking
stack.
2018-06-28 09:14:42 -04:00
Nick Mathewson
235ddb15a0
Move util_format into a new libtor-encoding library
...
libtor-encoding is about various ways to transform data to and from
character sequences.
2018-06-27 16:18:42 -04:00
Alex Xu (Hello71)
614a78ddaa
Fix Rust cross compilation.
2018-06-27 14:42:06 -05:00
Nick Mathewson
2113603718
Merge branch 'sandbox_refactor'
2018-06-27 14:45:14 -04:00
Nick Mathewson
b9b05e437d
Merge branch 'net_refactor'
2018-06-27 12:52:31 -04:00
Nick Mathewson
bee580ddba
Move sandbox code into a new library.
2018-06-27 10:04:17 -04:00
Nick Mathewson
42b3caa6ad
Move network code to libtor-net.
...
There are some additional changes to come: those points are marked
by XXXX.
2018-06-27 09:08:35 -04:00
Nick Mathewson
6e2b6a6685
fixup! Extract core part of smartlist code into its own library.
2018-06-26 12:18:49 -04:00
Corey Farwell
e62582e9fe
Run rustfmt on 'src/rust/protover/ffi.rs'.
2018-06-25 08:03:04 -04:00
Corey Farwell
6d2e4dea10
Utilize type param in method invocation.
2018-06-24 22:45:07 -04:00
Corey Farwell
59d4505749
Utilize if..else
for switching on boolean values.
2018-06-24 22:44:36 -04:00
Corey Farwell
94880b2db7
Utilize if let
construct instead of explicit unwrapping.
2018-06-24 10:16:11 -04:00
Corey Farwell
7e9c37f9cb
Change allocate_and_copy_string
to take a &str
instead of &String
.
2018-06-24 08:58:26 -04:00
Nick Mathewson
b0adf2fc9b
Fix up the rust build script library list.
2018-06-22 12:04:11 -04:00
Nick Mathewson
97b15a1d7c
Extract the locking and logging code
...
The locking code gets its own module, since it's more fundamental
than the higher-level locking code.
Extracting the logging code was the whole point here. :)
2018-06-22 10:31:51 -04:00
Nick Mathewson
2cf033f238
Extract simple integer math into its own module
2018-06-22 09:49:13 -04:00
Nick Mathewson
3883338c81
Move smartlist_add_{v,}asprintf into smartlist.[ch]
...
Now that I know that "strings" nests below "container", I know this
is safe.
2018-06-22 09:49:13 -04:00
Nick Mathewson
77dff00b18
Refactor container into a library.
2018-06-22 09:49:13 -04:00
Nick Mathewson
e066966bf4
Extract tor_malloc and friends to a new module.
2018-06-21 15:20:01 -04:00
Nick Mathewson
25ccfff86a
Split crypto and tls libraries into directories
...
I am calling the crypto library "crypt_ops", since I want
higher-level crypto things to be separated from lower-level ones.
This library will hold only the low-level ones, once we have it
refactored.
2018-06-21 13:14:14 -04:00
Nick Mathewson
a403ee6bb3
Move consttime library code into its own directory.
2018-06-21 11:03:39 -04:00
Nick Mathewson
2cfcb7b364
Extract error functionality into a new lowest-level library.
2018-06-21 10:47:11 -04:00
Nick Mathewson
72a5ae8c66
Merge branch 'maint-0.3.4'
2018-06-21 08:38:21 -04:00
Nick Mathewson
01d0bf1803
add build.rs to EXTRA_DIST
2018-06-20 19:32:01 -04:00
Nick Mathewson
3a64052099
Fix memory leak in CryptoDigest type
...
If you're owning a C pointer, you need to implement Drop.
2018-06-20 17:28:28 -04:00
Nick Mathewson
592e8ac395
Disable doctests in src/rust/crypto module.
...
These all need C linking to work, and so far, rustdoc does not seem
to respect cargo setting about build scripts or RUSTOPTIONS.
2018-06-20 17:16:44 -04:00
Nick Mathewson
901ada7e5f
Fix bugs in rust digest tests
2018-06-20 17:08:00 -04:00
Nick Mathewson
e99ecf9399
Merge branch 'rust_build_script_v3' into additional_rust_test_fixes
2018-06-20 17:07:47 -04:00
Nick Mathewson
fb0019daf9
Update copyrights to 2018.
2018-06-20 08:13:28 -04:00
Isis Lovecruft
4971d7afa6
rust: Remove redundant "testing" feature from tor_log crate.
...
It was synonymous with the builtin "test" feature.
* FIXES #26399 : https://bugs.torproject.org/26399
2018-06-20 07:55:12 -04:00
Taylor Yu
bfd36177c4
Fix compilation of Rust crypto doctests
...
The doctests for src/rust/crypto don't compile for multiple reasons,
including some missing exports and incorrect identifier paths. Fixes
bug 26415; bugfix on 0.3.4.1-alpha.
2018-06-19 13:53:26 -05:00
Nick Mathewson
bd9ebb3763
Use a rust build script to set linker options correctly for tests.
...
We need this trick because some of our Rust tests depend on our C
code, which in turn depend on other native libraries, which thereby
pulls a whole mess of our build system into "cargo test".
To solve this, we add a build script (build.rs) to set most of the
options that we want based on the contents of config.rust. Some
options can't be set, and need to go to the linker directly: we use
a linker replacement (link_rust.sh) for these. Both config.rust and
link_rust.sh are generated by autoconf for us.
This patch on its own should enough to make the crypto test build,
but not necessarily enough to make it pass.
2018-06-19 12:01:13 -04:00
Nick Mathewson
5879909826
Revert "Remove duplicate MODULE_DIRAUTH_SOURCES from libtor_testing.a"
...
This reverts commit 70d91bd059
.
2018-06-18 17:06:18 -04:00
Nick Mathewson
70d91bd059
Remove duplicate MODULE_DIRAUTH_SOURCES from libtor_testing.a
...
This was already added to LIBTOR_A_SOURCES; it doesn't need to get
added again.
Fixes bug 26402. Bugfix on 0.3.4.1-alpha.
2018-06-18 17:03:52 -04:00
Isis Lovecruft
508332feaf
rust: Add "test-c-from-rust" feature-gate.
...
Due to linker issues (#25386 ) when testing Rust code which calls C,
all tests which touch FFI code should now be feature-gated behind the
"test-c-from-rust" flag. To run this test code, cargo must be called
with `cargo test --features="test-c-from-rust"`.
* FIXES #26398 : https://bugs.torproject.org/26398
2018-06-18 18:57:38 +00:00
Nick Mathewson
e6aa2d526e
Changes to make the rust crypto::mod tests compile
...
The digest tests don't link yet, though.
2018-06-16 13:22:44 -04:00
Nick Mathewson
71ddfbaadd
Merge remote-tracking branch 'isis/bug26267' into maint-0.3.4
2018-06-16 12:43:28 -04:00
Nick Mathewson
530d67410f
Merge remote-tracking branch 'isis/bug26245' into maint-0.3.4
2018-06-16 10:19:26 -04:00
Isis Lovecruft
748a0c7d0b
rust: Remove unused N_DIGEST_ALGORITHMS constant from crypto_digest.rs.
...
In the C code, this constant is only ever used in src/test/bench.c.
* FIXES part of #26245 : https://bugs.torproject.org/26245
2018-06-15 23:22:43 +00:00
Isis Lovecruft
d5a9b77a28
rust: Add comment and pragma on "unused" smartlist_t type.
...
* FIXES part of #26245 : https://bugs.torproject.org/26245
2018-06-15 22:49:39 +00:00
Taylor Yu
468bf58fa2
Make Rust warnings conditionally fatal
...
Set rustc flags to treat warnings as fatal if configured with
--enable-warnings.
2018-06-15 17:27:19 -05:00
Isis Lovecruft
ac5b1428ea
rust: Expose rand module from crypto crate.
2018-06-15 21:44:22 +00:00
Taylor Yu
9dd45456fe
Set default-features = false for rand_core
...
Apparently rand and rand_core need to be built with the "std" feature
set consistently, or there will be a compile error in rngs/jitter.rs.
2018-06-15 15:19:16 -05:00
Nick Mathewson
cde5c9d0c3
Merge branch 'maint-0.3.3'
2018-05-22 13:35:33 -04:00
Nick Mathewson
a5d4ce2b39
Make the TROVE-2018-005 fix work with rust.
2018-05-22 13:35:20 -04:00
Isis Lovecruft
701c2b69f5
rust: Mirror TROVE-2018-005 fix in Rust protover implementation.
...
* REFACTORS `UnvalidatedProtoEntry::from_str` to place the bulk of the
splitting/parsing logic in to a new
`UnvalidatedProtoEntry::parse_protocol_and_version_str()` method (so that
both `from_str()` and `from_str_any_len()` can call it.)
* ADD a new `UnvalidatedProtoEntry::from_str_any_len()` method in order to
maintain compatibility with consensus methods older than 29.
* ADD a limit on the number of characters in a protocol name.
* FIXES part of #25517 : https://bugs.torproject.org/25517
2018-05-22 12:28:33 -04:00
Isis Lovecruft
569b4e57e2
rust: Mirror TROVE-2018-005 fix in Rust protover implementation.
...
* REFACTORS `UnvalidatedProtoEntry::from_str` to place the bulk of the
splitting/parsing logic in to a new
`UnvalidatedProtoEntry::parse_protocol_and_version_str()` method (so that
both `from_str()` and `from_str_any_len()` can call it.)
* ADD a new `UnvalidatedProtoEntry::from_str_any_len()` method in order to
maintain compatibility with consensus methods older than 29.
* ADD a limit on the number of characters in a protocol name.
* FIXES part of #25517 : https://bugs.torproject.org/25517
2018-05-22 12:27:25 -04:00
Nick Mathewson
1442e818b6
Merge remote-tracking branch 'isis-github/bug26106'
2018-05-16 09:16:04 -04:00
Nick Mathewson
e5974e5158
Merge remote-tracking branch 'isis-github/bug26108'
2018-05-16 09:14:13 -04:00
Isis Lovecruft
4d349c6a61
rust: Update rand_core dependency to 0.2.0-pre.0.
2018-05-15 19:33:20 +00:00
Isis Lovecruft
760cf8e28f
rust: Update rand dev-dependency to 0.5.0-pre.2.
2018-05-15 19:31:29 +00:00
Isis Lovecruft
4c21d41407
rust: Export digests subcrate from our crypto crate.
2018-05-15 18:05:52 +00:00
Isis Lovecruft
d9c877a6e5
rust: Export crypto_rand::* functions from our external crate.
2018-05-15 18:03:18 +00:00
Isis Lovecruft
9988882c63
rust: Move rand crate into crypto parent crate.
2018-05-15 17:48:57 +00:00
Isis Lovecruft
2ac849da36
rust: Make Rng::new() methods public.
2018-05-15 17:45:09 +00:00
Isis Lovecruft
af182d4ab5
rust: Add crypto crate and implement Rust wrappers for SHA2 code.
...
* FIXES #24659 : https://bugs.torproject.org/24659
2018-05-08 21:03:37 +00:00
Isis Lovecruft
f36656cada
build: Fix missing include for src/rust/external/crypto_rand.rs file.
...
* FIXES #26025 : https://bugs.torproject.org/26025
2018-05-04 22:23:17 +00:00
Isis Lovecruft
f1864ff4a1
rust: Update Cargo.lock file with changes from #26024 .
2018-05-04 20:41:25 +00:00
Isis Lovecruft
b5bd19ea05
Update rand dependency from 0.5.0-pre.0 to 0.5.0-pre.1.
2018-05-04 19:16:42 +00:00
Nick Mathewson
6f8b961a65
I should have tested before I pushed.
2018-05-03 20:16:53 -04:00
Nick Mathewson
2f269bfaf1
Add src/rust/rand to include.am
2018-05-03 16:16:09 -04:00
Nick Mathewson
c3b7258370
Merge remote-tracking branch 'isis/bug24660_r1'
2018-05-03 13:50:18 -04:00
Isis Lovecruft
94dcd38a14
rust: Expose crypto_rand() as an impl of rand_core::RngCore.
2018-05-02 22:12:38 +00:00
Isis Lovecruft
b5013e841c
rust: Remove mirrored PRNG implementation.
...
Once we need a PRNG, we'll likely want to change the dev-dependency on the rand
crate to be a real dependency, and use rand::SmallRng as our PRNG.
2018-04-20 23:54:48 +00:00
Isis Lovecruft
49639b2826
rust: Expose our (P)RNGs in Rust and provide safe wrappers.
...
* FIXES #24660 : https://bugs.torproject.org/24660
2018-04-20 23:54:47 +00:00