.NET PGP Library Changelog

What's new in .NET PGP Library 1.9.4.61

Apr 17, 2024
  • Package DidiSoft.Pgp:
  • PGPLib.DetachedSignFile,
  • PGPLib.DetachedSignStream,
  • PGPLib.DetachedSignString - changed signature format to version 4 (was version 3 before) - now icnludes signer User Id(s)

New in .NET PGP Library 1.9.4.54 (Mar 14, 2024)

  • Improved generation speed of RSA based PGP keys. Affected platforms .NET Framework 4.7.2 and greater, .NET 5 and greater

New in .NET PGP Library 1.9.4.53 (Mar 6, 2024)

  • DidiSoft.Pgp.KeyStore.Save(false) - wasn't saving the keyStore despite having AutoSave on!

New in .NET PGP Library 1.9.4.42 (Jan 23, 2024)

  • DidiSoft.Pgp.KeyStore.GenerateKeyPair - when only a single Summetric cipher is specified, it was ignored
  • DidiSoft.Pgp.KeyStore.GenerateKeyPair - default preffered algorithms for Hashes/Symmetric ciphers, were modified to match those in FIPS 140-2

New in .NET PGP Library 1.9.4.41 (Nov 17, 2023)

  • Minimum supported .NET Framework version lowered from 3.5 to 2.0

New in .NET PGP Library 1.9.4.34 (Oct 24, 2023)

  • Fix in accepting keys as inline Strings

New in .NET PGP Library 1.9.4.24 (Mar 28, 2023)

  • .NET 7 binaries
  • PowerShel module License Agreement

New in .NET PGP Library 1.9.4.22 (Feb 17, 2023)

  • Fixed a bug in AEAD/OCB OpenPGP decryption.

New in .NET PGP Library 1.9.4.21 (Feb 9, 2023)

  • Support for keys stored and loaded from Azure Key Vault
  • PGPLib.AciiCommentHeaders - support for multiline "Comment:" headers in ASCII armored output
  • KeyStore.AciiCommentHeaders - support for multiline "Comment:" headers in ASCII armored output
  • KeyPairInformation.AciiCommentHeaders - support for multiline "Comment:" headers in ASCII armored output
  • RevocationLib.AciiCommentHeaders - support for multiline "Comment:" headers in ASCII armored output

New in .NET PGP Library 1.9.4.13 (Jan 14, 2023)

  • PGPLibSignAndEncryptStream - with keys as ASCII armored strings or file location

New in .NET PGP Library 1.9.4.12 (Dec 24, 2022)

  • DidiSoft.Pgp.PGPLib - valid keys were treated as expired!

New in .NET PGP Library 1.9.3.102 (Sep 29, 2022)

  • KeyStore.GenerateDhDssKeyPair - keys with key stregth over 1024 bits will sign the subkeys with the specified key creation hash instead of SHA-256

New in .NET PGP Library 1.9.3.101 (Sep 24, 2022)

  • KeyStore.GenerateRsaKeyPair - keys with key stregth equal or below 1024 bits will sign the subkeys with the specified key creation hash instead of SHA-1

New in .NET PGP Library 1.9.3.94 (Jul 18, 2022)

  • Namespace DidiSoft.Pgp.Smartcard (DidiSoft.Pgp.Smartcard.dll)
  • [+] SmartcardPrivateKey.GetFingerprint() - returns the fingerprint of the key

New in .NET PGP Library 1.9.3.93 (Jul 17, 2022)

  • Added support for hashed PINs KDF-DO defined in the OpenPGP Card 3.4 spec.

New in .NET PGP Library 1.9.3.91 (Jul 1, 2022)

  • Support for decrypting data encrypted with AEAD cipher
  • In Key Generation User ID's of RSA keys were signed with SHA1, now KeyStore.KeyCreationHash is used

New in .NET PGP Library 1.9.3.81 (Mar 13, 2022)

  • PGPLib.Encrypt - now can also enrypt with private key only
  • PGPLib.EncryptStream - public key accepted as string
  • DidiSoft.Pgp.Smartcard.dll - added support for hashed PINs KDF-DO

New in .NET PGP Library 1.9.3.73 (Feb 21, 2022)

  • .NET 6.0 support
  • JDK 7 compatability with odd RSA signature length

New in .NET PGP Library 1.9.3.71 (Jan 13, 2022)

  • .NET 6.0 support
  • JDK 7 compatability with odd RSA signature length

New in .NET PGP Library 1.9.3.61 (Dec 14, 2021)

  • KeypairInformation(byte[]) - input data checked to be a public or private key
  • PGPLib.EncryptStringWithPassword - stack overflow error was thrown

New in .NET PGP Library 1.9.3.51 (Oct 4, 2021)

  • PowerShell:
  • ConvertTo-PgpEncryptedFile -PgpExtension <ext> => extension for the output file(s)
  • ConvertTo-PgpSignedAndEncryptedFile -EachFile => in case of directory each file will be encrypted individually
  • ConvertTo-PgpSignedAndEncryptedFile -ForcePgpExtension => .pgp extension swaps the input file extension
  • ConvertTo-PgpSignedAndEncryptedFile -PgpExtension <ext> => extension for the output file(s)
  • Namespace DidiSoft.Pgp.Net:
  • LDAPClient.GetSingleKeyByUserId - gets the first matching key from an LDAP key server
  • LDAPClient.GetMultipleKeysByUserId - gets all matching keys from an LDAP key server

New in .NET PGP Library 1.9.3.41 (Jul 13, 2021)

  • DidiSoft.Pgp.PGPLib.DetachedVerify - added cleanup code for ASCII armored signatures

New in .NET PGP Library 1.9.3.21 (Mar 4, 2021)

  • Namespace DidiSoft.Pgp
  • KeyStore.KeyCreationCipher - the CypherAlgorithm used for storing the private key parameters at key generation time
  • KeyStore.KeyCreationHash - the HashAlgorithm used for storing the private key parameters at key generation time

New in .NET PGP Library 1.9.3.11 (Jan 27, 2021)

  • Creating keys based on Curve 25519
  • DidiSoft.Pgp.KeyStore.GenerateEccKeyPair - added support for DidiSoft.Pgp.EcCurve.EdDsa and DidiSoft.Pgp.EcCurve.Curve25519
  • DidiSoft.Pgp.EcCurve.Ed25519 - EdDsa over Curve 25519
  • DidiSoft.Pgp.EcCurve.EdDsa - EdDsa over Curve 25519 (same as DidiSoft.Pgp.EcCurve.Ed25519)
  • DidiSoft.Pgp.Net.HkpClient updated to support TLS 1.3
  • Migrated to BouncyCastle 1.8.9

New in .NET PGP Library 1.9.2.131 (Dec 21, 2020)

  • KeyPairInformation.ExportPublicKeyAsBytes - trust packets are now not also exported.

New in .NET PGP Library 1.9.2.122 (Dec 3, 2020)

  • Namespace DidiSoft.Pgp:
  • KeyStore.GenerateKeyPair - encryption sub key was missing the settings of the master key

New in .NET PGP Library 1.9.2.121 (Nov 26, 2020)

  • [!] PGPLib.DecryptStreamPBE, PGPLib.DecryptStreamWithPassword - Updated: in case of non PGP file input will throw NonPGPDataException

New in .NET PGP Library 1.9.2.112 (Nov 25, 2020)

  • Namespace DidiSoft.Pgp:
  • PGPLib.DecryptStreamPBE, PGPLib.DecryptStreamWithPassword - in case of non PGP file input will throw NonPGPDataException
  • Namespace DidiSoft.Pgp:
  • Fix in KeyStore.ImportKeyPair when importing from .skr or .pkr files

New in .NET PGP Library 1.9.2.111 (Nov 18, 2020)

  • Fix in KeyStore.ImportKeyPair when importing from .skr or .pkr files

New in .NET PGP Library 1.9.2.101 (Nov 11, 2020)

  • Setup Wizard was overwriting the BinNET47 folder with the DLL files from NetStandard 2.1

New in .NET PGP Library 1.9.2.93 (Oct 22, 2020)

  • PGPLIb.DetachedSignStream - overloaded version with private key as String

New in .NET PGP Library 1.9.2.91 (Sep 24, 2020)

  • Ships with a set of .NET 4.8 assemblies
  • .NET Compact Framework assemblies have been removed!

New in .NET PGP Library 1.9.2.81 (Sep 15, 2020)

  • Ships with a set of .NET 4.8 assemblies
  • .NET Compact Framework assemblies have been removed!

New in .NET PGP Library 1.9.2.71 (Jun 19, 2020)

  • Ships with a set of .NET Standard 2.1 assemblies

New in .NET PGP Library 1.9.2.63 (Jun 14, 2020)

  • PGPLib.TempFolderLocation - File system Path string to the temp files folder. Used when encrypting multiple files

