diff options
author | duke <none@none> | 2007-12-01 00:00:00 +0000 |
---|---|---|
committer | duke <none@none> | 2007-12-01 00:00:00 +0000 |
commit | 6e45e10b03bafdc125c46a4864ba802c24d6bc78 (patch) | |
tree | 182810ab2fece13f57a928d026f93e9ede0827f9 /src/share/classes/java/security/AlgorithmParametersSpi.java | |
download | jdk8u_jdk-6e45e10b03bafdc125c46a4864ba802c24d6bc78.tar.gz |
Initial load
Diffstat (limited to 'src/share/classes/java/security/AlgorithmParametersSpi.java')
-rw-r--r-- | src/share/classes/java/security/AlgorithmParametersSpi.java | 151 |
1 files changed, 151 insertions, 0 deletions
diff --git a/src/share/classes/java/security/AlgorithmParametersSpi.java b/src/share/classes/java/security/AlgorithmParametersSpi.java new file mode 100644 index 0000000000..4bff86ded5 --- /dev/null +++ b/src/share/classes/java/security/AlgorithmParametersSpi.java @@ -0,0 +1,151 @@ +/* + * Copyright 1997-2004 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Sun designates this + * particular file as subject to the "Classpath" exception as provided + * by Sun in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +package java.security; + +import java.io.*; +import java.security.spec.AlgorithmParameterSpec; +import java.security.spec.InvalidParameterSpecException; + +/** + * This class defines the <i>Service Provider Interface</i> (<b>SPI</b>) + * for the <code>AlgorithmParameters</code> class, which is used to manage + * algorithm parameters. + * + * <p> All the abstract methods in this class must be implemented by each + * cryptographic service provider who wishes to supply parameter management + * for a particular algorithm. + * + * @author Jan Luehe + * + * + * @see AlgorithmParameters + * @see java.security.spec.AlgorithmParameterSpec + * @see java.security.spec.DSAParameterSpec + * + * @since 1.2 + */ + +public abstract class AlgorithmParametersSpi { + + /** + * Initializes this parameters object using the parameters + * specified in <code>paramSpec</code>. + * + * @param paramSpec the parameter specification. + * + * @exception InvalidParameterSpecException if the given parameter + * specification is inappropriate for the initialization of this parameter + * object. + */ + protected abstract void engineInit(AlgorithmParameterSpec paramSpec) + throws InvalidParameterSpecException; + + /** + * Imports the specified parameters and decodes them + * according to the primary decoding format for parameters. + * The primary decoding format for parameters is ASN.1, if an ASN.1 + * specification for this type of parameters exists. + * + * @param params the encoded parameters. + * + * @exception IOException on decoding errors + */ + protected abstract void engineInit(byte[] params) + throws IOException; + + /** + * Imports the parameters from <code>params</code> and + * decodes them according to the specified decoding format. + * If <code>format</code> is null, the + * primary decoding format for parameters is used. The primary decoding + * format is ASN.1, if an ASN.1 specification for these parameters + * exists. + * + * @param params the encoded parameters. + * + * @param format the name of the decoding format. + * + * @exception IOException on decoding errors + */ + protected abstract void engineInit(byte[] params, String format) + throws IOException; + + /** + * Returns a (transparent) specification of this parameters + * object. + * <code>paramSpec</code> identifies the specification class in which + * the parameters should be returned. It could, for example, be + * <code>DSAParameterSpec.class</code>, to indicate that the + * parameters should be returned in an instance of the + * <code>DSAParameterSpec</code> class. + * + * @param paramSpec the the specification class in which + * the parameters should be returned. + * + * @return the parameter specification. + * + * @exception InvalidParameterSpecException if the requested parameter + * specification is inappropriate for this parameter object. + */ + protected abstract + <T extends AlgorithmParameterSpec> + T engineGetParameterSpec(Class<T> paramSpec) + throws InvalidParameterSpecException; + + /** + * Returns the parameters in their primary encoding format. + * The primary encoding format for parameters is ASN.1, if an ASN.1 + * specification for this type of parameters exists. + * + * @return the parameters encoded using their primary encoding format. + * + * @exception IOException on encoding errors. + */ + protected abstract byte[] engineGetEncoded() throws IOException; + + /** + * Returns the parameters encoded in the specified format. + * If <code>format</code> is null, the + * primary encoding format for parameters is used. The primary encoding + * format is ASN.1, if an ASN.1 specification for these parameters + * exists. + * + * @param format the name of the encoding format. + * + * @return the parameters encoded using the specified encoding scheme. + * + * @exception IOException on encoding errors. + */ + protected abstract byte[] engineGetEncoded(String format) + throws IOException; + + /** + * Returns a formatted string describing the parameters. + * + * @return a formatted string describing the parameters. + */ + protected abstract String engineToString(); +} |