Hi !
I’m using java1.8 version and trying to get the Token using Java SDK , but we got the below exception.
Exception in thread “main” com.box.sdk.BoxAPIException: Error parsing PKCS private key for Box Developer Edition.
- at com.box.sdk.BoxDeveloperEditionAPIConnection.decryptPrivateKey(BoxDeveloperEditionAPIConnection.java:568)*
- at com.box.sdk.BoxDeveloperEditionAPIConnection.constructJWTAssertion(BoxDeveloperEditionAPIConnection.java:503)*
- at com.box.sdk.BoxDeveloperEditionAPIConnection.authenticate(BoxDeveloperEditionAPIConnection.java:327)*
- at com.box.sdk.BoxDeveloperEditionAPIConnection.getAppEnterpriseConnection(BoxDeveloperEditionAPIConnection.java:182)*
- at com.box.sdk.BoxDeveloperEditionAPIConnection.getAppEnterpriseConnection(BoxDeveloperEditionAPIConnection.java:216)*
- at com.arondor.flower.tools.box.util.BoxAPI.setAPI(BoxAPI.java:54)*
- at com.arondor.flower.tools.box.util.BoxAPI.getAPI(BoxAPI.java:33)*
- at com.arondor.flower.tools.box.service.ServiceFolder.createBaseFolder(ServiceFolder.java:25)*
- at com.arondor.flower.tools.box.Launcher.main(Launcher.java:18)*
Caused by: org.bouncycastle.pkcs.PKCSException: unable to read encrypted data: javax.crypto.BadPaddingException: pad block corrupted - at org.bouncycastle.pkcs.PKCS8EncryptedPrivateKeyInfo.decryptPrivateKeyInfo(Unknown Source)*
- at com.box.sdk.BoxDeveloperEditionAPIConnection.decryptPrivateKey(BoxDeveloperEditionAPIConnection.java:557)*
- … 8 more*
Caused by: java.io.IOException: javax.crypto.BadPaddingException: pad block corrupted - at javax.crypto.CipherInputStream.getMoreData(CipherInputStream.java:128)*
- at javax.crypto.CipherInputStream.read(CipherInputStream.java:246)*
- at org.bouncycastle.util.io.Streams.pipeAll(Unknown Source)*
- at org.bouncycastle.util.io.Streams.readAll(Unknown Source)*
- … 10 more*
Caused by: javax.crypto.BadPaddingException: pad block corrupted - at org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher$BufferedGenericBlockCipher.doFinal(Unknown Source)*
- at org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher.engineDoFinal(Unknown Source)*
- at javax.crypto.Cipher.doFinal(Cipher.java:2047)*
- at javax.crypto.CipherInputStream.getMoreData(CipherInputStream.java:125)*
- … 13 more*
Here is the code used to manage the connection
public class BoxAPI
{
private static final Logger LOGGER = Logger.getLogger(BoxAPI.class);*
private BatchConfiguration batchConfiguration = new BatchConfiguration();*
private String scope = null;*
private BoxDeveloperEditionAPIConnection api = null;*
private long counter;*
public BoxDeveloperEditionAPIConnection getAPI()*
{*
if (api == null)*
setAPI();*
return api;*
}*
@PostConstruct*
private void setAPI()*
{*
BoxConfig config = null;*
try*
{*
Reader reader = new FileReader(batchConfiguration.getJsonPath());*
config = BoxConfig.readFrom(reader);*
}*
catch (IOException e)*
{*
e.printStackTrace();*
}*
*
if (config == null)*
throw new NullPointerException("Config file error/n" + "filePath : " + batchConfiguration.getJsonPath());*
api = BoxDeveloperEditionAPIConnection.getAppEnterpriseConnection(config); *
scope = "enterprise_" + config.getEnterpriseId();*
if (api == null || config.getEnterpriseId() == null)*
throw new NullPointerException("API OR SCOPE DATA NOT FOUND");*
api.setRequestInterceptor(request -> {*
// Do whatever counting or logging you want with the request*
if (Long.MAX_VALUE == counter)*
counter = 0L;*
//LOGGER.info("BOX API COUNT (AFTER SERVICE STARTUP) : " + ++counter);*
return null;*
});*
}*
public String getScope()*
{*
return scope;*
}*
}
For information, I created a first application from the box developer interface, I have this problem even though I used key generation.
Additionally, one of my colleagues had created another application and using his json file for connection it works very well.
However, when I generate a new key for its alros application I again have the same problem as before
Please, help me