Author: gk
Date: Fri Jul 24 10:34:45 2020
New Revision: 1880256
URL: http://svn.apache.org/viewvc?rev=1880256&view=rev
Log:
- add debug info
- more complete examples
Modified:
turbine/fulcrum/trunk/yaafi-crypto/src/java/org/apache/fulcrum/jce/crypto/cli/CLI2.java
turbine/fulcrum/trunk/yaafi-crypto/xdocs/examples.xml
Modified:
turbine/fulcrum/trunk/yaafi-crypto/src/java/org/apache/fulcrum/jce/crypto/cli/CLI2.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/yaafi-crypto/src/java/org/apache/fulcrum/jce/crypto/cli/CLI2.java?rev=1880256&r1=1880255&r2=1880256&view=diff
==============================================================================
---
turbine/fulcrum/trunk/yaafi-crypto/src/java/org/apache/fulcrum/jce/crypto/cli/CLI2.java
(original)
+++
turbine/fulcrum/trunk/yaafi-crypto/src/java/org/apache/fulcrum/jce/crypto/cli/CLI2.java
Fri Jul 24 10:34:45 2020
@@ -115,8 +115,9 @@ public class CLI2 {
private static void printInfo() {
CryptoUtilJ8 cryptoUtilJ8 = CryptoUtilJ8.getInstance();
System.out.println("");
- System.out.println("\t|Crypto factory class: \t" +
cryptoUtilJ8.getCryptoStreamFactory().getClass());
+ System.out.println("\t| Default Crypto factory class: \t" +
cryptoUtilJ8.getCryptoStreamFactory().getClass());
System.out.println("\t|_Default Algorithm used: \t" +
cryptoUtilJ8.getCryptoStreamFactory().getAlgorithm());
+
List<String> algoShortList =
Arrays.stream(CryptoParametersJ8.TYPES.values()).map(t -> t.toString())
.collect(Collectors.toList());
System.out.println("\t|Algorithms (shortcut) available: \t" +
algoShortList);
@@ -139,6 +140,14 @@ public class CLI2 {
result:
CryptoParametersJ8.getSupportedAlgos(algoList, type, false)), type));
System.out.println("");
+ if (debug) {
+
Arrays.stream(CryptoParametersJ8.TYPES.values()).forEach(t -> {
+ CryptoUtilJ8 testcu =
CryptoUtilJ8.getInstance(t);
+ System.out.println("\t| Crypto factory class:
\t" + testcu.getCryptoStreamFactory().getClass());
+ System.out.println("\t|_Algorithm used: \t" +
testcu.getCryptoStreamFactory().getAlgorithm());
+
+ });
+ }
System.out.println(
"\t|_ More Info:
https://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html\r\n");
}
@@ -151,21 +160,21 @@ public class CLI2 {
System.out.println(
"\r\n\t*** Command line tool for
encrypting/decrypting strings/files ***\r\n\t*** algorithm based on "
+
CryptoParametersJ8.TYPES_IMPL.ALGORITHM_J8_PBE + "***\r\n");
- System.out.println("\tjava -cp target\\classes; " +
CLI2.class.getName()
+ System.out.println("\tjava -cp target\\classes " +
CLI2.class.getName()
+ " <operation mode> <coding mode> <password>
<path|string> [target]\r\n");
System.out.println(
"\tjava -jar
target/fulcrum-yaafi-crypto-1.0.8-SNAPSHOT.jar <operation mode> <coding mode>
<password> <path|string> [target]\r\n");
- System.out.println("\t\t-------------------");
- System.out.println("\t\toperation mode: file|string|info");
- System.out.println("\t\tcoding mode: enc|dec|enc:GCM. Default
algorithm is " + TYPES.PBE);
- System.out.println("\t\t<password: string or empty:''");
- System.out.println("\t\tcode|coderef: path|string");
- System.out.println("\t\ttarget: optional\r\n");
- System.out.println("\t\t-------------------");
+ System.out.println("\t-------------------");
+ System.out.println("\toperation mode: file|string|info");
+ System.out.println("\tcoding mode: enc|dec|enc:GCM. Default
algorithm is " + TYPES.PBE);
+ System.out.println("\t<password: string or empty:''");
+ System.out.println("\tcode|coderef: path|string");
+ System.out.println("\ttarget: optional\r\n");
+ System.out.println("\t-------------------");
System.out.println("\t*** Usage: ***\r\n");
- System.out.println("\t\t" + CLI2.class.getSimpleName() + " file
[enc|dec] passwd source [target]");
- System.out.println("\t\t" + CLI2.class.getSimpleName() + "
string [enc|dec] passwd source");
- System.out.println("\t\t" + CLI2.class.getSimpleName() + "
info");
+ System.out.println("\t" + CLI2.class.getSimpleName() + " file
[enc|dec] passwd source [target]");
+ System.out.println("\t" + CLI2.class.getSimpleName() + " string
[enc|dec] passwd source");
+ System.out.println("\t" + CLI2.class.getSimpleName() + " info");
}
/**
@@ -368,4 +377,4 @@ public class CLI2 {
final Matcher matcher = HEXADECIMAL_PATTERN.matcher(input);
return matcher.matches();
}
-}
\ No newline at end of file
+}
Modified: turbine/fulcrum/trunk/yaafi-crypto/xdocs/examples.xml
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/yaafi-crypto/xdocs/examples.xml?rev=1880256&r1=1880255&r2=1880256&view=diff
==============================================================================
--- turbine/fulcrum/trunk/yaafi-crypto/xdocs/examples.xml (original)
+++ turbine/fulcrum/trunk/yaafi-crypto/xdocs/examples.xml Fri Jul 24 10:34:45
2020
@@ -28,17 +28,43 @@
<section name="Short Examples">
<subsection name="Command line Usage">
<p>
+Encrypt with default PCM the string "mysecretgeheim" and meta password
"changeit", outputs encrypted string to stdout.
<source>
<![CDATA[
java -classpath target/classes org.apache.fulcrum.jce.crypto.cli.CLI2 string
enc changeit mysecretgeheim
]]>
</source>
+ <source>
+ <![CDATA[
+ java -jar target/fulcrum-yaafi-crypto-<version>.jar string enc:GCM changeit
mysecretgeheim
+ ]]>
+ </source>
+This prints out the encrypted "mysecretgeheim".
+ <source>
+ <![CDATA[
+ java -jar target/fulcrum-yaafi-crypto-<version>.jar string dec:GCM changeit
88f8ecc93cc921672e13862d75f90c55a4cc2d823c36e6ac3da0225e397770f45d3944f6be859fe25d053a8442313a5a2581e7edf081030e
+ ]]>
+ </source>
+This decrypts the result to stdout and prints information (supported type,
matched type ..) to system.err.
</p>
- <p>An example using an ant build tool and property file is the
provided Integration Test in pom.xml.
- By default running this will write the encrypted password to
src/filters/filter-integration-test.properties and the decrypted password to
target/integration-test/filtered-pw.properties. On the command line with
custom password and meta password this is done like this (assuming
-Dskip.pw.gen=false -Dskip.pw.encrypt=false):
+ <p>CLI Usage Help:
+ <source>
+ <![CDATA[
+ java -jar target/fulcrum-yaafi-crypto-<version>.jar help
+ ]]>
+ </source>
+ Information about supported cipher libs:
+ <source>
+ <![CDATA[
+ java -jar target/fulcrum-yaafi-crypto-<version>.jar info
+ ]]>
+ </source>
+ </p>
+ <p>An example using an ant build tool and property file is provided
in pom-xml with phase integration-test.
+ By default running this will write the encrypted password to
target/integration-test/filter-integration-test.properties and the decrypted
password to target/integration-test/filtered-pw.properties. You could play with
this toll on the command line providing a custom secret and meta password like
this (assuming -Dskip.pw.gen=false -Dskip.pw.encrypt=false):
<source>
<![CDATA[
-mvn integration-test -Dtest.password="xyz" -Dmeta.pw="abc"
+mvn integration-test -Dtest.password="xyz" -Dmeta.pw="abc"
]]>
</source>
</p>
@@ -325,8 +351,7 @@ mvn clean
<p>This example could be extended or adapted, eg. by using multiple
passwords, or encrypting an entire file.
Have fun!
</p>
- <p>TODO Show gradle example..
- </p>
+
</subsection>
</section>