#
fdafd315 |
|
24-Nov-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Automated cleanup of cdefs and other formatting Apply the following automated changes to try to eliminate no-longer-needed sys/cdefs.h includes as well as now-empty blank lines in a row. Remove /^#if.*\n#endif.*\n#include\s+<sys/cdefs.h>.*\n/ Remove /\n+#include\s+<sys/cdefs.h>.*\n+#if.*\n#endif.*\n+/ Remove /\n+#if.*\n#endif.*\n+/ Remove /^#if.*\n#endif.*\n/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/types.h>/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/param.h>/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/capsicum.h>/ Sponsored by: Netflix
|
#
685dc743 |
|
16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: one-line .c pattern Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
#
4d846d26 |
|
10-May-2023 |
Warner Losh <imp@FreeBSD.org> |
spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch up to that fact and revert to their recommended match of BSD-2-Clause. Discussed with: pfg MFC After: 3 days Sponsored by: Netflix
|
#
d40bc607 |
|
01-Sep-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
geom: clean up empty lines in .c and .h files
|
#
fcf69f3d |
|
21-Jul-2020 |
Xin LI <delphij@FreeBSD.org> |
Consistently use gctl_get_provider instead of home-grown variants. Reviewed by: cem, imp MFC after: 2 weeks Differential revision: https://reviews.freebsd.org/D25739
|
#
8510f61a |
|
08-Jul-2020 |
Xin LI <delphij@FreeBSD.org> |
sys/geom: consistently use _PATH_DEV instead of hardcoding "/dev/". Reviewed by: cem MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D25565
|
#
4a711b8d |
|
25-Jun-2020 |
John Baldwin <jhb@FreeBSD.org> |
Use zfree() instead of explicit_bzero() and free(). In addition to reducing lines of code, this also ensures that the full allocation is always zeroed avoiding possible bugs with incorrect lengths passed to explicit_bzero(). Suggested by: cem Reviewed by: cem, delphij Approved by: csprng (cem) Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D25435
|
#
e2b99193 |
|
14-Apr-2020 |
John Baldwin <jhb@FreeBSD.org> |
Remove support for geli(4) algorithms deprecated in r348206. This removes support for reading and writing volumes using the following algorithms: - Triple DES - Blowfish - MD5 HMAC integrity In addition, this commit adds an explicit whitelist of supported algorithms to give a better error message when an invalid or unsupported algorithm is used by an existing volume. Reviewed by: cem Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D24343
|
#
ac03832e |
|
07-Aug-2019 |
Conrad Meyer <cem@FreeBSD.org> |
GEOM: Reduce unnecessary log interleaving with sbufs Similar to what was done for device_printfs in r347229. Convert g_print_bio() to a thin shim around g_format_bio(), which acts on an sbuf; documented in g_bio.9. Reviewed by: markj Discussed with: rlibby Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D21165
|
#
2f07cdf8 |
|
03-Apr-2019 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Implement automatic online expansion of GELI providers - if the underlying provider grows, GELI will expand automatically and will move the metadata to the new location of the last sector. This functionality is turned on by default. It can be turned off with the -R flag, but it is not recommended - if the underlying provider grows and automatic expansion is turned off, it won't be possible to attach this provider again, as the metadata is no longer located in the last sector. If the automatic expansion is turned off and the underlying provider grows, GELI will only log a message with the previous size of the provider, so recovery can be easier. Obtained from: Fudo Security
|
#
0db665bb |
|
26-Oct-2018 |
Xin LI <delphij@FreeBSD.org> |
Restore backward compatibility for "attach" verb. In r332361 and r333439, two new parameters were added to geli attach verb using gctl_get_paraml, which requires the value to be present. This would prevent old geli(8) binary from attaching geli(4) device as they have no knowledge about the new parameters. Restore backward compatibility by treating the absense of these two values as seeing the default value supplied by userland. PR: 232595 Reviewed by: oshogbo MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D17680
|
#
31f7586d |
|
09-May-2018 |
Mariusz Zaborski <oshogbo@FreeBSD.org> |
Introduce the 'n' flag for the geli attach command. If the 'n' flag is provided the provided key number will be used to decrypt device. This can be used combined with dryrun to verify if the key is set correctly. This can be also used to determine which key slot we want to change on already attached device. Reviewed by: allanjude Differential Revision: https://reviews.freebsd.org/D15309
|
#
8f1c45c2 |
|
10-Apr-2018 |
Mariusz Zaborski <oshogbo@FreeBSD.org> |
Introduce dry run option for attaching the device. This will allow us to verify if passphrase and key is valid without decrypting whole device. Reviewed by: cem@, allanjude@ Differential Revision: https://reviews.freebsd.org/D15000
|
#
3728855a |
|
27-Nov-2017 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
sys/geom: adoption of SPDX licensing ID tags. Mainly focus on files that use BSD 2-Clause license, however the tool I was using misidentified many licenses so this was mostly a manual - error prone - task. The Software Package Data Exchange (SPDX) group provides a specification to make it easier for automated tools to detect and summarize well known opensource licenses. We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts.
|
#
3453dc72 |
|
26-Aug-2017 |
Mariusz Zaborski <oshogbo@FreeBSD.org> |
Hide length of geli passphrase during boot. Introduce additional flag to the geli which allows to restore previous behavior. Reviewed by: AllanJude@, cem@ (previous version) MFC: 1 month Relnotes: yes Differential Revision: https://reviews.freebsd.org/D11751
|
#
d8880fd4 |
|
21-Apr-2017 |
Alexander Motin <mav@FreeBSD.org> |
Always allow setting number of iterations for the first time. Before this change it was impossible to set number of PKCS#5v2 iterations, required to set passphrase, if it has two keys and never had any passphrase. Due to present metadata format limitations there are still cases when number of iterations can not be changed, but now it works in cases when it can. PR: 218512 MFC after: 2 weeks Sponsored by: iXsystems, Inc. Differential Revision: https://reviews.freebsd.org/D10338
|
#
39b7ca45 |
|
30-Mar-2017 |
Allan Jude <allanjude@FreeBSD.org> |
sys/geom/eli: Switch bzero() to explicit_bzero() for sensitive data In GELI, anywhere we are zeroing out possibly sensitive data, like the metadata struct, the metadata sector (both contain the encrypted master key), the user key, or the master key, use explicit_bzero. Didn't touch the bzero() used to initialize structs. Reviewed by: delphij, oshogbo Sponsored by: ScaleEngine Inc. Differential Revision: https://reviews.freebsd.org/D9809
|
#
d8736625 |
|
07-Apr-2016 |
Allan Jude <allanjude@FreeBSD.org> |
Create the GELIBOOT GEOM_ELI flag This flag indicates that the user wishes to use the GELIBOOT feature to boot from a fully encrypted root file system. Currently, GELIBOOT does not support key files, and in the future when it does, they will be loaded differently. Due to the design of GELI, and the desire for secrecy, the GELI metadata does not know if key files are used or not, it just adds the key material (if any) to the HMAC before the optional passphrase, so there is no way to tell if a GELI partition requires key files or not. Since the GELIBOOT code in boot2 and the loader does not support keys, they will now only attempt to attach if this flag is set. This will stop GELIBOOT from prompting for passwords to GELIs that it cannot decrypt, disrupting the boot process PR: 208251 Reviewed by: ed, oshogbo, wblock Sponsored by: ScaleEngine Inc. Differential Revision: https://reviews.freebsd.org/D5867
|
#
46e34470 |
|
08-Aug-2015 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Enable BIO_DELETE passthru in GELI, so TRIM/UNMAP can work as expected when GELI is used on a SSD or inside virtual machine, so that guest can tell host that it is no longer using some of the storage. Enabling BIO_DELETE passthru comes with a small security consequence - an attacker can tell how much space is being really used on encrypted device and has less data no analyse then. This is why the -T option can be given to the init subcommand to turn off this behaviour and -t/T options for the configure subcommand can be used to adjust this setting later. PR: 198863 Submitted by: Matthew D. Fuller fullermd at over-yonder dot net This commit also includes a fix from Fabian Keil freebsd-listen at fabiankeil.de for 'configure' on onetime providers which is not strictly related, but is entangled in the same code, so would cause conflicts if separated out.
|
#
7ac2e588 |
|
01-Nov-2013 |
Xin LI <delphij@FreeBSD.org> |
When zero'ing out a buffer, make sure we are using right size. Without this change, in the worst but unlikely case scenario, certain administrative operations, including change of configuration, set or delete key from a GEOM ELI provider, may leave potentially sensitive information in buffer allocated from kernel memory. We believe that it is not possible to actively exploit these issues, nor does it impact the security of normal usage of GEOM ELI providers when these operations are not performed after system boot. Security: possible sensitive information disclosure Submitted by: Clement Lecigne <clecigne google com> MFC after: 3 days
|
#
457bbc4f |
|
04-Jul-2012 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Use correct part of the Master-Key for generating encryption keys. Before this change the IV-Key was used to generate encryption keys, which was incorrect, but safe - for the XTS mode this key was unused anyway and for CBC mode it was used differently to generate IV vectors, so there is no risk that IV vector collides with encryption key somehow. Bump version number and keep compatibility for older versions. MFC after: 2 weeks
|
#
731adc86 |
|
08-May-2011 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Version 6 is compatible with version 5 when it comes to control commands. MFC after: 1 week
|
#
1e09ff3d |
|
21-Apr-2011 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Instead of allocating memory for all the keys at device attach, create reasonably large cache for the keys that is filled when needed. The previous version was problematic for very large providers (hundreds of terabytes or serval petabytes). Every terabyte of data needs around 256kB for keys. Make the default cache limit big enough to fit all the keys needed for 4TB providers, which will eat at most 1MB of memory. MFC after: 2 weeks
|
#
0d2f5a4e |
|
22-Oct-2010 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
- Improve error messages, so instead of 'Not fully done', the user will get information that device is already suspended or that device is using one-time key and suspend is not supported. - 'geli suspend -a' silently skips devices that use one-time key, this is fine, but because we log which device were suspended on the console, log also which devices were skipped.
|
#
2f2d7830 |
|
22-Oct-2010 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Close a race between checking if device is already suspended and suspending it.
|
#
1d021441 |
|
22-Oct-2010 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Move sc_akeyctx and sc_ivctx initialization to the g_eli_mkey_propagate() function which eliminates code duplication and will ensure proper order of operation.
|
#
5ad4a7c7 |
|
20-Oct-2010 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Bring in geli suspend/resume functionality (finally). Before this change if you wanted to suspend your laptop and be sure that your encryption keys are safe, you had to stop all processes that use file system stored on encrypted device, unmount the file system and detach geli provider. This isn't very handy. If you are a lucky user of a laptop where suspend/resume actually works with FreeBSD (I'm not!) you most likely want to suspend your laptop, because you don't want to start everything over again when you turn your laptop back on. And this is where geli suspend/resume steps in. When you execute: # geli suspend -a geli will wait for all in-flight I/O requests, suspend new I/O requests, remove all geli sensitive data from the kernel memory (like encryption keys) and will wait for either 'geli resume' or 'geli detach'. Now with no keys in memory you can suspend your laptop without stopping any processes or unmounting any file systems. When you resume your laptop you have to resume geli devices using 'geli resume' command. You need to provide your passphrase, etc. again so the keys can be restored and suspended I/O requests released. Of course you need to remember that 'geli suspend' won't clear file system cache and other places where data from your geli-encrypted file system might be present. But to get rid of those stopping processes and unmounting file system won't help either - you have to turn your laptop off. Be warned. Also note, that suspending geli device which contains file system with geli utility (or anything used by 'geli resume') is not very good idea, as you won't be able to resume it - when you execute geli(8), the kernel will try to read it and this read I/O request will be suspended.
|
#
a7d5f7eb |
|
19-Oct-2010 |
Jamie Gritton <jamie@FreeBSD.org> |
A new jail(8) with a configuration file, to replace the work currently done by /etc/rc.d/jail.
|
#
350e8df8 |
|
25-Sep-2010 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Ignore errors from BIO_FLUSH. It might confuse users that provider wasn't really killed. What we really care about are write errors only. MFC after: 2 weeks
|
#
9839c97b |
|
22-Sep-2010 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Update copyright years. MFC after: 1 week
|
#
5e6dce4b |
|
23-Sep-2010 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
When trashing metadata, flush after each write. MFC after: 1 week
|
#
a478ea74 |
|
13-Sep-2010 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
- Allow to specify value as const pointers. - Make optional string values always an empty string.
|
#
d7f03759 |
|
19-Oct-2008 |
Ulf Lilleengen <lulf@FreeBSD.org> |
- Import the HEAD csup code which is the basis for the cvsmode work.
|
#
f0256e71 |
|
06-May-2007 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
When deleting key, flush write cache after each overwrite, so we don't overwrite data N times in cache and only once on disk.
|
#
97a669a3 |
|
04-Mar-2007 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Warn when user use sectorsize bigger than the page size, which will lead to problems when the geli device is used with file system or as a swap. Hopefully will prevent problems like kern/98742 in the future. MFC after: 1 week
|
#
469e9520 |
|
30-Sep-2006 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Remove trailing spaces.
|
#
8abd1ad1 |
|
16-Sep-2006 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Add 'configure' subcommand which for now only allows setting and removing of the BOOT flag. It can be performed on both attached and detached providers. Requested by: Matthias Lederhofer <matled@gmx.net> MFC after: 1 week
|
#
dec53cdd |
|
16-Sep-2006 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Remove extra arguments. MFC after: 3 days
|
#
85059016 |
|
09-Aug-2006 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Allow geli to operate on read-only providers. Initial patch from: vd MFC after: 2 weeks
|
#
c84efdca |
|
06-Jun-2006 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Allow to use the old -a option to specify an encryption algorithm to use (for backward compatibility), but print a warning to inform about the change.
|
#
eaa3b919 |
|
05-Jun-2006 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Implement data integrity verification (data authentication) for geli(8). Supported by: Wheel Sp. z o.o. (http://www.wheel.pl)
|
#
38ea96ac |
|
31-Jan-2006 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Remove trailing spaces.
|
#
7d54b385 |
|
17-Jan-2006 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
- Use better types. - Log problems at level 0 when killing providers. MFC after: 3 days
|
#
b5f30223 |
|
17-Jan-2006 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Check return value. Found by: Coverity Prevent(tm) MFC after: 3 days
|
#
7a5c26fc |
|
19-Aug-2005 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Allow to change number of iterations for PKCS#5v2. It can only be used when there is only one key set. MFC after: 3 days
|
#
c58794de |
|
27-Jul-2005 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Add GEOM_ELI class which provides GEOM providers encryption. For features list and usage see manual page: geli(8). Sponsored by: Wheel Sp. z o.o. http://www.wheel.pl MFC after: 1 week
|