Skip to content

Tuoni Plugin SDK version changelog

Tuoni Plugin SDK is available from Maven Central. It is recommended to always use the latest version of the SDK and to keep an eye on the changes reported on this page.

Plugin SDK versions will follow Tuoni versions, but SDK release may be skipped when there are no changes on the SDK side. Most of the time, the Plugin SDK version will be release ahead of the Tuoni release.

SDK Versions

0.4.2

Released only for internal use.

0.5.0 (2024-06-14)

🎉 First public release of Tuoni Plugin SDK 🎉

0.6.0 (2024-10-02)

New methods:

  • AgentMetadata - add ansiCodePage()
  • AgentMetadata.Builder - add ansiCodePage(Integer)
  • AgentInfo - add getType()

Type changes:

The following interfaces are moved to new location (previous location is still present, but deprecated):

  • AgentInfo - moves to com.shelldot.tuoni.plugin.sdk.common package
  • ListenerInfo - moves to com.shelldot.tuoni.plugin.sdk.common package
  • AgentType - moves to com.shelldot.tuoni.plugin.sdk.common package

Deprecations:

The following methods are now marked as deprecated and replaced with renamed methods.
Deprecated methods will be removed in future versions.

  • AgentMetadata#os_major() - use osMajor() instead
  • AgentMetadata#os_minor() - use osMinor() instead
  • AgentMetadata.Builder#os_major(Byte) - use osMajor(Byte) instead
  • AgentMetadata.Builder#os_minor(Byte) - use osMinor(Byte) instead

0.7.0 (2024-11-14)

New functionality:

Add PluginDataStore interface to allow plugins to store and retrieve key-value entries to the database. Each plugin has its own separate data store which only it can access.
Data Store supports storing and retrieving the following types: String, Long, Double, byte[], UUID.

The PluginDataStore is available through the PayloadPluginContext, ListenerPluginContext, and CommandPluginContext interfaces.

Type changes:

  • ShellcodeListener - implementations must now implement a new method getSupportedPayloadTypes() which must return a list of payload types the listener supports.
    This is necessary for server to understand whether a payload can be used with a listener or not.

New types:

  • PluginDataStore - provides functionality to store and retrieve key-value entries to/from the database.
  • PluginDataEntry - represents a key-value entry in the database.
  • DataStoreException - thrown when an error occurs while accessing the data store.

New methods:

  • PayloadInfo - add getStatus() method to get the status for payloads.
  • ListenerInfo - add getSupportedPayloadTypes() and supportsPayloadType(PayloadType) methods to get the supported payload types for listeners.
  • ListenerPluginContext - add getPluginDataStore() method.
  • PayloadPluginContext - add getPluginDataStore() method.
  • CommandPluginContext - add getPluginDataStore() method.