Java/Security/Providers

Материал из Java эксперт
Перейти к: навигация, поиск

List All Provider And Its Algorithms

   <source lang="java">

/* Buildfile: build.xml copy-resources: compile:

   [javac] Compiling 1 source file to C:\Java_Dev\WEB\dev\jce\env\build

run:

    [java] SUN version 1.5
    [java]     Alg.Alias.KeyFactory.1.2.840.10040.4.1
    [java]     Alg.Alias.Signature.1.2.840.10040.4.3
    [java]     Alg.Alias.KeyPairGenerator.OID.1.2.840.10040.4.1
    [java]     Signature.SHA1withDSA KeySize
    [java]     CertStore.LDAP LDAPSchema
    [java]     Signature.SHA1withDSA ImplementedIn
    [java]     Provider.id name
    [java]     CertPathValidator.PKIX ValidationAlgorithm
    [java]     CertPathBuilder.PKIX
    [java]     MessageDigest.SHA-384
    [java]     Alg.Alias.KeyFactory.1.3.14.3.2.12
    [java]     CertStore.LDAP
    [java]     Signature.NONEwithDSA SupportedKeyClasses
    [java]     AlgorithmParameterGenerator.DSA
    [java]     MessageDigest.SHA-256
    [java]     MessageDigest.SHA-512
    [java]     Alg.Alias.KeyPairGenerator.1.3.14.3.2.12
    [java]     Alg.Alias.Signature.SHA/DSA
    [java]     Provider.id version
    [java]     Alg.Alias.Signature.1.3.14.3.2.13
    [java]     SecureRandom.SHA1PRNG
    [java]     Alg.Alias.Signature.DSS
    [java]     CertStore.Collection
    [java]     KeyStore.JKS ImplementedIn
    [java]     KeyFactory.DSA ImplementedIn
    [java]     MessageDigest.SHA ImplementedIn
    [java]     Signature.SHA1withDSA
    [java]     AlgorithmParameters.DSA
    [java]     CertPathBuilder.PKIX ValidationAlgorithm
    [java]     MessageDigest.SHA
    [java]     Alg.Alias.AlgorithmParameters.1.3.14.3.2.12
    [java]     AlgorithmParameterGenerator.DSA ImplementedIn
    [java]     MessageDigest.MD5 ImplementedIn
    [java]     Alg.Alias.Signature.DSA
    [java]     Alg.Alias.CertificateFactory.X509
    [java]     KeyStore.JKS
    [java]     CertificateFactory.X.509
    [java]     Signature.SHA1withDSA SupportedKeyClasses
    [java]     Alg.Alias.Signature.DSAWithSHA1
    [java]     MessageDigest.MD5
    [java]     KeyPairGenerator.DSA
    [java]     Alg.Alias.Signature.SHAwithDSA
    [java]     MessageDigest.MD2
    [java]     Alg.Alias.Signature.OID.1.2.840.10040.4.3
    [java]     CertStore.ru.sun.security.IndexedCollection ImplementedIn
    [java]     CertificateFactory.X.509 ImplementedIn
    [java]     Alg.Alias.Signature.RawDSA
    [java]     KeyPairGenerator.DSA ImplementedIn
    [java]     CertPathValidator.PKIX ImplementedIn
    [java]     Alg.Alias.Signature.SHA1/DSA
    [java]     CertPathValidator.PKIX
    [java]     Alg.Alias.KeyPairGenerator.1.2.840.10040.4.1
    [java]     CertStore.Collection ImplementedIn
    [java]     Alg.Alias.MessageDigest.SHA-1
    [java]     Provider.id info
    [java]     AlgorithmParameters.DSA ImplementedIn
    [java]     Signature.NONEwithDSA
    [java]     Alg.Alias.MessageDigest.SHA1
    [java]     CertStore.ru.sun.security.IndexedCollection
    [java]     CertPathBuilder.PKIX ImplementedIn
    [java]     KeyPairGenerator.DSA KeySize
    [java]     Alg.Alias.AlgorithmParameters.1.2.840.10040.4.1
    [java]     KeyFactory.DSA
    [java]     Alg.Alias.Signature.1.3.14.3.2.27
    [java]     Provider.id className
    [java]     CertStore.LDAP ImplementedIn
    [java]     SecureRandom.SHA1PRNG ImplementedIn
    [java]     AlgorithmParameterGenerator.DSA KeySize
    [java]     Alg.Alias.Signature.SHA-1/DSA
    [java] SunRsaSign version 1.5
    [java]     Alg.Alias.Signature.OID.1.2.840.113549.1.1.4
    [java]     Alg.Alias.Signature.OID.1.2.840.113549.1.1.2
    [java]     Alg.Alias.KeyFactory.1.2.840.113549.1.1
    [java]     Signature.SHA512withRSA SupportedKeyClasses
    [java]     Provider.id version
    [java]     Signature.MD5withRSA SupportedKeyClasses
    [java]     Alg.Alias.Signature.1.2.840.113549.1.1.13
    [java]     KeyPairGenerator.RSA
    [java]     Alg.Alias.Signature.1.2.840.113549.1.1.12
    [java]     Alg.Alias.Signature.1.2.840.113549.1.1.11
    [java]     KeyFactory.RSA
    [java]     Alg.Alias.Signature.1.3.14.3.2.29
    [java]     Alg.Alias.KeyPairGenerator.OID.1.2.840.113549.1.1
    [java]     Signature.MD2withRSA
    [java]     Signature.SHA384withRSA
    [java]     Signature.MD5withRSA
    [java]     Provider.id info
    [java]     Signature.SHA1withRSA SupportedKeyClasses
    [java]     Signature.SHA1withRSA
    [java]     Alg.Alias.Signature.1.2.840.113549.1.1.5
    [java]     Signature.SHA256withRSA
    [java]     Alg.Alias.Signature.1.2.840.113549.1.1.4
    [java]     Provider.id className
    [java]     Alg.Alias.Signature.OID.1.2.840.113549.1.1.13
    [java]     Alg.Alias.Signature.OID.1.2.840.113549.1.1.12
    [java]     Alg.Alias.Signature.1.2.840.113549.1.1.2
    [java]     Alg.Alias.Signature.OID.1.2.840.113549.1.1.11
    [java]     Signature.MD2withRSA SupportedKeyClasses
    [java]     Provider.id name
    [java]     Alg.Alias.KeyFactory.OID.1.2.840.113549.1.1
    [java]     Signature.SHA384withRSA SupportedKeyClasses
    [java]     Signature.SHA512withRSA
    [java]     Signature.SHA256withRSA SupportedKeyClasses
    [java]     Alg.Alias.Signature.OID.1.2.840.113549.1.1.5
    [java]     Alg.Alias.KeyPairGenerator.1.2.840.113549.1.1
    [java] SunJSSE version 1.5
    [java]     Alg.Alias.Signature.OID.1.2.840.113549.1.1.4
    [java]     Alg.Alias.KeyFactory.1.2.840.113549.1.1
    [java]     Alg.Alias.Signature.OID.1.2.840.113549.1.1.2
    [java]     Provider.id version
    [java]     TrustManagerFactory.SunX509
    [java]     KeyManagerFactory.NewSunX509
    [java]     KeyPairGenerator.RSA
    [java]     KeyStore.PKCS12
    [java]     SSLContext.SSLv3
    [java]     KeyFactory.RSA
    [java]     Alg.Alias.Signature.1.3.14.3.2.29
    [java]     Alg.Alias.TrustManagerFactory.X509
    [java]     Alg.Alias.KeyPairGenerator.OID.1.2.840.113549.1.1
    [java]     Signature.MD5andSHA1withRSA
    [java]     Signature.MD2withRSA
    [java]     Signature.MD5withRSA
    [java]     Provider.id info
    [java]     Signature.SHA1withRSA
    [java]     Alg.Alias.Signature.1.2.840.113549.1.1.5
    [java]     Alg.Alias.Signature.1.2.840.113549.1.1.4
    [java]     Provider.id className
    [java]     Alg.Alias.Signature.OID.1.3.14.3.2.29
    [java]     Alg.Alias.Signature.1.2.840.113549.1.1.2
    [java]     Provider.id name
    [java]     SSLContext.SSL
    [java]     SSLContext.TLS
    [java]     TrustManagerFactory.PKIX
    [java]     SSLContext.TLSv1
    [java]     Alg.Alias.KeyFactory.OID.1.2.840.113549.1.1
    [java]     KeyManagerFactory.SunX509
    [java]     Alg.Alias.TrustManagerFactory.SunPKIX
    [java]     Alg.Alias.TrustManagerFactory.X.509
    [java]     Alg.Alias.Signature.OID.1.2.840.113549.1.1.5
    [java]     Alg.Alias.KeyPairGenerator.1.2.840.113549.1.1
    [java] SunJGSS version 1.0
    [java]     Provider.id info
    [java]     Provider.id className
    [java]     Provider.id version
    [java]     GssApiMechanism.1.2.840.113554.1.2.2
    [java]     Provider.id name
    [java] SunSASL version 1.5
    [java]     Provider.id className
    [java]     SaslClientFactory.CRAM-MD5
    [java]     Provider.id version
    [java]     SaslClientFactory.EXTERNAL
    [java]     SaslClientFactory.DIGEST-MD5
    [java]     SaslClientFactory.PLAIN
    [java]     Provider.id name
    [java]     SaslClientFactory.GSSAPI
    [java]     SaslServerFactory.DIGEST-MD5
    [java]     SaslServerFactory.CRAM-MD5
    [java]     SaslServerFactory.GSSAPI
    [java]     Provider.id info

BUILD SUCCESSFUL Total time: 2 seconds

  • /

import java.security.Provider; import java.security.Security; import java.util.Enumeration; public class MainClass {

 public static void main(String[] args) throws Exception {
   try {
     Provider p[] = Security.getProviders();
     for (int i = 0; i < p.length; i++) {
         System.out.println(p[i]);
         for (Enumeration e = p[i].keys(); e.hasMoreElements();)
             System.out.println("\t" + e.nextElement());
     }
   } catch (Exception e) {
     System.out.println(e);
   }
 }

}

      </source>
   
  
 
  



List the available algorithm names for ciphers, key agreement, macs, message digests and signatures

   <source lang="java">

/* Ciphers:

           None available.

KeyAgreeents:

           None available.

Macs:

           None available.

MessageDigests:

           SHA-512
           SHA1
           MD2
           SHA
           SHA ImplementedIn
           SHA-256
           MD5 ImplementedIn
           SHA-1
           MD5
           SHA-384

Signatures:

           OID.1.2.840.10040.4.3
           OID.1.2.840.113549.1.1.4
           SHA384withRSA
           1.3.14.3.2.29
           SHA512withRSA SupportedKeyClasses
           SHA/DSA
           SHA1withDSA KeySize
           NONEwithDSA SupportedKeyClasses
           OID.1.2.840.113549.1.1.5
           SHA512withRSA
           MD5withRSA
           DSS
           OID.1.2.840.113549.1.1.11
           SHA384withRSA SupportedKeyClasses
           SHA1withRSA
           MD5withRSA SupportedKeyClasses
           NONEwithDSA
           1.2.840.113549.1.1.4
           MD5andSHA1withRSA
           1.2.840.113549.1.1.11
           OID.1.2.840.113549.1.1.13
           1.3.14.3.2.27
           1.2.840.10040.4.3
           SHA256withRSA
           MD2withRSA SupportedKeyClasses
           1.2.840.113549.1.1.2
           1.2.840.113549.1.1.12
           RawDSA
           SHA1withDSA
           SHA1/DSA
           MD2withRSA
           1.3.14.3.2.13
           SHAwithDSA
           DSAWithSHA1
           1.2.840.113549.1.1.13
           OID.1.3.14.3.2.29
           SHA1withDSA ImplementedIn
           SHA256withRSA SupportedKeyClasses
           SHA1withDSA SupportedKeyClasses
           DSA
           1.2.840.113549.1.1.5
           SHA-1/DSA
           SHA1withRSA SupportedKeyClasses
           OID.1.2.840.113549.1.1.12
           OID.1.2.840.113549.1.1.2
*/

