New in This Version
Back to the SPGP page
- A small memory leak in two of the preferences functions has been eliminated.
- Fixed a problem with certain dialogs and preferences-functions failing under PGP 6.0.2.
- Fixed a problem with signature properties, again.
- Fixed a problem with signature properties not clearing between sessions. The key-import functions will now preserve ADKs in imported keys.
- Preferences. The preferences functions spgpGetPreference and spgpSetPreference have been superceded by two new functions: spgpGetPreferences and spgpSetPreferences. The old functions are still included in the library for purposes of compatibility. The new function spgpPreferencesDialog posts the PGP Preferences dialog under PGP 5.5.x and 6.x.
- Fixed a small problem with spgpKeyPropUserID returning a blank when it encountered a photograph instead of a User ID.
- User-Interface Dialogs. Two of the UI dialogs (spgpUISigningPassphraseDialog and spgpUIConfirmationPassphraseDialog) now can be used with PGP 5.5.x. The key- and subkey-generation dialogs now use the native PGP entropy-gathering dialog under version 5.5.x. The function spgpEstimatePassphraseQuality can now be used under 5.5.x. (This was not previously listed as 'PGP 6 only', sorry.) A new function has been added: spgpSelectKeysDialog displays a list of keys which the user can examine and select (like PGP's key-import dialog).
- ADK/Revocation. Two functions have been added: spgpKeyPropADK returns the properties of a key's Additional Decryption Keys, and spgpKeyPropRevocationKey returns the properties of a key's designated revocation keys.
- Several of the new functions employ a new method of returning key properties, which will eventually be used throughout SPGP. You can also see a "sneak preview" of this method in spgpKeyRingID and spgpKeyProps. Please see the Notes sections of those two functions for details. All other functions continue to use the old-style strings.
- The Visual Basic 5 project has been modified (only very slightly, sorry) to reflect some of these changes. There are also three new test keys included with the project to help demonstrate the ADK and revocation-key properties.
- Miscellaneous internal adjustments related to version-detection. Related problem: spgpAnalyzeEx wasn't returning the IDs of found keys under PGP 5.5; this is fixed. Some version problems may still be lurking.
- Key Generation, part 1: The parameter "ValidFrom" has been removed from the spgpSubKeyGenerate function. The parameter "NewSubKeyHexID" has been added to the function's declaration in SPGP.BAS.
- Key Generation, part 2: Version 2.4.0 was partially limited to PGP 6.x by the lack of a dialog for gathering random user-input in PGP 5.5.x. This has been remedied by the addition of a dialog written to emulate the PGP 6.x dialog. Please see the spgpKeyGenerate Notes for details.
- Important Backward-Compatibility Notice: In order to reduce confusion over the functions with multiple versions (e.g., spgpEncode/spgp_Encode), the older versions have been removed from the Function Reference, and their declarations have been commented-out in SPGP.BAS (though they are still in the library itself and will remain there indefinitely). The old names are now aliased to the new versions: for example,
spgpEncode alias "spgpencode"
is now spgpEncode alias "spgp_encode"
. The idea is to keep the name "spgpEncode" aliased to the newest version of that function. The affected functions are spgpEncode, spgpEncodeFile, spgpKeyImport, and spgpKeyImportFile. If you are still using any of these versions, you will need to edit SPGP.BAS.
- Key Generation: I said the UI dialogs couldn't be done, and they were done. I said key generation wouldn't happen, and here it is. It appears that I am completely unreliable. spgpKeyGenerate creates RSA sign/encrypt keys and DSA sign-only keys. spgpSubKeyGenerate adds encryption sub-keys to existing DSA keys to create "DH/DSS" keys. These are both experimental and their parameters might change in the future.
- SDK API Version: The introduction of the UI Dialogs in 2.3.0 made more pressing the need for some way of detecting the installed PGP version -- or, more accurately, the API version. spgpSdkApiVersion returns a value which can be used to test for a certain API version on the target machine.
- Misc. Internals: (1) An error code has finally been added to report when the PGPsdk DLL is missing or cannot be loaded. (2) Previous versions of SPGP became confused when PGPsdk DLLs from both version 5 (pgpsdk.dll) and 6 (pgp_sdk.dll) were found. (This is possible after an incomplete removal/re-installation.) SPGP now attempts to resolve the ambiguity by searching for other PGP 5/6 DLLs in an attempt to find the most likely installed version. If the ambiguity cannot be resolved, pgp_sdk.dll will be loaded by default.
- User-Interface Dialogs: Finally, the most-requested feature, access to the standard PGP dialogs. spgpUIRecipientsDialog for selecting recipients from a list of User IDs, spgpUISigningPassphraseDialog for selecting a secret key and providing the corresponding passphrase, spgpUIConfirmationPassphraseDialog for providing a passphrase with a second 'confirm' box (and other options), and spgpUIKeyPassphraseDialog for providing the passphrase for a single secret key. These are only available for PGP versions 6 or higher.
- A second sample VB project has been added to the VB5Project archive to provide examples of the new dialog functions.
- More Encode variants: Two more variations on spgpEncode for your encrypting pleasure: spgpUIEncode and spgpUIEncodeFile. These functions get information about recipients, keys, and passphrases from the user via PGP's user-interface dialogs rather than from the developer via function parameters. These are only available for PGP versions 6 or higher. (These functions are demonstrated in the sample VB application by ticking 'Use UI' when encrypting or signing.)
- Passphrase Quality: spgpEstimatePassphraseQuality gives the developer access to the passphrase quality algorithm used in PGP's key-generation wizard.
- SPGP.BAS now includes the ordinal values of the various functions, for those of you who would rather import by ordinal.
Back to the SPGP page