]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - security/runtime/org.argeo.security.core/src/test/java/org/argeo/security/crypto/ListBCCapabilities.java
Refactor cryptography and keyring
[lgpl/argeo-commons.git] / security / runtime / org.argeo.security.core / src / test / java / org / argeo / security / crypto / ListBCCapabilities.java
diff --git a/security/runtime/org.argeo.security.core/src/test/java/org/argeo/security/crypto/ListBCCapabilities.java b/security/runtime/org.argeo.security.core/src/test/java/org/argeo/security/crypto/ListBCCapabilities.java
new file mode 100644 (file)
index 0000000..a95fba2
--- /dev/null
@@ -0,0 +1,43 @@
+package org.argeo.security.crypto;\r
+\r
+import java.security.Provider;\r
+import java.security.Security;\r
+import java.util.Iterator;\r
+\r
+import org.bouncycastle.jce.provider.BouncyCastleProvider;\r
+\r
+/**\r
+ * List the available capabilities for ciphers, key agreement, macs, message\r
+ * digests, signatures and other objects in the BC provider.\r
+ */\r
+public class ListBCCapabilities {\r
+       public static void main(String[] args) {\r
+               Security.addProvider(new BouncyCastleProvider());\r
+\r
+               Provider[] providers = Security.getProviders();\r
+               for (Provider provider : providers) {\r
+                       System.out.println(provider.getName());\r
+                       System.out.println(" " + provider.getVersion());\r
+                       System.out.println(" " + provider.getInfo());\r
+               }\r
+               Provider provider = Security.getProvider("BC");\r
+               // Provider provider = Security.getProvider(null);\r
+\r
+               Iterator it = provider.keySet().iterator();\r
+\r
+               while (it.hasNext()) {\r
+                       String entry = (String) it.next();\r
+\r
+                       // this indicates the entry refers to another entry\r
+\r
+                       if (entry.startsWith("Alg.Alias.")) {\r
+                               entry = entry.substring("Alg.Alias.".length());\r
+                       }\r
+\r
+                       String factoryClass = entry.substring(0, entry.indexOf('.'));\r
+                       String name = entry.substring(factoryClass.length() + 1);\r
+\r
+                       System.out.println(factoryClass + ": " + name);\r
+               }\r
+       }\r
+}\r