All Packages Class Hierarchy This Package Previous Next Index
Class java.security.IJCE
java.lang.Object
|
+----java.security.IJCE
- public class IJCE
- extends Object
The IJCE class provides an interface to features that were not present
in JavaSoft's initial version of JCE. Hopefully the getAlgorithms and/or
the enable/disableTracing methods will be incorporated into a later version
of the standard.
If you bundle this classfile, and the other classfiles in java.security.* that
have names starting "IJCE_" with your application, these methods should work
as documented even if linked against JavaSoft's implementation, so using them
does not result in any loss of compatibility.
This class also defines the version number of the IJCE library:
- The major version is intended to signal significant
changes in compatibility or style.
- The minor version is intended to signal small changes
in compatibility and new, compatible additions.
- The intermediate version is incremented for bug-fix and alpha
releases.
Version numbers should be written as a triple of integers, not as a decimal.
If the last number is omitted it is assumed to be 0, so for example, version
1.10 is after version 1.2.
The IJCE version number corresponding to this documentation is 1.1.
(This is independent of the version numbers of any libraries that IJCE may be
distributed with, such as Cryptix.)
Copyright © 1997
Systemics Ltd on behalf of the
Cryptix Development Team.
All rights reserved.
$Revision: 1.3 $
- Author:
- David Hopwood, Raif S. Naffah
-
disableTracing(Object)
- Disables tracing of SPI methods for obj.
-
enableTracing(Object)
- Enables tracing of calls to SPI methods for the algorithm object
obj, with Output sent to the default location, given by
getDebugOutput()
.
-
enableTracing(Object, PrintWriter)
- Enables tracing of calls to SPI methods for the algorithm object
obj.
-
findTarget(String)
- Returns a Target that can be passed to
PrivilegeManager.enablePrivilege(...)
, in order to request
permission for an action that requires the user's trust.
-
findTarget(String, Object)
- Reserved for future use, in case parameterized targets are needed.
-
getAlgorithms(Provider, String)
- Gets the standard names of all algorithms of the given type
implemented by a provider.
-
getAlgorithms(String)
- Gets the standard names of all algorithms of the given type
implemented by any installed provider.
-
getImplementation(String, String)
- Returns an object configured to the specified type.
-
getImplementation(String, String, String)
- Returns an object configured to the specified type.
-
getImplementationClass(String, String)
- Given an algorithm name (which may be an alias) and type, returns the
corresponding algorithm class from any provider.
-
getImplementationClass(String, String, String)
- Given an algorithm name (which may be an alias), a provider name, and
a type, returns the corresponding algorithm class.
-
getIntermediateVersion()
- Returns the intermediate version of this release of IJCE.
-
getMajorVersion()
- Returns the major version of this release of IJCE.
-
getMinorVersion()
- Returns the minor version of this release of IJCE.
-
getReleaseDate()
- Returns the release date of this version of IJCE, as a string in
the form "yyyy/mm/dd".
-
getStandardName(String, String)
- Expands the possible alias algorithm to a standard name.
-
getVersionString()
- Returns a string describing this version of IJCE.
-
isProvidingJCA()
- Returns true if IJCE is providing the implementations of the JCA classes
(MessageDigest, Signature, etc).
-
isProvidingJCE()
- Returns true if IJCE is providing the implementations of the JCE classes
(Cipher, KeyGenerator, etc).
-
isVersionAtLeast(int, int, int)
- Returns true iff this version of IJCE is at least the given
version.
-
main(String[])
- Prints the IJCE version string, a list of statically configured providers,
and the location of the library directory.
getAlgorithms
public static String[] getAlgorithms(Provider provider,
String type)
- Gets the standard names of all algorithms of the given type
implemented by a provider.
Possible values for type include "Cipher", "Mode",
"PaddingScheme", "MessageDigest", "Signature", "KeyGenerator",
and "KeyPairGenerator". Other types can be configured in the
IJCE.properties file.
getAlgorithms
public static String[] getAlgorithms(String type)
- Gets the standard names of all algorithms of the given type
implemented by any installed provider. Algorithm names are not
duplicated if they are supported by more than one provider
(but specialized cipher/mode implementations are treated as
distinct, for example "DES/CBC" is different from "DES").
Possible values for type include "Cipher", "Mode",
"PaddingScheme", "MessageDigest", "Signature", "KeyGenerator",
and "KeyPairGenerator". Other types can be configured in the
IJCE.properties file.
The built-in padding scheme "NONE", or the built-in mode "ECB"
are included if applicable.
enableTracing
public static boolean enableTracing(Object obj,
PrintWriter out)
- Enables tracing of calls to SPI methods for the algorithm object
obj. Output is sent to the PrintWriter out. This method
will return true if tracing was enabled successfully, or false if it
is not supported for this class.
Some trivial methods (such as those that get the block size) are not
traced.
This can produce a lot of Output, and it should only be used for
debugging, when the data being processed by the algorithm object is not
secret.
Tracing only works for classes whose implementations are being provided
by IJCE. If there is a non-IJCE implementation of the base class for
obj (Cipher, MessageDigest, etc.) earlier in the CLASSPATH, it
will probably not support tracing, and false will be returned.
Note that the IJCE library includes an implementation of
java.io.PrintWriter that will be used automatically when running
on Java 1.0.2.
enableTracing
public static boolean enableTracing(Object obj)
- Enables tracing of calls to SPI methods for the algorithm object
obj, with Output sent to the default location, given by
getDebugOutput()
.
disableTracing
public static void disableTracing(Object obj)
- Disables tracing of SPI methods for obj. Returns silently
if tracing was not enabled or is not supported for this object.
getStandardName
public static String getStandardName(String algorithm,
String type)
- Expands the possible alias algorithm to a standard name. If
algorithm is not an alias, it is returned as-is. This method
does not check whether a corresponding algorithm implementation exists.
Possible values for type include "Cipher", "Mode",
"PaddingScheme", "MessageDigest", "Signature", "KeyGenerator",
and "KeyPairGenerator". Other types can be configured in the
IJCE.properties file.
- Parameters:
- algorithm - the possible alias
- type - the type of algorithm
- Returns:
- the standard name
getImplementation
public static Object getImplementation(String algorithm,
String type) throws NoSuchAlgorithmException
- Returns an object configured to the specified type. All providers will
be searched in order of preference.
Possible values for type include "Cipher", "Mode",
"PaddingScheme", "MessageDigest", "Signature", "KeyGenerator",
and "KeyPairGenerator". Other types can be configured in the
IJCE.properties file.
- Parameters:
- algorithm - the standard name or an alias for the algorithm.
- type - the type of algorithm.
- Returns:
- the implementation object.
- Throws: NoSuchAlgorithmException
- if the algorithm is not
available in the environment.
getImplementation
public static Object getImplementation(String algorithm,
String provider,
String type) throws NoSuchAlgorithmException, NoSuchProviderException
- Returns an object configured to the specified type. Provider can be null,
in which case all providers will be searched in order of preference.
Possible values for type include "Cipher", "Mode",
"PaddingScheme", "MessageDigest", "Signature", "KeyGenerator",
and "KeyPairGenerator". Other types can be configured in the
IJCE.properties file.
- Parameters:
- algorithm - the standard name or an alias for the algorithm.
- provider - the string name of the provider.
- type - the type of algorithm.
- Returns:
- the implementation object.
- Throws: NoSuchAlgorithmException
- if the algorithm is not
available from the provider.
- Throws: NoSuchProviderException
- if the provider is not
available in the environment.
getImplementationClass
public static Class getImplementationClass(String algorithm,
String type) throws NoSuchAlgorithmException
- Given an algorithm name (which may be an alias) and type, returns the
corresponding algorithm class from any provider.
getImplementationClass
public static Class getImplementationClass(String algorithm,
String provider,
String type) throws NoSuchAlgorithmException, NoSuchProviderException
- Given an algorithm name (which may be an alias), a provider name, and
a type, returns the corresponding algorithm class.
findTarget
public static Target findTarget(String name) throws ForbiddenTargetException
- Returns a Target that can be passed to
PrivilegeManager.enablePrivilege(...)
, in order to request
permission for an action that requires the user's trust.
Currently the following target names are recognized:
- AddSecurityProvider - add a new security provider to the system.
- RemoveSecurityProvider - remove a security provider from the system.
- SecurityPropertyRead - read the security properties.
- SecurityPropertyWrite - change the value of any security property.
- GetSecurityProviders - get a reference to any security Provider object.
- Parameters:
- name - the name of the target to be returned
- Returns:
- the Target object
- Throws: ForbiddenTargetException
- if name is not recognized.
findTarget
public static Target findTarget(String name,
Object arg) throws ForbiddenTargetException
- Reserved for future use, in case parameterized targets are needed. Currently
this always throws a ForbiddenTargetException.
- Parameters:
- name - the name of the target to be returned
- arg - a parameter object
- Returns:
- the Target object
- Throws: ForbiddenTargetException
- if name is not recognized.
getMajorVersion
public static int getMajorVersion()
- Returns the major version of this release of IJCE.
getMinorVersion
public static int getMinorVersion()
- Returns the minor version of this release of IJCE.
getIntermediateVersion
public static int getIntermediateVersion()
- Returns the intermediate version of this release of IJCE.
isVersionAtLeast
public static boolean isVersionAtLeast(int major,
int minor,
int intermediate)
- Returns true iff this version of IJCE is at least the given
version.
getReleaseDate
public static String getReleaseDate()
- Returns the release date of this version of IJCE, as a string in
the form "yyyy/mm/dd".
getVersionString
public static String getVersionString()
- Returns a string describing this version of IJCE.
isProvidingJCA
public static boolean isProvidingJCA()
- Returns true if IJCE is providing the implementations of the JCA classes
(MessageDigest, Signature, etc). This will be false if another version
of JCA (for example JavaSoft's) is installed earlier in the CLASSPATH.
isProvidingJCE
public static boolean isProvidingJCE()
- Returns true if IJCE is providing the implementations of the JCE classes
(Cipher, KeyGenerator, etc). This will be false if another version
of JCE (for example JavaSoft's) is installed earlier in the CLASSPATH.
main
public static void main(String args[])
- Prints the IJCE version string, a list of statically configured providers,
and the location of the library directory.
All Packages Class Hierarchy This Package Previous Next Index