1 package es.caib.signatura.impl;
2
3 import java.io.IOException;
4 import java.io.InputStream;
5 import java.security.InvalidAlgorithmParameterException;
6 import java.security.NoSuchAlgorithmException;
7 import java.security.NoSuchProviderException;
8 import java.security.cert.CertStoreException;
9
10 import es.caib.signatura.api.SMIMEParser;
11 import es.caib.signatura.api.Signature;
12 import es.caib.signatura.api.SignatureDataException;
13 import es.caib.signatura.api.SignatureException;
14
15
16
17
18
19
20
21
22
23
24 public class SMIMEParserProxy implements SMIMEParser{
25
26
27
28 SMIMEParser impl=null;
29
30
31
32
33 SMIMEParser smimeFactory=null;
34
35
36
37
38
39
40
41
42 public SMIMEParserProxy(InputStream smime) throws InstantiationException, IllegalAccessException, IOException,SignatureException{
43 ClassLoaderFactory loaderFactory=ClassLoaderFactory.getFactory();
44
45 try {
46 smimeFactory=(SMIMEParser)loaderFactory.getMasterClassLoader().loadClass("es.caib.signatura.provider.impl.common.SMIMEImpl").newInstance();
47 impl=smimeFactory.getInstance(smime);
48 } catch (SignatureDataException e) {
49 throw new SignatureException(e.getMessage(),e);
50 } catch (ClassNotFoundException e) {
51 throw new SignatureException(e.getMessage(),e);
52 }
53 }
54
55
56 public SMIMEParser getInstance(InputStream smime) throws InstantiationException, IllegalAccessException, IOException, SignatureException{
57 return new SMIMEParserProxy(smime);
58 }
59
60
61 public Signature [] getSignatures() {
62 if(impl!=null)
63 return impl.getSignatures();
64 else
65 return null;
66 }
67
68
69 public void parse(InputStream mimeIS) throws IOException, InstantiationException, IllegalAccessException, SignatureException {
70 impl=smimeFactory.getInstance(mimeIS);
71 }
72
73 public Object getSignedObject() {
74 if(impl!=null)
75 return impl.getSignedObject();
76 else
77 return null;
78 }
79
80 }