Class: CryptoToolchain::Tools::CbcPaddingOracleAttack
- Defined in:
- lib/crypto_toolchain/tools/cbc_padding_oracle_attack.rb
Instance Method Summary collapse
- #execute ⇒ Object
-
#initialize(oracle:, blocksize: 16) ⇒ CbcPaddingOracleAttack
constructor
A new instance of CbcPaddingOracleAttack.
Constructor Details
#initialize(oracle:, blocksize: 16) ⇒ CbcPaddingOracleAttack
Returns a new instance of CbcPaddingOracleAttack.
5 6 7 8 |
# File 'lib/crypto_toolchain/tools/cbc_padding_oracle_attack.rb', line 5 def initialize(oracle: , blocksize: 16) @oracle = oracle @blocksize = blocksize end |
Instance Method Details
#execute ⇒ Object
10 11 12 13 14 15 16 17 18 19 |
# File 'lib/crypto_toolchain/tools/cbc_padding_oracle_attack.rb', line 10 def execute _blocks = ciphertext.in_blocks(blocksize) _blocks[1..-1].map.with_index(1) do |block, i| preceding = _blocks[i - 1] intermediate = intermediate_block(preceding: preceding, target: block) intermediate ^ preceding end. join. without_pkcs7_padding(blocksize) end |