All Versions
Latest Version
Avg Release Cycle
130 days
Latest Release
111 days ago

Changelog History

  • v5.0.0

    June 02, 2019
    • #69 - Improved error message in UnmanagedException
    • 🌲 #70 - Introduced managed logging
    • 🚚 #75 - Removed Silverlight 5 support
    • #76 - Introduced automatic code generation
    • #80 - Replaced the topmost HighLevelAPI with interfaces
    • πŸ“Œ #93 - Added support for signing with context specific PIN
    • πŸ‘ #94 - Added SourceLink and SNUPKG support
    • πŸ“¦ #104 - Removed xamarinios1.0 target from NuGet package because Xamarin.iOS uses netstandard2.0 target
    • πŸ“¦ #105 - Removed monoandroid2.3 target from NuGet package because Xamarin.Android uses netstandard2.0 target
    • πŸ“¦ #107 - Removed xamarinmac2.0 target from NuGet package because Xamarin.Mac uses netstandard2.0 target
    • πŸ’… #108 - Moved to a single solution with a multitargeting SDK style project
    • 🚚 #124 - Removed .NET Standard 1.3 support
  • v4.1.1

    March 31, 2019
    • ⚑️ #115 - Fixed automatic platform detection on new versions of Android and updated Android TargetFrameworkVersion to v8.0 (API level 26)
    • 🍎 #116 - LibraryArchitectureException won't be thrown on macOS for errors unrelated to unmanaged library platform
  • v4.1.0

    January 24, 2019
    • #68 - Unified assembly name for all platforms to Pkcs11Interop.dll
    • πŸ“¦ #88 - Adopted NuGet package signing
    • 🚚 #99 - Removed support for Coverity Scan service
    • πŸ“¦ #101 - Added netstandard20 target to NuGet package
    • 🍎 #102 - Added support for Travis CI builds on Linux and macOS
    • πŸ‘ #103 - Added support for Xamarin.Mac
  • v4.0.0

    August 23, 2017
    • ⚑️ #43 - Updated to PKCS#11 v2.40 errata01
    • ⚑️ #44 - Updated to Visual Studio 2017
    • #49 - Projects in new Pkcs11Interop.NetStandard solution have been created from scratch in Visual Studio 2017. This solution replaces old Pkcs11Interop.DotNetCore solution.
    • πŸ“‡ Renamed COREFX symbol to NETSTANDARD1_3 symbol
    • βœ… #50 - Included PKCS11-MOCK 1.0.0 library in test projects
    • πŸ— #51 - Tests are executed during automated AppVeyor builds
    • πŸ— Build scripts now support "--with-tests" parameter
    • 0️⃣ #52 - Strongly named assemblies are generated by default
    • #53 - All StrongName projects/libs/packages were dropped
    • #54 - Introduced five new enums - AppType, InitType, SlotsType, WaitType and SessionType - that replaced several most annoying occurrences of bool type in public API. These changes break backwards API compatibility.
  • v3.3.0

    January 24, 2017
    • AppVeyor continuous integration service setup contributed by Peter Polačko
    • βž• Added Session::CloseWhenDisposed property which brings more control over the session lifetime to HighLevelAPIs
    • πŸ“¦ #41 - Added *.StrongName projects that produce strongly named assemblies which are published in a separate nuget package
    • Introduced AttributeValueException that should provide more useful information when reading or conversion of attribute value fails
  • v3.2.0

    July 17, 2016
    • βž• Added support for .NET Core 1.0 RTM / .NET Standard 1.3
    • Refreshed Xamarin.Android and Xamarin.iOS solutions for VS 2015
    • Xamarin.Android targets Android 2.3 API 10 as a minimum SDK version
    • βž• Added build scripts for convenient releasing and NuGet packaging
    • #28 - Introduced Net.Pkcs11Interop.Common.LibraryArchitectureException which indicates an attempt to load unmanaged PKCS#11 library designated for a different architecture
    • πŸ›  Fixed reading of empty CK_DATE attributes
    • πŸ›  Fixed pointer arithmetics in the processing of array attributes
    • Unified runtime OS detection in Net.Pkcs11Interop.Common.Platform class
    • Net.Pkcs11Interop.Common.CK, Net.Pkcs11Interop.Common.CKF and Net.Pkcs11Interop.Common.CKZ classes are now static
    • πŸ‘Œ Improved HexString conversions
    • πŸ‘Œ Improved return value marshaling of all unmanaged PKCS#11 functions by using uint/ulong types instead of Net.Pkcs11Interop.Common.CKR type
    • πŸ‘Œ Improved return value marshaling of FreeLibrary() function
    • Improved marshaling of C_GetSLotList() function parameters in cases when it is being invoked directly instead of being invoked via the pointer returned by C_GetFunctionList() function
  • v3.1.0

    March 29, 2016
    • License changed to the Apache License, Version 2.0
  • v3.0.0

    March 20, 2016
    • βž• Added support for PKCS#11 URI scheme defined in RFC 7512
    • βž• Added support for Silverlight 5, Xamarin.Android and Xamarin.iOS
    • βœ… PKCS11-MOCK module can be used for testing on all supported platforms
    • πŸ‘ APIs can now be easily extended to support vendor specific unmanaged functions
    • Value of array attributes (e.g. CKA_WRAP_TEMPLATE and CKA_UNWRAP_TEMPLATE) can now be read also in HighLevelAPIs
    • πŸ›  Fixed GetAttributeValue() method in HighLevelAPIs
    • Fixed marshalling of unmanaged CK_BBOOL type in C_GetSlotList() function and in CK_KEA_DERIVE_PARAMS, CK_SSL3_KEY_MAT_PARAMS and CK_WTLS_KEY_MAT_PARAMS structs
    • Fixed marshalling of PasswordLen member in CK_PKCS5_PBKD2_PARAMS struct
    • Class Net.Pkcs11Interop.Common.UnmanagedLong has been replaced with UnmanagedLongSize property of Net.Pkcs11Interop.Common.Platform class
    • πŸ‘ PKCS#11 libraries which are not using structs packed with 1-byte alignment are now supported via LowLevelAPI40 and HighLevelAPI40 on platforms where C 'long' type is 4 bytes long and via LowLevelAPI80 and HighLevelAPI80 on platforms where C 'long' type is 8 bytes long
    • πŸ‘ LowLevelAPI4 and HighLevelAPI4 known from previous versions support only PKCS#11 libraries which are using structs packed with 1-byte alignment on platforms where C 'long' type is 4 bytes long and therefore they have been renamed to LowLevelAPI41 and HighLevelAPI41
    • πŸ‘ LowLevelAPI8 and HighLevelAPI8 known from previous versions support only PKCS#11 libraries which are using structs packed with 1-byte alignment on platforms where C 'long' type is 8 bytes long and therefore they have been renamed to LowLevelAPI81 and HighLevelAPI81
    • Multiplatform HighLevelAPI is now built on top of HighLevelAPI40, HighLevelAPI41, HighLevelAPI80 and HighLevelAPI81 and it automatically uses correct set of platform dependent APIs
  • v2.0.2

    March 20, 2016
    • πŸ›  Fixed DecryptDigest() method in HighLevelAPI
    • Calls C_GetSlotList() only once with no slots present
  • v2.0.1

    March 20, 2016
    • πŸ›  Fixed C_GetMechanismList() delegate on Linux64
    • Throws Pkcs11Exception when C_GetFunctionList() fails
    • Unmanaged library is correctly unloaded when C_GetFunctionList() fails
    • Resolved Mac OS X detection and unmanaged library loading issues