CRYPTO-111 Include minimal main class to show that the code is working Project: http://git-wip-us.apache.org/repos/asf/commons-crypto/repo Commit: http://git-wip-us.apache.org/repos/asf/commons-crypto/commit/403c632f Tree: http://git-wip-us.apache.org/repos/asf/commons-crypto/tree/403c632f Diff: http://git-wip-us.apache.org/repos/asf/commons-crypto/diff/403c632f
Branch: refs/heads/CRYPTO-1.0.0 Commit: 403c632fb9068ee72a1cc2d5be13f837a85f3b9c Parents: 4ac4fed Author: Sebb <s...@apache.org> Authored: Sun Jul 10 13:39:33 2016 +0100 Committer: Sebb <s...@apache.org> Committed: Sun Jul 10 13:39:33 2016 +0100 ---------------------------------------------------------------------- pom.xml | 12 ++++++++++ .../java/org/apache/commons/crypto/Crypto.java | 25 ++++++++++++++++++++ 2 files changed, 37 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/commons-crypto/blob/403c632f/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index d6829fa..fc27e2c 100644 --- a/pom.xml +++ b/pom.xml @@ -440,6 +440,18 @@ The following provides more details on the included cryptographic software: </pluginManagement> <plugins> <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jar-plugin</artifactId> + <configuration> + <archive> + <manifestEntries> + <!-- Helper application --> + <Main-Class>org.apache.commons.crypto.Crypto</Main-Class> + </manifestEntries> + </archive> + </configuration> + </plugin> + <plugin> <artifactId>maven-resources-plugin</artifactId> <version>2.7</version> <executions> http://git-wip-us.apache.org/repos/asf/commons-crypto/blob/403c632f/src/main/java/org/apache/commons/crypto/Crypto.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/crypto/Crypto.java b/src/main/java/org/apache/commons/crypto/Crypto.java index d913878..47575d4 100644 --- a/src/main/java/org/apache/commons/crypto/Crypto.java +++ b/src/main/java/org/apache/commons/crypto/Crypto.java @@ -20,8 +20,12 @@ package org.apache.commons.crypto; import java.io.IOException; import java.io.InputStream; import java.net.URL; +import java.security.GeneralSecurityException; import java.util.Properties; +import org.apache.commons.crypto.cipher.CryptoCipherFactory; +import org.apache.commons.crypto.random.CryptoRandomFactory; + /** * Provides diagnostic information about Commons Crypto and keys for native class loading */ @@ -113,4 +117,25 @@ public final class Crypto { return ComponentPropertiesHolder.PROPERTIES.getProperty("NAME"); } + public static void main(String args[]) throws Exception { + System.out.println(getComponentName() + " " + getComponentVersion()); + if (isNativeCodeLoaded()) { + System.out.println("Native code loaded OK, version: TBA"); // TODO get VERSION from native code + { + Properties props = new Properties(); + props.setProperty(CryptoRandomFactory.CLASSES_KEY, CryptoRandomFactory.RandomProvider.OPENSSL.getClassName()); + CryptoRandomFactory.getCryptoRandom(props); + System.out.println("Random instance created OK"); + } + System.out.println("OpenSSL library loaded OK, version: TBA"); // TODO get SSLeay() etc. from library + { + Properties props = new Properties(); + props.setProperty(CryptoCipherFactory.CLASSES_KEY, CryptoCipherFactory.CipherProvider.OPENSSL.getClassName()); + CryptoCipherFactory.getCryptoCipher("AES/CTR/NoPadding", props); + System.out.println("Cipher instance created OK"); + } + } else { + System.out.println("Native load failed: " + getLoadingError()); + } + } }