code: func (a *Authentication) UnmarshalBinary(p []byte) error {
  	b := buffer.New(p)
  	// Too short to be valid Authentication
  	if b.Len() < 11 {
  		return io.ErrUnexpectedEOF
  	}
  
  	a.Protocol = b.Read8()
  	a.Algorithm = b.Read8()
  	a.RDM = b.Read8()
  	a.ReplayDetection = b.Read64()
  	a.AuthenticationInformation = b.Remaining()
  	return nil
  }
docs: // UnmarshalBinary unmarshals a raw byte slice into a Authentication.
  // If the byte slice does not contain enough data to form a valid
  // Authentication, io.ErrUnexpectedEOF is returned.