1   /*
2    * $Id: KeyBasedEncryptionStrategyTestCase.java 10789 2008-02-12 20:04:43Z dfeist $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSource, Inc.  All rights reserved.  http://www.mulesource.com
5    *
6    * The software in this package is published under the terms of the CPAL v1.0
7    * license, a copy of which has been included with this distribution in the
8    * LICENSE.txt file.
9    */
10  
11  package org.mule.module.pgp;
12  
13  import org.mule.tck.AbstractMuleTestCase;
14  import org.mule.util.FileUtils;
15  
16  import java.io.FileInputStream;
17  import java.net.URL;
18  
19  public class KeyBasedEncryptionStrategyTestCase extends AbstractMuleTestCase
20  {
21      private KeyBasedEncryptionStrategy kbStrategy;
22  
23      /*
24       * (non-Javadoc)
25       * 
26       * @see org.mule.tck.AbstractMuleTestCase#setUp()
27       */
28      protected void doSetUp() throws Exception
29      {
30          PGPKeyRingImpl keyM = new PGPKeyRingImpl();
31          URL url;
32  
33          url = Thread.currentThread().getContextClassLoader().getResource("./serverPublic.gpg");
34          keyM.setPublicKeyRingFileName(url.getFile());
35  
36          url = Thread.currentThread().getContextClassLoader().getResource("./serverPrivate.gpg");
37          keyM.setSecretKeyRingFileName(url.getFile());
38  
39          keyM.setSecretAliasId("0x6168F39C");
40          keyM.setSecretPassphrase("TestingPassphrase");
41          keyM.initialise();
42  
43          kbStrategy = new KeyBasedEncryptionStrategy();
44          kbStrategy.setKeyManager(keyM);
45          kbStrategy.initialise();
46      }
47  
48      /*
49       * (non-Javadoc)
50       * 
51       * @see org.mule.tck.AbstractMuleTestCase#tearDown()
52       */
53      protected void doTearDown() throws Exception
54      {
55          kbStrategy = null;
56      }
57  
58      public void testDecrypt() throws Exception
59      {
60          URL url = Thread.currentThread().getContextClassLoader().getResource("./encrypted-signed.asc");
61  
62          int length = (int) FileUtils.newFile(url.getFile()).length();
63          byte[] msg = new byte[length];
64  
65          FileInputStream in = new FileInputStream(url.getFile());
66          in.read(msg);
67          in.close();
68  
69          String result = new String(kbStrategy.decrypt(msg, null));
70  
71          System.out.println(result);
72  
73          assertNotNull(result);
74      }
75  
76      public void testEncrypt() throws Exception
77      {
78          String msg = "Test Message";
79          PGPCryptInfo cryptInfo = new PGPCryptInfo(kbStrategy.getKeyManager().getKeyBundle(
80              "Mule client <mule_client@mule.com>"), true);
81  
82          String result = new String(kbStrategy.encrypt(msg.getBytes(), cryptInfo));
83  
84          System.out.println(result);
85  
86          assertNotNull(result);
87      }
88  }