From 963d145a6176f7d56b6435311efecfc9a535ba31 Mon Sep 17 00:00:00 2001 From: CHRISTOPHE LECLEF <39584929+cleclefibanity@users.noreply.github.com> Date: Wed, 26 Sep 2018 14:50:27 +0200 Subject: [PATCH 1/4] Update version.rb version bump --- lib/rocra/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/rocra/version.rb b/lib/rocra/version.rb index 8517f05..22f07ab 100644 --- a/lib/rocra/version.rb +++ b/lib/rocra/version.rb @@ -1,3 +1,3 @@ class Rocra - VERSION = "0.0.1" + VERSION = "0.0.2" end From d6a278085ae741bf1aef502af889748d4f2d28f2 Mon Sep 17 00:00:00 2001 From: CHRISTOPHE LECLEF <39584929+cleclefibanity@users.noreply.github.com> Date: Wed, 26 Sep 2018 14:51:15 +0200 Subject: [PATCH 2/4] SessionInformation padding should be left-padding --- lib/rocra.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/rocra.rb b/lib/rocra.rb index 69868e1..7d0f1d1 100644 --- a/lib/rocra.rb +++ b/lib/rocra.rb @@ -81,22 +81,22 @@ def generate(ocra_suite, key, counter, question, password, session_information, # session_information if dataInput.include?("s064") - session_information = session_information.ljust(128, '0') + session_information = session_information.rjust(128, '0') session_information_length = 64 end if dataInput.include?("s128") - session_information = session_information.ljust(256, '0') + session_information = session_information.rjust(256, '0') session_information_length = 128 end if dataInput.include?("s256") - session_information = session_information.ljust(512, '0') + session_information = session_information.rjust(512, '0') session_information_length = 256 end if dataInput.include?("s512") - session_information = session_information.ljust(128, '0') + session_information = session_information.rjust(128, '0') session_information_length = 64 end From 91edd4a9934b30fd711c2c80555c70044d2c960f Mon Sep 17 00:00:00 2001 From: CHRISTOPHE LECLEF <39584929+cleclefibanity@users.noreply.github.com> Date: Wed, 26 Sep 2018 15:13:53 +0200 Subject: [PATCH 3/4] password also should be left padded --- lib/rocra.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/rocra.rb b/lib/rocra.rb index 7d0f1d1..9cf44fa 100644 --- a/lib/rocra.rb +++ b/lib/rocra.rb @@ -65,17 +65,17 @@ def generate(ocra_suite, key, counter, question, password, session_information, # Password if dataInput.include?("psha1") - password = password.ljust(40, '0') + password = password.rjust(40, '0') password_length = 20 end if dataInput.include?("psha256") - password = password.ljust(64, '0') + password = password.rjust(64, '0') password_length = 32 end if dataInput.include?("psha512") - password = password.ljust(128, '0') + password = password.rjust(128, '0') password_length = 64 end From 9fd7bdb49f2993c31cf797527b836afd3b2dc15b Mon Sep 17 00:00:00 2001 From: CHRISTOPHE LECLEF <39584929+cleclefibanity@users.noreply.github.com> Date: Wed, 26 Sep 2018 15:26:28 +0200 Subject: [PATCH 4/4] OpenSSL::Digest::Digest was deprecated --- lib/rocra.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/rocra.rb b/lib/rocra.rb index 9cf44fa..032474a 100644 --- a/lib/rocra.rb +++ b/lib/rocra.rb @@ -195,7 +195,7 @@ def oath_truncate(hash, length = 6) # @param String text the message or text to be authenticated. # def hmac_sha1(crypto, keyBytes, text) - digest = OpenSSL::Digest::Digest.new(crypto) + digest = OpenSSL::Digest.new(crypto) str2hex(OpenSSL::HMAC.digest(digest, keyBytes, text)) end