Skip to Content

SAP BO BIP SDK: The FIPS140 self-integrity check failed.

Hi All,

I am currently getting started in Java development using the BOE SDK. My initial goal is to have a little application that will log on to a CMS, do something and then log off/terminate. Unfortunately, the very first step - logging on - is already throwing errors such as this one:

java -jar MyApp.jar <User> <Pass> <CMS>
Exception in thread "Thread-0"

Exception in thread "main" java.lang.ExceptionInInitializerError

at java.lang.Class.forName0(Native Method)

at java.lang.Class.forName(Unknown Source)

at com.rsa.cryptoj.o.co.F(Unknown Source)

at com.rsa.cryptoj.o.co.d(Unknown Source)

at com.rsa.cryptoj.o.co.J(Unknown Source)

at com.rsa.cryptoj.o.co.<clinit>(Unknown Source)

at com.rsa.jsafe.CryptoJ.isFIPS140Compliant(Unknown Source)

at com.businessobjects.bcm.internal.BcmRsaLib.initialize(BcmRsaLib.java:214)

at com.businessobjects.bcm.internal.BcmRsaLib.<clinit>(BcmRsaLib.java:289)

at com.businessobjects.bcm.BCM.<clinit>(BCM.java:1158)

at com.crystaldecisions.enterprise.ocaframework.BCMInitializer.run(BCMInitializer.java:29)

at java.lang.Thread.run(Unknown Source)


Caused by: com.rsa.crypto.CryptoException: java.lang.SecurityException: java.lang.SecurityException: The FIPS140 self-integrity check failed.

at com.rsa.crypto.jcm.ModuleLoader.<clinit>(Unknown Source)
... 12 more


Caused by: java.lang.SecurityException: java.lang.SecurityException: The FIPS140 self-integrity check failed.

at com.rsa.jcm.f.hx.a(Unknown Source)
at com.rsa.jcm.f.jq.c(Unknown Source)

at com.rsa.crypto.jcm.ModuleLoader.b(Unknown Source)

... 13 more


Caused by: java.lang.SecurityException: The FIPS140 self-integrity check failed.

at com.rsa.jcm.f.f.a(Unknown Source)

at com.rsa.jcm.f.hx.f(Unknown Source)

... 16 more

java.lang.NoClassDefFoundError: Could not initialize class com.businessobjects.bcm.BCM

at com.crystaldecisions.sdk.occa.security.internal.ConfidentialChannelService.establishConfidentialChannel(ConfidentialChannelService.java:189)

at com.crystaldecisions.sdk.occa.security.internal.ConfidentialChannelService.createConfidentialChannel(ConfidentialChannelService.java:149)

at com.crystaldecisions.sdk.occa.security.internal.CCMap.locateCCItem(CCMap.java:63)

at com.crystaldecisions.sdk.occa.security.internal.LogonService.doUserLogon(LogonService.java:845)

at com.crystaldecisions.sdk.occa.security.internal.LogonService.doUserLogon(LogonService.java:805)

at com.crystaldecisions.sdk.occa.security.internal.LogonService.userLogon(LogonService.java:210)

at com.crystaldecisions.sdk.occa.security.internal.SecurityMgr.userLogon(SecurityMgr.java:166)

at com.crystaldecisions.sdk.framework.internal.SessionMgr.logon_aroundBody0(SessionMgr.java:454)

at com.crystaldecisions.sdk.framework.internal.SessionMgr.logon_aroundBody1$advice(SessionMgr.java:517)

at com.crystaldecisions.sdk.framework.internal.SessionMgr.logon(SessionMgr.java:1)

at myApp.MyApp.main(MyApp.java:23)

The problematic line of code is this:

IEnterpriseSession es = sm.logon(args[0], args[1], args[2], "secEnterprise");

Of course there is not much that can be wrong in there, but at the moment I am at a loss regarding potential causes for the errors mentioned above. It is probably worth mentioning that all .jar files from the SDK (namely, all that are listed in section 4.2.3 of the Business Intelligence Platform Java SDK Developer Guide) have been added to the classpath, and I can even see that all classes appearing in the error message have been packaged in the application's .jar, so ... any ideas what might be the root cause for this issue?

The error message "The FIPS140 self-integrity check failed." leads me to believe that it might be related to some version mismatch or similar, but this is just a guess. Any pointers will be appreciated.

FWIW, I am using the SDK files from BI 4.2 SP04.

Many thanks in advance!

Roland

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