New in .NET PGP Library 1.9.2.61 (Apr 3, 2020)

  • Added missing async methods to the PGPLib and KeyStore classes

New in .NET PGP Library 1.9.2.54 (Mar 24, 2020)

  • Namespace DidiSoft.Pgp.Smartcard
  • Added support for ECC OpenPGP keys according to OpenPGP card specification version 3.3

New in .NET PGP Library 1.9.2.53 (Mar 9, 2020)

  • SmartcardKeyStore.OpenDefaultSmartcard - overloaded method without password
  • Bug in reading smat card serial number

New in .NET PGP Library 1.9.2.52 (Mar 9, 2020)

  • Namespace DidiSoft.Pgp.Smartcard:
  • SmartcardKeyStore.Login - login method
  • SmartcardKeyStore.IsAuthenticated - checks is PIN 1 password already entered
  • DidiSoft.Pgp.Smartcard.dll fixed incompatibility with ACS ACOSJ Java card.

New in .NET PGP Library 1.9.2.51 (Feb 18, 2020)

  • OpenPGP Sign/Verify operations with EdDSA signing keys based on https://tools.ietf.org/html/draft-koch-eddsa-for-openpgp-00#section-4
  • OpenPGP Encrypt/Decrypt operations with ECC keys based on Curve 25519 https://tools.ietf.org/html/draft-ietf-openpgp-rfc4880bis-03#section-9.2

New in .NET PGP Library 1.9.2.42 (Feb 12, 2020)

  • PGPLib.Decrypt - private key passwords with non UTF-8 encoding are also supported

New in .NET PGP Library 1.9.2.41 (Feb 12, 2020)

  • SmartcardKeyStore.ImportPrivateKey - set of overloaded methods for importing existing private keys on the card
  • SmartcardKeyStore.GenerateRsaKeyPair - creates an RSA key with given strength directly on the smartcard
  • SmartcardKeyStore.CardName - property for the the card name
  • SmartcardKeyStore.Pin1RetriesCount - property for the the PIN1 remaining retries
  • SmartcardKeyStore.ResetCounterRetriesCount - property for the the Reset Counter remaining retries
  • SmartcardKeyStore.ApplicationId - property for OpenPGP Application ID on the card
  • SmartcardKeyStore.ApplicationVersion - property for OpenPGP Application Version on the card
  • SmartcardKeyStore.CardManufacturer - property for the name of the card manifacturer
  • SmartcardKeyStore.SerialNumber - property for the name of the card Serial Number
  • SmartcardKeyStore.GetKey(SmartcardKeyType type) - returns given key type from the card

New in .NET PGP Library 1.9.2.31 (Dec 9, 2019)

  • Namespace DidiSoft.Pgp:
  • PGPLib.GenerateElgamalKeyPair, PGPLib.DhDssKeyPair - bug when generating 4096 bit encryption keys
  • PGPLib.GenerateElgamalKeyPair, PGPLib.DhDssKeyPair - added support for 6144 and 8192 bit encryption keys
  • OpenPGP Smartcard support:
  • PGPLib.EncryptFile, PGPLib.EncryptStream - with the encryption key from DidiSoft.Pgp.Smartcard.SmartcardKeyStore

New in .NET PGP Library 1.9.2.21 (Nov 27, 2019)

  • PGPLib.ClearSign with Smartcard (Yubikey/OpenPGP card) - an error was thrown when using RSA 4096 bit keys

New in .NET PGP Library 1.9.2.13 (Nov 26, 2019)

  • Added missed support for Clear text signed with SHA-224

New in .NET PGP Library 1.9.1.62 (Nov 7, 2019)

  • Namespace DidiSoft.Pgp:
  • PGPLib.EncryptString - overloaded methods with System.Text.Encoding parameter that determines how the string being encrypted is converted to raw bytes

New in .NET PGP Library 1.9.1.61 (Nov 7, 2019)

  • PowerShell
  • ConvertTo-PgpEncryptedString - PGP encrypts a string from the pipeline or from -InputObject parameter
  • ConvertFrom-PgpEncryptedString - decrypts PGP encrypted string from the pipeline or from -InputObject parameter

New in .NET PGP Library 1.9.1.52 (Oct 11, 2019)

  • PGPLib.ExportPublicKey - overloaded methods for exporting multiple keys into one file
  • PGPLib.ExportPrivateKey - overloaded methods for exporting multiple keys into one file

New in .NET PGP Library 1.9.1.51 (Oct 11, 2019)

  • PGPLib.IntegrityProtectArchives is now set to TRUE by default in order to comply with GnuPG 2.1+ and later versions.
  • KeyStore.Save - when used with custom IKeyStorage implementation an exception was thrown.

New in .NET PGP Library 1.9.1.44 (Oct 11, 2019)

  • Added support for EC Curve 25519 (OID 1.3.6.1.4.1.3029.1.5.1) - the same patch applied in the NetStandard dll's

New in .NET PGP Library 1.9.1.43 (Oct 11, 2019)

  • Added support for EC Curve 25519 (OID 1.3.6.1.4.1.3029.1.5.1)
  • DidiSoft.Pgp.PGPLib now implmenets the IDisposable interface

New in .NET PGP Library 1.9.1.42 (Oct 1, 2019)

  • PowerShell
  • Fix in ConvertTo-PgpEccrypted file when used with -Pubring parameter

New in .NET PGP Library 1.9.1.41 (Aug 29, 2019)

  • Fixed cleanup code in PGPLib.DecryptFile(string, KeyStore, string, string) which wasn't executed in case of EndOfStreamException

New in .NET PGP Library 1.9.1.21 (Jun 29, 2019)

  • PowerShell module - DidiSoft.Pgp.PowerShell.dll
  • ConvertTo-PgpEncryptedFile - new parameter(s) of type SecureString -SecureKeyStorePassword
  • ConvertTo-PgpEncryptedFile - new parameter for resusing PGP/GnuPG key rings -Pubring
  • ConvertFrom-PgpEncryptedFile - new parameter of type SecureString -SecurePassword
  • ConvertFrom-PgpEncryptedFile - new parameter for resusing PGP/GnuPG key rings -Secring
  • ConvertTo-PgpSignedAndEncryptedFile - new parameter of type SecureString -SecureKeyStorePassword
  • ConvertTo-PgpSignedAndEncryptedFile - new parameter for resusing PGP/GnuPG key rings -Pubring
  • ConvertTo-PgpSignedAndEncryptedFile - new parameter of type SecureString -SecurePassword
  • ConvertTo-PgpSignedAndEncryptedFile - new parameter for resusing PGP/GnuPG key rings -Secring
  • ConvertFrom-PgpSignedAndEncryptedFile - new parameter of type SecureString -SecurePassword
  • ConvertFrom-PgpSignedAndEncryptedFile - new parameter for resusing PGP/GnuPG key rings -Secring
  • Test-PgpSignedFile - new parameter(s) of type SecureString -SecureKeyStorePassword
  • Test-PgpSignedFile - new parameter for resusing PGP/GnuPG key rings -Pubring
  • Test-PgpClearSignedFile - new parameter(s) of type SecureString -SecureKeyStorePassword
  • Test-PgpClearSignedFile - new parameter for resusing PGP/GnuPG key rings -Pubring
  • Test-PgpDetachedSignedFile - new parameter(s) of type SecureString -SecureKeyStorePassword
  • Test-PgpDetachedSignedFile - new parameter for resusing PGP/GnuPG key rings -Pubring

New in .NET PGP Library 1.9.1.11 (May 22, 2019)

  • Assembly DidiSoft.Pgp.Smartcard.dll - .NET Framework assembly for OpenPGP smartcards (Yubikey, Nitrokey, etc.)
  • namespace DidiSoft.Pgp.Smartcard
  • SmartcardKeyStore - provides access to OpenPGP smartcards
  • SmartcardPrivateKey - abstraction over OpenPGP key contained in a smartcard
  • SmartcardException - exception trown in case of smartcard communication error
  • namespace DidiSoft.Pgp:
  • PGPLib.ClearSignXX - overloaded methods that accept SmartcardKeyStore
  • PGPLib.SignXX - overloaded methods that accept SmartcardKeyStore
  • PGPLib.DetachedSignXX - overloaded methods that accept SmartcardKeyStore
  • PGPLib.DecryptXX - overloaded methods that accept SmartcardKeyStore

New in .NET PGP Library 1.9.0.24 (Mar 29, 2019)

  • Compression mode switched from Max compression to speed optimization.

New in .NET PGP Library 1.9.0.23 (Mar 28, 2019)

  • Fix in PowerShell documentation

