Add ML-DSA-65 support - #118
Conversation
921a2a4 to
984e6b0
Compare
|
Out of curiosity, have you been able to successfully register an ML-DSA-65 key with I got a couple reports (in an unrelated project) where the bootloader rejects ML-DSA public keys with: but RSA public keys still work fine. It seems to only affect Seems there might be a bootloader bug in these new devices. |
|
AFAIK, need to flash the latest OS release and boot it once for citadeld to update the GSC firmware, via The device is not guaranteed to have latest release (CD1A.260714.001.A9) out of the box. This was from Pixel 11 Pro XL (kodiak) out of the box, where If With
|
|
Edit: Doesn't seem to boot yet, though seems to be just me using stock kernel on a Will need to try on a locked |
I noticed in the OTA postinstall script in # Run epic_postinstall_runner
#
# TODO(b/532226255): Disabled due to reboot communication bug. Causes
# NUGGET_PARAM_AP_IS_REBOOTING call in gscproxy init to fail since an earlier
# call to enable deferred updates staged by the below script will reboot the
# GSC.
#
# Re-enable once:
# 1. Reboot-on-status-clear SPI communication bug is fixed
# 2. Postinstall script is able to determine GSC SPI communication bug is fixed
# somehow
# /postinstall/bin/hw/epic_postinstall_runner |
Stock kernel is able to boot on userdebug build with locked bootloader and ML-DSA |
|
@inthewaves Should I merge this then? |
| # decrypt keys in advance for improved performance and modern algorithm support | ||
| KEY_DIR=$(mktemp -d /dev/shm/generate-release.XXXXXXXXXX) | ||
| trap "rm -rf \"$KEY_DIR\" && rm -f \"$PWD/$RELEASE_OUT/keys\"" EXIT | ||
| cp "$PERSISTENT_KEY_DIR"/* "$KEY_DIR" | ||
| script/decrypt-keys "$KEY_DIR" | ||
|
|
||
| OLD_PATH="$PATH" | ||
| export PATH="$PWD/prebuilts/build-tools/linux-x86/bin:$PATH" | ||
| export PATH="$PWD/prebuilts/build-tools/path/linux-x86:$PATH" |
There was a problem hiding this comment.
It might be better to move these PATH exports above script/decrypt-keys so that prebuilts/build-tools/linux-x86/bin/openssl can be used for script/decrypt-keys. Certain operating systems that are officially supported for building (https://grapheneos.org/build#build-dependencies) such as Ubuntu 24.04 LTS can have outdated OpenSSL versions that don't support ML-DSA
There was a problem hiding this comment.
@inthewaves should similar be done in generate-delta.sh, encrypt-keys, generate-keys?
There was a problem hiding this comment.
Yes, I think we should change those too
I tested on another new device (11 Pro Fold) and this time updated using stock OS updater (stock OS Settings > System > Software updates > System update), and it'll just do the firmware update on the next boot After updating from CD1A.260618.001.A9 (out of the box) to CD1A.260714.001.A9, the citadeld updates will look like this in logcat during the first boot into new update, especially indicated by |
|
https://android.googlesource.com/platform/external/nos/host/generic/+/android-9.0.0_r22/citadel/updater/updater.cpp#138 has some more context albeit in an outdated branch, since this seems to now be under Google's proprietary trees Also readable via |
No description provided.