diff options
author | bschnalzer <bianca.schnalzer@egiz.gv.at> | 2017-10-30 08:09:48 +0100 |
---|---|---|
committer | bschnalzer <bianca.schnalzer@egiz.gv.at> | 2017-10-30 08:09:48 +0100 |
commit | c9421495bf0f6e5918cb17595a2fab677aec69a2 (patch) | |
tree | 277e663b9460cf6de489e0f40a8be5d447064907 /bkucommon/src/main/java/at/gv/egiz/bku/slcommands/impl/cms/Signature.java | |
parent | 347544139cfa9f41bce3a41c1dc8777297fa188b (diff) | |
download | mocca-c9421495bf0f6e5918cb17595a2fab677aec69a2.tar.gz mocca-c9421495bf0f6e5918cb17595a2fab677aec69a2.tar.bz2 mocca-c9421495bf0f6e5918cb17595a2fab677aec69a2.zip |
Updated Certs in TrustStore, added Access-Controll-Allow-Origin
(Response Header), applied Patch for Signature-Exception-Handling
Diffstat (limited to 'bkucommon/src/main/java/at/gv/egiz/bku/slcommands/impl/cms/Signature.java')
-rw-r--r-- | bkucommon/src/main/java/at/gv/egiz/bku/slcommands/impl/cms/Signature.java | 35 |
1 files changed, 11 insertions, 24 deletions
diff --git a/bkucommon/src/main/java/at/gv/egiz/bku/slcommands/impl/cms/Signature.java b/bkucommon/src/main/java/at/gv/egiz/bku/slcommands/impl/cms/Signature.java index 9c89906e..7be546de 100644 --- a/bkucommon/src/main/java/at/gv/egiz/bku/slcommands/impl/cms/Signature.java +++ b/bkucommon/src/main/java/at/gv/egiz/bku/slcommands/impl/cms/Signature.java @@ -50,7 +50,6 @@ import java.security.InvalidParameterException; import java.security.NoSuchAlgorithmException; import java.security.PrivateKey; import java.security.PublicKey; -import java.security.SignatureException; import java.security.cert.CertificateEncodingException; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; @@ -252,26 +251,6 @@ public class Signature { return data; } - private void setSignerInfo() throws SLCommandException, CMSException, CMSSignatureException { - try { - signedData.addSignerInfo(signerInfo); - } catch (NoSuchAlgorithmException e) { - if (e.getCause() instanceof CMSException) { - CMSException e2 = (CMSException) e.getCause(); - if (e2.getCause() instanceof SignatureException) - { - SignatureException e3 = (SignatureException) e2.getCause(); - if (e3.getCause() instanceof STALSignatureException) { - STALSignatureException e4 = (STALSignatureException) e3.getCause(); - throw new SLCommandException(e4.getErrorCode()); - } - } - throw e2; - } - throw new CMSSignatureException(e); - } - } - private void setAlgorithmIDs(X509Certificate signingCertificate, boolean useStrongHash) throws NoSuchAlgorithmException { PublicKey publicKey = signingCertificate.getPublicKey(); String algorithm = publicKey.getAlgorithm(); @@ -332,9 +311,17 @@ public class Signature { } public byte[] sign(STAL stal, String keyboxIdentifier) throws CMSException, CMSSignatureException, SLCommandException { - signedData.setSecurityProvider(new STALSecurityProvider( - stal, keyboxIdentifier, getHashDataInput(), this.excludedByteRange)); - setSignerInfo(); + STALSecurityProvider securityProvider = new STALSecurityProvider(stal, keyboxIdentifier, getHashDataInput(), this.excludedByteRange); + signedData.setSecurityProvider(securityProvider); + try { + signedData.addSignerInfo(signerInfo); + } catch (NoSuchAlgorithmException e) { + STALSignatureException stalSignatureException = securityProvider.getStalSignatureException(); + if (stalSignatureException != null) { + throw new SLCommandException(stalSignatureException.getErrorCode()); + } + throw new CMSSignatureException(e); + } ContentInfo contentInfo = new ContentInfo(signedData); return contentInfo.getEncoded(); } |