Skip to Content
1

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

Jul 11, 2017 at 10:40 AM

898

avatar image

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

10 |10000 characters needed characters left characters exceeded
* Please Login or Register to Answer, Follow or Comment.

6 Answers

Daniel Paulsen
Jul 12, 2017 at 04:11 AM
1

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

Show 1 Share
10 |10000 characters needed characters left 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

0
Daniel Paulsen
Jul 12, 2017 at 01:37 PM
1

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

Show 3 Share
10 |10000 characters needed characters left characters exceeded

Hi Dan,

according to the dev guide, the file should be named only bcm.jar. The version I found in the SDK folder has implementation version 14.0.0.000 (concluding from the MANIFEST.MF), and I did not see any similarly named file with a longer name (bcm-4-0.jar or the like).

TIA!

Cheers

Roland

0

ok, thanks for checking. I think I'm thinking of the dll name, not the jar name so you're checking the right one.

I could not dig too far into the stack trace as a bunch of it is obsfucated, One possibility is that you are logging onto a 4.1 CMS rather than a 4.2 CMS, but I don't think that's the case here. If the jars were correctly added to your manifest then it should work.
I'll give it a try today.
Are you using Tomcat or a different server. Classloader order becomes important on some servers like websphere.

0

Hi Dan,

it's BI Platform 4.2 with the default Tomcat WAS. Is there any way I can influence the order that classes get loaded? (Not that I would know the correct order - just asking.)

Cheers

Roland

0
Dan Chester Aug 02, 2017 at 07:30 PM
1

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.

Show 1 Share
10 |10000 characters needed characters left 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

0
Roland Wammers Jul 12, 2017 at 08:05 AM
0

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

Share
10 |10000 characters needed characters left characters exceeded
avatar image
Former Member Feb 08 at 11:51 PM
0

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.

Show 2 Share
10 |10000 characters needed characters left characters exceeded
Former Member

Same issue here. Support had directed me to KB 1219135:

The use of BusinessObjects Enterprise SDKs is not supported in a thick-client or desktop application because the BusinessObjects Enterprise SDK is only intended for use in web applications. To build BI platform thick-client or desktop applications, use Business Objects web services.

Still... code works when run in Eclipse... just not when project is exported as a .jar and launched as command line java -jar app.jar

0

Hi Douglas,

This is most likely a classpath issue. In Eclipse, all jars referenced in Eclipse will be loaded. When just running the jar, the problem could be:
  1. META-INF points to relative paths
  2. META-INF points to hard-coded paths that are incorrect
  3. System Path is pointing to and loading incompatible jars (older crypto libraries) first

try placing your jar in the BOE 4.0 java folder and run it from there. If it works, then its a classpath issue.

0
Satya Kanakam Jun 06 at 04:51 PM
0

Hello All,

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

Regards,

Satya.

Show 1 Share
10 |10000 characters needed characters left characters exceeded

What is the BOE version?

tried this ? https://answers.sap.com/answers/252314/view.html

0