New in .NET PGP Library 1.9.0.22 (Mar 28, 2019)

  • Namespace DidiSoft.Pgp:
  • PGPLib.Encrypt - fix in rare cases with Zlib compression causing IndexOutOfRangeException

New in .NET PGP Library 1.9.0.21 (Mar 28, 2019)

  • Namespace DidiSoft.Pgp
  • KeyStore.ImportGnuPgKbx(byte[]) - fix for the overloaded versiion with byte array input

New in .NET PGP Library 1.9.0.14 (Mar 21, 2019)

  • Error messages for Wrong Password of a key were modified.
  • ASCII armored keys with Charset: field can be processed.

New in .NET PGP Library 1.9.0.12 (Mar 21, 2019)

  • End Of Life (EOL) and End of Vendor support (EOVS) for version 1.8 is set to 31 December 2024
  • Dependant assembly BouncyCastle.CryptoExt.dll has been renamed to DidiSoft.BouncyCastle.dll
  • Namespace DidiSoft.Pgp
  • KeyStore.ImportGnuPgKbx - Imports GnuPG 2+ Keybox storage
  • EdDSA keys are recognized as EC keys
  • Added LDAP and Mail DLL's for NetStandard 1.6, NetStandard 2.0 and .NET Core 2.0

New in .NET PGP Library 1.8.5.31 (Nov 29, 2018)

  • Namespace DidiSoft.Pgp
  • PGPLib.Sign
  • PGPLib.SignAndEncrypt
  • KeyStore.ImportPublicKey
  • All the above were affected by change in version 1.8.3.5 related to Fixed compatibility with OpenPGP solutions developed in Java that suffer from update in JDK 7 and later where RSA signatures without leading zeroes were rejected!
  • The bug was produced by not correctly encoding the signature length.

New in .NET PGP Library 1.8.5.21 (Nov 14, 2018)

  • GPLib.EncryptFolder - added overloaded version with keys in KeyStore that support multiple recipients

New in .NET PGP Library 1.8.5.12 (Oct 19, 2018)

  • KeyStore[i] - Item access to the keys inside the KeyStore
  • KeyStore.Count - count of keys stored inside the KeyStore
  • KeyStore.ExportKeyPair - more meaningful alias of KeyStore.ExportKeyRing
  • KeyStore.AddSigningSubKey - previously created signing keys were marked as encyption sub keys
  • KeyStore.AddSigningSubKey - changed to return KeyPairInformation.SubKey
  • KeyStore.AddEncryptionSubKey - changed to return KeyPairInformation.SubKey
  • KeyPairInformation.SubKey.Parent - property to return the parent KeyPairInformation this sub key belongs to
  • KeyPairInformation.SubKey - Implicit cast to KeyPairInformation like :
  • KeyPairInformation.SubKey subKey1;
  • KeyPairInformation parentKey = subKey1; // subKey1 holds internal information for its parent and knows how to cast!

New in .NET PGP Library 1.8.4.5001 (Oct 12, 2018)

  • KeyPairInformation.ModificationDetectionFeature - property indicating does the system that produced this key support Modification Detection Code/Integrity Check
  • KeyStore.ExportPartialPrivateKeyRing - methods for exporting a detached/partial private key, where the private key material of the master key is not written
  • KeyStore.AddSigningSubKey - methods for adding additional signing sub keys to an existing OpenPGP key
  • KeyStore.AddEncryptionSubKey - fix when creating ECC keys to support the Brainpool Elliptic Curves

New in .NET PGP Library 1.8.4.4001 (Sep 14, 2018)

  • ConvertTo-PgpEncryptedFile - added parameter IntegrityProtect that controls shall an Integrity protection packet (also known as MDC, Modification Detection Code) be added
  • ConvertTo-PgpSignedAndEncryptedFile - added parameter IntegrityProtect that controls shall an Integrity protection packet (also known as MDC, Modification Detection Code) be added
  • PGPLib.EncryptFile - missed to respect the IntegrityProtectArchives property value in one of the overloaded versions of the method

New in .NET PGP Library 1.8.4.35 (Aug 19, 2018)

  • Added support for Unicode private key passwords created with the library
  • Added support for Unicode passwords protecting DidiSoft.Pgp.KeyStore storage
  • Added support for Unicode passwords for encrypted with a password or signed and encrypted with a password .pgp files

New in .NET PGP Library 1.8.4.25 (Aug 7, 2018)

  • Fixed import of ASCII armored keys without Version header

