diff options
Diffstat (limited to 'libraries/spongycastle/mail/src/main/java/org/spongycastle/mail/smime/examples/ExampleUtils.java')
-rw-r--r-- | libraries/spongycastle/mail/src/main/java/org/spongycastle/mail/smime/examples/ExampleUtils.java | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/libraries/spongycastle/mail/src/main/java/org/spongycastle/mail/smime/examples/ExampleUtils.java b/libraries/spongycastle/mail/src/main/java/org/spongycastle/mail/smime/examples/ExampleUtils.java new file mode 100644 index 000000000..10c0f06c2 --- /dev/null +++ b/libraries/spongycastle/mail/src/main/java/org/spongycastle/mail/smime/examples/ExampleUtils.java @@ -0,0 +1,77 @@ +package org.bouncycastle.mail.smime.examples; + +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.security.KeyStore; +import java.util.Enumeration; + +import javax.mail.MessagingException; +import javax.mail.internet.MimeBodyPart; + +public class ExampleUtils +{ + /** + * Dump the content of the passed in BodyPart to the file fileName. + * + * @throws MessagingException + * @throws IOException + */ + public static void dumpContent( + MimeBodyPart bodyPart, + String fileName) + throws MessagingException, IOException + { + // + // print mime type of compressed content + // + System.out.println("content type: " + bodyPart.getContentType()); + + // + // recover the compressed content + // + OutputStream out = new FileOutputStream(fileName); + InputStream in = bodyPart.getInputStream(); + + byte[] buf = new byte[10000]; + int len; + + while ((len = in.read(buf, 0, buf.length)) > 0) + { + out.write(buf, 0, len); + } + + out.close(); + } + + public static String findKeyAlias( + KeyStore store, + String storeName, + char[] password) + throws Exception + { + store.load(new FileInputStream(storeName), password); + + Enumeration e = store.aliases(); + String keyAlias = null; + + while (e.hasMoreElements()) + { + String alias = (String)e.nextElement(); + + if (store.isKeyEntry(alias)) + { + keyAlias = alias; + } + } + + if (keyAlias == null) + { + throw new IllegalArgumentException("can't find a private key in keyStore: " + storeName); + } + + return keyAlias; + } +} |