Skip to main content
Skip table of contents

Appendix

This section contains supplementary information.

Appendix 1 - SNC Configuration

Secure Network Communication (SNC) protects the logical link between the endpoints of a communication. To have a secure connection between the components, you need to enable SNC. The module SAPJCo is used to send data from the HaloENGINE to the AS ABAP. This communication uses the protocol RFC and needs to be protected with SAP Secure Network Communications (SNC)

The explanation presented in this section is solely for purposes of illustration. For details regarding the setup and configuration of SNC in AS ABAP, please refer to the SAP Online Help (http://help.sap.com) to find an authoritative source of content.

Step 1: Enable SNC in AS ABAP

Before you start the enabling process in HaloENGINE, make sure that the following requirements are met in your SAP AS ABAP system:

  1. Configured and started with SNC enabled.

  2. An RFC user with access rights to the HaloENGINE audit Log.

  3. The SNC-Name of the RFC user is set in the AS ABAP user management.

  4. The PSE file with the client X.509 certificate of the RFC user and the PSE file password are available. 

Step 2: Create folder structure in HaloENGINE

Create the following folder structure:

  1. \<path>\snc\bin

  2. \<path>\snc\sec 

Step 3: Download and Install CommonCryptoLib in HaloENGINE

  1. Login to "SAP Software-Downloads".

  2. Navigate to "By Category -> SAP Cryptographic Software -> SAPCRYPTOLIB -> COMMONCRYPTOLIB 8 -> Downloads".

  3. Select your operating system e.g., "WINDOWS ON X64 64BIT".

  4. Download the latest version of SAPCRYPTOLIB.

  5. Extract the archive via SAPCAR.

  6. Copy the following files to \<path>\snc\bin\.

    CommonCryptoLib in HCCS_1.jpg

    CommonCryptoLib files

Step 4: Set Environment Variable SECUDIR in HaloENGINE

The CommonCryptoLib uses the Environment Variable SECUDIR to access the PSE files and the Credentials. 

  1. Set the System Environment variable SECUDIR to \<path>\snc\sec.

    Setting Environment Variable_2.jpg

    Environment Variable SECUDIR

  2. Restart the computer to make your system aware of these changes.

Step 5: Create PSE for the Client (HaloENGINE)

  1. Execute the following command to generate the PSE.

  2. In this step, a text file with certificate details will be generated.

  3. This text file must be signed by your CA before you go to step 5a.

    CODE
    Run:
    "\<path>\snc\bin\sapgenpse" get_pse -p "\<path>\snc\sec\<client>.pse" -x <password> -r \<path>\snc\sec\<client>.txt "CN=<distinguishedname>, O=<companyname>, C=<name>
    
    
    Output would look similar to this example below:
    Certificate Request
     Signed Part
     Subject :CN=JCOSNC, O=SECUDE, C=IN
     Key
     Key type :rsaEncryption (1.2.840.113549.1.1.1)
     Key size :2048
     Attributes
     Signature
     Signature algorithm :sha256WithRsaEncryption (1.2.840.113549.1.1.11)
     Signature (size="2048") :<Not displayed>

Step 5a: Import Root/Issuing CA certification into PSE

  1. Make sure you have the Root CA.cer and signed client.cer in \<path>\snc\sec\.

  2. Execute the following command to import the Certificate Authority.

    CODE
    Run:
    "\<path>\snc\bin\sapgenpse" import_own_cert -p "\<path>\snc\sec\<client>.pse" -x <password> -c "\<path>\snc\sec\<client>.cer" -r "\<path>\snc\sec\ROOTCA.cer"
    
    
    Output:
    CA-Response successfully imported into PSE "C:\HCCS\snc\sec\jcosnc.pse"

Step 5b: Check the configuration

To check the configuration, run the following command:

CODE
Run:
"\<path>\snc\bin\sapgenpse" get_my_name -p "\<path>\snc\sec\<client>.pse" -x <password> -v

Output would look similar to this example below:
Retrieving my certificate... ok.
Getting requested information... ok.
.
.
.
MY Certificate:
----------------------------------------------------------------------------
Subject : CN=JCOSNC, O=SECUDE, C=IN
Issuer : EMAIL=itadmins@secude.com, CN=itadmins20110916, OU=IT Department, O=Secude AG, SP=Nid walden, C=CH
.
.
.
----------------------------------------------------------------------------
No additional forward certificate path (CA certificates).
Root Certificate:
----------------------------------------------------------------------------
Subject : EMAIL=itadmins@secude.com, CN=itadmins20110916, OU=IT Department, O=Secude AG, SP=Nid walden, C=CH
Issuer : EMAIL=itadmins@secude.com, CN=itadmins20110916, OU=IT Department, O=Secude AG, SP=Nid walden, C=CH
.
.
.
----------------------------------------------------------------------------

Note:

  • Check whether the version of CommonCryptoLib is 8.5.10 or higher.

  • Check whether the Environment Variable $SECUDIR points to \<path>\snc\sec.

Step 5c: Generate Credentials

The PSE file is protected with the PSE file password. To give access to the PSE file, the Credentials file (cred_v2) needs to be created. The Credentials file contains the path and the password of the PSE file. To create the Credentials file, run the following command:

CODE
 Run:
"\<path>\snc\bin\sapgenpse" seclogin -p "\<path>\snc\sec\<client>.pse" -x <password> -O SYSTEM
 
 
Output would look similar to this example below:
running seclogin with USER="Administrator"
 creating credentials for well-known group "NT AUTHORITY\SYSTEM" ...
 Adjusting credentials and PSE ACLs to include "NT AUTHORITY\SYSTEM"...
   C:\HCCS\snc\sec\cred_v2  ... ok.
   C:\HCCS\snc\sec\jcosnc.pse  ... ok.
 Added SSO-credentials for PSE "C:\HCCS\snc\sec\jcosnc.pse"

Note: If you run the CMD with the account which is used by the SAP JCo to access the Credentials file, then the option -O need not be given.

Step 5d: Check the content of the folder:

Your "sec" directory should contain the following files.

Folder content

HaloENGINE SNC configuration is done, now the SAP JCo should be able to protect the RFC communication to the AS ABAP with SNC.

Appendix 2 - Uninstalling the HaloENGINE

Method #1 

When you no longer use the service, you may uninstall the application. Uninstalling removes all files and registry settings that were added to your computer during the initial installation.

  1. Click Start menu > go to Control Panel > Programs > Programs and Features Uninstall a Program > select HaloENGINE application from the list > right-click and select Uninstall option or double-click on the installer HaloENGINE_Setup.exe

  2. Depending on your Windows security settings, you may get a security warning as "Do you want to allow the following program to make changes to this computer?". If you get this security warning, click the Yes button to confirm that you want to uninstall the application.

  3. The following confirmation message will appear:

    Uninstall message #1

  4. Click Yes to confirm that you want to remove it from the computer. 

  5. You will be prompted to save a backup of the configuration files.

    Uninstall message #2

  6. Click Yes to save and continue with the uninstallation (The previous configuration files will be kept in the same location) or choose No to proceed with the uninstallation without saving.

    Uninstall message #3

  7. Click OK to close the message.  

Method #2 

The application can be removed using the command line, as illustrated in the sample below.

  1. Open a command prompt.

  2. Navigate to the application installer's directory.

  3. Use the following commands to uninstall:
    Example #1: uninstall and keep the configuration files
    HaloENGINE_Setup.exe -uninstall -keepconfig true
    Example #2: uninstall and delete the configuration files
    HaloENGINE_Setup.exe -uninstall -keepconfig false

Appendix 3 - Uninstalling the HaloENGINE Service

When you no longer use the service, you may uninstall the application. Uninstalling removes all files and registry settings that were added to your computer during the initial installation.

Method #1

  1. Click Start menu > go to Control Panel > Programs > Programs and Features Uninstall a Program > select HaloENGINE Service from the list > right-click and select Uninstall option.

  2. Depending on your Windows security settings, you may get a security warning as "Do you want to allow the following program to make changes to this computer?". If you get this security warning, click the Yes button to confirm that you want to uninstall the add-on.

  3. The following confirmation message will appear.

    Uninstall message #1

  4. Click Yes to confirm that you want to remove it from the computer. 

  5. The service is uninstalled successfully. Click OK to close the dialog.

    Uninstall message #2

Method #2

Follow the below procedure to uninstall the service using a command. 

  1. Open a command prompt.

  2. Navigate to the installation directory where the setup exe was extracted.

  3. Use the following command to uninstall:
    Example:
    HaloENGINE_Service_Installer.exe -uninstall -silent true

Appendix 4 - Open-source Software (HaloENGINE)

Third-party software/code is included or bundled with Secude's products according to its appropriate license. Secude conducts testing to make sure the third-party products are compatible with and perform as intended with Secude applications.

The third-party libraries and dependencies used by HaloENGINE are shown in the table below.

Library

Version

Source Code

License Name

License Link

javax.xml.bind:jaxb-api

2.3.1

https://github.com/javaee/jaxb-v2

CDDL-1.0

https://javaee.github.io/glassfish/LICENSE

javax.xml.ws:jaxws-api

2.3.1

https://github.com/javaee/jax-ws-spec

CDDL-1.0

https://javaee.github.io/glassfish/LICENSE

javax.xml.soap:javax.xml.soap-api

1.4.0

https://github.com/javaee/javax.xml.soap

CDDL-1.0

https://github.com/javaee/javax.xml.soap/blob/master/LICENSE

javax.annotation:javax.annotation-api

1.3.2

https://github.com/javaee/javax.annotation

CDDL-1.0

https://github.com/javaee/javax.xml.soap/blob/master/LICENSE

com.sun.activation:javax.activation-api

1.2.0

https://repo1.maven.org/maven2/javax/activation/javax.activation-api/1.2.0/

CDDL-1.0

https://github.com/javaee/activation/blob/master/LICENSE.txt

com.sun.activation: jakarta.activation

1.2.2

https://github.com/javaee/activation

CDDL-1.0

https://javaee.github.io/glassfish/LICENSE

org.slf4j:slf4j-api

1.7.36

http://www.slf4j.org/download.html

MIT

http://www.slf4j.org/license.html

com.sun.xml.bind:jaxb-impl

2.3.5

https://github.com/javaee/jaxb-v2

CDDL-1.1

https://github.com/javaee/jaxb-v2/blob/master/LICENSE

jakarta.xml.bind:jakarta.xml.bind-api

2.3.3

https://github.com/eclipse-ee4j/jaxb-api

BSD 3

https://github.com/eclipse-ee4j/jaxb-api/blob/master/LICENSE.md

joda-time:joda-time 

2.12.7

https://github.com/JodaOrg/joda-time

Apache 2.0

https://github.com/JodaOrg/joda-time/blob/master/LICENSE.txt

net.iharder:base64 

2.3.9

http://iharder.sourceforge.net/current/java/base64/

Public Domain

http://iharder.sourceforge.net/current/java/base64/

org.graylog2:syslog4j

0.9.60

https://github.com/graylog-labs/syslog4j-graylog2

LGPL 2.1

https://github.com/graylog-labs/syslog4j-graylog2/blob/master/LICENSE

ch.qos.logback:logback-classic 

1.2.13

https://github.com/qos-ch/logback

LGPL 2.1

https://github.com/qos-ch/logback/blob/master/LICENSE.txt

ch.qos.logback:logback-core

1.2.13

https://github.com/qos-ch/logback

LGPL 2.1

https://github.com/qos-ch/logback/blob/master/LICENSE.txt

com.googlecode.json-simple:json-simple

1.1.1

https://github.com/fangyidong/json-simple  

Apache 2.0

https://github.com/fangyidong/json-simple/blob/master/LICENSE.txt

org.apache.commons:commons-lang3

3.13

https://github.com/apache/commons-lang

Apache 2.0

https://github.com/apache/commons-lang/blob/master/LICENSE.txt

nl.basjes.parse.useragent:yauaa

5.23

https://github.com/nielsbasjes/yauaa

Apache 2.0

https://github.com/nielsbasjes/yauaa/blob/master/LICENSE

org.eclipse.persistence:org.eclipse.persistence.moxy

2.7.9

https://github.com/eclipse-ee4j/eclipselink/tree/master/moxy

EPL 2.0

https://github.com/eclipse-ee4j/eclipselink/blob/master/LICENSE.md

com.google.guava:guava

33.0.0-jre.jar

https://github.com/google/guava

Apache 2.0

https://github.com/google/guava/blob/master/COPYING

org.apache.logging.log4j:log4j-api

2.20.0

https://github.com/apache/logging-log4j2

Apache 2.0

https://github.com/apache/logging-log4j2/blob/release-2.x/LICENSE.txt

com.javax0.license3j:license3j

3.2.0

https://github.com/verhas/License3j

Apache 2.0

https://github.com/verhas/License3j/blob/master/LICENSE.txt

javax.servlet:javax.servlet-api

4.0.1

https://github.com/javaee/servlet-spec

CDDL-1.0

https://github.com/javaee/servlet-spec/blob/master/LICENSE

org.apache.poi:poi-ooxml 

5.2.3

https://github.com/apache/poi

Apache 2.0

https://www.apache.org/licenses/LICENSE-2.0

com.univocity:univocity-parsers

2.9.1

https://github.com/uniVocity/univocity-parsers

Apache 2.0

https://www.apache.org/licenses/LICENSE-2.0

com.opencsv:opencsv

5.9

https://github.com/cygri/opencsv      

Apache 2.0

https://github.com/cygri/opencsv/blob/master/LICENSE

com.ibm.icu:icu4j

70.1

https://github.com/unicode-org/icu

ICU license

https://github.com/unicode-org/icu/blob/main/icu4c/LICENSE

com.fasterxml.jackson.core:jackson-databind

2.13.5

https://github.com/FasterXML/Jackson-databind

Apache 2.0

https://github.com/FasterXML/jackson-databind/blob/2.13/LICENSE

com.datastax.oss:java-driver-core

4.17.0

https://github.com/datastax/java-driver

Apache 2.0

https://github.com/datastax/java-driver/blob/4.x/LICENSE

com.datastax.oss:java-driver-query-builder

4.17.0

https://github.com/datastax/java-driver

Apache 2.0

https://github.com/datastax/java-driver/blob/4.x/LICENSE

com.datastax.oss:java-driver-mapper-runtime

4.17.0

https://github.com/datastax/java-driver

Apache 2.0

https://github.com/datastax/java-driver/blob/4.x/LICENSE

org.json:json

20211205

https://github.com/vogella/org.json/tree/master/src

org.JSON

https://github.com/vogella/org.json/tree/master/src

org.apache.httpcomponents:httpclient

4.5.14

https://github.com/apache/httpcomponents-client

Apache 2.0

https://github.com/apache/httpcomponents-client/blob/master/LICENSE.txt

com.google.protobuf:protobuf-java 

3.21.7

https://github.com/protocolbuffers/protobuf

BSD 3-Clause

https://github.com/protocolbuffers/protobuf/blob/master/LICENSE

org.apache.cxf:cxf-rt-frontend-jaxws

3.5.8

https://github.com/apache/cxf

Apache 2.0

https://github.com/apache/cxf/blob/master/LICENSE

org.apache.cxf:cxf-rt-rs-security-cors

3.5.8

https://github.com/apache/cxf

Apache 2.0

https://github.com/apache/cxf/blob/master/LICENSE

org.apache.cxf:cxf-rt-ws-rm

3.5.8

https://github.com/apache/cxf

Apache 2.0

https://github.com/apache/cxf/blob/master/LICENSE

com.sun.xml.ws:rt

2.3.0

https://jar-download.com/artifacts/com.sun.xml.ws/rt/2.3.0/source-code

EDL 1.0

https://javaee.github.io/metro-jax-ws/LICENSE

org.springframework: spring-context

5.3.33

https://github.com/spring-projects/spring-framework/tree/main/spring-context

Apache 2.0

https://github.com/spring-projects/spring-framework/blob/main/src/docs/dist/license.txt

org.springframework:spring-web

5.3.33

https://github.com/spring-projects/spring-framework/tree/main/spring-web

Apache 2.0

https://github.com/spring-projects/spring-framework/blob/main/src/docs/dist/license.txt

org.codehaus.woodstox:stax2-api

3.1.4

https://github.com/FasterXML/woodstox

Apache 2.0

https://github.com/FasterXML/woodstox/blob/master/LICENSE

org.springframework.boot:spring-boot-starter-web 

2.7.18

https://github.com/spring-projects/spring-boot

Apache 2.0

https://github.com/spring-projects/spring-boot/blob/main/LICENSE.txt

org.springframework.boot:spring-boot-starter-security

2.7.18

https://github.com/spring-projects/spring-boot

Apache 2.0

https://github.com/spring-projects/spring-boot/blob/main/LICENSE.txt

org.springframework.security:spring-security-jwt

1.1.1.
RELEASE

https://github.com/spring-projects/spring-security-oauth            

Apache 2.0

https://github.com/spring-projects/spring-security-oauth/blob/main/license.txt

o.jsonwebtoken:jjwt

0.9.1

https://github.com/jwtk/jjwt

Apache 2.0

https://github.com/jwtk/jjwt/blob/master/LICENSE

javax.resource:javax.resource-api 

1.7.1

https://github.com/javaee/javax.resource

CDDL-1.0

https://github.com/javaee/javax.resource/blob/master/LICENSE

commons-io:commons-io

2.5

https://github.com/apache/commons-io

Apache 2.0

https://github.com/apache/commons-io/blob/master/LICENSE.txt

commons-fileupload:commons-fileupload 

1.2.1

https://github.com/apache/commons-fileupload

Apache 2.0

https://github.com/apache/commons-fileupload/blob/master/LICENSE.txt

commons-beanutils:commons-beanutils

1.9.4

https://github.com/apache/commons-beanutils

Apache 2.0

https://github.com/apache/commons-beanutils/blob/master/LICENSE.txt

org.springframework.boot:spring-boot-gradle-plugin

2.7.18

https://github.com/spring-projects/spring-boot/tree/main/spring-boot-project

Apache 2.0

https://github.com/spring-projects/spring-boot/blob/main/LICENSE.txt

org.springframework.batch:spring-batch-core 

4.3.10

https://github.com/spring-projects/spring-batch

Apache 2.0

https://github.com/spring-projects/spring-batch/blob/main/LICENSE.txt

org.springframework.batch:spring-batch-infrastructure

4.3.7

https://github.com/spring-projects/spring-batch

Apache 2.0

https://github.com/spring-projects/spring-batch/blob/main/LICENSE.txt

org.springframework.boot:spring-boot-starter-actuator

2.7.18

https://github.com/spring-projects/spring-boot/tree/main/spring-boot-project

Apache 2.0

https://github.com/spring-projects/spring-boot/blob/main/LICENSE.txt

org.springframework.hateoas:spring-hateoas

1.4.1

https://github.com/spring-projects/spring-hateoas

Apache 2.0

https://github.com/spring-projects/spring-hateoas/blob/main/LICENSE

org.jolokia:jolokia-core

1.7.2

https://github.com/rhuss/jolokia        

Apache 2.0

https://github.com/rhuss/jolokia/blob/master/LICENSE

org.dizitart:nitrite

3.2.0

https://github.com/nitrite/nitrite-java

Apache 2.0

https://github.com/nitrite/nitrite-java/blob/develop/LICENSE.md

com.microsoft.azure:msal4j

1.7.1

https://github.com/AzureAD/microsoft-authentication-library-for-java

MIT

https://github.com/AzureAD/microsoft-authentication-library-for-java/blob/dev/LICENSE

org.springframework.boot:spring-boot-starter-oauth2-resource-server  

5.8.2

https://github.com/spring-projects/spring-boot/tree/main/spring-boot-project

Apache 2.0

https://github.com/spring-projects/spring-boot/blob/main/LICENSE.txt

org.springframework.security:spring-security-oauth2-jose

5.8.2

https://github.com/spring-projects/spring-security

Apache 2.0

https://github.com/spring-projects/spring-security           https://github.com/spring-projects/spring-security/blob/main/LICENSE.txt

org.springframework.security.oauth:spring-security-oauth2

2.5.2.RELEASE

https://github.com/spring-projects/spring-security

Apache 2.0

https://github.com/spring-projects/spring-security    -https://github.com/spring-projects/spring-security/blob/main/LICENSE.txt

org.springframework.security:spring-security-oauth2-client

5.8.2

https://github.com/spring-projects/spring-security

Apache 2.0

https://github.com/spring-projects/spring-security    -https://github.com/spring-projects/spring-security/blob/main/LICENSE.txt

org.springframework.security.oauth.boot:spring-security-oauth2-autoconfigure

2.6.8

https://github.com/spring-projects/spring-security

Apache 2.0

https://github.com/spring-projects/spring-security    -https://github.com/spring-projects/spring-security/blob/main/LICENSE.txt

Tomcat

9.0.X

https://github.com/apache/tomcat

Apache 2.0

https://github.com/apache/tomcat/blob/main/LICENSE

Java

11

https://github.com/adoptium/jdk

-

https://www.eclipse.org/legal/epl-2.0/

MongoDB

7.0.7

https://fastdl.mongodb.org/windows/mongodb-windows-x86_64

Open-source software

Appendix 5 - Open-source Software (HaloENGINE Service)

Third-party software/code is included or bundled with Secude's products according to its appropriate license. Secude conducts testing to make sure the third-party products are compatible with and perform as intended with Secude applications.

The third-party libraries and dependencies used by the HaloENGINE Service are shown in the table below.

Open-source software

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.