![Create React App Officially Deprecated Amid React 19 Compatibility Issues](https://cdn.sanity.io/images/cgdhsj6q/production/04fa08cf844d798abc0e1a6391c129363cc7e2ab-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Create React App Officially Deprecated Amid React 19 Compatibility Issues
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
This Ruby extension exposes the Keccak (SHA3) digest C
bindings in the non-final version used by Ethereum. It is based on the reference C
implementation, version 3.2. The exposed interface is almost identical to that of the digest
standard library. See #16.
:warning: Note: version ~> 1.3
exposes digest/keccak
(Digest::Keccak
) whereas version ~> 1.2
maintains the old digest/sha3
(Digest::SHA3
) for backward compatibility. Only use ~> 1.2
if you want to lazy-patch your library. It works, but it's not recommended. Use ~> 1.3
and simply rename SHA3 to Keccak.
The gem is called keccak
.
bundle add keccak
gem install keccak
gem 'keccak', '~> 1.3'
Note: as of version ~> v1.1
, digest-sha3
(historic name, see below) requires Ruby 2.2. The new keccak
version ~> v1.2
now also supports Ruby 3.0. The last version that worked on older Ruby (1.x) versions was ~> v1.0
. It can be found at the no longer maintained digest-sha3
repository from 2015.
This gem extends the digest/*
module by a digest/keccak
class.
require 'digest/keccak'
# Generate 512-bit digest.
Digest::Keccak.digest("foo") # => "\025\227\204*..."
Digest::Keccak.hexdigest("foo") # => "1597842a..."
# Generate 224-bit digest.
Digest::Keccak.digest("foo", 224) # => "\332\251M\247..."
Digest::Keccak.hexdigest("foo", 224) # => "daa94da7..."
# Use this interface to feed data in chunks. 512-bit by default.
digest = Digest::Keccak.new
digest.update("f")
digest.update("o")
digest.update("o")
digest.digest # => "\025\227\204*..."
digest.hexdigest # => "1597842a..."
# You can pass a hash length to the constructor.
digest = Digest::Keccak.new(224)
Keccak supports five hash lengths: 224-bit, 256-bit, 384-bit, 512-bit and variable length. Variable length is not supported by this Ruby extension. Unless the user specifies otherwise, this Ruby extension assumes 512-bit.
Run the test suite as follows:
bundle install
make test
A part of the test suite is automatically generated from Keccak's reference test suite.
Note: This gem still uses the Digest::SHA3
namespace in version ~> 1.2
for reasons of backward compatibility and long-term maintainability. See history section below.
:warning: This gem does not implement the final FIPS202 standard, today known as SHA3 but rather an early version, commonly referred to as Keccak. The reason why this is kept around, is that Ethereum uses this earler version of Keccak. See also: Ethereum: Difference between keccak256 and sha3.
If you are looking for the final SHA3 gem, please use the following: https://rubygems.org/gems/sha3
This gem was initially developed and published as digest-sha3
: https://github.com/phusion/digest-sha3-ruby
This gem was later patched multiple times:
digest-sha3-patched
)digest-sha3-patched-ruby-3
)digest-keccak
)FAQs
Unknown package
We found that keccak demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.