summaryrefslogtreecommitdiff
path: root/src/test
AgeCommit message (Collapse)Author
2015-05-28Merge branch '12498_ed25519_keys_v6'Nick Mathewson
Fixed numerous conflicts, and ported code to use new base64 api.
2015-05-28Do not allocate our ed-link crosscert till after tls ctxNick Mathewson
We need this to prevent some annoying chutney crash-at-starts
2015-05-28Generate weird certificates correctlyNick Mathewson
(Our link protocol assumes that the link cert certifies the TLS key, and there is an RSA->Ed25519 crosscert)
2015-05-28# This is a combination of 2 commits.Nick Mathewson
# The first commit's message is: Regenerate ed25519 keys when they will expire soon. Also, have testing-level options to set the lifetimes and expiration-tolerances of all key types, plus a non-testing-level option to set the lifetime of any auto-generated signing key. # The 2nd commit message will be skipped: # fixup! Regenerate ed25519 keys when they will expire soon.
2015-05-28Sign extrainfo documents with ed25519Nick Mathewson
Extrainfo documents are now ed-signed just as are router descriptors, according to proposal 220. This patch also includes some more tests for successful/failing parsing, and fixes a crash bug in ed25519 descriptor parsing.
2015-05-28Revise makedesc.py: teach it how to emit ed signatures and crosscertsNick Mathewson
Also, add a trivial ed25519-signed routerinfo to the tests.
2015-05-28Fix memory leaks in test_link_handshake.cNick Mathewson
2015-05-28Tests for AUTHENTICATE cell functionality.Nick Mathewson
2015-05-28Start testing cell encoders/processers for the v3 handshake.Nick Mathewson
An earlier version of these tests was broken; now they're a nicer, more robust, more black-box set of tests. The key is to have each test check a handshake message that is wrong in _one_ way.
2015-05-28Include ed25519 keys in microdescriptors.Nick Mathewson
2015-05-28Fix the position-check for ed25519 certs to work with annotationsNick Mathewson
When there are annotations on a router descriptor, the ed25519-identity element won't be at position 0 or 1; it will be at router+1 or router-1. This patch also adds a missing smartlist function to search a list for an item with a particular pointer.
2015-05-28Key-pinning back-end for directory authorities.Nick Mathewson
This module implements a key-pinning mechanism to ensure that it's safe to use RSA keys as identitifers even as we migrate to Ed25519 keys. It remembers, for every Ed25519 key we've seen, what the associated Ed25519 key is. This way, if we see a different Ed25519 key with that RSA key, we'll know that there's a mismatch. We persist these entries to disk using a simple format, where each line has a base64-encoded RSA SHA1 hash, then a base64-endoded Ed25519 key. Empty lines, misformed lines, and lines beginning with a # are ignored. Lines beginning with @ are reserved for future extensions.
2015-05-28Implement proposal 228: cross-certification with onion keysNick Mathewson
Routers now use TAP and ntor onion keys to sign their identity keys, and put these signatures in their descriptors. That allows other parties to be confident that the onion keys are indeed controlled by the router that generated the descriptor.
2015-05-28Implement ed25519-signed descriptorsNick Mathewson
Now that we have ed25519 keys, we can sign descriptors with them and check those signatures as documented in proposal 220.
2015-05-28prop220: Implement certificates and key storage/creationNick Mathewson
For prop220, we have a new ed25519 certificate type. This patch implements the code to create, parse, and validate those, along with code for routers to maintain their own sets of certificates and keys. (Some parts of master identity key encryption are done, but the implementation of that isn't finished)
2015-05-21Remove support for OpenSSL without ECC.Yawning Angel
As OpenSSL >= 1.0.0 is now required, ECDHE is now mandatory. The group has to be validated at runtime, because of RedHat lawyers (P224 support is entirely missing in the OpenSSL RPM, but P256 is present and is the default). Resolves ticket #16140.
2015-05-20Merge branch 'bug16034_no_more_openssl_098_squashed'Nick Mathewson
Conflicts: src/test/testing_common.c
2015-05-20Now that OpenSSL 0.9.8 is dead, crypto_seed_rng() needs no argsNick Mathewson
It needed an argument before because it wasn't safe to call RAND_poll() on openssl 0.9.8c if you had already opened more fds than would fit in fd_set.
2015-05-20Remove code to support OpenSSL 0.9.8Nick Mathewson
2015-05-18Fix some compilation warningsNick Mathewson
2015-05-18Merge remote-tracking branch 'dgoulet/bug16021_027_01'Nick Mathewson
2015-05-18Silence two make rulescypherpunks
2015-05-14Test: add unit test for rend_data_t object and functionsDavid Goulet
Closes #16021 Signed-off-by: David Goulet <dgoulet@ev0ke.net>
2015-05-14Test: fix HS_DESC to expect descriptor IDDavid Goulet
With #15881 implemented, this adds the missing descriptor ID at the end of the expected control message. Signed-off-by: David Goulet <dgoulet@ev0ke.net>
2015-05-14Add missing descriptor ID to HS_DESC control eventDavid Goulet
For FAILED and RECEIVED action of the HS_DESC event, we now sends back the descriptor ID at the end like specified in the control-spec section 4.1.25. Fixes #15881 Signed-off-by: David Goulet <dgoulet@ev0ke.net>
2015-05-07Merge branch 'writing_tests'Nick Mathewson
2015-05-07Write the outlines of a WritingTests.txt documentNick Mathewson
Also, add some sample tests to be examples.
2015-05-05Fix a few more memory leaks; not in any released TorNick Mathewson
2015-04-30Add missing newline in memwipe test.cypherpunks
2015-04-28Fix another test failureNick Mathewson
We need the test scripts to become +x *after* they are created.
2015-04-28Add "ADD_ONION"/"DEL_ONION" and "GETINFO onions/*" to the controller.Yawning Angel
These commands allow for the creation and management of ephemeral Onion ("Hidden") services that are either bound to the lifetime of the originating control connection, or optionally the lifetime of the tor instance. Implements #6411.
2015-04-24Mark set-test-permissions as .PHONY; use u+x onlyNick Mathewson
2015-04-24Revert "Add +x to these .in files; see if it helps"Nick Mathewson
This reverts commit ecf98313d673f010b52f8d29c352cd9b8f145734. It didn't help.
2015-04-24Kludge include.am to work with automake <1.12Nick Mathewson
The SH_LOG_COMPILER feature doesn't work with older automakes, and those are still in use in many environments we want to support development on, like Debian Stable. Instead, use autoconf substitution to fill out the shebang lines on the shell scripts, and an intermediate make target to make them executable. This is a bugfix on the patches for #15344. Bug not in any released tor.
2015-04-23Add +x to these .in files; see if it helpsNick Mathewson
2015-04-23Merge remote-tracking branch 'dgoulet/bug14847_027_06'Nick Mathewson
2015-04-23Fix crash-test for assertion failureNick Mathewson
When we made assertions not get compiled in for the coverage case, we missed one case where, for our tests, we really DO want to have an assertion fail: the backtrace test. Bugfix on 1228dd293b60a8eaab03472fa29428c5e2752c44; bug not in any released tor
2015-04-23Integrate backtrace test into the automake test suite.cypherpunks
For this to work bt_test.py now returns an exit code indicating success or failure. Additionally, check-local and its specific dependencies are now obsolete so they are removed.
2015-04-23Integrate ntor test into the automake test suite.cypherpunks
2015-04-23Integrate zero_length_keys test into the automake test suite.cypherpunks
The zero length keys test now requires the path to the Tor binary as the first parameter to ensure the correct Tor binary is used without hard coding a path. The wrapper script calls the zero length keys test for each test separately to ensure the correct shell is used (as configured by autoconf). Another solution would have been to place the tests into separate functions so multiple tests could be run internally. This would have made a diff of considerable size and frankly it is outside the scope of this fix.
2015-04-23Merge remote-tracking branch 'teor/bug-15642-v3-fallback-unit-tests'Nick Mathewson
2015-04-23Merge remote-tracking branch 'public/bug15745_027_03'Nick Mathewson
2015-04-23Merge branch 'feature15652_squashed'Nick Mathewson
2015-04-23Fix some implicit conversion warningsNick Mathewson
2015-04-23Use a custom Base64 encoder with more control over the output format.Yawning Angel
2015-04-23Unit tests for consider_adding_dir_servers() as modified in #15642teor
Unit tests for the 10 valid combinations of set/NULL config options DirAuthorities, AlternateBridgeAuthority, AlternateDirAuthority, and FallbackDir. Add assertion in consider_adding_dir_servers() for checks in validate_dir_servers(): "You cannot set both DirAuthority and Alternate*Authority."
2015-04-21Test: fix HSFETCH control command with latest changeDavid Goulet
The expected message of the command now expects "650+" and "650 OK". Signed-off-by: David Goulet <dgoulet@ev0ke.net>
2015-04-21Control: unbolt rend_data from HS desc eventDavid Goulet
The HS_DESC event was using rend_data_t from the dir connection to reply the onion address and authentication type. With the new HSFETCH command, it's now possible to fetch a descriptor only using the descriptor id thus resulting in not having an onion address in any HS_DESC event. This patch removes rend_query from the hs desc control functions and replace it by an onion address string and an auth type. On a successful fetch, the service id is taken from the fetched descriptor. For that, an extra parameter is added to "store as a client" function that contains the cache entry stored. This will make the control event functions scale more easily over time if other values not present in rend_data_t are needed since the rend_data from the dir connection might not contained everything we need. Signed-off-by: David Goulet <dgoulet@ev0ke.net>
2015-04-21Control: add HS_DESC_CONTENT eventDavid Goulet
As defined in section 4.1.26 in the control-spec.txt, this new event replies the content of a successfully fetched HS descriptor. This also adds a unit test for the controller event. Signed-off-by: David Goulet <dgoulet@ev0ke.net>
2015-04-21Use correct severity in the get_if_addrs tests.Yawning Angel