]> WPIA git - gigi.git/blob - tests/club/wpia/gigi/crypto/key/KeyCheckSmallFactorsTest.java
Merge "add: show more certificates on the "roots" page"
[gigi.git] / tests / club / wpia / gigi / crypto / key / KeyCheckSmallFactorsTest.java
1 package club.wpia.gigi.crypto.key;
2
3 import static org.junit.Assert.*;
4
5 import java.io.IOException;
6 import java.security.GeneralSecurityException;
7 import java.security.PublicKey;
8
9 import org.junit.Test;
10
11 import club.wpia.gigi.GigiApiException;
12
13 public class KeyCheckSmallFactorsTest {
14
15     @Test
16     public void testSmallPrimesSaneKey() throws GeneralSecurityException, IOException {
17
18         // Normal public key generated with OpenSSL:
19         // openssl genpkey -algorithm rsa -pkeyopt rsa_keygen_bits:2048
20         // -pkeyopt rsa_keygen_pubexp:7331 2>/dev/null |
21         // openssl pkey -pubout -outform pem
22         String sfk = "-----BEGIN PUBLIC KEY-----\n" + //
23                 "MIIBITANBgkqhkiG9w0BAQEFAAOCAQ4AMIIBCQKCAQEArcAPmy3RnXdwyFg3V9k1\n" + //
24                 "RaFR/peHa3hLsmh25BInRVArbaMctSBaJBVZwQIgBdqjyITQQZP38i6k+WdsETn9\n" + //
25                 "J491UDLKU3E3UG60ZS3BzcJllNdpn4g0IZROxmmUz2JlAXkGtIglmWWDx14qHSNj\n" + //
26                 "ON58mc3ihfn/oWkPk2hk/csDxGQq5jSaBUwa9THBg9UQHHBqQbhp2nGfa5a5VRlI\n" + //
27                 "0QeIy+8GmKlXYMchReUI25ksLOzaqETD0UXiAPyt+vpvkKCDjWGc3kjabn6OkuTt\n" + //
28                 "na7N/52qrEC2ImuanYlzR5gv9jkbFF2PiMIEBD+3B0842rLx0X/lbXhRr1MtuHtN\n" + //
29                 "tQICHKM=\n" + //
30                 "-----END PUBLIC KEY-----\n";
31
32         PublicKey pk = KeyCheckTest.pkFromString(sfk);
33         try {
34             KeyCheck c = new KeyCheckSmallFactors();
35             c.check(pk);
36         } catch (GigiApiException gae) {
37             throw new Error("Valid key (regarding small factors) rejected.", gae);
38         }
39
40     }
41
42     @Test
43     public void testSmallPrimes() throws GeneralSecurityException, IOException {
44
45         // The following key is the above one multiplied by 7331.
46         String sfk = "-----BEGIN PUBLIC KEY-----\n" + //
47                 "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQITb6L+6NEZsFNiuTY42LEg\n" + //
48                 "iPqvDa1K+pXftgWEpTPalebLpKX/Ft11V09pQh/bB6QgNzNXxfBVXE2+UhyrsU+c\n" + //
49                 "g+Esd55384MjBFI37W1U50Xi9VS1s3ls3ZoL2+GAbs6yeSzLA9bMt8YMtj2QAGxi\n" + //
50                 "ZYtKKHLd4qYja0OZCkaED8ys4QB4flRWpbJn+4/Yoj5sXmcy2AP/SoPIRf09T/MQ\n" + //
51                 "OerCZ/3p5blhOGZt1I3MqJNcCoK5oKkzkeQ3AkPqOjGo2qSXObJPMYBHKjIs2JHA\n" + //
52                 "ioTVHwAOgsEfu69srVcgOzsleAVSeDNFWUv5BayWVlGpHtJi4mGHDdyLL7r2SfMC\n" + //
53                 "Rj8CAhyj\n" + //
54                 "-----END PUBLIC KEY-----\n";
55
56         PublicKey pk = KeyCheckTest.pkFromString(sfk);
57         try {
58             KeyCheck c = new KeyCheckSmallFactors();
59             c.check(pk);
60             fail("Invalid key (containing small factors) accepted.");
61         } catch (GigiApiException gae) {
62             // expected
63         }
64
65     }
66
67 }