1 package org.eparapher.core.signature;
2
3 import org.bouncycastle.cms.CMSSignedDataGenerator;
4 import org.eparapher.core.EParapherManager;
5
6
7 public class CMSSignatureParameters extends DefaultSignatureParameters {
8
9 public final static String[][] CMSHashAlgFamilies = { { "MD5", CMSSignedDataGenerator.DIGEST_MD5 },
10 { "SHA 1", CMSSignedDataGenerator.DIGEST_SHA1 },
11 { "SHA 224", CMSSignedDataGenerator.DIGEST_SHA224 },
12 { "SHA 256", CMSSignedDataGenerator.DIGEST_SHA256 },
13 { "SHA 384", CMSSignedDataGenerator.DIGEST_SHA384 },
14 { "SHA 512", CMSSignedDataGenerator.DIGEST_SHA512 },
15 { "RIPEMD128", CMSSignedDataGenerator.DIGEST_RIPEMD128 },
16 { "RIPEMD160", CMSSignedDataGenerator.DIGEST_RIPEMD160 },
17 { "RIPEMD256", CMSSignedDataGenerator.DIGEST_RIPEMD256 },
18 { "GOST3411", CMSSignedDataGenerator.DIGEST_GOST3411 } };
19
20 public static final String[] HASH_ITEMS = { "MD5",
21 "SHA 1",
22 "SHA 224",
23 "SHA 256",
24 "SHA 384",
25 "SHA 512",
26 "RIPEMD 128",
27 "RIPEMD 160",
28 "RIPEMD 256",
29 "GOST 3411" };
30
31 private String signatureDigestAlg;
32 private boolean detached;
33
34 public CMSSignatureParameters() {
35
36 }
37
38 public void setCMSSignatureParamsFromPreferences() {
39 loadDefaultSignatureParameters();
40 signatureDigestAlg = EParapherManager.getInstance().getSettings().getCMSHashAlgorithmOID();
41 detached = EParapherManager.getInstance().getSettings().isCMSDetachedSignature();
42 }
43
44 public String getSignatureDigestAlgOID() {
45 return signatureDigestAlg;
46 }
47
48 public int getSignatureDigestAlgOIDAsInt() {
49 for (int i = 0; i < CMSHashAlgFamilies.length; i++)
50 if ( signatureDigestAlg.equals(CMSHashAlgFamilies[i][1]) )
51 return i;
52 return 0;
53 }
54
55 public void setSignatureDigestAlgOID(String mSignatureDigestAlg) {
56 this.signatureDigestAlg = mSignatureDigestAlg;
57 }
58
59 public boolean isDetached() {
60 return detached;
61 }
62
63 public void setDetached(boolean detached) {
64 this.detached = detached;
65 }
66
67 public void setSignatureDigestAlgWithID(int index) {
68 signatureDigestAlg = CMSHashAlgFamilies[index][1];
69 }
70
71 }