001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one or more
003: * contributor license agreements. See the NOTICE file distributed with
004: * this work for additional information regarding copyright ownership.
005: * The ASF licenses this file to You under the Apache License, Version 2.0
006: * (the "License"); you may not use this file except in compliance with
007: * the License. You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: */
017:
018: /**
019: * @author Vera Y. Petrashkova
020: * @version $Revision$
021: */package java.security.cert;
022:
023: import java.io.InputStream;
024: import java.util.Collection;
025: import java.util.Iterator;
026: import java.util.List;
027:
028: import org.apache.harmony.security.internal.nls.Messages;
029:
030: /**
031: * This class is a Service Provider Interface (therefore the Spi suffix) for
032: * certificate factories to be supplied by providers.
033: */
034:
035: public abstract class CertificateFactorySpi {
036:
037: /**
038: * Constructs a new instance of this class.
039: */
040: public CertificateFactorySpi() {
041: }
042:
043: /**
044: * Generates and initializes a Certificate from data from the
045: * provided input stream.
046: *
047: * @param inStream
048: * InputStream Stream from where data is read to create the
049: * Certificate
050: *
051: * @return Certificate an initialized Certificate
052: * @exception CertificateException
053: * if parsing problems are detected
054: */
055: public abstract Certificate engineGenerateCertificate(
056: InputStream inStream) throws CertificateException;
057:
058: /**
059: * Generates and initializes a collection of Certificates from
060: * data from the provided input stream.
061: *
062: * @param inStream
063: * InputStream Stream from where data is read to create the
064: * Certificates
065: *
066: * @return Collection an initialized collection of Certificates
067: * @exception CertificateException
068: * if parsing problems are detected
069: */
070: public abstract Collection<? extends Certificate> engineGenerateCertificates(
071: InputStream inStream) throws CertificateException;
072:
073: /**
074: * Generates and initializes a Certificate Revocation List from data from
075: * the provided input stream.
076: *
077: * @param inStream
078: * InputStream Stream from where data is read to create the CRL
079: *
080: * @return CRL an initialized Certificate Revocation List
081: * @exception CRLException
082: * if parsing problems are detected
083: */
084: public abstract CRL engineGenerateCRL(InputStream inStream)
085: throws CRLException;
086:
087: /**
088: * Generates and initializes a collection of Certificate Revocation List
089: * from data from the provided input stream.
090: *
091: * @param inStream
092: * InputStream Stream from where data is read to create the CRLs
093: *
094: * @return Collection an initialized collection of Certificate Revocation
095: * List
096: * @exception CRLException
097: * if parsing problems are detected
098: */
099: public abstract Collection<? extends CRL> engineGenerateCRLs(
100: InputStream inStream) throws CRLException;
101:
102: /**
103: * Generates a <code>CertPath</code> from data from the provided
104: * <code>InputStream</code>. The default encoding is assumed.
105: *
106: * @param inStream
107: * InputStream with PKCS7 or PkiPath encoded data
108: *
109: * @return CertPath a CertPath initialized from the provided data
110: *
111: * @throws CertificateException
112: * if parsing problems are detected
113: */
114: public CertPath engineGenerateCertPath(InputStream inStream)
115: throws CertificateException {
116: throw new UnsupportedOperationException(Messages
117: .getString("security.70")); //$NON-NLS-1$
118: }
119:
120: /**
121: * Generates a <code>CertPath</code> from data from the provided
122: * <code>InputStream</code>. The encoding is that specified by the
123: * encoding parameter.
124: *
125: * @param inStream
126: * InputStream containing certificate path data in specified
127: * encoding
128: * @param encoding
129: * encoding of the data in the input stream
130: *
131: * @return CertPath a CertPath initialized from the provided data
132: *
133: * @throws CertificateException
134: * if parsing problems are detected
135: * @throws UnsupportedOperationException
136: * if the provider does not implement this method
137: */
138: public CertPath engineGenerateCertPath(InputStream inStream,
139: String encoding) throws CertificateException {
140: throw new UnsupportedOperationException(Messages
141: .getString("security.71")); //$NON-NLS-1$
142: }
143:
144: /**
145: * Generates a <code>CertPath</code> from the provided List of
146: * Certificates. The encoding is the default encoding.
147: *
148: * @param certificates
149: * List containing certificates in a format supported by the
150: * CertificateFactory
151: *
152: * @return CertPath a CertPath initialized from the provided data
153: *
154: * @throws CertificateException
155: * if parsing problems are detected
156: * @throws UnsupportedOperationException
157: * if the provider does not implement this method
158: */
159: public CertPath engineGenerateCertPath(
160: List<? extends Certificate> certificates)
161: throws CertificateException {
162: throw new UnsupportedOperationException(Messages
163: .getString("security.72")); //$NON-NLS-1$
164: }
165:
166: /**
167: * Returns an Iterator over the supported CertPath encodings (as Strings).
168: * The first element is the default encoding.
169: *
170: * @return Iterator Iterator over supported CertPath encodings (as Strings)
171: */
172: public Iterator<String> engineGetCertPathEncodings() {
173: throw new UnsupportedOperationException(Messages
174: .getString("security.73")); //$NON-NLS-1$
175: }
176: }
|