History

My first initial commit with all of mine experimental changes.

Dmitry Kabak (userdima committed 13 years ago

Commit d37b88d1 parent 3f5b46618352 files · +2598093 −-8690Browse files

Showing the changes to java/pkg/java/security/AlgorithmParametersSpi.java (1 of 18352 files). Show all

Unified · Split

java/pkg/java/security/AlgorithmParametersSpi.java+151−0
@@ -0,0 +1,151 @@
1+/*
2+ * Copyright (c) 1997, 2004, Oracle and/or its affiliates. All rights reserved.
3+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4+ *
5+ * This code is free software; you can redistribute it and/or modify it
6+ * under the terms of the GNU General Public License version 2 only, as
7+ * published by the Free Software Foundation. Oracle designates this
8+ * particular file as subject to the "Classpath" exception as provided
9+ * by Oracle in the LICENSE file that accompanied this code.
10+ *
11+ * This code is distributed in the hope that it will be useful, but WITHOUT
12+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14+ * version 2 for more details (a copy is included in the LICENSE file that
15+ * accompanied this code).
16+ *
17+ * You should have received a copy of the GNU General Public License version
18+ * 2 along with this work; if not, write to the Free Software Foundation,
19+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20+ *
21+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22+ * or visit www.oracle.com if you need additional information or have any
23+ * questions.
24+ */
25+
26+package java.security;
27+
28+import java.io.*;
29+import java.security.spec.AlgorithmParameterSpec;
30+import java.security.spec.InvalidParameterSpecException;
31+
32+/**
33+ * This class defines the <i>Service Provider Interface</i> (<b>SPI</b>)
34+ * for the <code>AlgorithmParameters</code> class, which is used to manage
35+ * algorithm parameters.
36+ *
37+ * <p> All the abstract methods in this class must be implemented by each
38+ * cryptographic service provider who wishes to supply parameter management
39+ * for a particular algorithm.
40+ *
41+ * @author Jan Luehe
42+ *
43+ *
44+ * @see AlgorithmParameters
45+ * @see java.security.spec.AlgorithmParameterSpec
46+ * @see java.security.spec.DSAParameterSpec
47+ *
48+ * @since 1.2
49+ */
50+
51+public abstract class AlgorithmParametersSpi {
52+
53+ /**
54+ * Initializes this parameters object using the parameters
55+ * specified in <code>paramSpec</code>.
56+ *
57+ * @param paramSpec the parameter specification.
58+ *
59+ * @exception InvalidParameterSpecException if the given parameter
60+ * specification is inappropriate for the initialization of this parameter
61+ * object.
62+ */
63+ protected abstract void engineInit(AlgorithmParameterSpec paramSpec)
64+ throws InvalidParameterSpecException;
65+
66+ /**
67+ * Imports the specified parameters and decodes them
68+ * according to the primary decoding format for parameters.
69+ * The primary decoding format for parameters is ASN.1, if an ASN.1
70+ * specification for this type of parameters exists.
71+ *
72+ * @param params the encoded parameters.
73+ *
74+ * @exception IOException on decoding errors
75+ */
76+ protected abstract void engineInit(byte[] params)
77+ throws IOException;
78+
79+ /**
80+ * Imports the parameters from <code>params</code> and
81+ * decodes them according to the specified decoding format.
82+ * If <code>format</code> is null, the
83+ * primary decoding format for parameters is used. The primary decoding
84+ * format is ASN.1, if an ASN.1 specification for these parameters
85+ * exists.
86+ *
87+ * @param params the encoded parameters.
88+ *
89+ * @param format the name of the decoding format.
90+ *
91+ * @exception IOException on decoding errors
92+ */
93+ protected abstract void engineInit(byte[] params, String format)
94+ throws IOException;
95+
96+ /**
97+ * Returns a (transparent) specification of this parameters
98+ * object.
99+ * <code>paramSpec</code> identifies the specification class in which
100+ * the parameters should be returned. It could, for example, be
101+ * <code>DSAParameterSpec.class</code>, to indicate that the
102+ * parameters should be returned in an instance of the
103+ * <code>DSAParameterSpec</code> class.
104+ *
105+ * @param paramSpec the specification class in which
106+ * the parameters should be returned.
107+ *
108+ * @return the parameter specification.
109+ *
110+ * @exception InvalidParameterSpecException if the requested parameter
111+ * specification is inappropriate for this parameter object.
112+ */
113+ protected abstract
114+ <T extends AlgorithmParameterSpec>
115+ T engineGetParameterSpec(Class<T> paramSpec)
116+ throws InvalidParameterSpecException;
117+
118+ /**
119+ * Returns the parameters in their primary encoding format.
120+ * The primary encoding format for parameters is ASN.1, if an ASN.1
121+ * specification for this type of parameters exists.
122+ *
123+ * @return the parameters encoded using their primary encoding format.
124+ *
125+ * @exception IOException on encoding errors.
126+ */
127+ protected abstract byte[] engineGetEncoded() throws IOException;
128+
129+ /**
130+ * Returns the parameters encoded in the specified format.
131+ * If <code>format</code> is null, the
132+ * primary encoding format for parameters is used. The primary encoding
133+ * format is ASN.1, if an ASN.1 specification for these parameters
134+ * exists.
135+ *
136+ * @param format the name of the encoding format.
137+ *
138+ * @return the parameters encoded using the specified encoding scheme.
139+ *
140+ * @exception IOException on encoding errors.
141+ */
142+ protected abstract byte[] engineGetEncoded(String format)
143+ throws IOException;
144+
145+ /**
146+ * Returns a formatted string describing the parameters.
147+ *
148+ * @return a formatted string describing the parameters.
149+ */
150+ protected abstract String engineToString();
151+}