import java.security.Provider; import java.security.Security; import java.util.HashSet; import java.util.Iterator; import java.util.Set; public class ListAlgorithms {

 public static void printSet(String setName, Set algorithms) {
   System.out.println(setName + ":");
   if (algorithms.isEmpty()) {
     System.out.println("            None available.");
   } else {
     Iterator it = algorithms.iterator();
     while (it.hasNext()) {
       String name = (String) it.next();
       System.out.println("            " + name);
     }
   }
 }
 public static void main(String[] args) {
   Provider[] providers = Security.getProviders();
   Set<String> ciphers = new HashSet<String>();
   Set<String> keyAgreements = new HashSet<String>();
   Set<String> macs = new HashSet<String>();
   Set<String> messageDigests = new HashSet<String>();
   Set<String> signatures = new HashSet<String>();
   for (int i = 0; i != providers.length; i++) {
     Iterator it = providers[i].keySet().iterator();
     while (it.hasNext()) {
       String entry = (String) it.next();
       if (entry.startsWith("Alg.Alias.")) {
         entry = entry.substring("Alg.Alias.".length());
       }
       if (entry.startsWith("Cipher.")) {
         ciphers.add(entry.substring("Cipher.".length()));
       } else if (entry.startsWith("KeyAgreement.")) {
         keyAgreements.add(entry.substring("KeyAgreement.".length()));
       } else if (entry.startsWith("Mac.")) {
         macs.add(entry.substring("Mac.".length()));
       } else if (entry.startsWith("MessageDigest.")) {
         messageDigests.add(entry.substring("MessageDigest.".length()));
       } else if (entry.startsWith("Signature.")) {
         signatures.add(entry.substring("Signature.".length()));
       }
     }
   }
   printSet("Ciphers", ciphers);
   printSet("KeyAgreeents", keyAgreements);
   printSet("Macs", macs);
   printSet("MessageDigests", messageDigests);
   printSet("Signatures", signatures);
 }

}

      </source>