While figuring out the new EdDSA mechanism I noticed the following line in the documentation, pretty sure it was relevant with earlier DSA too:
You don’t need to do anything with it, but don’t lose access to your Mac’s Keychain. If you lose it, you may not be able to issue any new updates!
Then I came across #1355 and got a little confused:
No. The appcast can have both DSA and EdDSA signatures at the same time, so both older and newer versions can use it.
You can back up login.keychain file that is encrypted using your Mac account's password (and then don't forget Mac account's password). Alternatively, you can find Sparkle's key in the keychain, print its content, and bury it under a tree ;)
I like what I'm hearing! 😄 So, both means I need to create DSA and EdDSA signatures for the update, correct? Can existing tools be used for that? Okay, finally decided to check and it looks like the previous sign_update refuses to work with explicitly provided DSA key and looks like only…sign_update has moved into old_dsa_scripts. Great!
So, what's the strategy in the long-run? Stop using DSA in a few releases and either ignore users with pre-EdDSA signatures or add intermediary version with final DSA support with an alternative solution, like manual download & install?
To be honest, we haven't worked out the long-term migration strategy yet #1355
It might be like this:
This way all old apps knowing old appcast will update to one version that has both DSA and EdDSA support, and on the next update that app will pull the real latest version from the new appcast.
Got you. Thanks for confirming this. One final thing, Sparkle sends User-Agent: MyApp/1.2.3 Sparkle/1.21.2 header with the appcast.xml request. Do you remember roughly how long has this been around and if it might change in the future? Want to know how reliable this in dynamic appcast requests.
It's been forever, and it's reliable except that the app name is localized, so you get ? for non-ASCII names if you localize your file name.
Ah, that's a very good point! Thanks for the insight Kornel! Much appreciated! 👍
@kornelski Out of curiosity, wont signing the dmg file with DSA and EdDSA produce a conflict or override one another? Or are two independent of each other?
Both can coexist. There's a new RSS attribute for EdDSA.