Class SSHSignatureCallback

java.lang.Object
ghidra.framework.remote.SSHSignatureCallback
All Implemented Interfaces:
Serializable, Callback

public class SSHSignatureCallback extends Object implements Callback, Serializable
SSHSignatureCallback provides a Callback implementation used to perform SSH authentication. This callback is instantiated by the server with a random token which must be signed using the user's SSH private key.

It is the responsibility of the callback handler to invoke the sign method and return this object in response to the callback. This callback must be signed and returned to the server in a short period of time or the authentication will fail.

The supplied token is validated by the server during authentication as one that it had issued but is primarily intended as the basis for the client's signature.

See Also:
  • Field Summary

    Fields
    Change
    Modifier and Type
    Field
    Description
    static final long
     
  • Constructor Summary

    Constructors
    Change
    Constructor
    Description
    SSHSignatureCallback(byte[] token, byte[] serverSignature)
    Construct callback with a random token to be signed by the client.
  • Method Summary

    Change
    Modifier and Type
    Method
    Description
    byte[]
    Get the server signature of token (using server PKI)
    byte[]
    Returns signed token bytes set by callback handler.
    byte[]
    Returns token to be signed using user certificate.
    boolean
    Returns true if callback has been signed.
    void
    sign(Object privateKeyParameters)
    Sign this challenge with the specified SSH private key.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

    • SSHSignatureCallback

      public SSHSignatureCallback(byte[] token, byte[] serverSignature)
      Construct callback with a random token to be signed by the client.
      Parameters:
      token - random bytes to be signed
      serverSignature - server signature of token (using server PKI)
  • Method Details

    • getToken

      public byte[] getToken()
      Returns token to be signed using user certificate.
      Returns:
      token to be signed using user certificate
    • getSignature

      public byte[] getSignature()
      Returns signed token bytes set by callback handler.
      Returns:
      signed token bytes set by callback handler
    • getServerSignature

      public byte[] getServerSignature()
      Get the server signature of token (using server PKI)
      Returns:
      the server's signature of the token bytes.
    • isSigned

      public boolean isSigned()
      Returns true if callback has been signed.
      Returns:
      true if callback has been signed
    • sign

      public void sign(Object privateKeyParameters) throws IOException
      Sign this challenge with the specified SSH private key.
      Parameters:
      privateKeyParameters - SSH private key parameters (RSAKeyParameters or RSAKeyParameters)
      Throws:
      IOException - if signature generation failed