8493 Commits

Author SHA1 Message Date
Jean-Paul Calderone
01b14fe05c Merge remote-tracking branch 'origin/master' into 3962.pre-determined-rsa-keys 2023-01-06 17:30:01 -05:00
Jean-Paul Calderone
2dc6466ef5 fix some errors reported by mypy 2023-01-06 17:12:59 -05:00
Jean-Paul Calderone
e829b891b3 important data file ... 2023-01-06 15:51:59 -05:00
Jean-Paul Calderone
3ff9c45e95 expose the private-key feature in the tahoe put cli 2023-01-06 15:40:48 -05:00
Jean-Paul Calderone
e236cc95a5 Move get_keypair to a shared location 2023-01-06 15:36:08 -05:00
Itamar Turner-Trauring
3de5ebde48 Merge branch '3956-mutable-uploads' into 3957-mutable-over-http-speed 2023-01-06 11:05:11 -05:00
Jean-Paul Calderone
3423bfb351 Expose the pre-constructed keypair functionality to the HTTP API 2023-01-03 11:31:29 -05:00
Jean-Paul Calderone
c7bb190290 Factor some SSK "signature" key handling code into a more reusable shape
This gives the test suite access to the derivation function so it can
re-derive certain values to use as expected results to compare against actual
results.
2023-01-03 10:38:18 -05:00
Jean-Paul Calderone
5bad92cfc5 Another Python 2 remnant cleanup 2023-01-03 10:34:39 -05:00
Jean-Paul Calderone
a58d8a567a Clean up some more Python 2 remnants 2023-01-03 10:33:37 -05:00
Jean-Paul Calderone
6b58b66677 Clean up some Python 2 remnants 2023-01-03 10:32:03 -05:00
Jean-Paul Calderone
f6d9c33526 Give slightly better error messages from rsa key validation failure 2023-01-03 10:28:59 -05:00
Jean-Paul Calderone
23f2d8b019 add some type annotations to allmydata.crypto.rsa 2023-01-03 10:28:32 -05:00
Jean-Paul Calderone
15e22dcc52 Add keypair to NodeMaker.create_mutable_file
Previously `NodeMaker` always took responsibility for generating a keypair to
use.  Now the caller may supply one.
2023-01-02 19:29:13 -05:00
Jean-Paul Calderone
3f8bec0ecc Merge remote-tracking branch 'origin/master' into 3914.faster-rsa-tests 2023-01-02 11:46:10 -05:00
Jean-Paul Calderone
1c643ebbaf
Merge pull request #1237 from tahoe-lafs/3954.faster-http
Faster HTTP for immutable downloads

Fixes: ticket:3954
2023-01-02 10:09:55 -05:00
Itamar Turner-Trauring
d1b464d0d8 Writing large files can involve many writes. 2022-12-21 09:35:10 -05:00
Itamar Turner-Trauring
54da6eb60a Remove unneeded imports. 2022-12-21 09:34:25 -05:00
Itamar Turner-Trauring
1a4dcc70e2 Support large mutable uploads in a memory-efficient manner. 2022-12-21 09:24:31 -05:00
Jean-Paul Calderone
6b57b03157 Merge remote-tracking branch 'origin/master' into 3942.missing-authorization-handling 2022-12-21 05:51:39 -05:00
Jean-Paul Calderone
80caf04966
Merge pull request #1234 from tahoe-lafs/3947.mutable-test_version-async-def
Convert some tests for mutables to use `async def`

Fixes: ticket:3947
2022-12-21 05:50:07 -05:00
Itamar Turner-Trauring
1d3464a430 Add end-to-end MDMF test. 2022-12-19 13:37:20 -05:00
Itamar Turner-Trauring
96347e22e2 Make a test demonstrating the problem. 2022-12-15 13:14:49 -05:00
Jean-Paul Calderone
c014ad55b1 remove Python 2 boilerplate 2022-12-14 08:48:02 -05:00
Jean-Paul Calderone
05c7450376 Try to use an upcoming python-cryptography feature to avoid some costs
If the key is the wrong number of bits then we don't care about any other
validation results because we're just going to reject it.  So, check that
before applying other validation, if possible.

