bcrypt.net

BCrypt.Net - Bringing updates to the original bcrypt package

MIT License

Stars
825
Committers
15

Bot releases are visible (Hide)

bcrypt.net - .net 6 Latest Release

Published by ChrisMcKee over 2 years ago

What's Changed

New Contributors

Full Changelog: https://github.com/BcryptNet/bcrypt.net/compare/4.0.2...4.0.3

bcrypt.net - .net 5

Published by ChrisMcKee almost 4 years ago

  • Adds .net 5 target
  • Sets using/dispose pattern on shaxxx usage in enhanced entropy version
bcrypt.net - Enhanced Hashing Interop fix (without compatibility methods in 3.5)

Published by ChrisMcKee over 4 years ago

v4.0.0 (breaking changes) - A bug in Enhanced Hashing was discovered that causes the hashes created to be inoperable between different languages.
V4 provides the fix for this as well as adding test vectors from PHP and Python to ensure the issue remains fixed in the future. V4 also removes the legacy 384 option that came before Base64 was added.

bcrypt.net - Enhanced Hashing Compatibility Migration Release

Published by ChrisMcKee over 4 years ago

v3.5.0 - A bug in Enhanced Hashing was discovered that causes the hashes created to be inoperable between different languages.
As part of the fix 3.5 release contains the ability to Verify and HashPassword were given an additional v4CompatibleEnhancedEntropy parameter.
This allows the user to verify their Enhanced hash as normal; then re-hash + store using V4. This functionality is purely to allow migration and is removed in V4.

bcrypt.net - Performance (heap reduction) for netcore and removal of regex

Published by ChrisMcKee over 4 years ago

Performance (heap reduction) and removal of regex

  • Heap-usage reduction in netstandard 2+ by switching key calls to span and altering array use in encoding.
  • Removes regex dependency and changes hash parser to custom parser
  • Addition of benchmarking projects
  • Adds dependency on System.Memory for netstandard2.0|net452|net462|net472

Big thanks to Jos Vandertil (@jvandertil) for the help.

bcrypt.net - Minor Release

Published by ChrisMcKee over 5 years ago

Resolves https://github.com/BcryptNet/bcrypt.net/issues/25
Added serializable attribute to exception types

bcrypt.net - Fixes accidental change to origin vector

Published by ChrisMcKee almost 6 years ago

If you updated to 3.1.1 (now delisted), any credentials created using 3.1.1 will need resetting.

Test run
https://ci.appveyor.com/project/ChrisMcKee/bcrypt-net/build/tests

bcrypt.net - BROKEN Minor-Release xml-doc corrections / package signing

Published by ChrisMcKee almost 6 years ago

BROKEN DONT USE

bcrypt.net - v3.1.0 Enhanced Verification Changes / Fix

Published by ChrisMcKee over 6 years ago

  • Adds HashType to EnhancedVerify and Verify.
  • Reorganises main signature of ValidateAndReplacePassword to oldkey params / new key params and a simplified overload for basic replace (non enhanced).
  • Adds tests.
  • Stop EnhancedHashPassword being used with HashType.None
bcrypt.net -

Published by ChrisMcKee over 6 years ago

  • Enhanced entropy defaults to SHA384 which is base64 encoded.
  • You can change the hmac choice to (SHA256. SHA384, SHA512) which are all base64 encoded or Legacy384 which is SHA384 sans base64 encoding.
  • HashString marked obsolete; time for it to go as its nothing but a pointer to hashpassword.
bcrypt.net -

Published by ChrisMcKee over 6 years ago

  • Enhanced entropy defaults to Legacy384 which is basically the way it operated prior to this version anyway this will be maintained for v2.
  • Default rounds raised to 11 (in keeping with other frameworks/languages)
  • Add target for 4.7.2
  • Reduce regex timeout to 30ms from 300
bcrypt.net - Minor release - Framework updates & development changes

Published by ChrisMcKee over 6 years ago

https://github.com/BcryptNet/bcrypt.net/compare/2.1.1...62a57cd

  • Netstandard v2
  • Correct typos
  • Documentation updates (mostly typo related)
  • Csproj changes.

Deployment made for typos/netstandard.

bcrypt.net - v2.1.1 - Minor metadata-patch

Published by ChrisMcKee over 7 years ago

bcrypt.net - Fixes & Features Release

Published by ChrisMcKee over 7 years ago

  • Adds enhanced mode; enhanced hashing allows you to opt-in to ensuring optimal entropy on your users passwords by first making use of the fast SHA384 algorithm before BCrypt hashes the password.
  • Added Hash interrogation to allow a hash to be passed in and its component parts be returned.
  • Added timeouts to regex and set compiler flags for msbuild so < .net 4.5 (where timeouts were added to regex) we use old regex method.
  • Alter safe equals from ceq/and to xor/and/ceq moving the check outside of the loop to mitigate against branch prediction causing a timing leak
  • Add new method PasswordNeedsReshash(string hash, int newMinimumWorkLoad) as a helper method for developers to use when logging a user in to increase legacy workloads
  • Add ValidateAndReplacePassword method to allow inline password validation and replacement. Throws BcryptAuthenticationException in the event of authentication failure.
  • Cleaned up xml-doc for intellisense
  • Increased compatibility by allowing BCrypt revisions from other frameworks/languages to be validated and generated whilst maintaining compatibility.
  • VS2017 RTW changes
bcrypt.net - Patch and Tidy

Published by ChrisMcKee about 8 years ago

  • Corrects usage of Secure random number generator
  • Change UTF8 handling to safer default (throwOnInvalidBytes: true)
    • .NET Encoding.UTF8 encoding instance does not raise exceptions used to encode bytes which cannot represent a valid encoding & will return the same 'unknown' character instead. This can cause entropy loss when converting from bytes to strings.
  • Change secure equals to match .net identity implementation
  • Inline vars in encipher method
bcrypt.net - initial fresh release

Published by ChrisMcKee about 8 years ago

Fresh release packaged for the majority of .net & containing safe-equals to reduce the risks from timing attacks https://en.wikipedia.org/wiki/Timing_attack / https://cryptocoding.net/index.php/Coding_rules#Compare_secret_strings_in_constant_time
Technically the implementation details of BCrypt theoretically mitigate against a timing attacks. But the Bcrypt.net official validation function was vulerable to timing attacks as it returned as soon as a non-matching byte was found in the hash comparison..

https://www.nuget.org/packages/BCrypt.Net-Next/2.0.0