44import com .auth0 .jwk .JwkException ;
55import com .auth0 .jwk .JwkProvider ;
66import com .auth0 .jwt .interfaces .DecodedJWT ;
7- import org .bouncycastle .util .io .pem .PemReader ;
87import org .junit .jupiter .api .Test ;
98
9+ import java .io .BufferedReader ;
1010import java .io .FileInputStream ;
1111import java .io .FileReader ;
1212import java .io .IOException ;
1818import java .security .interfaces .RSAPublicKey ;
1919import java .security .spec .EncodedKeySpec ;
2020import java .security .spec .X509EncodedKeySpec ;
21+ import java .util .Base64 ;
2122import java .util .Scanner ;
2223
2324import static org .hamcrest .CoreMatchers .notNullValue ;
@@ -146,7 +147,7 @@ private JwkProvider getRSProvider(String rsaPath) throws Exception {
146147
147148 private static RSAPublicKey readPublicKeyFromFile (final String path ) throws IOException {
148149 Scanner scanner = null ;
149- PemReader pemReader = null ;
150+ BufferedReader reader = null ;
150151 try {
151152 scanner = new Scanner (Paths .get (path ));
152153 if (scanner .hasNextLine () && scanner .nextLine ().startsWith ("-----BEGIN CERTIFICATE-----" )) {
@@ -157,8 +158,15 @@ private static RSAPublicKey readPublicKeyFromFile(final String path) throws IOEx
157158 fs .close ();
158159 return (RSAPublicKey ) key ;
159160 } else {
160- pemReader = new PemReader (new FileReader (path ));
161- byte [] keyBytes = pemReader .readPemObject ().getContent ();
161+ reader = new BufferedReader (new FileReader (path ));
162+ StringBuilder pemContent = new StringBuilder ();
163+ String line ;
164+ while ((line = reader .readLine ()) != null ) {
165+ if (!line .startsWith ("-----BEGIN" ) && !line .startsWith ("-----END" )) {
166+ pemContent .append (line );
167+ }
168+ }
169+ byte [] keyBytes = Base64 .getDecoder ().decode (pemContent .toString ());
162170 KeyFactory kf = KeyFactory .getInstance ("RSA" );
163171 EncodedKeySpec keySpec = new X509EncodedKeySpec (keyBytes );
164172 return (RSAPublicKey ) kf .generatePublic (keySpec );
@@ -169,8 +177,8 @@ private static RSAPublicKey readPublicKeyFromFile(final String path) throws IOEx
169177 if (scanner != null ) {
170178 scanner .close ();
171179 }
172- if (pemReader != null ) {
173- pemReader .close ();
180+ if (reader != null ) {
181+ reader .close ();
174182 }
175183 }
176184 }
0 commit comments