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.
Some test_storage.py classes contain calls to cleanup methods
instead of references. This commit fixes that.
Signed-off-by: Fon E. Noel NFEBE <fenn25.fn@gmail.com>
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
```
This PR cleans up errorneous changes resulting from
1d85a2c5cf40a4e52bbb024e2edba4fcd883caa1 and adds a
few improvements such as calling `super` implementations.
Making sure classes with functions returning deferreds
use `AsyncTestCase`
Signed-off-by: Fon E. Noel NFEBE <fenn25.fn@gmail.com>