Skip to content

Releases: undergroundwires/SafeOrbit

0.4.0

15 Feb 18:11
Compare
Choose a tag to compare
  • Performance 😲
    • Huge performance improvements.
    • Most of the public methods are now only async: if it can be async, it's async.
    • Adding byte to SafeBytes is now at least 2100% faster
      • Adding single character to SafeString is at least 8200% faster.
    • GetHashCode() in SafeString and SafeBytes is faster than light (0 ms) compared to older implementation (6s for 1000 char with a linear increase per char)
    • Decrypting all bytes in SafeBytes is now 214x faster for 10KB, much faster for bigger sizes (1 MB = 900 ms).
    • AppendAsync(ISafeBytes) and DeepCloneAsync are optimized in SafeBytes
      • It is much faster (from 170 seconds to 37 ms for 10KB data)
      • Leads to much faster ToSafeBytes in SafeString
    • Faster equality checks for bytes and strings without compromising security.
      • SafeBytes.EqualsAsync(bytes) for 100 KB; before: 93032ms, after: 20ms
      • SafeBytes.EqualsAsync(ISafeBytes) for 100 KB before: 183346ms, after: 15ms
      • SafeString.EqualsAsync gains huge performance from inner byte equality, also it does not encrypt & decrypt plain strings anymore.
  • Fixed
    • SafeMemoryStream ends up in infinite loop while reading when its empty.
    • Cannot change AlertChannel on SafeContainer
  • Added
    • Encryption
      • Support for padding in Blowfish algorithm.
      • Both fast & safe (AES + Blowfish) supports setting padding mode.
    • AppendMany() to append multiple bytes to SafeBytes
    • Added constructor that writes the given binary to SafeMemoryStream
    • Added RevealDecryptedBytesAsync in SafeString
    • Added immutable interfaces IReadOnlySafeString and IReadOnlySafeBytes
    • Injection message includes the type of the injected objects.
  • Changed
    • ❗ Replaced sync methods with async variants.
    • Simplified builds: targets only netstandard2.0, netstandard1.6 and NET4.5.
    • Namespace changes for better modular structure
    • Refactorings & better documentation.
    • Renamed decrypting methods in SafeBytes, SafeByte and SafeString with RevealDecrypted prefix.
    • Simplified revealing SafeString, now its through RevealDecryptedStringAsync on SafeString.
  • Removed
    • SafeString.ToSafeBytesAsync is removed because of its inefficiency.

0.3.1

24 Dec 23:08
78a21b7
Compare
Choose a tag to compare

Changed

  • Using .ConfigureAwait(false) in async methods to better support UI applications.
  • More strict disposed checks
  • SafeString & SafeBytes can be revealed truly thread-safe.

Fixed

  • Issue with SafeBytes causing some logic to fail is solved (wrong arbitrary byte logic after 0.3.0).
  • ToByteArray in SafeBytes leads to corrupted memory.
  • SafeMemoryStream: Fixed stackoverflow in .NET Framework and .NET Standard 2.0
  • SafeString / Bytes cannot be revealed twice: bug with encryption of inner bytes

0.3.0

30 Mar 23:07
cdac420
Compare
Choose a tag to compare

Security

  • IFastRandom is now seeded with strong random data.
  • Fixed memory leak problem in SafeStringToStringMarshaler.
  • Protection against timing attacks in SafeByte/SafeString comparisons.

Added

  • Added support for netstandard2.0, net462, net47, net471, net472

Fixed

  • Sanity check hash size function returning wrong value.
  • Minor fixes

Changed

  • Updated framework dependencies to the latest available for different platforms

Removed

  • Removed unnecessary code from StartEarly.

Performance

  • Optimized serialization and encryption with async operations.
  • Minor performance optimizations in random generators.
  • More parallel implementation in inner classes.
  • Other minor performance optimizations

0.2.2

29 Dec 18:08
Compare
Choose a tag to compare

Added

  • All .NET platforms above 4.0 are supported : 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1
  • MemoryProtector now uses Blowfish encryption to protect data depending on .NET Core platform.

Security

  • Fixed MemoryProtector not protecting data in .NET Core.

0.2.1

27 Nov 14:46
Compare
Choose a tag to compare

Added

  • XML documentation is included in nuget package.

Fixed

  • Not being able to read IL-bytes in .NET Core
  • Minor bug fixes

0.2.0

24 Nov 20:11
Compare
Choose a tag to compare

Security

  • FastRandom generates secure numbers.

Added

  • .NET Core is supported.

Changed

  • More tests, more/better documentation and refactorings.