OpenPGP for .NET – Recent updates, September 2013

Dear Friends,

In the past two months some minor updates of DidiSoft OpenPGP Library for .NET has been published.

A brief list of the changes can be found below:

[*] : Bug
[+] : New
[-] : Removed
[!] : Modification


Release date: September 4th 2013

[+] Added property KeyPairInformation.ExpirationTime

Release date: August 27th 2013

[+] Added support for X.509 certificates to KeyStore.ImportPublicKey
[+] Added support for X.509 private keys to KeyStore.ImportPrivateKey
[+] Added method PGPLib.SignAndEncryptStream – with support to encrypt for multiple recipients

Release date: August 23th 2013

Changes in namespace DidiSoft.Pgp
[+] added PGPLib.EncryptFile – an overloaded version that accepts a KeyStore and multiple recipients
[+] added PGPLib.EncryptString – an overloaded version that accepts a KeyStore and multiple recipients
[+] added KeyStore.ImportPublicKey – an overloaded version that accepts a FileInfo parameter
[*] Fixed bug in PGPLib.DecryptString – when decrypting a multiple recipients message and in a KeyStore there are multiple
matching private keys, if we have specified the password for the second matching private key
a WrongPasswordException was thrown. This has been fixed and now it decrypts with the second matching private key as well.

Release date: August 16th 2013

[*] Fixed bug in PGPLib.DecryptString – exception was thrown wne decrypting signed message
[*] Fixed bug in PGPLib.DecryptAndVerifyString – empty result string was returned when the public key didn’t match the digital signature.

Release date: August 05th 2013

[!] The Windows 8 WinRT files were renamed as follows:
DidiSoft.Pgp.WinRT.dll -> DidiSoft.Pgp.dll
DidiSoft.Pgp.WinJS.winmd -> DidiSoft.Pgp.WinRT.winmd
The namespace that provides support for Windows.Storage.StorageFile was also renamed to DidiSoft.Pgp.WinRT.

[!] Encryption and signing with X.509 keys now uses internally OpenPGP version 4 keys with constant Key Id (the time parameter used in the Key Id calculation is now the “NotBefore” date of the X.509 certificate instead of the current system time)

Release date: July 22th 2013

[*] Fixed bug when generating binary detached signatures with the methods

Release date: July 17 2013

[+] Added transparent support in the DidiSoft.Pgp.PGPLib class for X.509 keys located in .p12/.pfx and certificates in .cer/.p7b files.
The implementation mimics the behaviour of Symantec PGP Desktop 10.x.
At this stage the implementation is not compatible with GpgSM (project Sphinx)

Release date: July 08 2013

[*] Fixed bug in OpenPGP ECC decryption.
The encrypted and padded session key was read as serialized BigInteger type but in some cases this was leading to ‘loosing’ of the first byte. This was corrected and now the session key is being read as a plain byte array.

Release date: July 01 2013

[*] Fixed bug in method PGPLib.SignFile with a private key as a Stream parameter

Please don’t hesitate to contact us if you need more explanations regarding these updates and fixes.