class CryptoToolchain::Tools::MT19937StreamCipherSeedRecoverer
Attributes
ciphertext[R]
known[R]
Public Class Methods
new(ciphertext: , known: )
click to toggle source
# File lib/crypto_toolchain/tools/mt_19937_stream_cipher_seed_recoverer.rb, line 21 def initialize(ciphertext: , known: ) @ciphertext = ciphertext @known = known end
recover_from(ciphertext: , seed: )
click to toggle source
# File lib/crypto_toolchain/tools/mt_19937_stream_cipher_seed_recoverer.rb, line 5 def recover_from(ciphertext: , seed: ) stream = CryptoToolchain::BlackBoxes::MT19937StreamCipher.new(ciphertext, seed: seed) stream.decrypt(ciphertext) end
valid_token?(tok, start: Time.now.to_i - 5, finish: Time.now.to_i)
click to toggle source
# File lib/crypto_toolchain/tools/mt_19937_stream_cipher_seed_recoverer.rb, line 10 def valid_token?(tok, start: Time.now.to_i - 5, finish: Time.now.to_i) (start..finish).each do |seed| if tok == CryptoToolchain::BlackBoxes::MT19937StreamCipher.generate_token(seed: seed) return true end end false end
Also aliased as: valid_token
Public Instance Methods
execute()
click to toggle source
# File lib/crypto_toolchain/tools/mt_19937_stream_cipher_seed_recoverer.rb, line 26 def execute (0..CryptoToolchain::BlackBoxes::MT19937StreamCipher::MAX_SEED).each do |seed| cipher = CryptoToolchain::BlackBoxes::MT19937StreamCipher.new(ciphertext, seed: seed) if cipher.decrypt(ciphertext).include?(known) return seed end end raise RuntimeError.new, "Could not recover seed" end