ListAlgorithms.java Source code

Java tutorial

Introduction

Here is the source code for ListAlgorithms.java

Source

/*
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);
    }
}