diff options
author | DBL-Lee <hzc930916@live.cn> | 2020-02-27 17:53:22 -0800 |
---|---|---|
committer | DBL-Lee <hzc930916@live.cn> | 2020-02-27 17:53:22 -0800 |
commit | ccdb152929cbf02e12fc609ca73c146261208b82 (patch) | |
tree | 3d568d6c48dd407cace8bf0f02d78ba9565caed1 | |
parent | 26a54a47e33fe8627f3c41343fc623e54e4872cf (diff) | |
download | ruby-openssl-ccdb152929cbf02e12fc609ca73c146261208b82.tar.gz |
add support for SHA512_256/SHA512_224
-rw-r--r-- | lib/openssl/digest.rb | 2 | ||||
-rw-r--r-- | test/openssl/test_digest.rb | 12 |
2 files changed, 13 insertions, 1 deletions
diff --git a/lib/openssl/digest.rb b/lib/openssl/digest.rb index c9539119..92d358d2 100644 --- a/lib/openssl/digest.rb +++ b/lib/openssl/digest.rb @@ -21,7 +21,7 @@ module OpenSSL ALGORITHMS = %w(MD4 MD5 RIPEMD160 SHA1 SHA224 SHA256 SHA384 SHA512) if !OPENSSL_VERSION.include?("LibreSSL") && OPENSSL_VERSION_NUMBER > 0x10101000 - ALGORITHMS.concat %w(BLAKE2b512 BLAKE2s256 SHA3-224 SHA3-256 SHA3-384 SHA3-512) + ALGORITHMS.concat %w(BLAKE2b512 BLAKE2s256 SHA3-224 SHA3-256 SHA3-384 SHA3-512 SHA512-224 SHA512-256) end ALGORITHMS.freeze diff --git a/test/openssl/test_digest.rb b/test/openssl/test_digest.rb index e47fc0a3..0bf66b82 100644 --- a/test/openssl/test_digest.rb +++ b/test/openssl/test_digest.rb @@ -98,6 +98,18 @@ class OpenSSL::TestDigest < OpenSSL::TestCase assert_equal(sha512_a, encode16(OpenSSL::Digest::SHA512.digest("a"))) end + def test_sha512_truncate + pend "SHA512_224 is not implemented" unless OpenSSL::Digest.const_defined?(:SHA512_224) + sha512_224_a = "d5cdb9ccc769a5121d4175f2bfdd13d6310e0d3d361ea75d82108327" + sha512_256_a = "455e518824bc0601f9fb858ff5c37d417d67c2f8e0df2babe4808858aea830f8" + + assert_equal(sha512_224_a, OpenSSL::Digest::SHA512_224.hexdigest("a")) + assert_equal(sha512_256_a, OpenSSL::Digest::SHA512_256.hexdigest("a")) + + assert_equal(sha512_224_a, encode16(OpenSSL::Digest::SHA512_224.digest("a"))) + assert_equal(sha512_256_a, encode16(OpenSSL::Digest::SHA512_256.digest("a"))) + end + def test_sha3 pend "SHA3 is not implemented" unless OpenSSL::Digest.const_defined?(:SHA3_224) s224 = '6b4e03423667dbb73b6e15454f0eb1abd4597f9a1b078e3f5b5a6bc7' |