Skip to content

What third-party dependencies does the Maverick Synergy API have

The core implementation of the Maverick Synergy SSH API has no third-party dependencies. However, several extension modules provide additional features that do have dependencies on third-party, open-source libraries. This article outlines each extension and dependencies, with the current version and licensing information.

Modules with Third-Party Dependencies

maverick-bc

This module provides tight integration with the BouncyCastle JCE. To use this module, you must execute the following code before any other calls to the Maverick Synergy SSH API. 

JCEProvider.enableBouncyCastle(true);

The boolean parameter passed indicates a value for 'makeDefault', which is used to configure some or all algorithms (see below)

Several configuration changes occur by including this module and executing the above statement.

  1. If the BouncyCastle API is not installed as a SecurityProvider, then it is installed using Security.addProvider
  2. The ECDSA algorithm name is changed to "ECDSA" instead of "EC"
  3. If makeDefault is true, BC will be used for all algorithms that the API supports; otherwise, it will just be made the default for the Diffie Hellman key exchange implementations.

GroupId/ArtifactId

Version

License

Notes

org.bouncycastle/bcprov-jdk18on

1.76

BouncyCastle (MIT Style)

org.bouncycastle/bcpkix-jdk18on

1.76

BouncyCastle (MIT Style)

maverick-bcfips

Like the maverick-bc, this module provides enhanced support for the BC FIPS-certified JCE. It performs the same function as maverick-bc, and thus the same configuration changes, and the following must be called:

JCEProvider.enableBouncyCastle(true);

GroupId/ArtifactId

Version

License

org.bc/bc-fips

1.0.2.4

BouncyCastle (MIT Style)

org.bc/bcpkix-fips

1.0.7

BouncyCastle (MIT Style)

maverick-virtual-session

This module enables the creation of interactive shells in the Maverick Synergy Server API. With this API, you can write commands that can be executed within a virtual shell.

GroupId/ArtifactId

Version

License

Notes

commons-cli

1.3.1

Apache 2.0

This dependency is only required if using ShellCommandWithOptions class.

commons-lang3

3.12.0

Apache 2.0

jline

3.12.0

Apache 2.0

pty4j

0.12.11

Eclipse Public License 1.0

Required if you use AbstractOSCommand or native shells using Shell command.

purejavacomm

0.0.11.1

BSD

Required by pty4j

jna

5.12.1

LGPL

Required by pty4j

maverick-virtual-filesystem

This module provides an AbstractFile implementation that enables the creation of virtual file systems, with the ability to mount other file system types to paths within the virtual file system. 

GroupId/ArtifactId

Version

License

Notes

org.apache/commons-vfs2

2.9

Apache 2.0

Only required when using VFSFileFactory / VFSFile

org.apache/commons-lang3

3.12.0

Apache 2.0

Only required when using VFSFileFactory / VFSFile

org.apache/commons-logging

1.2

Apache 2.0

Only required when using VFSFileFactory / VFSFile

* When using VFSFile, further dependencies may be required depending upon the file system providers you want to use in commons-vfs2

maverick-sshagent-jni-sockets

This module provides UNIX socket support to the maverick-sshagent. Use this if you need to use the sshagent on Linux or OSX when the JRE version is lower than 16. If you are using Java 16 or above, use the maverick-sshagent-jdk16-sockets that has no dependencies.

GroupId/ArtifactId

Version

License

Notes

jna-platform

5.12.1

Apache 2.0

junixsocket

2.8.1

Apache 2.0

maverick-sshagent-named-pipes

This module provides UNIX socket support to the maverick-sshagent. Use this if you need to use the sshagent on Linux or OSX when the JRE version is lower than 16. If you are using Java 16 or above, use the maverick-sshagent-jdk16-sockets that has no dependencies.

GroupId/ArtifactId

Version

License

Notes

jna-platform

5.12.1

Apache 2.0