package com.subgraph.orchid.crypto; import static org.junit.Assert.assertEquals; import java.math.BigInteger; import java.security.GeneralSecurityException; import java.security.InvalidKeyException; import java.security.interfaces.RSAPublicKey; import org.junit.Before; import org.junit.Test; public class RSAKeyEncoderTest { private RSAKeyEncoder encoder; final static String PEM_ENCODED_PUBKEY = "-----BEGIN RSA PUBLIC KEY-----\n"+ "MIGJAoGBAMuf0v+d3HUNk5jbYJuZA+q30NlqFStNBmB/BA4y6h9DTpJ2ULhdy6I8\n"+ "5tLq76TSTbGl2wiWpDjW73OkAfpbUyb+2fIFz4Ildth18ZA4dqNvnYNCnckO1p+B\n"+ "x6e+8YoafedZhXsv1Z9RMl6WK6WGXpmgCSTTlLnXlrsJLrG/mW9dAgMBAAE=\n"+ "-----END RSA PUBLIC KEY-----\n"; final static String MODULUS_STRING = "142989855534119842624281223201112183062179043858844190077277374317180853428"+ "067855510754484639210124041049484315690046733530717435491654607786952431473"+ "291786675652833142146809594339105386135143284841697658385761023403765912288"+ "684940376854709443039663769117423844056151668935507268155717373127166136614"+ "724923229"; final static BigInteger MODULUS = new BigInteger(MODULUS_STRING); final static BigInteger EXPONENT = BigInteger.valueOf(65537); @Before public void setup() { encoder = new RSAKeyEncoder(); } @Test public void testParsePEMPublicKey() throws GeneralSecurityException { final RSAPublicKey publicKey = encoder.parsePEMPublicKey(PEM_ENCODED_PUBKEY); assertEquals(MODULUS, publicKey.getModulus()); assertEquals(EXPONENT, publicKey.getPublicExponent()); } @Test(expected=InvalidKeyException.class) public void testParsePEMPublicKeyException() throws GeneralSecurityException { encoder.parsePEMPublicKey(PEM_ENCODED_PUBKEY.substring(1)); } }