SecretSharingDotNet

An C# implementation of Shamir's Secret Sharing

MIT License

Stars
40

Bot releases are hidden (Show)

SecretSharingDotNet - v0.11.0 Latest Release

Published by shinji-san 10 months ago

Added

  • Added support for .NET FX v4.8.1
  • Added support for .NET 8.0
  • Added support for SourceLink (GitHub)
  • Enable deterministic builds

Changed

  • Moved SecurityLevels from ShamirsSecretSharing<TNumber, TExtendedGcdAlgorithm, TExtendedGcdResult> to ShamirsSecretSharing class.
  • Introduced ReadOnlySpan<char> for string parameters in Secret<TNumber> class.

Removed

  • Removed Legacy Mode from Secret.cs class.
SecretSharingDotNet - v0.10.2

Published by shinji-san 10 months ago

Changed

  • FinitePoint: Use ReadOnlySpan<char> for string parameters in ctor and methods.

Deprecated

  • The Secret Legacy Mode is marked as deprecated and will be removed in one of the next releases.

Fixed

  • Fixed NETSDK1187 warning (see #151). Locale 'de-de' is normalized to the standard locale 'de-DE'.

[0.10.1] - 2023-05-08

Fixed

  • Fixed BigIntCalculator's Equals method to avoid timing attacks. The slow equal implementation is used now.
SecretSharingDotNet - v0.11.0

Published by shinji-san 10 months ago

Added

  • Added support for .NET FX v4.8.1
  • Added support for .NET 8.0
  • Added support for SourceLink (GitHub)
  • Enable deterministic builds

Changed

  • Moved SecurityLevels from ShamirsSecretSharing<TNumber, TExtendedGcdAlgorithm, TExtendedGcdResult> to ShamirsSecretSharing class.
  • Introduced ReadOnlySpan<char> for string parameters in Secret<TNumber> class.

Removed

  • Removed Legacy Mode from Secret.cs class.
SecretSharingDotNet - v0.10.2

Published by shinji-san about 1 year ago

Changed

  • FinitePoint: Use ReadOnlySpan<char> for string parameters in ctor and methods.

Deprecated

  • The Secret Legacy Mode is marked as deprecated and will be removed in one of the next releases.

Fixed

  • Fixed NETSDK1187 warning (see #151). Locale 'de-de' is normalized to the standard locale 'de-DE'.
SecretSharingDotNet - v0.10.1

Published by shinji-san over 1 year ago

Fixed

  • Fixed BigIntCalculator's Equals method to avoid timing attacks. The slow equal implementation is used now.
SecretSharingDotNet - v0.10.0

Published by shinji-san almost 2 years ago

Added

  • Added .NET 7 support

Changed

  • Update Microsoft.NETFramework.ReferenceAssemblies to v1.0.3

Removed

  • Removed .NET Core 3.1 (LTS) support
  • Removed ctor ShamirsSecretSharing(IExtendedGcdAlgorithm<TNumber> extendedGcd, int securityLevel).
  • Removed method MakeShares(TNumber numberOfMinimumShares, TNumber numberOfShares).
SecretSharingDotNet - v0.9.0

Published by shinji-san about 2 years ago

Added

  • Add ToInt32() method to BigIntCalculator and Calculator class.
  • Introduce the IExtendedGcdResult interface to decouple GCD result implementations.

Changed

  • Moved generic version of the Calculator class from the Calculator.cs file to the Calculator`1.cs file.
  • Updated Microsoft.NET.Test.Sdk Nuget package version to 17.2.0.
  • Updated xunit.runner.visualstudio Nuget package version to 2.4.5.
  • Set Calculator fields ChildTypes and ChildBaseCtors from protected to private.
  • Performance improvements for ShamirsSecretSharing classes.
  • Performance improvements for FinitePoint class.
  • Performance improvements for generic Calculator class.

Deprecated

  • Ctor ShamirsSecretSharing(IExtendedGcdAlgorithm<TNumber> extendedGcd, int securityLevel) is deprecated.
  • Method MakeShares(TNumber numberOfMinimumShares, TNumber numberOfShares) is deprecated.

Fixed

  • Fixed style guide violations in CHANGELOG.md.
  • Fixed style guide violations in FinitePoint.cs.
  • Fixed style guide violations in Shares.cs.
  • Fixed style guide violations in SharesEnumerator.cs.
  • Fixed style guide violations in IExtendedGcdAlgorithm`2.cs.
  • Fixed style guide violations in ExtendedEuclideanAlgorithm.cs.
  • Fixed style guide violations in Calculator.cs.
  • Fixed style guide violations in Calculator`1.cs.
  • Fixed style guide violations in BigIntCalculator.cs.
  • Fixed style guide violations in Secret.cs. Split file into Secret.cs and Secret`1.cs.
  • Fixed possible null reference exception in Calculator class.
  • Fixed possible null reference exception in Shares class.
  • Fixed possible null reference exception in ShamirsSecretSharing class.
  • Fixed unnecessary boxing/unboxing in the ToString() methods in Calculator classes.

Removed

  • Removed constructor w/ ReadOnlyCollection parameter from the SharesEnumerator{TNumber} class.
  • Removed tuple type casting from the Shares class.
  • Removed Shares.Item1 property.
  • Removed Shares.Item2 property.
SecretSharingDotNet - v0.8.0

Published by shinji-san over 2 years ago

Added

  • Added more examples in the section Usage of the README.md file to explain the use of shares and the use of the new type casting from byte array to secret and vice versa.
  • Added method MakeShares(TNumber numberOfMinimumShares, TNumber numberOfShares, int securityLevel)
  • Added method MakeShares(TNumber numberOfMinimumShares, TNumber numberOfShares, Secret<TNumber> secret, int securityLevel)
  • Added localization for exception messages in English and German languages

Changed

  • Changed existing examples in the section Usage of the README.md file to explain the use and the type casting of recovered secrets.
  • Minify NuGet package README.md
  • Changed ctor ShamirsSecretSharing(IExtendedGcdAlgorithm<TNumber> extendedGcd). This ctor sets the SecurityLevel to 13.

Deprecated

  • Ctor ShamirsSecretSharing(IExtendedGcdAlgorithm<TNumber> extendedGcd, int securityLevel) is deprecated.
  • Method MakeShares(TNumber numberOfMinimumShares, TNumber numberOfShares) is deprecated.
  • Shares to tuple type casting is obsolete and will be remove in the next release.
  • Shares.Item1 property is obsolete and will be remove in the next release.
  • Shares.Item2 property is obsolete and will be remove in the next release.

Removed

SecretSharingDotNet - v0.7.0

Published by shinji-san over 2 years ago

Added

  • Added implicit casts for byte arrays in Secret class.
  • Added legacy mode. See README.md, section "Usage" for more details.

Changed

  • Changed behavior of Secret class for negative secret values. See README.md, section "Usage" and bug report #60 for more details.
  • Changed calculation of maximum security level in Reconstruction method.

Fixed

  • Fixed reopened bug #60 "Reconstruction fails at random".
  • Fixed assembly output path in SecretSharingDotNetFx4.6.2.csproj

Removed

SecretSharingDotNet - v0.6.0

Published by shinji-san almost 3 years ago

Added

  • Add .NET 6 support

Changed

  • Use RandomNumberGenerator class instead RNGCryptoServiceProvider class to create the polynomial. For details see dotnet runtime issue 40169

Fixed

  • Fixed bug #60 "Reconstruction fails at random" which occurs when the secret is created from a base64 string

Removed

  • Removed .NET Core 2.1 (LTS) support
SecretSharingDotNet - 'Shares' return type

Published by shinji-san about 3 years ago

This version introduces a 'Shares' return type for the split method 'MakeShares'. The 'tuple' return type is obsolete.

SecretSharingDotNet - Fix - NuGet publishing failed

Published by shinji-san almost 4 years ago

SecretSharingDotNet - Fix - NuGet packaging missing .NET 5.0 build env

Published by shinji-san almost 4 years ago

SecretSharingDotNet - .NET 5.0 support & #40 fix

Published by shinji-san almost 4 years ago

Related Projects