Nick Mathewson
4e87b97872
Fix on that last fix.
2014-09-25 17:59:10 -04:00
Nick Mathewson
9190468246
Fix warnings on 32-bit builds.
...
When size_t is the most memory you can have, make sure that things
referring to real parts of memory are size_t, not uint64_t or off_t.
But not on any released Tor.
2014-09-25 17:50:13 -04:00
Nick Mathewson
1c5d680b3d
Merge branch 'ed25519_ref10_squashed'
...
Conflicts:
src/common/include.am
src/ext/README
2014-09-25 15:11:34 -04:00
Nick Mathewson
46cda485bc
Comments and tweaks based on review by asn
...
Add some documentation
Rename "derive" -> "blind"
Check for failure on randombytes().
2014-09-25 15:08:32 -04:00
Nick Mathewson
6dbd451b9f
Add benchmarks for ed25519 functions
2014-09-25 15:08:32 -04:00
Nick Mathewson
9b43a4a122
Add comments to ed25519_vectors.inc
2014-09-25 15:08:32 -04:00
Nick Mathewson
6981341764
Cut the time to run the python ed25519 tests by a factor of ~6
...
I know it's pointless to optimize them, but I just can't let them
spend all that time in expmod() when native python pow() does the same
thing.
2014-09-25 15:08:32 -04:00
Nick Mathewson
7ca470e13c
Add a reference implementation of our ed25519 modifications
...
Also, use it to generate test vectors, and add those test vectors
to test_crypto.c
This is based on ed25519.py from the ed25519 webpage; the kludgy hacks
are my own.
2014-09-25 15:08:32 -04:00
Nick Mathewson
d10e1bdec4
Add the pure-python ed25519 implementation, for testing.
2014-09-25 15:08:31 -04:00
Nick Mathewson
f0eb7ae79f
More documentation for ed25519 stuff.
2014-09-25 15:08:31 -04:00
Nick Mathewson
1d3b33e1ed
Fix linux compilation of ed25519_ref10
...
Our integer-definition headers apparently suck in a definition for
select(2), which interferes with the select() in ge_scalarmult_base.c
2014-09-25 15:08:31 -04:00
Nick Mathewson
25b1a32ef8
Draft implementation for ed25519 key blinding, as in prop224
...
This implementation allows somebody to add a blinding factor to a
secret key, and a corresponding blinding factor to the public key.
Robert Ransom came up with this idea, I believe. Nick Hopper proved a
scheme like this secure. The bugs are my own.
2014-09-25 15:08:31 -04:00
Nick Mathewson
4caa6fad4c
Add curve25519->ed25519 key conversion per proposal 228
...
For proposal 228, we need to cross-certify our identity with our
curve25519 key, so that we can prove at descriptor-generation time
that we own that key. But how can we sign something with a key that
is only for doing Diffie-Hellman? By converting it to the
corresponding ed25519 point.
See the ALL-CAPS warning in the documentation. According to djb
(IIUC), it is safe to use these keys in the ways that ntor and prop228
are using them, but it might not be safe if we start providing crazy
oracle access.
(Unit tests included. What kind of a monster do you take me for?)
2014-09-25 15:08:31 -04:00
Nick Mathewson
ed48b0fe56
Support for writing ed25519 public/private components to disk.
...
This refactors the "== type:tag ==" code from crypto_curve25519.c
2014-09-25 15:08:31 -04:00
Nick Mathewson
c75e275574
Add encode/decode functions for ed25519 public keys
2014-09-25 15:08:31 -04:00
Nick Mathewson
22760c4899
Restore the operation of extra_strong in ed25519_secret_key_generate
2014-09-25 15:08:31 -04:00
Nick Mathewson
006e6d3b6f
Another ed25519 tweak: store secret keys in expanded format
...
This will be needed/helpful for the key blinding of prop224, I
believe.
2014-09-25 15:08:31 -04:00
Nick Mathewson
9e43ee5b4c
Fix API for ed25519_ref10_open()
...
This is another case where DJB likes sticking the whole signature
prepended to the message, and I don't think that's the hottest idea.
The unit tests still pass.
2014-09-25 15:08:31 -04:00
Nick Mathewson
e0097a8839
Tweak ed25519 ref10 signing interface to use less space.
...
Unit tests still pass.
2014-09-25 15:08:31 -04:00
Nick Mathewson
e5a1cf9937
Tweak ref10 keygen APIs to be more sane.
2014-09-25 15:08:30 -04:00
Nick Mathewson
87ba033cd5
Add Ed25519 support, wrappers, and tests.
...
Taken from earlier ed25519 branch based on floodyberry's
ed25519-donna. Tweaked so that it applies to ref10 instead.
2014-09-25 15:08:20 -04:00
Nick Mathewson
50d15e06b3
Use --require-version to prevent running trunnel pre-1.2
...
(Also, regenerate trunnel stuff with trunnel 1.2. This just adds a
few comments to our output.)
2014-09-25 14:49:00 -04:00
Nick Mathewson
d303d6244e
Have the run_trunnel.sh script tell trunnel to update src/ext/trunnel too
2014-09-25 13:16:35 -04:00
Nick Mathewson
1b13139709
Add a script to run trunnel on the trunnel files.
...
Also, re-run the latest trunnel.
Closes ticket 13242
2014-09-25 12:32:08 -04:00
Nick Mathewson
36700ee99e
Mention trunnel in LICENSE and src/ext/README
2014-09-25 12:03:46 -04:00
Nick Mathewson
764e008092
Merge branch 'libscrypt_trunnel_squashed'
...
Conflicts:
src/test/test_crypto.c
2014-09-25 12:03:41 -04:00
Nick Mathewson
c433736734
Add tests for failing cases of crypto_pwbox
2014-09-25 11:58:14 -04:00
Nick Mathewson
3b7d0ed08e
Use trunnel for crypto_pwbox encoding/decoding.
...
This reduces the likelihood that I have made any exploitable errors
in the encoding/decoding.
This commit also imports the trunnel runtime source into Tor.
2014-09-25 11:58:14 -04:00
Nick Mathewson
3011149401
Adjust pwbox format: use a random IV each time
...
Suggested by yawning
2014-09-25 11:58:14 -04:00
Nick Mathewson
d0f5d2b662
Test a full array of s2k flags with pwbox test.
...
Suggested by yawning.
2014-09-25 11:58:14 -04:00
Nick Mathewson
05a6439f1f
Use preferred key-expansion means for pbkdf2, scrypt.
...
Use HKDF for RFC2440 s2k only.
2014-09-25 11:58:13 -04:00
Nick Mathewson
8d84f3af7b
Test vectors for PBKDF2 from RFC6070
2014-09-25 11:58:13 -04:00
Nick Mathewson
b59d0dae14
Test vectors for scrypt from draft-josefsson-scrypt-kdf-00
2014-09-25 11:58:13 -04:00
Nick Mathewson
2b2cab4141
Tweak and expose secret_to_key_compute_key for testing
...
Doing this lets me pass in a salt of an unusual length.
2014-09-25 11:58:13 -04:00
Nick Mathewson
8184839a47
Rudimentary-but-sufficient passphrase-encrypted box code.
...
See crypto_pwbox.c for a description of the file format.
There are tests for successful operation, but it still needs
error-case tests.
2014-09-25 11:58:13 -04:00
Nick Mathewson
e84e1c9745
More generic passphrase hashing code, including scrypt support
...
Uses libscrypt when found; otherwise, we don't have scrypt and we
only support openpgp rfc2440 s2k hashing, or pbkdf2.
Includes documentation and unit tests; coverage around 95%. Remaining
uncovered code is sanity-checks that shouldn't be reachable fwict.
2014-09-25 11:58:13 -04:00
Roger Dingledine
ecab261641
two more typos
2014-09-23 18:30:02 -04:00
Roger Dingledine
1987157d0c
+ is not how we say concatenate
2014-09-22 20:09:03 -04:00
Nick Mathewson
e6150c7fc0
Merge remote-tracking branch 'public/bug12693_025'
2014-09-22 14:45:38 -04:00
Nick Mathewson
2b3822d2da
Merge branch 'master' of git-rw.torproject.org:/tor
2014-09-22 14:35:14 -04:00
Nick Mathewson
bdd0c77643
Merge branch 'bug8197_squashed'
...
Conflicts:
src/test/test_policy.c
2014-09-22 14:34:52 -04:00
Roger Dingledine
00fafe9ab4
and forward-port those changelogs too
2014-09-22 14:21:26 -04:00
rl1987
80622c0664
Writing comments for newly added functions.
2014-09-22 14:18:01 -04:00
rl1987
45fc0612d3
Adding changes file for 8197.
2014-09-22 14:18:01 -04:00
rl1987
2e951f8dda
Whitespace fixes
2014-09-22 14:18:00 -04:00
rl1987
0eaf82947d
Using the new API in unit-test.
2014-09-22 14:18:00 -04:00
rl1987
c735b60e4c
New API for policies_parse_exit_policy().
2014-09-22 14:18:00 -04:00
Nick Mathewson
c8d927bad4
changes file for 12884
2014-09-22 10:55:53 -04:00
Adrien BAK
8858194952
Remove config options that have been obsolete since 0.2.3
2014-09-22 10:55:01 -04:00
Nick Mathewson
6c6ea8c425
Merge remote-tracking branch 'arma/feature13211'
2014-09-22 10:49:10 -04:00