Class Protocolv20Decoder

java.lang.Object
org.metricshub.ipmi.core.coding.protocol.decoder.ProtocolDecoder
org.metricshub.ipmi.core.coding.protocol.decoder.Protocolv20Decoder
All Implemented Interfaces:
IpmiDecoder
Direct Known Subclasses:
PlainCommandv20Decoder

public class Protocolv20Decoder extends ProtocolDecoder
Decodes IPMI v2.0 session header and retrieves encrypted payload.
  • Constructor Details

    • Protocolv20Decoder

      public Protocolv20Decoder(CipherSuite cipherSuite)
      Initiates IPMI v2.0 packet decoder.
      Parameters:
      cipherSuite - - CipherSuite that will be used to decode the message
  • Method Details

    • decode

      public IpmiMessage decode(RmcpMessage rmcpMessage) throws InvalidKeyException
      Decodes IPMI v2.0 message fields.
      Parameters:
      rmcpMessage - - RMCP message to decode.
      Returns:
      decoded message
      Throws:
      IllegalArgumentException - when delivered RMCP message does not contain encapsulated IPMI message or when AuthCode field is incorrect (integrity check fails).
      InvalidKeyException - - when initiation of the integrity algorithm fails
      See Also:
    • decodeAuthentication

      public boolean decodeAuthentication(byte payloadType)
      Decodes second bit of Payload Type.
      Parameters:
      payloadType -
      Returns:
      True if payload is authenticated, false otherwise.
    • decodePayloadType

      public static PayloadType decodePayloadType(byte payloadType)
    • decodeSessionID

      public static int decodeSessionID(RmcpMessage message)
      Decodes session ID.
      Parameters:
      message - - message to get session ID from
      Returns:
      Session ID.