1   package com.atlassian.security.auth.trustedapps.filter;
2   
3   import java.security.KeyPair;
4   import java.security.KeyPairGenerator;
5   
6   import com.atlassian.security.auth.trustedapps.filter.RequestSignatureTool.UnableToVerifySignatureException;
7   
8   import org.junit.Test;
9   
10  import static org.junit.Assert.assertFalse;
11  
12  public class TestRequestSignatureTool
13  {
14      private RequestSignatureTool requestSignatureTool = new RequestSignatureTool();
15      
16      @Test
17      public void failsWhenSignatureIsInvalid() throws Exception
18      {
19          String signature = "XXXX";
20          
21          KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");
22          KeyPair kp = kpg.genKeyPair();
23          
24          assertFalse(requestSignatureTool.verify(0, "http://www.example.com/", kp.getPublic(), signature));
25      }
26      
27      @Test(expected = UnableToVerifySignatureException.class)
28      public void failsWhenSignatureIsInvalidBase64Encoded() throws Exception
29      {
30          String signature = "";
31          
32          KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");
33          KeyPair kp = kpg.genKeyPair();
34          
35          requestSignatureTool.verify(0, "http://www.example.com/", kp.getPublic(), signature);
36      }
37  }