public Callback[] addAuthenticationCallbacks(Callback[] primaryAuthCallbacks) {
		boolean addNameCallback = nameCallbackAllowed;
		if (nameCallbackAllowed && primaryAuthCallbacks != null) {
			for (Callback cb : primaryAuthCallbacks) {
				if (cb instanceof NameCallback) {
					// no need to add another one
					addNameCallback = false;
					break;
				}
			}
		}
		List<Callback> list = new ArrayList<Callback>();
		if (primaryAuthCallbacks != null) {
			list.addAll(Arrays.asList(primaryAuthCallbacks));
		}
		if (addNameCallback) {
			list.add(new NameCallback("User ID:"));
		}
		byte[] token = TokenGenerator.getNewToken(TOKEN_SIZE);
		try {
			boolean usingSelfSignedCert =
				ApplicationKeyManagerFactory.usingGeneratedSelfSignedCertificate();
			SignedToken signedToken = ApplicationKeyManagerUtils.getSignedToken(
				usingSelfSignedCert ? null : ApplicationKeyManagerUtils.getTrustedIssuers(), token);
			list.add(new SSHSignatureCallback(token, signedToken.signature));
		}
		catch (Exception e) {
			throw new RuntimeException("Unable to generate signed token", e);
		}
		return list.toArray(new Callback[list.size()]);
	}
<code>SSHAuthenticationModule</code> provides SHA1-RSA and SHA1-DSA signature-based authentication
support using SSH public/private keys where user public keys are made available to the server.
Module makes use of a {@link SSHSignatureCallback} object to convey the signature request to a
client.
Ghidra/Features/GhidraServer/src/main/java/ghidra/server/security/SSHAuthenticationModule.java