New in .NET PGP Library 1.8.4.10 (Jul 3, 2018)

  • PGPLib.IntegrityProtectArchives - a new property that controls shall an Integrity protection packet (also known as MDC, Modification Detection Code) be added implicitly in the methods where it is not specified.
  • This property must be turned on for compatibility with all new versions of GnuPG (as of 2.2.8) from now on!
  • PGPLib.EncryptString - all methods are affected by the property PGPLib.IntegrityProtectArchives
  • PGPLib.SignAndEncryptString - all methods are affected by the property PGPLib.IntegrityProtectArchives

New in .NET PGP Library 1.8.3.4 (Jun 1, 2018)

  • Fixed support for non-Unicode private key passwords.

New in .NET PGP Library 1.8.3.0 (Mar 22, 2018)

  • Additional Assembly DLL - DidiSoft.Pgp.Mail.dll providing plugable PGP/MIME support
  • New namespace DidiSoft.Pgp.Mail
  • New class DidiSoft.Pgp.Mail.PGPMailLib - providing plugable PGP/MIME support

New in .NET PGP Library 1.8.2.8 (Mar 6, 2018)

  • Namespace DidiSoft.Pgp:
  • KeyPairInformation.GetEcCurve() - Returns the DidiSoft.Pgp.EcCurve behind this key (if OpenPGP ECC key)
  • KeyPairInformation.SubKey.GetEcCurve() - Returns the DidiSoft.Pgp.EcCurve behind this key (if OpenPGP ECC key)

New in .NET PGP Library 1.8.2.7 (Feb 16, 2018)

  • Namespace DidiSoft.Pgp:
  • KeyStore.ImportKeyPair(Stream) - import a single key pair from a Stream
  • KeyStore.ImportKeyPair(byte[]) - import a single key pair from a byte[]
  • PGPLib.VerifyStringWithoutExtracting
  • Fix in VS 2017 Help registration
  • Fix in BinGACGAC_Install.ps1

New in .NET PGP Library 1.8.2.6 (Jan 8, 2018)

  • Namespace DidiSoft.Pgp:
  • PGPLib.DecryptAndVerifyString - fix when providing arbitrary string as input, now recognized with NonPGPDataException being thrown

New in .NET PGP Library 1.8.2.5 (Nov 20, 2017)

  • Namespace DidiSoft.Pgp
  • [!] PGPLib - workaround to decrypt files marked with wrong Key ID's by PGP v.5

New in .NET PGP Library 1.7.9.14 (Jun 6, 2014)

  • Namespace DidiSoft.Pgp:
  • PGPLib.EncryptFilePBE - added overloaded versions that support additional public key located in a KeyStore

New in .NET PGP Library 1.7.9.13 (May 30, 2014)

  • Namespace DidiSoft.Pgp:
  • PGPLib - can decrypt .pgp files with wrong internal length indicators. In earlier versions decryption was failing with EndOfStreamException : "Premature end of stream in PartialInputStream"

New in .NET PGP Library 1.7.9.12 (May 29, 2014)

  • library setup folder\Help\Sfx.zip - fixed missing resources

New in .NET PGP Library 1.7.9.11 (May 12, 2014)

  • Namespace DidiSoft.Pgp:
  • KeyStore.GetKnownDesignatedRevokers - returns array of the keys that are authorized as designated revokers for a given key and are located in the same KeyStore

New in .NET PGP Library 1.7.9.10 (Apr 29, 2014)

  • Namespace DidiSoft.Pgp:
  • KeyStore.CaseSensitiveMatchUserIds - a property that controls should the search perfomed by User Id, be case sensitive (true) or not (false). Default is true.
  • RevocationLib.RemoveDesignatedRevoker - fixed.

New in .NET PGP Library 1.7.9.9 (Apr 25, 2014)

  • Namespace DidiSoft.Pgp:
  • KeyStore.GetKeys(userId) - returns array of KeyPairInformation objects that contain the specified User ID or hexadecimal Key ID
  • KeyStore.GetKey(userId) - now respects the value of KeyStore.PartialMatchUserIds
  • KeyPairInformation.IsDesignatedRevoker(KeyPairInformation) - checks is a given key a designated revoker for this key
  • RevocationLib.RemoveDesignatedRevoker - a set of methods for removing a designated revoker from a key
  • RevocationLib.GetRevocationReasonCode - a set of methods for obtaining the revocation reason code from a revoked OpenPGP public key or revocation certificate
  • RevocationLib.GetRevocationReasonDescription - a set of methods for obtaining the revocation reason description from a revoked OpenPGP public key or revocation certificate

