diff options
author | David Hook <dgh@cryptoworkshop.com> | 2014-07-14 11:43:55 +0400 |
---|---|---|
committer | David Hook <dgh@cryptoworkshop.com> | 2014-07-14 11:43:55 +0400 |
commit | cebc7ce746820ed896818cbc0f67d9f1784f13db (patch) | |
tree | afa141d3cf7d67fd04d64d614bbf316a535e02d2 | |
parent | 34ee5d8d107fc4bf69698218b1ae8309964d56be (diff) |
added use of getPrivileged to command map setting.
5 files changed, 71 insertions, 20 deletions
diff --git a/mail/src/main/java/org/bouncycastle/mail/smime/SMIMECompressedGenerator.java b/mail/src/main/java/org/bouncycastle/mail/smime/SMIMECompressedGenerator.java index 06ad6c21..bd1f0560 100644 --- a/mail/src/main/java/org/bouncycastle/mail/smime/SMIMECompressedGenerator.java +++ b/mail/src/main/java/org/bouncycastle/mail/smime/SMIMECompressedGenerator.java @@ -2,6 +2,8 @@ package org.bouncycastle.mail.smime; import java.io.IOException; import java.io.OutputStream; +import java.security.AccessController; +import java.security.PrivilegedAction; import javax.activation.CommandMap; import javax.activation.MailcapCommandMap; @@ -36,12 +38,20 @@ public class SMIMECompressedGenerator static { - MailcapCommandMap mc = (MailcapCommandMap)CommandMap.getDefaultCommandMap(); + final MailcapCommandMap mc = (MailcapCommandMap)CommandMap.getDefaultCommandMap(); mc.addMailcap("application/pkcs7-mime;; x-java-content-handler=org.bouncycastle.mail.smime.handlers.pkcs7_mime"); mc.addMailcap("application/x-pkcs7-mime;; x-java-content-handler=org.bouncycastle.mail.smime.handlers.x_pkcs7_mime"); - CommandMap.setDefaultCommandMap(mc); + AccessController.doPrivileged(new PrivilegedAction<Object>() + { + public Object run() + { + CommandMap.setDefaultCommandMap(mc); + + return null; + } + }); } /** diff --git a/mail/src/main/java/org/bouncycastle/mail/smime/SMIMEEnvelopedGenerator.java b/mail/src/main/java/org/bouncycastle/mail/smime/SMIMEEnvelopedGenerator.java index 3dfe78ec..38e2901d 100644 --- a/mail/src/main/java/org/bouncycastle/mail/smime/SMIMEEnvelopedGenerator.java +++ b/mail/src/main/java/org/bouncycastle/mail/smime/SMIMEEnvelopedGenerator.java @@ -2,6 +2,8 @@ package org.bouncycastle.mail.smime; import java.io.IOException; import java.io.OutputStream; +import java.security.AccessController; +import java.security.PrivilegedAction; import java.util.ArrayList; import java.util.List; @@ -70,7 +72,15 @@ public class SMIMEEnvelopedGenerator static { - CommandMap.setDefaultCommandMap(addCommands(CommandMap.getDefaultCommandMap())); + AccessController.doPrivileged(new PrivilegedAction<Object>() + { + public Object run() + { + CommandMap.setDefaultCommandMap(addCommands(CommandMap.getDefaultCommandMap())); + + return null; + } + }); } private static MailcapCommandMap addCommands(CommandMap cm) @@ -193,13 +203,13 @@ public class SMIMEEnvelopedGenerator throws IOException { OutputStream encrypted; - + try { if (_firstTime) { encrypted = fact.open(out, _encryptor); - + _firstTime = false; } else @@ -208,9 +218,9 @@ public class SMIMEEnvelopedGenerator } _content.getDataHandler().setCommandMap(addCommands(CommandMap.getDefaultCommandMap())); - + _content.writeTo(encrypted); - + encrypted.close(); } catch (MessagingException e) @@ -223,7 +233,7 @@ public class SMIMEEnvelopedGenerator } } } - + private class EnvelopedGenerator extends CMSEnvelopedDataStreamGenerator { diff --git a/mail/src/main/java/org/bouncycastle/mail/smime/SMIMESigned.java b/mail/src/main/java/org/bouncycastle/mail/smime/SMIMESigned.java index 01d7d2ad..939a449b 100644 --- a/mail/src/main/java/org/bouncycastle/mail/smime/SMIMESigned.java +++ b/mail/src/main/java/org/bouncycastle/mail/smime/SMIMESigned.java @@ -1,8 +1,11 @@ package org.bouncycastle.mail.smime; -import org.bouncycastle.cms.CMSException; -import org.bouncycastle.cms.CMSProcessable; -import org.bouncycastle.cms.CMSSignedData; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.security.AccessController; +import java.security.PrivilegedAction; import javax.activation.CommandMap; import javax.activation.MailcapCommandMap; @@ -13,10 +16,10 @@ import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; import javax.mail.internet.MimePart; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; + +import org.bouncycastle.cms.CMSException; +import org.bouncycastle.cms.CMSProcessable; +import org.bouncycastle.cms.CMSSignedData; /** * general class for handling a pkcs7-signature message. @@ -79,7 +82,7 @@ public class SMIMESigned static { - MailcapCommandMap mc = (MailcapCommandMap)CommandMap.getDefaultCommandMap(); + final MailcapCommandMap mc = (MailcapCommandMap)CommandMap.getDefaultCommandMap(); mc.addMailcap("application/pkcs7-signature;; x-java-content-handler=org.bouncycastle.mail.smime.handlers.pkcs7_signature"); mc.addMailcap("application/pkcs7-mime;; x-java-content-handler=org.bouncycastle.mail.smime.handlers.pkcs7_mime"); @@ -87,7 +90,15 @@ public class SMIMESigned mc.addMailcap("application/x-pkcs7-mime;; x-java-content-handler=org.bouncycastle.mail.smime.handlers.x_pkcs7_mime"); mc.addMailcap("multipart/signed;; x-java-content-handler=org.bouncycastle.mail.smime.handlers.multipart_signed"); - CommandMap.setDefaultCommandMap(mc); + AccessController.doPrivileged(new PrivilegedAction<Object>() + { + public Object run() + { + CommandMap.setDefaultCommandMap(mc); + + return null; + } + }); } /** diff --git a/mail/src/main/java/org/bouncycastle/mail/smime/SMIMESignedGenerator.java b/mail/src/main/java/org/bouncycastle/mail/smime/SMIMESignedGenerator.java index e2fd8c71..aea7b53c 100644 --- a/mail/src/main/java/org/bouncycastle/mail/smime/SMIMESignedGenerator.java +++ b/mail/src/main/java/org/bouncycastle/mail/smime/SMIMESignedGenerator.java @@ -2,6 +2,8 @@ package org.bouncycastle.mail.smime; import java.io.IOException; import java.io.OutputStream; +import java.security.AccessController; +import java.security.PrivilegedAction; import java.util.ArrayList; import java.util.Collections; import java.util.Enumeration; @@ -117,7 +119,15 @@ public class SMIMESignedGenerator static { - CommandMap.setDefaultCommandMap(addCommands(CommandMap.getDefaultCommandMap())); + AccessController.doPrivileged(new PrivilegedAction<Object>() + { + public Object run() + { + CommandMap.setDefaultCommandMap(addCommands(CommandMap.getDefaultCommandMap())); + + return null; + } + }); Map stdMicAlgs = new HashMap(); diff --git a/mail/src/main/java/org/bouncycastle/mail/smime/SMIMESignedParser.java b/mail/src/main/java/org/bouncycastle/mail/smime/SMIMESignedParser.java index f6c132c0..eb4f791d 100644 --- a/mail/src/main/java/org/bouncycastle/mail/smime/SMIMESignedParser.java +++ b/mail/src/main/java/org/bouncycastle/mail/smime/SMIMESignedParser.java @@ -9,6 +9,8 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.security.AccessController; +import java.security.PrivilegedAction; import javax.activation.CommandMap; import javax.activation.MailcapCommandMap; @@ -123,7 +125,7 @@ public class SMIMESignedParser static { - MailcapCommandMap mc = (MailcapCommandMap)CommandMap.getDefaultCommandMap(); + final MailcapCommandMap mc = (MailcapCommandMap)CommandMap.getDefaultCommandMap(); mc.addMailcap("application/pkcs7-signature;; x-java-content-handler=org.bouncycastle.mail.smime.handlers.pkcs7_signature"); mc.addMailcap("application/pkcs7-mime;; x-java-content-handler=org.bouncycastle.mail.smime.handlers.pkcs7_mime"); @@ -131,7 +133,15 @@ public class SMIMESignedParser mc.addMailcap("application/x-pkcs7-mime;; x-java-content-handler=org.bouncycastle.mail.smime.handlers.x_pkcs7_mime"); mc.addMailcap("multipart/signed;; x-java-content-handler=org.bouncycastle.mail.smime.handlers.multipart_signed"); - CommandMap.setDefaultCommandMap(mc); + AccessController.doPrivileged(new PrivilegedAction<Object>() + { + public Object run() + { + CommandMap.setDefaultCommandMap(mc); + + return null; + } + }); } /** |