Method: NETSNMP::Message.decode
- Defined in:
- lib/netsnmp/message.rb
.decode(stream, security_parameters:) ⇒ NETSNMP::ScopedPDU
Returns the decoded PDU.
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/netsnmp/message.rb', line 20 def decode(stream, security_parameters:) asn_tree = OpenSSL::ASN1.decode(stream) _version, _headers, sec_params, pdu_payload = asn_tree.value sec_params_asn = OpenSSL::ASN1.decode(sec_params.value).value engine_id, engine_boots, engine_time, _username, auth_param, priv_param = sec_params_asn.map(&:value) # validate_authentication security_parameters.verify(stream.sub(auth_param, AUTHNONE.value), auth_param) engine_boots = engine_boots.to_i engine_time = engine_time.to_i encoded_pdu = security_parameters.decode(pdu_payload, salt: priv_param, engine_boots: engine_boots, engine_time: engine_time) pdu = ScopedPDU.decode(encoded_pdu) [pdu, engine_id, engine_boots, engine_time] end |