/*
 *    hashPassword.java
 *    Copyright (C) 2026 New Zealand Digital Library, http://www.nzdl.org
 *
 *    This program is free software; you can redistribute it and/or modify
 *    it under the terms of the GNU General Public License as published by
 *    the Free Software Foundation; either version 2 of the License, or
 *    (at your option) any later version.
 *
 *    This program is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *    GNU General Public License for more details.
 *
 *    You should have received a copy of the GNU General Public License
 *    along with this program; if not, write to the Free Software
 *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */
package org.greenstone.cli;

import org.greenstone.gsdl3.util.AuthenticationHelper;

/** A simple command line utility that takes a password and hashes it
 * using AuthenticationHelper function

 Run like:
java -cp bin/java/gs3-cli.jar:web/WEB-INF/lib/gsdl3.jar:web/WEB-INF/lib/* org.greenstone.cli.HashPassword <password to hash>
 */

public class HashPassword
{

  // main() method - calls hashPassword() on any String argument, printing this to stdout
  // This main() is invoked by gliserver.pl perl code to encrypt passwords identically to Java code.

  public static void main(String[] args)
  {
    if (args.length < 1)
    {
      System.err.println("Usage: Authentication <string to encrypt>");
      System.exit(-1);
    }
    // just hash the first argument
    String hash = AuthenticationHelper.hashPassword(args[0]);
    System.out.println(hash);
  }

}

