Class SignatureCallback

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

public class SignatureCallback extends Object implements Callback, Serializable
SignatureCallback provides a Callback implementation used to perform PKI authentication. This callback is instantiated by the server with a random token which must be signed using the user's certificate which contains one of the recognizedAuthorities within it certificate chain.

It is the responsibility of the callback handler to invoke the sign(X509Certificate[], byte[]) and return this object in response to the callback.

See Also:
  • Field Details

  • Constructor Details

    • SignatureCallback

      public SignatureCallback(X500Principal[] recognizedAuthorities, byte[] token, byte[] serverSignature)
      Construct callback with a random token to be signed by the client.
      Parameters:
      recognizedAuthorities - list of CA's from which one must occur within the certificate chain of the signing certificate.
      token - random bytes to be signed
  • Method Details

    • getRecognizedAuthorities

      public Principal[] getRecognizedAuthorities()
      Returns list of approved certificate authorities.
    • getToken

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

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

      public byte[] getServerSignature()
      Returns the server's signature of the token bytes.
    • getCertificateChain

      public X509Certificate[] getCertificateChain()
      Returns certificate chain used to sign token.
    • sign

      public void sign(X509Certificate[] sigCertChain, byte[] certSignature)
      Set token signature data. Method must be invoked by callback handler.
      Parameters:
      sigCertChain - certificate chain used to sign token.
      certSignature - token signature
    • getSigAlg

      public String getSigAlg()