New in .NET PGP Library 1.7.9.8 (Apr 8, 2014)

  • Namespace DidiSoft.Pgp:
  • PGPLib - custom ASCII comment and version headers were not applied to clear text signed data.

New in .NET PGP Library 1.7.9.7 (Apr 1, 2014)

  • Namespace DidiSoft.Pgp:
  • KeyStore.ImportPublicKey - fix to take into account the the KeyStore.UseUtcDate property

New in .NET PGP Library 1.7.9.6 (Mar 28, 2014)

  • Namespace DidiSoft.Pgp:
  • KeyStore.KeyNotFoundHandler(KeyStore store, KeyNotFoundEventArgs e) - delegate for the event OnKeyNotFound;
  • KeyStore.OnKeyNotFound - event fired when a key searched in this instance does not exist
  • class KeyStore.KeyNotFoundEventArgs - event argument sub class, used as parameter for the OnKeyNotFound event
  • KeyStore.SaveToStreamProtected - saves the KeyStore data to a stream, protected with a password
  • KeyStore.SaveToFileProtected - saves the KeyStore data to a file, protected with a password
  • KeyStore.SaveToFile - saves the KeyStore data to a file, unprotected
  • Namespace DidiSoft.Pgp.Inspect:
  • PGPInspectLib.ListSignatures - overloaded version that accepts a KeyStore parameter
  • PGPInspectLib.ListSigningKeyIds - overloaded version that accepts a KeyStore parameter [+] PGPInspectLib.OpenPgpFile - overloaded version that accepts a KeyStore parameter
  • PGPInspectLib.OpenPgpStream - overloaded version that accepts a KeyStore parameter

New in .NET PGP Library 1.7.9.5 (Mar 22, 2014)

  • Namespace DidiSoft.Pgp:
  • KeyStore.ChangePrivateKeyPassword - crytical bug, the password change wasn't reflected in the internal structure of KeyPairInformation objects
  • KeyStore.ImportPrivateKey - when importing X.509 certificate the expiration date was not reflected
  • KeyStore.ImportPrivateKey - when importing X.509 certificate if the password was wrong DidiSoft.Pgp.Exceptions.WrongPasswordException wasn't thrown

New in .NET PGP Library 1.7.9.4 (Mar 19, 2014)

  • PGPLib - now throws System.IO.FileNotFoundException if a public key file parameter does not exist, instead of DidiSoft.Pgp.Exceptions.WrongPublicKeyException

New in .NET PGP Library 1.7.9.3 (Mar 17, 2014)

  • Changes in namespace DidiSoft.Sfx:
  • SfxCreator.EncryptFileToExe - fixed icon on title bar and missing Copyright on the generated EXE file Properies dialog.

New in .NET PGP Library 1.7.9.2 (Mar 15, 2014)

  • Changes in namespace DidiSoft.Pgp.Net
  • HkpClient - added constructor with host name only
  • LdapClient.SubmitKey - fixed error when the key already exists on the keyserver NOTE: This method cannot upload keys into keyserver.pgp.com due to reasons mentioned in http://keyserver.pgp.com/vkd/VKDVerificationPGPCom.html
  • SfxCreator.EncryptFileToExe - the output wasn't properly stored.

New in .NET PGP Library 1.7.9.1 (Mar 12, 2014)

  • PGPLib - handles transparently MemoryStream with position at its end.

New in .NET PGP Library 1.7.9.0 (Mar 11, 2014)

  • New namespace DidiSoft.Pgp.Net:
  • LdapClient - provides access to LDAP OpenPGP key servers (Symantec PGP Universal Server, OpenLDAP with pgp schema)
  • HkpClient - provides access to HKP OpenPGP key servers (e.g. pgp.mit.edu)
  • Changes in namespace DidiSoft.Pgp:
  • PGPLib.VerifyFileWithoutExtracting - verifies the signature of a .pgp archive without decrypting it
  • PGPLib.VerifyStreamWithoutExtracting - verifies the signature of a .pgp archive without decrypting it
  • Changes in namespace DidiSoft.Sfx:
  • The extraction dialog window displays the executable file icon in its title bar.

New in .NET PGP Library 1.7.8.19 (Feb 24, 2014)

  • Changes in namespace DidiSoft.Pgp:
  • [+] PGPLib.Pgp2Compatible - property that gets/sets PGP 2.x encryption and signing compatibility mode.

