Author: schultz
Date: Mon Oct 9 21:55:29 2017
New Revision: 1811614
URL: http://svn.apache.org/viewvc?rev=1811614&view=rev
Log:
Add main method to OpenSSLCipherConfigurationParser and wrapper script to mimic
"openssl ciphers" command.
Added:
tomcat/trunk/bin/ciphers.sh (with props)
Modified:
tomcat/trunk/java/org/apache/tomcat/util/net/openssl/ciphers/OpenSSLCipherConfigurationParser.java
Added: tomcat/trunk/bin/ciphers.sh
URL:
http://svn.apache.org/viewvc/tomcat/trunk/bin/ciphers.sh?rev=1811614&view=auto
==============================================================================
--- tomcat/trunk/bin/ciphers.sh (added)
+++ tomcat/trunk/bin/ciphers.sh Mon Oct 9 21:55:29 2017
@@ -0,0 +1,60 @@
+#!/bin/sh
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# -----------------------------------------------------------------------------
+# Script to digest password using the algorithm specified
+# -----------------------------------------------------------------------------
+
+# Better OS/400 detection: see Bugzilla 31132
+os400=false
+case "`uname`" in
+OS400*) os400=true;;
+esac
+
+# resolve links - $0 may be a softlink
+PRG="$0"
+
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`/"$link"
+ fi
+done
+
+PRGDIR=`dirname "$PRG"`
+EXECUTABLE=tool-wrapper.sh
+
+# Check that target executable exists
+if $os400; then
+ # -x will Only work on the os400 if the files are:
+ # 1. owned by the user
+ # 2. owned by the PRIMARY group of the user
+ # this will not work if the user belongs in secondary groups
+ eval
+else
+ if [ ! -x "$PRGDIR"/"$EXECUTABLE" ]; then
+ echo "Cannot find $PRGDIR/$EXECUTABLE"
+ echo "The file is absent or does not have execute permission"
+ echo "This file is needed to run this program"
+ exit 1
+ fi
+fi
+
+exec "$PRGDIR"/"$EXECUTABLE"
org.apache.tomcat.util.net.openssl.ciphers.OpenSSLCipherConfigurationParser "$@"
Propchange: tomcat/trunk/bin/ciphers.sh
------------------------------------------------------------------------------
svn:executable = *
Modified:
tomcat/trunk/java/org/apache/tomcat/util/net/openssl/ciphers/OpenSSLCipherConfigurationParser.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/openssl/ciphers/OpenSSLCipherConfigurationParser.java?rev=1811614&r1=1811613&r2=1811614&view=diff
==============================================================================
---
tomcat/trunk/java/org/apache/tomcat/util/net/openssl/ciphers/OpenSSLCipherConfigurationParser.java
(original)
+++
tomcat/trunk/java/org/apache/tomcat/util/net/openssl/ciphers/OpenSSLCipherConfigurationParser.java
Mon Oct 9 21:55:29 2017
@@ -824,4 +824,77 @@ public class OpenSSLCipherConfigurationP
}
return builder.toString().substring(0, builder.length() - 1);
}
+
+ public static void usage() {
+ System.out.println("Usage: java " +
OpenSSLCipherConfigurationParser.class.getName() + " [options] cipherspec");
+ System.out.println();
+ System.out.println("Displays the TLS cipher suites matching the
cipherspec.");
+ System.out.println();
+ System.out.println(" --help,");
+ System.out.println(" -h Print this help message");
+ System.out.println(" --openssl Show OpenSSL cipher suite names
instead of IANA cipher suite names.");
+ System.out.println(" --verbose,");
+ System.out.println(" -v Provide detailed cipher listing");
+ }
+
+ public static void main(String[] args) throws Exception
+ {
+ boolean verbose = false;
+ boolean useOpenSSLNames = false;
+ int argindex;
+ for(argindex = 0; argindex < args.length; ++argindex)
+ {
+ String arg = args[argindex];
+ if("--verbose".equals(arg) || "-v".equals(arg))
+ verbose = true;
+ else if("--openssl".equals(arg))
+ useOpenSSLNames = true;
+ else if("--help".equals(arg) || "-h".equals(arg)) {
+ usage();
+ System.exit(0);
+ }
+ else if("--".equals(arg)) {
+ ++argindex;
+ break;
+ } else if(arg.startsWith("-")) {
+ System.out.println("Unknown option: " + arg);
+ usage();
+ System.exit(1);
+ } else {
+ // Non-switch argument... probably the cipher spec
+ break;
+ }
+ }
+
+ String cipherSpec;
+ if(argindex < args.length) {
+ cipherSpec = args[argindex];
+ } else {
+ cipherSpec = "DEFAULT";
+ }
+ Set<Cipher> ciphers = parse(cipherSpec);
+ boolean first = true;
+ if(null != ciphers && 0 < ciphers.size()) {
+ for(Cipher cipher : ciphers)
+ {
+ if(first) {
+ first = false;
+ } else {
+ if(verbose) {
+ System.out.println("\t" + cipher.getProtocol() +
"\tKx=" + cipher.getKx() + "\tAu=" + cipher.getAu() + "\tEnc=" +
cipher.getEnc() + "\tMac=" + cipher.getMac());
+ }
+ else
+ System.out.print(',');
+ }
+ if(useOpenSSLNames)
+ System.out.print(cipher.getOpenSSLAlias());
+ else
+ System.out.print(cipher.name());
+ }
+ if(verbose)
+ System.out.println();
+ } else {
+ System.out.println("No ciphers match '" + cipherSpec + "'");
+ }
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]