Module: HrrRbSsh::Transport::MacAlgorithm::Functionable
- Included in:
- HmacMd5, HmacMd5_96, HmacSha1, HmacSha1_96
- 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
24 25 26 27 28 |
# File 'lib/hrr_rb_ssh/transport/mac_algorithm/functionable.rb', line 24 def compute sequence_number, unencrypted_packet data = HrrRbSsh::Transport::DataType::Uint32.encode(sequence_number) + unencrypted_packet digest = OpenSSL::HMAC.digest self.class::DIGEST, @key, data digest[0, digest_length] end |
#digest_length ⇒ Object
16 17 18 |
# File 'lib/hrr_rb_ssh/transport/mac_algorithm/functionable.rb', line 16 def digest_length self.class::DIGEST_LENGTH end |
#initialize(key) ⇒ Object
10 11 12 13 14 |
# File 'lib/hrr_rb_ssh/transport/mac_algorithm/functionable.rb', line 10 def initialize key super @key = key end |
#key_length ⇒ Object
20 21 22 |
# File 'lib/hrr_rb_ssh/transport/mac_algorithm/functionable.rb', line 20 def key_length self.class::KEY_LENGTH end |