New in .NET PGP Library 1.7.8.18 (Feb 19, 2014)

  • Changes in namespace DidiSoft.Sfx:
  • SfxOptions.WindowTitle - property for customizing the title of the self exctracting executable
  • SfxOptions.SourceFolder - source folder containing the self exctracting code

New in .NET PGP Library 1.7.8.17 (Feb 6, 2014)

  • PGPLib.DecryptTo - fix when the pgp data contains only one file and its name is empty

New in .NET PGP Library 1.7.8.16 (Feb 3, 2014)

  • Changes in namespace DidiSoft.Pgp:
  • KeyStore.UseUtcDate - setting that controls should the creation time of newly generated keys be set as DateTime.UtcNow (true) or DateTime.Now (false)
  • fix in PGPLib preferred cipher selection when encrypting strings

New in .NET PGP Library 1.7.8.15 (Jan 10, 2014)

  • Changes in namespace DidiSoft.Pgp:
  • New:
  • property PGPLib.AsciiCommentHeader:
  • property KeyStore.AsciiCommentHeader:
  • property KeyPairInformation.AsciiCommentHeader:
  • property RevocationLib.AsciiCommentHeader:
  • Removed:
  • if set will produce "Comment: " line in pgp archives in ASCII armour format
  • if set will produce "Comment: " line in keys exported in ASCII armour format
  • if set will produce "Comment: " line in keys exported in ASCII armour format
  • if set will produce "Comment: " line in revocation certificates and keys exported in ASCII armour format

New in .NET PGP Library 1.7.8.14 (Jan 8, 2014)

  • Added DLL files for Xamarin.iOS and located in Bin\Xamarin.iOS

New in .NET PGP Library 1.7.8.12 (Jan 3, 2014)

  • Changes in namespace DidiSoft.Pgp:
  • PGPLib.IncludeBaseFolder
  • controls when encrypting a whole folder should the folder also be included (default is true) in the archve or only its contents (false)
  • KeyStore.GetKey(keyId) - now throws null in case of non existent key
  • KeyPairInformation - added default constructor and protected members in order to be extended for custom purposes.

New in .NET PGP Library 1.7.8.11 (Dec 28, 2013)

  • PGPLib.EncryptFolder - overloaded versions that accept keys located in a KeyStore

New in .NET PGP Library 1.7.8.10 (Dec 23, 2013)

  • KeyStore.ExportKeyRing - Fxed the output of the custom ASCII armored version header

New in .NET PGP Library 1.7.8.9 (Dec 21, 2013)

  • Changes in namespace DidiSoft.Pgp:
  • KeyStore.AsciiVersionHeader - property to get and set the "Version: XXX" header information in ASCII armored keys exported from the KeyStore.
  • KeyPairInformation.AsciiVersionHeader - property to get and set the "Version: XXX" header of an exported key. Instaces obtained from a KeyStore object automatically inherit the same property value.
  • KeyPairInformation.RevocationLib - property to get and set the "Version: XXX" header of keys signed as revoked.

New in .NET PGP Library 1.7.8.7 (Dec 16, 2013)

  • KeyStore.CheckPassword(fileName, password) - now throws System.IO.FileNotFoundException if there is no such file.

New in .NET PGP Library 1.7.8.6 (Dec 13, 2013)

  • The constructor KeyStore(fileName, password) now will throw an System.IO.IOException if it cannot create the specified fileName (for example when there is no such directory).

New in .NET PGP Library 1.7.8.5 (Dec 5, 2013)

  • Changes in namespace DidiSoft.Pgp:
  • PGPLib.LogMessageEvent - event for obtaining verbose logging information
  • Changes in namespace DidiSoft.Pgp.Logging:
  • LogEventArgs.EventTime caclulation was changed
  • Changes in namespace DidiSoft.Pgp.Inspect:
  • SignatureItem.UserId - returns the User Id of the signing key (if available)
  • PGPInspectLib.ListSignatures - returns array of SignatureItem objects from a signed or signed and encrypted OpenPGP file
  • PGPInspectLib.ListDetachedSignatureFile - returns array of SignatureItem objects from a detached OpenPGP signature
  • PGPInspectLib.ListDetachedSignatureStream - returns array of SignatureItem objects from a detached OpenPGP signature

New in .NET PGP Library 1.4 (Dec 3, 2009)

  • Method ExportPublicKey implemented.
  • Method ExportPrivateKey implemented.
  • Method GenerateKeyPair implemented.