diff options
author | Michael Coyne <mikeycgto@gmail.com> | 2017-05-15 08:55:46 +0000 |
---|---|---|
committer | Michael Coyne <mikeycgto@gmail.com> | 2017-05-15 08:55:46 +0000 |
commit | 51b090549b76684692bbb8a5c7fbdb3bdaa25642 (patch) | |
tree | a9368877718f34fc63629d26e4014a4b767548e6 /activesupport | |
parent | 71fb6def5f07233e4fdf628e02981e4add5c6b8b (diff) | |
download | rails-51b090549b76684692bbb8a5c7fbdb3bdaa25642.tar.gz rails-51b090549b76684692bbb8a5c7fbdb3bdaa25642.tar.bz2 rails-51b090549b76684692bbb8a5c7fbdb3bdaa25642.zip |
Updates to MessageEncryptor AEAD tests
Diffstat (limited to 'activesupport')
-rw-r--r-- | activesupport/test/message_encryptor_test.rb | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/activesupport/test/message_encryptor_test.rb b/activesupport/test/message_encryptor_test.rb index c67ada5f20..4c3515b5e1 100644 --- a/activesupport/test/message_encryptor_test.rb +++ b/activesupport/test/message_encryptor_test.rb @@ -89,25 +89,29 @@ class MessageEncryptorTest < ActiveSupport::TestCase def test_aead_mode_with_hmac_cbc_cipher_text encryptor = ActiveSupport::MessageEncryptor.new(@secret, cipher: "aes-256-gcm") - assert_raise ActiveSupport::MessageEncryptor::InvalidMessage do - encryptor.decrypt_and_verify "eHdGeExnZEwvMSt3U3dKaFl1WFo0TjVvYzA0eGpjbm5WSkt5MXlsNzhpZ0ZnbWhBWFlQZTRwaXE1bVJCS2oxMDZhYVp2dVN3V0lNZUlWQ3c2eVhQbnhnVjFmeVVubmhRKzF3WnZyWHVNMDg9LS1HSisyakJVSFlPb05ISzRMaXRzcFdBPT0=--831a1d54a3cda8a0658dc668a03dedcbce13b5ca" - end + assert_aead_not_decrypted(encryptor, "eHdGeExnZEwvMSt3U3dKaFl1WFo0TjVvYzA0eGpjbm5WSkt5MXlsNzhpZ0ZnbWhBWFlQZTRwaXE1bVJCS2oxMDZhYVp2dVN3V0lNZUlWQ3c2eVhQbnhnVjFmeVVubmhRKzF3WnZyWHVNMDg9LS1HSisyakJVSFlPb05ISzRMaXRzcFdBPT0=--831a1d54a3cda8a0658dc668a03dedcbce13b5ca") end def test_messing_with_aead_values_causes_failures encryptor = ActiveSupport::MessageEncryptor.new(@secret, cipher: "aes-256-gcm") text, iv, auth_tag = encryptor.encrypt_and_sign(@data).split("--") - assert_not_decrypted([iv, text, auth_tag] * "--") - assert_not_decrypted([munge(text), iv, auth_tag] * "--") - assert_not_decrypted([text, munge(iv), auth_tag] * "--") - assert_not_decrypted([text, iv, munge(auth_tag)] * "--") - assert_not_decrypted([munge(text), munge(iv), munge(auth_tag)] * "--") - assert_not_decrypted([text, iv] * "--") - assert_not_decrypted([text, iv, auth_tag[0..-2]] * "--") + assert_aead_not_decrypted(encryptor, [iv, text, auth_tag] * "--") + assert_aead_not_decrypted(encryptor, [munge(text), iv, auth_tag] * "--") + assert_aead_not_decrypted(encryptor, [text, munge(iv), auth_tag] * "--") + assert_aead_not_decrypted(encryptor, [text, iv, munge(auth_tag)] * "--") + assert_aead_not_decrypted(encryptor, [munge(text), munge(iv), munge(auth_tag)] * "--") + assert_aead_not_decrypted(encryptor, [text, iv] * "--") + assert_aead_not_decrypted(encryptor, [text, iv, auth_tag[0..-2]] * "--") end private + def assert_aead_not_decrypted(encryptor, value) + assert_raise(ActiveSupport::MessageEncryptor::InvalidMessage) do + encryptor.decrypt_and_verify(value) + end + end + def assert_not_decrypted(value) assert_raise(ActiveSupport::MessageEncryptor::InvalidMessage) do @encryptor.decrypt_and_verify(@verifier.generate(value)) |