Yes, there are several ways to create protected downloadable upgrades that only work for your Customers and you never need to send out a new Key.
If you release a FREE upgrade, then you probably want to create a "generic" upgrade that works for every Customer that already possesses a Key for your Product. In this case, you simply create the upgrade to check for your same unique Key that was required for the old version of your Product. Once the upgrade is placed on your website, each Customer just downloads and installs the upgrade. It works immediately because they already have the Key from the old version of your Product. There is no need to send them a new Key.
If you release a NON-FREE upgrade, there are at least two ways to ensure that every Customer pays for the upgrade:
- One way is to create a separate upgrade for the Serial Number of every Customer that orders the upgrade. Each upgrade would then require your specific Product Rockey of a specific Serial Number. For a small number of upgrades, this may be a workable solution.
- Another way is for the Upgrade to require a Feature-Flag* in order to run. For example, your Upgraded software might check the Feature-Flags to see if Feature-Flag #2 is set to ON. If so, it would run normally, but if not, it would display a message explaining how to "purchase" a Renew Code. The purchased Renew Code would set Feature-Flag #2 to ON, which would allow the upgrade to run normally.
* There are 16 single-bit Feature-Flags that are stored securely in the memory of every Key. Each flag can be On or Off. These flags can be set by KeyBuild when the Key is built. Once the Key is in the Customer's possession, these Flags can be read by your protected program using the KeyChk DLL. Also, all 16 Feature-Flags can be turned On or Off by the Renew program.