Ondrej Kozina
b3af88708d
Change reencryption mode parameter type to enum.
2019-08-01 15:40:53 +02:00
Ondrej Kozina
97ea39404a
Allow reencryption to parse names prefixed with /dev.
2019-08-01 10:43:57 +02:00
Ondrej Kozina
3bea349f9e
Optionaly check device table before reencryption initialization.
2019-08-01 10:43:57 +02:00
Ondrej Kozina
98e0c8d609
Extend device table check in-before reencryption.
2019-08-01 10:43:57 +02:00
Ondrej Kozina
0886bc7afd
Check for error sooner while assigning reencryption segments.
...
Also wraps function parameters definition.
2019-07-31 14:58:55 +02:00
Ondrej Kozina
e16319a290
Fail encryption initialization when data device too small.
2019-07-26 16:09:38 +02:00
Ondrej Kozina
c033643f07
Fix corner case bug in encryption with data shift.
...
If we initialized encryption with data shift and only single
segment the resulting metadata were missing
CRYPT_REENCRYPT_MOVE_FIRST_SEGMENT flag and also segments json section was
invalid.
2019-07-26 16:06:03 +02:00
Ondrej Kozina
607e2248c8
Simplify LUKS2_reencrypt_direction function.
2019-07-26 16:06:03 +02:00
Ondrej Kozina
1b82e70fc1
Fix bug in minimal device size calculation for reencryption.
2019-07-26 16:06:03 +02:00
Ondrej Kozina
35068c2e6e
Fix broken segments calculation for backward data shift reencryption.
2019-07-26 16:06:03 +02:00
Ondrej Kozina
7460d1a446
Fix backward reencryption with data shift.
...
The device has to be shrunk the data shift size during activation.
Otherwise the online reencryption would fail with incorrect device
size.
2019-07-26 16:04:27 +02:00
Ondrej Kozina
c851205f83
Fix bug in reencryption digest to segment assignement.
2019-07-23 17:28:26 +02:00
Ondrej Kozina
dd0e073159
Fill direction field in crypt_reencrypt_status.
2019-07-23 17:28:26 +02:00
Ondrej Kozina
3f85da0098
Fix datashift calculation in reencryption initialization.
2019-07-23 17:28:25 +02:00
Ondrej Kozina
dad28f3dfe
Move exclusive open for offline reencryption in initialization.
2019-07-23 17:28:25 +02:00
Ondrej Kozina
e8e1da3fb5
Do not callback progress twice in reencryption loop.
2019-07-23 17:28:25 +02:00
Ondrej Kozina
330f9daade
Pass max_hotzone_size inside reencryption parameters in sectors.
2019-07-12 15:37:18 +02:00
Ondrej Kozina
4a232bc868
Pass device size inside reencryption parameters in sectors.
...
it was mistake in reencryption API. All other device sizes
related to device mapper devices are always in 512b setctors.
2019-07-12 15:37:18 +02:00
Ondrej Kozina
e3e6e75d40
Improvements to LUKS2 reencryption error messages.
...
- make error messages propagated to users more comprehensible
- drop some error messages completely
- replace many error messages with debug logs only
Fixes #458 .
2019-07-01 10:18:55 +02:00
Yuri Chornoivan
4143d9871e
Fix minor typos
2019-06-28 12:02:39 +00:00
Ondrej Kozina
d4682b3b38
Cleanup translated messages id.
...
- minimize count of almost identical message ids
- unify style for some messages
- remove some useless messages
2019-06-27 10:23:42 +02:00
Ondrej Kozina
2f4a50064f
Add direction hint in reencryption hotzone device name.
2019-06-27 10:23:36 +02:00
Ondrej Kozina
292a5f50b2
Allow offline reencryption on files without root privileges.
...
If userspace block ciphers are not available try kcapi first.
2019-06-27 10:19:23 +02:00
Ondrej Kozina
c25ce7c585
Allow disabling of reencryption locks via crypt_metadata_locking()
2019-06-27 10:19:18 +02:00
Ondrej Kozina
b22c9a86a9
Add internal crypt_zalloc routine (calloc wrapper).
2019-06-27 10:19:14 +02:00
Ondrej Kozina
614f671b92
Introduce SUBDEV internal device type.
...
LUKS2 and other device types allow stacking of dm devices
underneath public top level device.
The new type identifies clearly those private devices in respective
device stack so that they can be easily removed while removing
top level public device.
Switch LUKS2 reencryption device stack to use SUBDEV type immmediately
for hotzone and overlay devices. Other devices will follow in later
releases.
2019-06-27 10:19:01 +02:00
Ondrej Kozina
4e19719bdd
Check hotzone size and device size alignment earlier.
...
It failed later but it was difficult to understand what went wrong.
2019-06-27 10:18:44 +02:00
Ondrej Kozina
3cabf608ca
Unify reencryption context load error messages.
2019-06-27 10:18:37 +02:00
Guilhem Moulin
70c4ce199d
Fix minor spelling errors in manpage and messages.
...
Reported by lintian(1) - Static analysis tool for Debian packages:
accidentaly -> accidentally
trigerring -> triggering
alocate -> allocate
alignemnt -> alignment
initalize -> initialize
2019-06-18 09:42:28 +02:00
Ondrej Kozina
44aabc3ae4
Drop reload of metadata in reencryption initialization.
2019-06-12 12:36:50 +02:00
Ondrej Kozina
bbdf9b2745
Read and compare metadata sequence id after taking write lock.
2019-06-12 12:36:46 +02:00
Ondrej Kozina
96a87170f7
Return usage count from device locking functions.
2019-06-12 11:51:08 +02:00
Ondrej Kozina
4c4cc55bb7
Wipe backup segment data after reencryption is finished.
2019-05-27 16:05:21 +02:00
Ondrej Kozina
0c725a257d
Compare moved segment specific size against real device size only.
2019-05-24 17:29:56 +02:00
Ondrej Kozina
bd6af68bc5
Add support for explicit reencryption recovery in request.
2019-05-24 17:07:37 +02:00
Ondrej Kozina
13050f73c1
Properly finished reencryption after recovery.
2019-05-24 17:07:37 +02:00
Ondrej Kozina
5472fb0c56
Refactor reencryption recovery during activation.
2019-05-24 17:07:36 +02:00
Ondrej Kozina
013d0d3753
Rename internal reencrypt enum to REENC_PROTECTION_NONE.
2019-05-21 18:08:00 +02:00
Ondrej Kozina
31cd41bfe4
Add support for reencryption of initial device part.
...
It's useful to reencrypt only initial device part only.
For example with golden image reencryption it may be useful
to reencrypt only first X bytes of device because we know
the rest of device is empty.
2019-05-21 15:54:07 +02:00
Ondrej Kozina
af6c321395
Set default length for reencryption with resilience 'none' only.
2019-05-21 15:54:07 +02:00
Ondrej Kozina
1923928fdc
Drop duplicate error message from reencrypt load.
2019-05-21 15:54:07 +02:00
Ondrej Kozina
8c8a68d850
Add CRYPT_REENCRYPT_RESUME_ONLY flag.
2019-05-13 18:23:20 +02:00
Ondrej Kozina
2d0079905e
Adapt device_open_excl to reusing of fds.
2019-05-10 21:05:31 +02:00
Ondrej Kozina
ee57b865b0
Reuse device file desriptors.
2019-05-10 21:05:31 +02:00
Ondrej Kozina
8545e8496b
Fix memleak in reencryption with moved segment.
2019-05-07 17:17:34 +02:00
Milan Broz
237021ec15
Fix some warnings in static analysis.
2019-05-07 13:44:43 +02:00
Milan Broz
1f91fe7a2c
Use JSON-debug wrappers.
2019-05-03 14:02:43 +02:00
Ondrej Kozina
a7f80a2770
Add resilient LUKS2 reencryption library code.
2019-05-02 16:44:23 +02:00