6 Answers

  • Jul 12, 2017 at 04:11 AM

    Hi Roland,

    FIPS libraries have been updated in BI4.2 SP04,

    Have a look at SAP Note #2433337 – Security enhancements in SAP BusinessObjects BI Platform 4.2 SP04

    it lists out additional jars that are needed for the BCM and RSA updates with respect to the SDK.

    Dan

    Add comment
    10|10000 characters needed characters exceeded

    • Hi Dan,

      many thanks for your hint. Actually I did not see this note up until now. However, I checked all .jar files mentioned there, and it appears that the dev guide is actually updated with this information as well, so I did already include the two additional .jar files in my application. The only curiosity I found is that jcmFIPS.jar is version 6.2.0 (not 6.2.1 as all other files mentioned), but on the other hand, this is the file that I have in my SDK folder, so I assume it's acceptable. Otherwise I'd have to find out where on the webb I can get the later version.

      Cheers

      Roland

  • Jul 12, 2017 at 01:37 PM

    Hi Roland,

    Make sure BCM is updated as well (i think bcm-4-0.jar or something like that. going from memory).

    If it is, I'll take a closer look at the stack trace later today,

    Dan

    Add comment
    10|10000 characters needed characters exceeded

  • Aug 02, 2017 at 07:30 PM

    I'm running into the same issue. Only my program works just fine when running within Eclipse. I'm getting the error when I export to an executable jar file. Did anyone find a resolution? I'm pretty sure I've got all the correct jar files included.

    Dan.

    Add comment
    10|10000 characters needed characters exceeded

    • Former Member

      Same issue. I can run in Eclipse and build a runnable jar with the jar files in a sub folder and it's fine. If I include the jar files in the main jar, then I get an error. It can't be a class path as it would have died earlier with a crystalenterprise session class error.

      Exception in thread "Thread-0" java.lang.ExceptionInInitializerError
      at java.lang.Class.forName0(Native Method)
      at java.lang.Class.forName(Class.java:348)
      at com.rsa.cryptoj.o.co.F(Unknown Source)
      at com.rsa.cryptoj.o.co.d(Unknown Source)
      at com.rsa.cryptoj.o.co.J(Unknown Source)
      at com.rsa.cryptoj.o.co.<clinit>(Unknown Source)
      at com.rsa.jsafe.CryptoJ.isFIPS140Compliant(Unknown Source)
      at com.businessobjects.bcm.internal.BcmRsaLib.initialize(BcmRsaLib.java:214)
      at com.businessobjects.bcm.internal.BcmRsaLib.<clinit>(BcmRsaLib.java:289)
      at com.businessobjects.bcm.BCM.<clinit>(BCM.java:1158)
      at com.crystaldecisions.enterprise.ocaframework.BCMInitializer.run(BCMInitializer.java:29)
      at java.lang.Thread.run(Thread.java:748)
      Caused by: com.rsa.crypto.CryptoException: java.lang.SecurityException: java.lang.SecurityException: Toolkit not encapsulated by a jar.
      at com.rsa.crypto.jcm.ModuleLoader.<clinit>(Unknown Source)
      ... 12 more
      Caused by: java.lang.SecurityException: java.lang.SecurityException: Toolkit not encapsulated by a jar.
      at com.rsa.jcm.f.hx.a(Unknown Source)
      at com.rsa.jcm.f.jq.c(Unknown Source)
      at com.rsa.crypto.jcm.ModuleLoader.b(Unknown Source)
      ... 13 more
      Caused by: java.lang.SecurityException: Toolkit not encapsulated by a jar.
      at com.rsa.jcm.f.f.b(Unknown Source)
      at com.rsa.jcm.f.f.a(Unknown Source)
      at com.rsa.jcm.f.hx.f(Unknown Source)
      ... 16 more
      Exception in thread "main" java.lang.reflect.InvocationTargetException
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:498)
      at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
      Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.businessobjects.bcm.BCM
      at com.crystaldecisions.sdk.occa.security.internal.ConfidentialChannelService.establishConfidentialChannel(ConfidentialChannelService.java:189
      at com.crystaldecisions.sdk.occa.security.internal.ConfidentialChannelService.createConfidentialChannel(ConfidentialChannelService.java:149)
      at com.crystaldecisions.sdk.occa.security.internal.CCMap.locateCCItem(CCMap.java:63)
      at com.crystaldecisions.sdk.occa.security.internal.LogonService.doUserLogon(LogonService.java:845)
      at com.crystaldecisions.sdk.occa.security.internal.LogonService.doUserLogon(LogonService.java:805)
      at com.crystaldecisions.sdk.occa.security.internal.LogonService.userLogon(LogonService.java:210)
      at com.crystaldecisions.sdk.occa.security.internal.SecurityMgr.userLogon(SecurityMgr.java:166)
      at com.crystaldecisions.sdk.framework.internal.SessionMgr.logon_aroundBody0(SessionMgr.java:454)
      at com.crystaldecisions.sdk.framework.internal.SessionMgr.logon_aroundBody1$advice(SessionMgr.java:517)
      at com.crystaldecisions.sdk.framework.internal.SessionMgr.logon(SessionMgr.java:1)
      at com.rss.BI42.evt.BI42TriggerEvent.main(BI42TriggerEvent.java:238)
      ... 5 more

  • Jul 12, 2017 at 08:05 AM

    Hi Dan,

    many thanks for your hint. Actually I did not see this note up until now. However, I checked all .jar files mentioned there, and it appears that the dev guide is actually updated with this information as well, so I did already include the two additional .jar files in my application. The only curiosity I found is that jcmFIPS.jar is version 6.2.0 (not 6.2.1 as all other files mentioned), but on the other hand, this is the file that I have in my SDK folder, so I assume it's acceptable. Otherwise I'd have to find out where on the web I can get the later version.

    Needless to say, I can see that the corresponding .class files have been included in my project, so unless they are somehow incomplete (or wrong version?), everything needed should be available.

    Cheers

    Roland

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Feb 08 at 11:51 PM

    Did anyone find a resolution to this? I have BO4.2 SP5 and have same error message. Have all the jar's included as per the SAP note. Also works on Eclipse but not on command line.

    Add comment
    10|10000 characters needed characters exceeded

  • Jun 06 at 04:51 PM

    Hello All,

    Do we have any solution for this, I am also facing the same problem.

    Regards,

    Satya.

    Add comment
    10|10000 characters needed characters exceeded