aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDBL-Lee <hzc930916@live.cn>2020-02-27 17:53:22 -0800
committerDBL-Lee <hzc930916@live.cn>2020-02-27 17:53:22 -0800
commitccdb152929cbf02e12fc609ca73c146261208b82 (patch)
tree3d568d6c48dd407cace8bf0f02d78ba9565caed1
parent26a54a47e33fe8627f3c41343fc623e54e4872cf (diff)
downloadruby-openssl-ccdb152929cbf02e12fc609ca73c146261208b82.tar.gz
add support for SHA512_256/SHA512_224
-rw-r--r--lib/openssl/digest.rb2
-rw-r--r--test/openssl/test_digest.rb12
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'