-
Notifications
You must be signed in to change notification settings - Fork 270
Upgrading from DSA to EdDSA signatures
Václav Slavík edited this page Mar 27, 2025
·
2 revisions
This document describes how to migrate apps that used older, now deprecated DSA signatures, to EdDSA without disruptions.
- Update WinSparkle bundled with the app to 0.9.0 or newer.
- Replace calls to
win_sparkle_set_dsa_pub_pem()
or use of theDSAPub
resource withwin_sparkle_set_eddsa_public_key()
orEdDSAPub
respectively, using a new EdDSA key. - Remove DSA public key from the application.
- Release the new version.
- Going forward, add
sparkle:edSignature
to appcast enclosures in addition to existingsparkle:dsaSignature
.
Following these steps ensures that older app versions will still be able to update to the latest version (using DSA for validation), while the newer versions of the app will use EdDSA.
To fully migrate away from DSA and stop signing updates with DSA, you have two options:
- Wait sufficiently long, until ~all users upgrade (or you don't care that some are left behind); or
- Change appcast feed URL in the new version of the app and stop publishing updates to the old URL. This will require users on old versions to update to future new versions in two steps: by first updating to the last DSA-signed version in the old feed, then updating from it to the latest version available on the new feed.
Or don't, and continue signing with DSA indefinitely... Note that WinSparkle will ignore both the DSA key and DSA signatures if it was provided with an EdDSA public key, so continuing to sign with DSA does not reduce security of new versions of your app.
- Mac Sparkle's docs on the subject with feed examples.
- Discussion of DSA's worse security: e.g. here, here or here.
App update framework for Windows, inspired by Sparkle for OS X. https://winsparkle.org/