Skip to main content

Java - Error parsing PKCS private key for Box Developer Edition.

  • May 27, 2024
  • 1 reply
  • 122 views

Forum|alt.badge.img

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

1 reply

  • Participating Frequently
  • 15 replies
  • May 28, 2024

Hi,
the steps to handle the issue are described in README.md file.

Best,
Lukasz


Reply


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings