Module: HrrRbSsh::Transport::MacAlgorithm::Functionable
- Included in:
- HmacMd5, HmacMd5_96, HmacSha1, HmacSha1_96, HmacSha2_256, HmacSha2_512
- Defined in:
- lib/hrr_rb_ssh/transport/mac_algorithm/functionable.rb
Instance Method Summary collapse
- #compute(sequence_number, unencrypted_packet) ⇒ Object
- #digest_length ⇒ Object
- #initialize(key) ⇒ Object
- #key_length ⇒ Object
Instance Method Details
#compute(sequence_number, unencrypted_packet) ⇒ Object
23 24 25 26 27 |
# File 'lib/hrr_rb_ssh/transport/mac_algorithm/functionable.rb', line 23 def compute sequence_number, unencrypted_packet data = DataType::Uint32.encode(sequence_number) + unencrypted_packet digest = OpenSSL::HMAC.digest self.class::DIGEST, @key, data digest[0, digest_length] end |
#digest_length ⇒ Object
15 16 17 |
# File 'lib/hrr_rb_ssh/transport/mac_algorithm/functionable.rb', line 15 def digest_length self.class::DIGEST_LENGTH end |
#initialize(key) ⇒ Object
10 11 12 13 |
# File 'lib/hrr_rb_ssh/transport/mac_algorithm/functionable.rb', line 10 def initialize key @logger = Logger.new(self.class.name) @key = key end |
#key_length ⇒ Object
19 20 21 |
# File 'lib/hrr_rb_ssh/transport/mac_algorithm/functionable.rb', line 19 def key_length self.class::KEY_LENGTH end |