This is untested since the version of python-cryptography that supports it is
not released yet and I don't feel like setting up a Rust build tool chain at
the moment.
2022-12-14 08:47:05 -05:00
Itamar Turner-Trauring
6ae40a932d A much more reasonable number of HTTP connections. 2022-12-13 15:54:19 -05:00
Itamar Turner-Trauring
1eba202c08
Merge pull request #1231 from tahoe-lafs/3939-faster-http-protocol
Faster http protocol, part 1 (and maybe faster Foolscap too, while we're at it)

Fixes ticket:3939
2022-12-05 14:05:55 -05:00
Jean-Paul Calderone
daecfc63b9
Merge pull request #1233 from tahoe-lafs/3874.fix-testing-helper-encoding
Fix a testing helper
2022-12-02 10:27:58 -05:00
Jean-Paul Calderone
c542b84637 remove the annotations
everything is broken on older pythons
2022-12-02 08:47:07 -05:00
Jean-Paul Calderone
c6cc3708f4 Fixup the annotations a bit 2022-12-02 08:38:46 -05:00
Jean-Paul Calderone
b40d882fce remove unused import 2022-12-02 08:28:22 -05:00
Jean-Paul Calderone
a84b278ecd support older pythons 2022-12-02 08:26:15 -05:00
Jean-Paul Calderone
9619e286f4 Switch the web testing double to BytesKeyDict
This will catch more str/bytes errors by default than `dict`
2022-12-02 08:16:02 -05:00
meejah
20b3594d12 exarkun wants a helper 2022-12-01 17:05:58 -07:00
meejah
36ed554627 proto -> transport 2022-12-01 17:03:48 -07:00
meejah
3d43cbccc9 log less-specific failures 2022-12-01 17:01:38 -07:00
meejah
c57d1aa8a9 Merge branch 'master' into 3921.exit-on-stdin-close 2022-12-01 16:58:37 -07:00
meejah
7ffcfcdb67
Update src/allmydata/test/test_runner.py
Co-authored-by: Jean-Paul Calderone <exarkun@twistedmatrix.com>
2022-12-01 16:47:40 -07:00
Itamar Turner-Trauring
c93ff23da7 Don't send empty string writes. 2022-12-01 14:54:28 -05:00
Itamar Turner-Trauring
8ed333b171 Correct explanation. 2022-12-01 14:45:45 -05:00
Itamar Turner-Trauring
0ba58070cd Tweaks. 2022-12-01 14:45:39 -05:00
Itamar Turner-Trauring
d4c202307c Better method name. 2022-12-01 14:43:49 -05:00
Itamar Turner-Trauring
17dfda6b5a More direct API. 2022-12-01 14:42:52 -05:00
Jean-Paul Calderone
05dfa875a7 Quite a mypy warning about formatting bytes into a string 2022-11-30 09:46:13 -05:00
Jean-Paul Calderone
156954c621 no longer any need to "daisy chain" this value 2022-11-30 09:43:01 -05:00
Jean-Paul Calderone
a11eeaf240 Convert all of the asynchronous functions to use async and await 2022-11-30 09:30:37 -05:00
Jean-Paul Calderone
1acf8604ef Remove the Py2/Py3 compatibility header 2022-11-30 09:30:08 -05:00
Jean-Paul Calderone
5cebe91406 update the module docstring 2022-11-30 09:29:57 -05:00
Jean-Paul Calderone
02aeb68f17 Take care with str vs bytes in the implementation
Also replace the intentional BAD_REQUEST with GONE for this case.
2022-11-29 10:51:07 -05:00
Jean-Paul Calderone
d7fe25f7c7 Correct the assertion about how "not found" should be handled
Behavior verified visually against a live client node:

```
❯ curl -v 'http://localhost:3456/uri/URI:CHK:cmtcxq7hwxvfxan34yiev6ivhy:qvcekmjtoetdcw4kmi7b3rtblvgx7544crnwaqtiewemdliqsokq:1:1:1'
*   Trying 127.0.0.1:3456...
* Connected to localhost (127.0.0.1) port 3456 (#0)
> GET /uri/URI:CHK:cmtcxq7hwxvfxan34yiev6ivhy:qvcekmjtoetdcw4kmi7b3rtblvgx7544crnwaqtiewemdliqsokq:1:1:1 HTTP/1.1
> Host: localhost:3456
> User-Agent: curl/7.83.1
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 410 Gone
< X-Frame-Options: DENY
< Referrer-Policy: no-referrer
< Server: TwistedWeb/22.10.0
< Date: Tue, 29 Nov 2022 15:39:47 GMT
< Content-Type: text/plain;charset=utf-8
< Accept-Ranges: bytes
< Content-Length: 294
< ETag: ui2tnwl5lltj5clzpyff42jdce-
<
NoSharesError: no shares could be found. Zero shares usually indicates a corrupt URI, or that no servers were connected, but it might also indicate severe corruption. You should perform a filecheck on this object to learn more.

The full error message is:
* Connection #0 to host localhost left intact
no shares (need 1). Last failure: None
```
2022-11-29 10:49:20 -05:00