class CryptoToolchain::BlackBoxes::RSAUnpaddedMessageRecoveryOracle
Attributes
keypair[R]
Public Class Methods
new(keypair: CryptoToolchain::BlackBoxes::RSAKeypair.new)
click to toggle source
# File lib/crypto_toolchain/black_boxes/rsa_unpadded_message_recovery_oracle.rb, line 7 def initialize(keypair: CryptoToolchain::BlackBoxes::RSAKeypair.new) @keypair = keypair @seen = [] end
Public Instance Methods
encrypt(ciphertext)
click to toggle source
# File lib/crypto_toolchain/black_boxes/rsa_unpadded_message_recovery_oracle.rb, line 19 def encrypt(ciphertext) keypair.encrypt(ciphertext, to: keypair.public_key) end
execute(ciphertext)
click to toggle source
# File lib/crypto_toolchain/black_boxes/rsa_unpadded_message_recovery_oracle.rb, line 12 def execute(ciphertext) hsh = Digest::SHA256.hexdigest(ciphertext) raise ArgumentError.new("Already decrypted") if @seen.include?(hsh) @seen << hsh keypair.decrypt(ciphertext) end