OpenPGP for .NET version 1.7.7 released with support for ECC

We are happy to announce the release of version 1.7.7 of DidiSoft OpenPGP Library for .NET.

Please note that the new version will be installed into a new folder by default:

%ProgramFiles%\OpenPGP Library for .NET 1.7.7

%ProgramFiles(x86)%\OpenPGP Library for .NET 1.7.7 (on a 64 bit machine)

Support for Elliptic Curve cryptography in OpenPGP

Probably you know that an extension to the OpenPGP standard – RFC 6637, was released a year ago.

From this release DidiSoft OpenPGP Library for .NET fully supports RFC 6637 and successfully performs all OpenPGP operations with the new type of keys, including generation of OpenPGP ECC (Elliptic Curve) keys.

Getting started

Check our tutorial how to generate your first ECC OpenPGP key pair.

Should I use the new type of keys?

The encryption with ECC OpenPGP keys is considered to be much more secure compared to the current RSA and Elgamal (DH/DSS) keys.

Key pair generation is faster – less than 10 seconds for the strongest keys based on NIST curve P-521.

The encryption with EC keys is based on the Elliptic Curve Diffie-Hellman (ECDH) key agreement protocol.

Signing with EC keys is based on the Elliptic Curve DSA (ECDSA) algorithm.

The only drawback at the moment is the lack of support from the common OpenPGP software implementations.

Compatibility

According to the information that we have, currently only Symantec PGP command line version 10.2+ supports this new standard.

GnuPG will support it from version 2.1 on (still in beta though).

List of changes

Below is a list of changes in this release.

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

HISTORY:
——–

Version 1.7.7.0
Release date: June 25 2013

Changes in namespace DidiSoft.Pgp
[+] enum EcCurve – lists the supported Elliptic Curves supperted by OpenPGP (defined in RFC 6637)
[+] enum member KeyAlgorithm.EC – represents an asymmetric encryption with Elliptic curve/Diffie Hellman
[+] property KeyPairInformation.AlgorithmType – gets the asymmetric encryption algorithm used by this key
[+] method KeyStore.GenerateEccKeyPair – generates an Elliptic Curve OpenPGP key pair
[+] method KeyStore.GenerateRsaKeyPair – generates an RSA OpenPGP key pair with default algorithm preferrences
[+] method KeyStore.GenerateElgamalKeyPair – generates an Elgamal (DH/DSS) OpenPGP key pair with default algorithm preferrences
[+] method PGPKeyPair.GenerateEccKeyPair – generates an Elliptic Curve OpenPGP key pair
[+] method PGPKeyPair.GenerateRsaKeyPair – generates an RSA OpenPGP key pair with default algorithm preferrences
[+] method PGPKeyPair.GenerateElgamalKeyPair – generates an Elgamal (DH/DSS) OpenPGP key pair with default algorithm preferrences

Additional changes from previous releases

Version 1.7.6.7

Release date: May 27 2013

[+] DLL files that target Xamarin.Android located in the \Bin\Xamarin.Android subfolder of the
libary installation folder.

 

Version 1.7.6.6
Release date: May 20 2013

[*] Fixed KeyStore.ContainsPrivateKey(String)
It was returning true, even if there was no private key with the given user id or hexadecimal key id.

Version 1.7.6.5
Release date: May 16, 2013

Changes in namespace DidiSoft.Pgp
[+] KeyStore.AddUserId – Appends an additional User Id signature to a key
[+] KeyStore.DeleteUserId – Removes a user Id signature from a key
[+] KeyStore.ChangeUserId – Changes an existing user Id signature of a key
[+] KeyStore.ChangePrimaryUserId – Changes the primary (first) user Id signature of a key

As usual, don’t hesitate to drop us a line if you want to share your thoughts regarding the new release.