|
|
d27430 |
--- clevis-15.ori/src/clevis.1.adoc 2020-10-28 19:55:47.663228800 +0100
|
|
|
d27430 |
+++ clevis-15/src/clevis.1.adoc 2023-01-11 17:18:29.967295005 +0100
|
|
|
d27430 |
@@ -101,7 +101,7 @@
|
|
|
d27430 |
|
|
|
d27430 |
This command performs four steps:
|
|
|
d27430 |
|
|
|
d27430 |
-1. Creates a new key with the same entropy as the LUKS master key.
|
|
|
d27430 |
+1. Creates a new key with the same entropy as the LUKS master key -- maximum entropy bits is 256.
|
|
|
d27430 |
2. Encrypts the new key with Clevis.
|
|
|
d27430 |
3. Stores the Clevis JWE in the LUKS header.
|
|
|
d27430 |
4. Enables the new key for use with LUKS.
|
|
|
d27430 |
--- clevis-15.ori/src/luks/clevis-luks-bind.1.adoc 2020-10-28 19:55:47.663228800 +0100
|
|
|
d27430 |
+++ clevis-15/src/luks/clevis-luks-bind.1.adoc 2023-01-11 17:18:55.239351209 +0100
|
|
|
d27430 |
@@ -20,7 +20,7 @@
|
|
|
d27430 |
|
|
|
d27430 |
This command performs four steps:
|
|
|
d27430 |
|
|
|
d27430 |
-1. Creates a new key with the same entropy as the LUKS master key.
|
|
|
d27430 |
+1. Creates a new key with the same entropy as the LUKS master key -- maximum entropy bits is 256.
|
|
|
d27430 |
2. Encrypts the new key with Clevis.
|
|
|
d27430 |
3. Stores the Clevis JWE in the LUKS header.
|
|
|
d27430 |
4. Enables the new key for use with LUKS.
|
|
|
d27430 |
--- clevis-15.ori/src/luks/clevis-luks-common-functions 2023-01-11 17:15:44.984928070 +0100
|
|
|
d27430 |
+++ clevis-15/src/luks/clevis-luks-common-functions 2023-01-11 17:20:53.238613637 +0100
|
|
|
d27430 |
@@ -865,6 +865,7 @@
|
|
|
d27430 |
[ -z "${DEV}" ] && return 1
|
|
|
d27430 |
|
|
|
d27430 |
local dump filter bits
|
|
|
d27430 |
+ local MAX_ENTROPY_BITS=256
|
|
|
d27430 |
dump=$(cryptsetup luksDump "${DEV}")
|
|
|
d27430 |
if cryptsetup isLuks --type luks1 "${DEV}"; then
|
|
|
d27430 |
filter="$(echo "${dump}" | sed -rn 's|MK bits:[ \t]*([0-9]+)|\1|p')"
|
|
|
d27430 |
@@ -876,6 +877,9 @@
|
|
|
d27430 |
fi
|
|
|
d27430 |
|
|
|
d27430 |
bits="$(echo -n "${filter}" | sort -n | tail -n 1)"
|
|
|
d27430 |
+ if [ "${bits}" -gt "${MAX_ENTROPY_BITS}" ]; then
|
|
|
d27430 |
+ bits="${MAX_ENTROPY_BITS}"
|
|
|
d27430 |
+ fi
|
|
|
d27430 |
pwmake "${bits}"
|
|
|
d27430 |
}
|
|
|
d27430 |
|
|
|
d27430 |
--- clevis-15.ori/src/luks/clevis-luks-bind.in 2023-01-11 17:15:44.815927694 +0100
|
|
|
d27430 |
+++ clevis-15/src/luks/clevis-luks-bind.in 2023-01-12 16:20:30.266404993 +0100
|
|
|
d27430 |
@@ -19,6 +19,8 @@
|
|
|
d27430 |
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
d27430 |
#
|
|
|
d27430 |
|
|
|
d27430 |
+. clevis-luks-common-functions
|
|
|
d27430 |
+
|
|
|
d27430 |
SUMMARY="Binds a LUKS device using the specified policy"
|
|
|
d27430 |
UUID=cb6e8904-81ff-40da-a84a-07ab9ab5715e
|
|
|
d27430 |
|
|
|
d27430 |
@@ -139,14 +141,11 @@
|
|
|
d27430 |
fi
|
|
|
d27430 |
|
|
|
d27430 |
# Generate a key with the same entropy as the LUKS Master Key
|
|
|
d27430 |
-key="$(pwmake "$(
|
|
|
d27430 |
-cryptsetup luksDump "$DEV" \
|
|
|
d27430 |
- | if [ "$luks_type" == "luks1" ]; then
|
|
|
d27430 |
- sed -rn 's|MK bits:[ \t]*([0-9]+)|\1|p'
|
|
|
d27430 |
- else
|
|
|
d27430 |
- sed -rn 's|^\s+Key:\s+([0-9]+) bits\s*$|\1|p'
|
|
|
d27430 |
- fi | sort -n | tail -n 1
|
|
|
d27430 |
-)")"
|
|
|
d27430 |
+if ! key="$(clevis_luks_generate_key "${DEV}")" \
|
|
|
d27430 |
+ || [ -z "${key}" ]; then
|
|
|
d27430 |
+ echo "Unable to generate key for ${DEV}" >&2
|
|
|
d27430 |
+ return 1
|
|
|
d27430 |
+fi
|
|
|
d27430 |
|
|
|
d27430 |
# Encrypt the new key
|
|
|
d27430 |
jwe="$(echo -n "$key" | clevis encrypt "$PIN" "$CFG" "${YES}")"
|