1
0
Fork 0
mirror of https://github.com/borgbackup/borg.git synced 2025-02-23 22:51:35 +00:00

Merge pull request #2686 from enkore/docs/i2651

init: note possible denial of service with "none" mode
This commit is contained in:
enkore 2017-06-17 14:17:02 +02:00 committed by GitHub
commit 7d11b4443d
3 changed files with 32 additions and 6 deletions

View file

@ -61,6 +61,14 @@ dt code {
border-right: 2px solid #4e4a4a;; border-right: 2px solid #4e4a4a;;
} }
/* the rtd theme has "nowrap" here which causes tables to have scroll bars.
* undo that setting. it does not seem to cause issues, even when making the
* viewport narrow.
*/
.wy-table-responsive table td, .wy-table-responsive table th {
white-space: normal;
}
p .literal, p .literal,
p .literal span { p .literal span {
border: none; border: none;
@ -73,8 +81,8 @@ cite {
white-space: nowrap; white-space: nowrap;
color: black; /* slight contrast with #404040 of regular text */ color: black; /* slight contrast with #404040 of regular text */
font-size: 75%; font-size: 75%;
font-family: Consolas,"Andale Mono WT","Andale Mono","Lucida Console","Lucida Sans Typewriter", font-family: Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter",
"DejaVu Sans Mono","Bitstream Vera Sans Mono","Liberation Mono","Nimbus Mono L",Monaco,"Courier New",Courier,monospace; "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace;
font-style: normal; font-style: normal;
text-decoration: underline; text-decoration: underline;
} }

View file

@ -2449,16 +2449,23 @@ def define_common_options(add_common_option):
Encryption modes Encryption modes
++++++++++++++++ ++++++++++++++++
.. nanorst: inline-fill
+----------+---------------+------------------------+--------------------------+ +----------+---------------+------------------------+--------------------------+
| Hash/MAC | Not encrypted | Not encrypted, | Encrypted (AEAD w/ AES) | | Hash/MAC | Not encrypted | Not encrypted, | Encrypted (AEAD w/ AES) |
| | no auth | but authenticated | and authenticated | | | no auth | but authenticated | and authenticated |
+----------+---------------+------------------------+--------------------------+ +----------+---------------+------------------------+--------------------------+
| SHA-256 | none | authenticated | repokey, keyfile | | SHA-256 | none | `authenticated` | repokey |
| | | | keyfile |
+----------+---------------+------------------------+--------------------------+ +----------+---------------+------------------------+--------------------------+
| BLAKE2b | n/a | authenticated-blake2 | repokey-blake2, | | BLAKE2b | n/a | `authenticated-blake2` | `repokey-blake2` |
| | | | keyfile-blake2 | | | | | `keyfile-blake2` |
+----------+---------------+------------------------+--------------------------+ +----------+---------------+------------------------+--------------------------+
.. nanorst: inline-replace
`Marked modes` are new in Borg 1.1 and are not backwards-compatible with Borg 1.0.x.
On modern Intel/AMD CPUs (except very cheap ones), AES is usually On modern Intel/AMD CPUs (except very cheap ones), AES is usually
hardware-accelerated. hardware-accelerated.
BLAKE2b is faster than SHA256 on Intel/AMD 64-bit CPUs BLAKE2b is faster than SHA256 on Intel/AMD 64-bit CPUs
@ -2491,7 +2498,8 @@ def define_common_options(add_common_option):
`none` mode uses no encryption and no authentication. It uses SHA256 as chunk `none` mode uses no encryption and no authentication. It uses SHA256 as chunk
ID hash. Not recommended, rather consider using an authenticated or ID hash. Not recommended, rather consider using an authenticated or
authenticated/encrypted mode. authenticated/encrypted mode. This mode has possible denial-of-service issues
when running ``borg create`` on contents controlled by an attacker.
Use it only for new repositories where no encryption is wanted **and** when compatibility Use it only for new repositories where no encryption is wanted **and** when compatibility
with 1.0.x is important. If compatibility with 1.0.x is not important, use with 1.0.x is important. If compatibility with 1.0.x is not important, use
`authenticated-blake2` or `authenticated` instead. `authenticated-blake2` or `authenticated` instead.

View file

@ -58,6 +58,7 @@ def rst_to_text(text, state_hook=None, references=None):
state_hook = state_hook or (lambda old_state, new_state, out: None) state_hook = state_hook or (lambda old_state, new_state, out: None)
references = references or {} references = references or {}
state = 'text' state = 'text'
inline_mode = 'replace'
text = TextPecker(text) text = TextPecker(text)
out = io.StringIO() out = io.StringIO()
@ -117,17 +118,26 @@ def rst_to_text(text, state_hook=None, references=None):
directive, is_directive, arguments = text.readline().partition('::') directive, is_directive, arguments = text.readline().partition('::')
text.read(1) text.read(1)
if not is_directive: if not is_directive:
# partition: if the separator is not in the text, the leftmost output is the entire input
if directive == 'nanorst: inline-fill':
inline_mode = 'fill'
elif directive == 'nanorst: inline-replace':
inline_mode = 'replace'
continue continue
process_directive(directive, arguments.strip(), out, state_hook) process_directive(directive, arguments.strip(), out, state_hook)
continue continue
if state in inline_single and char == state: if state in inline_single and char == state:
state_hook(state, 'text', out) state_hook(state, 'text', out)
state = 'text' state = 'text'
if inline_mode == 'fill':
out.write(2 * ' ')
continue continue
if state == '``' and char == next == '`': if state == '``' and char == next == '`':
state_hook(state, 'text', out) state_hook(state, 'text', out)
state = 'text' state = 'text'
text.read(1) text.read(1)
if inline_mode == 'fill':
out.write(4 * ' ')
continue continue
if state == '**' and char == next == '*': if state == '**' and char == next == '*':
state_hook(state, 'text', out) state_hook(state, 'text', out)