package com.mindprod.example;

import static java.lang.System.out;
import java.security.Provider;
import java.security.Security;

/**
 * Test JCE, find providers and algorithms supported.
 * <p/>
 * composed with IntelliJ IDEA.
 *
 * @author Roedy Green, Canadian Mind Products.
 * @version 1.0
 */
public final class TestJCE
    {
// --------------------------- main() method ---------------------------

    /**
     * Prepare a list of providers and services.
     *
     * @param args not used
     */
    public static void main( String[] args )
        {
        System.out
                .println( "Algorithms Supported in Java "
                          + System.getProperty( "java.version" )
                          + " JCE." );
        System.out
                .println( "====================" );
        // heading
        out.println( "Provider: type.algorithm -> className"
                     + "\n  aliases:"
                     + "\n  attributes:\n" );

        // discover providers
        Provider[] providers = Security.getProviders();
        for ( Provider provider : providers )
            {
            out.println( "<><><>" + provider + "<><><>\n" );
            // discover services of each provider
            for ( Provider.Service service : provider.getServices() )
                {
                out.println( service );
                }
            out.println();
            }
        }
    }