public final class

Security

extends Object
java.lang.Object
   ↳ java.security.Security

Class Overview

Security is the central class in the Java Security API. It manages the list of security Provider that have been installed into this runtime environment.

Summary

Public Methods
static int addProvider(Provider provider)
Adds the given provider to the collection of providers at the next available position.
static String getAlgorithmProperty(String algName, String propName)
This method is deprecated. Use AlgorithmParameters and KeyFactory instead.
static Set<String> getAlgorithms(String serviceName)
Returns a Set of all registered algorithms for the specified cryptographic service.
static String getProperty(String key)
Returns the value of the security property named by the argument.
synchronized static Provider getProvider(String name)
Returns the Provider with the specified name.
synchronized static Provider[] getProviders(Map<StringString> filter)
Returns the array of providers which meet the user supplied set of filters.
static Provider[] getProviders(String filter)
Returns the array of providers which meet the user supplied string filter.
synchronized static Provider[] getProviders()
Returns an array containing all installed providers.
synchronized static int insertProviderAt(Provider provider, int position)
Insert the given Provider at the specified position.
synchronized static void removeProvider(String name)
Removes the Provider with the specified name form the collection of providers.
static void setProperty(String key, String datnum)
Sets the value of the specified security property.
[Expand]
Inherited Methods
From class java.lang.Object

Public Methods

public static int addProvider (Provider provider)

Since: API Level 1

Adds the given provider to the collection of providers at the next available position.

If a SecurityManager is installed, code calling this method needs the SecurityPermission insertProvider.NAME (where NAME is the provider name) to be granted, otherwise a SecurityException will be thrown.

Parameters
provider the provider to be added.
Returns
  • the actual position or -1 if the given provider was already in the list.
Throws
SecurityException if a SecurityManager is installed and the caller does not have permission to invoke this method.

public static String getAlgorithmProperty (String algName, String propName)

Since: API Level 1

This method is deprecated.
Use AlgorithmParameters and KeyFactory instead.

Returns value for the specified algorithm with the specified name.

Parameters
algName the name of the algorithm.
propName the name of the property.
Returns
  • value of the property.

public static Set<String> getAlgorithms (String serviceName)

Since: API Level 1

Returns a Set of all registered algorithms for the specified cryptographic service. "Signature", "Cipher" and "KeyStore" are examples for such kind of services.

Parameters
serviceName the case-insensitive name of the service.
Returns
  • a Set of all registered algorithms for the specified cryptographic service, or an empty Set if serviceName is null or if no registered provider provides the requested service.

public static String getProperty (String key)

Since: API Level 1

Returns the value of the security property named by the argument.

If a SecurityManager is installed, code calling this method needs the SecurityPermission getProperty.KEY (where KEY is the specified key) to be granted, otherwise a SecurityException will be thrown.

Parameters
key the name of the requested security property.
Returns
  • the value of the security property.
Throws
SecurityException if a SecurityManager is installed and the caller does not have permission to invoke this method.

public static synchronized Provider getProvider (String name)

Since: API Level 1

Returns the Provider with the specified name. Returns null if name is null or no provider with the specified name is installed.

Parameters
name the name of the requested provider.
Returns
  • the provider with the specified name, maybe null.

public static synchronized Provider[] getProviders (Map<StringString> filter)

Since: API Level 1

Returns the array of providers which meet the user supplied set of filters. The filter must be supplied in one of two formats:

  • CRYPTO_SERVICE_NAME.ALGORITHM_OR_TYPE

    for example: "MessageDigest.SHA" The value associated with the key must be an empty string.

  • CRYPTO_SERVICE_NAME.ALGORITHM_OR_TYPE ATTR_NAME:ATTR_VALUE

    for example: "Signature.MD2withRSA KeySize:512" where "KeySize:512" is the value of the filter map entry.

  • Parameters
    filter case-insensitive filter.
    Returns
    • the providers which meet the user supplied string filter filter. A null value signifies that none of the installed providers meets the filter specification.
    Throws
    InvalidParameterException if an unusable filter is supplied.
    NullPointerException if filter is null.

    public static Provider[] getProviders (String filter)

    Since: API Level 1

    Returns the array of providers which meet the user supplied string filter. The specified filter must be supplied in one of two formats:

  • CRYPTO_SERVICE_NAME.ALGORITHM_OR_TYPE

    (for example: "MessageDigest.SHA")

  • CRYPTO_SERVICE_NAME.ALGORITHM_OR_TYPE ATTR_NAME:ATTR_VALUE

    (for example: "Signature.MD2withRSA KeySize:512")

  • Parameters
    filter case-insensitive filter.
    Returns
    • the providers which meet the user supplied string filter filter. A null value signifies that none of the installed providers meets the filter specification.
    Throws
    InvalidParameterException if an unusable filter is supplied.
    NullPointerException if filter is null.

    public static synchronized Provider[] getProviders ()

    Since: API Level 1

    Returns an array containing all installed providers. The providers are ordered according their preference order.

    Returns
    • an array containing all installed providers.

    public static synchronized int insertProviderAt (Provider provider, int position)

    Since: API Level 1

    Insert the given Provider at the specified position. The positions define the preference order in which providers are searched for requested algorithms.

    If a SecurityManager is installed, code calling this method needs the SecurityPermission insertProvider.NAME (where NAME is the provider name) to be granted, otherwise a SecurityException will be thrown.

    Parameters
    provider the provider to insert.
    position the position (starting from 1).
    Returns
    • the actual position or -1 if the given provider was already in the list. The actual position may be different from the desired position.
    Throws
    SecurityException if a SecurityManager is installed and the caller does not have permission to invoke this method.

    public static synchronized void removeProvider (String name)

    Since: API Level 1

    Removes the Provider with the specified name form the collection of providers. If the the Provider with the specified name is removed, all provider at a greater position are shifted down one position.

    Returns silently if name is null or no provider with the specified name is installed.

    If a SecurityManager is installed, code calling this method needs the SecurityPermission removeProvider.NAME (where NAME is the provider name) to be granted, otherwise a SecurityException will be thrown.

    Parameters
    name the name of the provider to remove.
    Throws
    SecurityException if a SecurityManager is installed and the caller does not have permission to invoke this method.

    public static void setProperty (String key, String datnum)

    Since: API Level 1

    Sets the value of the specified security property.

    If a SecurityManager is installed, code calling this method needs the SecurityPermission setProperty.KEY (where KEY is the specified key) to be granted, otherwise a SecurityException will be thrown.

    Parameters
    key the name of the security property.
    datnum the value of the security property.
    Throws
    SecurityException if a SecurityManager is installed and the caller does not have permission to invoke this method.