geode-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From echobr...@apache.org
Subject geode-native git commit: GEODE-2687: Ensure three tests for SSL authentication.
Date Thu, 23 Mar 2017 20:45:02 GMT
Repository: geode-native
Updated Branches:
  refs/heads/develop 456de2a24 -> 8b67c1306


GEODE-2687: Ensure three tests for SSL authentication.

- Remove unnecessary header file by merging its code
  into the source file.
- Ensure failure in the absence of the expected
  exception in testThinClientSSLAuthFail.
- Add testThinClientSSLAuthCorrupt for a corrupted
  client keystore.
- Add testThinClientSSLAuthUntrusted for an untrusted
  client keystore.


Project: http://git-wip-us.apache.org/repos/asf/geode-native/repo
Commit: http://git-wip-us.apache.org/repos/asf/geode-native/commit/8b67c130
Tree: http://git-wip-us.apache.org/repos/asf/geode-native/tree/8b67c130
Diff: http://git-wip-us.apache.org/repos/asf/geode-native/diff/8b67c130

Branch: refs/heads/develop
Commit: 8b67c1306c71148b74c95ac6e813c21dfaba2b9e
Parents: 456de2a
Author: Sarge <mdodge@pivotal.io>
Authored: Wed Mar 22 12:28:53 2017 -0700
Committer: Ernest Burghardt <eburghardt@pivotal.io>
Committed: Thu Mar 23 13:44:39 2017 -0700

----------------------------------------------------------------------
 src/cppcache/integration-test/CMakeLists.txt    |   2 +
 .../integration-test/ThinClientSSLAuthFail.hpp  | 198 -------------------
 .../keystore/client_keystore_corrupt.pem        |  45 +++++
 .../keystore/client_keystore_untrusted.pem      |  30 +++
 .../testThinClientSSLAuthCorrupt.cpp            | 194 ++++++++++++++++++
 .../testThinClientSSLAuthFail.cpp               | 176 ++++++++++++++++-
 .../testThinClientSSLAuthUntrusted.cpp          | 195 ++++++++++++++++++
 7 files changed, 640 insertions(+), 200 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/geode-native/blob/8b67c130/src/cppcache/integration-test/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/src/cppcache/integration-test/CMakeLists.txt b/src/cppcache/integration-test/CMakeLists.txt
index 8f7824e..71ee174 100644
--- a/src/cppcache/integration-test/CMakeLists.txt
+++ b/src/cppcache/integration-test/CMakeLists.txt
@@ -134,6 +134,8 @@ set_property(TEST testAttributesMutator PROPERTY LABELS STABLE QUICK)
 set_property(TEST testEntriesMapForVersioning PROPERTY LABELS STABLE QUICK)
 set_property(TEST testSpinLock PROPERTY LABELS STABLE QUICK)
 set_property(TEST testThinClientSSLAuthFail PROPERTY LABELS STABLE QUICK)
+set_property(TEST testThinClientSSLAuthCorrupt PROPERTY LABELS STABLE QUICK)
+set_property(TEST testThinClientSSLAuthUntrusted PROPERTY LABELS STABLE QUICK)
 
 set_property(TEST testOverflowPutGetSqLite PROPERTY LABELS FLAKY)
 set_property(TEST testThinClientAfterRegionLive PROPERTY LABELS FLAKY)

http://git-wip-us.apache.org/repos/asf/geode-native/blob/8b67c130/src/cppcache/integration-test/ThinClientSSLAuthFail.hpp
----------------------------------------------------------------------
diff --git a/src/cppcache/integration-test/ThinClientSSLAuthFail.hpp b/src/cppcache/integration-test/ThinClientSSLAuthFail.hpp
deleted file mode 100644
index de226c0..0000000
--- a/src/cppcache/integration-test/ThinClientSSLAuthFail.hpp
+++ /dev/null
@@ -1,198 +0,0 @@
-#pragma once
-
-#ifndef GEODE_INTEGRATION_TEST_THINCLIENTSSL_H_
-#define GEODE_INTEGRATION_TEST_THINCLIENTSSL_H_
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "fw_dunit.hpp"
-#include <geode/GeodeCppCache.hpp>
-#include <ace/OS.h>
-#include <ace/High_Res_Timer.h>
-#include <string>
-
-#define ROOT_NAME "ThinClientSSLAuthFail"
-#define ROOT_SCOPE DISTRIBUTED_ACK
-
-#include "CacheHelper.hpp"
-
-using namespace apache::geode::client;
-using namespace test;
-
-CacheHelper* cacheHelper = NULL;
-bool isLocalServer = false;
-
-static bool isLocator = false;
-const char* locatorsG =
-    CacheHelper::getLocatorHostPort(isLocator, isLocalServer, 1);
-
-#define CLIENT1 s1p1
-#define SERVER1 s2p1
-
-void initClient(const bool isthinClient) {
-  if (cacheHelper == NULL) {
-    PropertiesPtr props = Properties::create();
-    props->insert("ssl-enabled", "true");
-    std::string keystore = std::string(ACE_OS::getenv("TESTSRC")) + "/keystore";
-    std::string pubkey = keystore + "/client_truststore.pem";
-    std::string privkey = keystore + "/client_keystore.pem";
-    props->insert("ssl-keystore", privkey.c_str());
-    props->insert("ssl-truststore", pubkey.c_str());
-    cacheHelper = new CacheHelper(isthinClient, props);
-  }
-  ASSERT(cacheHelper, "Failed to create a CacheHelper client instance.");
-}
-void cleanProc() {
-  if (cacheHelper != NULL) {
-    delete cacheHelper;
-    cacheHelper = NULL;
-  }
-}
-
-CacheHelper* getHelper() {
-  ASSERT(cacheHelper != NULL, "No cacheHelper initialized.");
-  return cacheHelper;
-}
-
-
-void createPooledRegion(const char* name, bool ackMode, const char* locators,
-                        const char* poolname,
-                        bool clientNotificationEnabled = false,
-                        bool cachingEnable = true) {
-  LOG("createRegion_Pool() entered.");
-  fprintf(stdout, "Creating region --  %s  ackMode is %d\n", name, ackMode);
-  fflush(stdout);
-  RegionPtr regPtr =
-      getHelper()->createPooledRegion(name, ackMode, locators, poolname,
-                                      cachingEnable, clientNotificationEnabled);
-  ASSERT(regPtr != NULLPTR, "Failed to create region.");
-  LOG("Pooled Region created.");
-}
-
-void createEntry(const char* name, const char* key, const char* value) {
-  LOG("createEntry() entered.");
-  fprintf(stdout, "Creating entry -- key: %s  value: %s in region %s\n", key,
-          value, name);
-  fflush(stdout);
-  // Create entry, verify entry is correct
-  CacheableKeyPtr keyPtr = createKey(key);
-  CacheableStringPtr valPtr = CacheableString::create(value);
-
-  RegionPtr regPtr = getHelper()->getRegion(name);
-  ASSERT(regPtr != NULLPTR, "Region not found.");
-
-  ASSERT(!regPtr->containsKey(keyPtr),
-         "Key should not have been found in region.");
-  ASSERT(!regPtr->containsValueForKey(keyPtr),
-         "Value should not have been found in region.");
-
-  // regPtr->create( keyPtr, valPtr );
-  regPtr->put(keyPtr, valPtr);
-  LOG("Created entry.");
-
-  //verifyEntry(name, key, value);
-  LOG("Entry created.");
-}
-
-
-
-const char* keys[] = {"Key-1", "Key-2", "Key-3", "Key-4"};
-const char* vals[] = {"Value-1", "Value-2", "Value-3", "Value-4"};
-const char* nvals[] = {"New Value-1", "New Value-2", "New Value-3",
-                       "New Value-4"};
-
-const char* regionNames[] = {"DistRegionAck", "DistRegionNoAck"};
-
-const bool USE_ACK = true;
-const bool NO_ACK = false;
-
-DUNIT_TASK_DEFINITION(SERVER1, CreateLocator1_With_SSL_untrustedCert)
-  {
-    // starting locator
-    if (isLocator) CacheHelper::initLocator(1, true, false, -1, 0, true);
-    LOG("Locator1 started with SSL");
-  }
-END_TASK_DEFINITION
-
-
-
-DUNIT_TASK_DEFINITION(SERVER1, CreateServer1_With_Locator_And_SSL_untrustedCert)
-  {
-    // starting servers
-    if (isLocalServer) CacheHelper::initServer(1, NULL, locatorsG, NULL, true, true, false,
false, true);
-  }
-END_TASK_DEFINITION
-
-DUNIT_TASK_DEFINITION(CLIENT1, CreateClient1)
-  { initClient(true); }
-END_TASK_DEFINITION
-
-DUNIT_TASK_DEFINITION(CLIENT1, CreateRegions1_PoolLocators)
-  {
-    createPooledRegion(regionNames[0], USE_ACK, locatorsG, "__TESTPOOL1_",
-                       true);
-    createPooledRegion(regionNames[1], NO_ACK, locatorsG, "__TESTPOOL1_", true);
-    RegionPtr regPtr = getHelper()->getRegion(regionNames[0]);
-    try {
-      regPtr->registerAllKeys(false, NULLPTR, false, false);
-    }
-    catch (NotConnectedException exp) {
-      LOG("Connection Failed as expected via NotConnectedException");
-    }
-    LOG("CreateRegions1_PoolLocators complete.");
-  }
-END_TASK_DEFINITION
-
-DUNIT_TASK_DEFINITION(CLIENT1, CloseCache1)
-  { cleanProc(); }
-END_TASK_DEFINITION
-
-DUNIT_TASK_DEFINITION(SERVER1, CloseServer1)
-  {
-    if (isLocalServer) {
-      CacheHelper::closeServer(1);
-      LOG("SERVER1 stopped");
-    }
-  }
-END_TASK_DEFINITION
-
-DUNIT_TASK_DEFINITION(SERVER1, CloseLocator_With_SSL)
-  {
-    // stop locator
-    if (isLocator) {
-      CacheHelper::closeLocator(1, true);
-      LOG("Locator1 stopped");
-    }
-  }
-END_TASK_DEFINITION
-
-void doThinClientSSL(bool poolConfig = true, bool poolLocators = true) {
-  CALL_TASK(CreateLocator1_With_SSL_untrustedCert);
-  CALL_TASK(CreateServer1_With_Locator_And_SSL_untrustedCert)
-
-  CALL_TASK(CreateClient1);
-
-  CALL_TASK(CreateRegions1_PoolLocators);
-
-  CALL_TASK(CloseCache1);
-  CALL_TASK(CloseServer1);
-
-  CALL_TASK(CloseLocator_With_SSL);
-}
-
-#endif  // GEODE_INTEGRATION_TEST_THINCLIENTSSL_H_

http://git-wip-us.apache.org/repos/asf/geode-native/blob/8b67c130/src/cppcache/integration-test/keystore/client_keystore_corrupt.pem
----------------------------------------------------------------------
diff --git a/src/cppcache/integration-test/keystore/client_keystore_corrupt.pem b/src/cppcache/integration-test/keystore/client_keystore_corrupt.pem
new file mode 100755
index 0000000..e41f773
--- /dev/null
+++ b/src/cppcache/integration-test/keystore/client_keystore_corrupt.pem
@@ -0,0 +1,45 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAp285nn8EDUa2fRmYGrNOUFtkk2sCeMh8fthTsp0AOpBKnCLr
+jVMgXsnivO5/RtEOdM+KqhOp6HaTR4dnWlW8aNeIDydmdFjK/gsBpJKyfQw/7QW7
+OVHeHbLbPr6/zazy+1Zpkx5HBOSYrnqV1KyVfo+M+Y7l2TJC5/i3CVL+d5a+bqjs
+UpXrZWcN6Vgu5VRNJ/hk8jB/UHjA9FUbmreUSL1TqoItUHniPcAATp+m2zx9goMC
+A2CzWV5vece9QI3ymK4zF+ajwRWDIMq7LdNDV99YxTGLa94oB9rq0DTsdKIvfxF6
+7MeFtk57rnPuEM56npDJO2QrRAV57J3t10AkLwIDAQABAoIBAD4sfyjr4YZGFd2+
+c0z26E3Oojpbsj9Hs3MmwW3B/yPAENPcYpvG8m5AaYHezkRtvQCDUOp3AtDftzEI
+hsh0rdIAtvVpnBH4JujPDX0fPEhTFCnfxvYyAFjm4aMbEf4+CrxqCionRBf9CvU/
+cAPZUmn8xEynU5Kjp1Scdttvhi7BoE/iP0KDhzyMjw9cLMOgant7qyWhhLexBf79
+QvqLPT0KpURLa/dQ/kgYs0owM/a2iPP0P9Kpvr8Q7UGdZOYyRi6J68/NbG661cAC
+jVV2hBU7n+CUw7UAO2ni+ahfcORgPxnvrJBSiT479agZN9//bYDXMDawpIQ6QV3j
+egeUg4ECgYEA61AImg4B5Jl1ikzCGLZsnPCZPyk7pNAvQ3x3/e/WuAr4vN3M5Cyx
+2mtYjrKH31Z8TeMEKdoS9ldnWHA5MGsXfX/5T7XN6aNUCCtLBQ2WvidQBeGW1PT5
+SAzeUhmtFuYC4Jx1teJc2ni4SevS/PEuJUjsmAZTik01USB2Y23aTK0CgYEAtieF
+EGiROyPuBpmbWFTN9O4di8RyePPbGlVTatb+kcLRhlD+KUzhjgm0aP7as8DlN8KI
+kQ/JxKhCXQcWo0hiooggf3kO1hihSTF/kjEG5a0c0aqqqDlAQ1hqd0SoOHvCcwPm
+Q0YCDC3hDTG5rwyHyUwqqTwf/tR9oOKoNvtWk8sCgYBgaqGrpdOmvC5KJZteDtlA
+EOFp3NZAeMD08PolhXFAZdZ3ZJZAZAPX0CYwCfzcSQ6Tx1H8aAte/n8s4Ia/BKMS
+XC5mN8MQWUjkNAEAJAo9DdSfJEjuJxZBLGynzTd763EAYXtltEOBjPdN6p+/3n6e
+7ltrCySNxYb0H84CfY913QKBgAMXOJLGs3Alc+x4vsII7lWxlISymJ6kxJr1x6yQ
+aVFf1N5KkYVx4IHgeEcvy9Yw97Kygk6zzeCgWj/p1uB+Ye4QET0YeL/5OwNa66c3
+Xb6X6V1FYA/qqMRdw5Kyf4g10V7SOh36Gh7KyH7I0TW/KK6ptC+a7ZANWvRX5DLK
+oPVxAoGBAIX+Kk1njuAGy+QPsBIdgRfwYyPJZiBYkYJAHYglHHVuKgCEpj0FYmz1
+ATo9nIhVDcWPz+EyljtgCIp50C0ipRb/hu16DjtDPOu4GnofckE2OS51d5TVAGMu
+8Co7bxyn0CkSsdId4Gue7ThCUJJovwG4Si5wUprIorbIK9dTIlwO
+-----END RSA PRIVATE KEY-----
+-----BEGIN CERTIFICATE-----
+MIIC6zCCAdOgAwIBAgIEUCOixTANBgkqhki59w0BAQUFADAeMQswCQYDVQQGEwJV
+UzPPMA0GA1UEAwwGY2xpZW50MB4XDTEyMDgwOTExNDUwOVoXDTM3MDgwMzExNDUw
+OVowHjELMAkGA1UEBhMCVVMxDzANBgfVBAMMBmNsaWVudDCCASIwDQYJKoZIhvcN
+AQEBBQADggEPADCCAQoCggEBAKdvOZ5/BA/mtn0ZmBqzTlBbZJNrAnjIfH7YU7Kd
+ADqQSkQi641TIF7J4rzuf0bRDnTPiqoTqeh2k0eHZ1pVvGjXiA8nZnRYyv4LAaSS
+sn0MP+0FuzlR3h2y2z6+v82s8vtWaZMeRwTkmK56ldSslX6PjPmO5dkyQuf4twlS
+/neWvm6o7FKV62VnDelYLuVUTSf4ZPIwf1B4wPRVG5q3lEi9U6qCLVB54G3AAE6f
+pts8fYKDAgNgs1leb3nHvUCN8piuMxfmo8EVgyDKuy3TQ1ffWMUxi2veKAfa6tA0
+7HSiL7cReuzHhbZOe65z7hDOep6QyTtkK0QFeeyd7ddAJC8CAwEAAaMxMC8wHQYD
+VR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB/wQEAwIEsDANBgkq
+hkiG9w0BAQUFAAOCAQEAL1tEBvoFA8NlzIIXyALWRRLdFWV0b/FPu4lAv1RUF7Sk
+ZRw4nbBUOrMGrZFjnZ3TNRChwQY8P5GlDvyj5oLJ6VZFMAaidWvFrR5oDLm8Khkq
+2vLQXnnchje9hm6jDxaO58XsfU5zicfYRuXi2vYmOgltyCixBWQvEwbI+Uf7F6Lw
+Da7bpNwTgiYs3snB83trYe17hlUaiF7MNC6lCVdy1/F7FbN/ToQQIDpxHVx7jm6n
+SrOtPnOMLoXB9Gcfrtidu1k/ZFyySskK/HnYc1bfGJ9+B1GzbVahuzr/Jdfp62sE
+XxEVh9pXSb0gkB/CUpTEx7ve9jU8tEYNUqMDUj87Qg==
+-----END CERTIFICATE-----

http://git-wip-us.apache.org/repos/asf/geode-native/blob/8b67c130/src/cppcache/integration-test/keystore/client_keystore_untrusted.pem
----------------------------------------------------------------------
diff --git a/src/cppcache/integration-test/keystore/client_keystore_untrusted.pem b/src/cppcache/integration-test/keystore/client_keystore_untrusted.pem
new file mode 100755
index 0000000..b316d7b
--- /dev/null
+++ b/src/cppcache/integration-test/keystore/client_keystore_untrusted.pem
@@ -0,0 +1,30 @@
+-----BEGIN RSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: AES-256-CBC,1D33EB50F0D52CAE9CB64EFBA17481E8
+
+Kh7gfmoqXOjwAjtshMs/nuPvsPJ1ihDbgebHHxvyh40tLQ1dNbR27gtzdxD98mbd
+6a+NrqrnB4+ki4z4TaUYUzZd2Z+p0jhUWTj1hrvOdydsUvSZ2oDAaiVZRUo38b52
+o6N1TY66TfSzAu9karcQnrDaQhLlBucjbHuBYuL9q7Mkf67S7ZoHd0vZ7f8tgxD8
+jGCPjEhA6yY9HcmgqcadICi0CyvKpxQvZ6+YLl8W0iIooou+FFDtfdqThwLETvE5
+fZVow7feAcUoKdglXopfKlKV72zU+AehgDKcAYHOlNnpm6awOHu73brlZc+D9A54
+MI4NkWE4wg8C6IWX+JJwZT8yvT3SIqMHW68Ie/owObPAm68o1zTwFdN4EL/2NqMO
+ktohvhpAa0cniv+bB6OD3xfQLcEYRtZGZ71wZmnLe4YExMIqrgxKnLNPAShdJmy/
+U9T4Meg7BF6kWx3gbB7iEOKsdTCdcuRnfMZsGP5tphJ7KcFeHCnTNAUQa2fKScIO
++pnC4kJWRjEb85EeqeS6Rk5PsaUjxo0C0nJftoqMg1mkkfxCoxBrXHjLC/kz3sIj
+3PavkYur8pP2sceIbVntnJN4KFBLMIf6erpO6bx8o/bDZYAqf03F4R2Ja1TXnGjJ
+pr0gYx7If0qAufRjzh+MicA0ie3U2vsqYZL3zIvm8BPlmRtV2peWe8iwalo0ECVm
+raJQCK8+21vKS8xsZy/EhboSAAc8ZS9ZlnnjdhYt7381HY1Egtu5Y5TYDi8WeNQ+
+iegC4slCZjO/mCSgwe9LDZcyBv3G6jilYrHADEnb1QDj6kOkiZdWxIlpzyPztSwk
+JjRog1He1N+A/0rscIeftus8a6uLU4HMpKJdxvfsM6S5mK8C6pegZReUlvick0Ep
+w7d14/AqB380ZjlW72gCm7a1pTwYgRj3pALn3oR54bX3X0NTvJ6J5XzI7eI7EG6j
+a1fsRanSIq9tuaPbq8ddrIKPHsC+0tu2OTC62ZodmI07Q4veTKG6Wjcxd1dhxytd
+UYwmzt9pE8yX+RVB15iu27tDs1Z6ggo9NqgKmEv25Sw0AV6pIJ1ioWtltLfCqnqm
+7i7LCTmBL7ZlEqkgJ2qdMlKqFOzLU5kE8WUdAidPXBCJvITA/odrG8KSqXjL7Xr/
+afkRgl5/4ixa/DN9WZW3BWTcuWQzVZukEkIqdnaQED+O9Osle4sNfw3BVQAYXIO+
+gar6bHdu1+C/fQsECJAXX8WP14BQYO+riBhjwe/XjdVlqPjdhy9s+Y3klxl81H/B
+XI/bJDak5r1vEYmE4wvYK04oW/55U2LOrkahaJqX3+biaIwchyqjnJM9+6mlMDAm
+EK7TeeBUn0COkveWKiXYY+hm4GISSaawQLeIn1bBmfGvrmPzSrJCrkQN7UTuk++o
+T8Lwn1O8g50J3PwZcSmxe13ev/TD/kpl/DOP24oZr29DBewAK3Z8IXD643iSMEuB
+eKImj7+roGKQjFoy/fFb4kQg1guz+vuXkCv1iovDY/5M4316X8eYF6GMHjEGKvgM
+ThE+Y2kC8GEDzBWYKrJJ5P6xg+t5qcimSAQrS94bG+E8ntuYcOscZaRLwEgoOaEV
+-----END RSA PRIVATE KEY-----

http://git-wip-us.apache.org/repos/asf/geode-native/blob/8b67c130/src/cppcache/integration-test/testThinClientSSLAuthCorrupt.cpp
----------------------------------------------------------------------
diff --git a/src/cppcache/integration-test/testThinClientSSLAuthCorrupt.cpp b/src/cppcache/integration-test/testThinClientSSLAuthCorrupt.cpp
new file mode 100644
index 0000000..3920f6f
--- /dev/null
+++ b/src/cppcache/integration-test/testThinClientSSLAuthCorrupt.cpp
@@ -0,0 +1,194 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "fw_dunit.hpp"
+#include <geode/GeodeCppCache.hpp>
+#include <ace/OS.h>
+#include <ace/High_Res_Timer.h>
+#include <string>
+
+#define ROOT_NAME "ThinClientSSLAuthCorrupt"
+#define ROOT_SCOPE DISTRIBUTED_ACK
+
+#include "CacheHelper.hpp"
+
+using namespace apache::geode::client;
+using namespace test;
+
+CacheHelper* cacheHelper = NULL;
+bool isLocalServer = false;
+
+static bool isLocator = false;
+const char* locatorsG =
+    CacheHelper::getLocatorHostPort(isLocator, isLocalServer, 1);
+
+#define CLIENT1 s1p1
+#define SERVER1 s2p1
+
+void initClient(const bool isthinClient) {
+  if (cacheHelper == NULL) {
+    PropertiesPtr props = Properties::create();
+    props->insert("ssl-enabled", "true");
+    std::string keystore = std::string(ACE_OS::getenv("TESTSRC")) + "/keystore";
+    std::string pubkey = keystore + "/client_truststore.pem";
+    std::string privkey = keystore + "/client_keystore_corrupt.pem";
+    props->insert("ssl-keystore", privkey.c_str());
+    props->insert("ssl-truststore", pubkey.c_str());
+    cacheHelper = new CacheHelper(isthinClient, props);
+  }
+  ASSERT(cacheHelper, "Failed to create a CacheHelper client instance.");
+}
+void cleanProc() {
+  if (cacheHelper != NULL) {
+    delete cacheHelper;
+    cacheHelper = NULL;
+  }
+}
+
+CacheHelper* getHelper() {
+  ASSERT(cacheHelper != NULL, "No cacheHelper initialized.");
+  return cacheHelper;
+}
+
+
+void createPooledRegion(const char* name, bool ackMode, const char* locators,
+                        const char* poolname,
+                        bool clientNotificationEnabled = false,
+                        bool cachingEnable = true) {
+  LOG("createRegion_Pool() entered.");
+  fprintf(stdout, "Creating region --  %s  ackMode is %d\n", name, ackMode);
+  fflush(stdout);
+  RegionPtr regPtr =
+      getHelper()->createPooledRegion(name, ackMode, locators, poolname,
+                                      cachingEnable, clientNotificationEnabled);
+  ASSERT(regPtr != NULLPTR, "Failed to create region.");
+  LOG("Pooled Region created.");
+}
+
+void createEntry(const char* name, const char* key, const char* value) {
+  LOG("createEntry() entered.");
+  fprintf(stdout, "Creating entry -- key: %s  value: %s in region %s\n", key,
+          value, name);
+  fflush(stdout);
+  // Create entry, verify entry is correct
+  CacheableKeyPtr keyPtr = createKey(key);
+  CacheableStringPtr valPtr = CacheableString::create(value);
+
+  RegionPtr regPtr = getHelper()->getRegion(name);
+  ASSERT(regPtr != NULLPTR, "Region not found.");
+
+  ASSERT(!regPtr->containsKey(keyPtr),
+         "Key should not have been found in region.");
+  ASSERT(!regPtr->containsValueForKey(keyPtr),
+         "Value should not have been found in region.");
+
+  // regPtr->create( keyPtr, valPtr );
+  regPtr->put(keyPtr, valPtr);
+  LOG("Created entry.");
+
+  //verifyEntry(name, key, value);
+  LOG("Entry created.");
+}
+
+
+
+const char* keys[] = {"Key-1", "Key-2", "Key-3", "Key-4"};
+const char* vals[] = {"Value-1", "Value-2", "Value-3", "Value-4"};
+const char* nvals[] = {"New Value-1", "New Value-2", "New Value-3",
+                       "New Value-4"};
+
+const char* regionNames[] = {"DistRegionAck", "DistRegionNoAck"};
+
+const bool USE_ACK = true;
+const bool NO_ACK = false;
+
+DUNIT_TASK_DEFINITION(SERVER1, CreateLocator1_With_SSL_untrustedCert)
+  {
+    // starting locator
+    if (isLocator) CacheHelper::initLocator(1, true, false, -1, 0, false);
+    LOG("Locator1 started with SSL");
+  }
+END_TASK_DEFINITION
+
+
+
+DUNIT_TASK_DEFINITION(SERVER1, CreateServer1_With_Locator_And_SSL_untrustedCert)
+  {
+    // starting servers
+    if (isLocalServer) CacheHelper::initServer(1, NULL, locatorsG, NULL, true, true, false,
false, false);
+  }
+END_TASK_DEFINITION
+
+DUNIT_TASK_DEFINITION(CLIENT1, CreateClient1)
+  { initClient(true); }
+END_TASK_DEFINITION
+
+DUNIT_TASK_DEFINITION(CLIENT1, CreateRegions1_PoolLocators)
+  {
+    createPooledRegion(regionNames[0], USE_ACK, locatorsG, "__TESTPOOL1_",
+                       true);
+    createPooledRegion(regionNames[1], NO_ACK, locatorsG, "__TESTPOOL1_", true);
+    RegionPtr regPtr = getHelper()->getRegion(regionNames[0]);
+    try {
+      regPtr->registerAllKeys(false, NULLPTR, false, false);
+      FAIL("Should have got NotConnectedException during registerAllKeys");
+    }
+    catch (NotConnectedException exp) {
+      LOG("Connection Failed as expected via NotConnectedException");
+    }
+    LOG("CreateRegions1_PoolLocators complete.");
+  }
+END_TASK_DEFINITION
+
+DUNIT_TASK_DEFINITION(CLIENT1, CloseCache1)
+  { cleanProc(); }
+END_TASK_DEFINITION
+
+DUNIT_TASK_DEFINITION(SERVER1, CloseServer1)
+  {
+    if (isLocalServer) {
+      CacheHelper::closeServer(1);
+      LOG("SERVER1 stopped");
+    }
+  }
+END_TASK_DEFINITION
+
+DUNIT_TASK_DEFINITION(SERVER1, CloseLocator_With_SSL)
+  {
+    // stop locator
+    if (isLocator) {
+      CacheHelper::closeLocator(1, true);
+      LOG("Locator1 stopped");
+    }
+  }
+END_TASK_DEFINITION
+
+DUNIT_MAIN
+  {
+    CALL_TASK(CreateLocator1_With_SSL_untrustedCert);
+    CALL_TASK(CreateServer1_With_Locator_And_SSL_untrustedCert)
+
+    CALL_TASK(CreateClient1);
+
+    CALL_TASK(CreateRegions1_PoolLocators);
+
+    CALL_TASK(CloseCache1);
+    CALL_TASK(CloseServer1);
+
+    CALL_TASK(CloseLocator_With_SSL);
+  }
+END_MAIN

http://git-wip-us.apache.org/repos/asf/geode-native/blob/8b67c130/src/cppcache/integration-test/testThinClientSSLAuthFail.cpp
----------------------------------------------------------------------
diff --git a/src/cppcache/integration-test/testThinClientSSLAuthFail.cpp b/src/cppcache/integration-test/testThinClientSSLAuthFail.cpp
index 660a8db..e6282f4 100644
--- a/src/cppcache/integration-test/testThinClientSSLAuthFail.cpp
+++ b/src/cppcache/integration-test/testThinClientSSLAuthFail.cpp
@@ -15,8 +15,180 @@
  * limitations under the License.
  */
 
-#include "ThinClientSSLAuthFail.hpp"
+#include "fw_dunit.hpp"
+#include <geode/GeodeCppCache.hpp>
+#include <ace/OS.h>
+#include <ace/High_Res_Timer.h>
+#include <string>
+
+#define ROOT_NAME "ThinClientSSLAuthFail"
+#define ROOT_SCOPE DISTRIBUTED_ACK
+
+#include "CacheHelper.hpp"
+
+using namespace apache::geode::client;
+using namespace test;
+
+CacheHelper* cacheHelper = NULL;
+bool isLocalServer = false;
+
+static bool isLocator = false;
+const char* locatorsG =
+    CacheHelper::getLocatorHostPort(isLocator, isLocalServer, 1);
+
+#define CLIENT1 s1p1
+#define SERVER1 s2p1
+
+void initClient(const bool isthinClient) {
+  if (cacheHelper == NULL) {
+    PropertiesPtr props = Properties::create();
+    props->insert("ssl-enabled", "true");
+    std::string keystore = std::string(ACE_OS::getenv("TESTSRC")) + "/keystore";
+    std::string pubkey = keystore + "/client_truststore.pem";
+    std::string privkey = keystore + "/client_keystore.pem";
+    props->insert("ssl-keystore", privkey.c_str());
+    props->insert("ssl-truststore", pubkey.c_str());
+    cacheHelper = new CacheHelper(isthinClient, props);
+  }
+  ASSERT(cacheHelper, "Failed to create a CacheHelper client instance.");
+}
+void cleanProc() {
+  if (cacheHelper != NULL) {
+    delete cacheHelper;
+    cacheHelper = NULL;
+  }
+}
+
+CacheHelper* getHelper() {
+  ASSERT(cacheHelper != NULL, "No cacheHelper initialized.");
+  return cacheHelper;
+}
+
+
+void createPooledRegion(const char* name, bool ackMode, const char* locators,
+                        const char* poolname,
+                        bool clientNotificationEnabled = false,
+                        bool cachingEnable = true) {
+  LOG("createRegion_Pool() entered.");
+  fprintf(stdout, "Creating region --  %s  ackMode is %d\n", name, ackMode);
+  fflush(stdout);
+  RegionPtr regPtr =
+      getHelper()->createPooledRegion(name, ackMode, locators, poolname,
+                                      cachingEnable, clientNotificationEnabled);
+  ASSERT(regPtr != NULLPTR, "Failed to create region.");
+  LOG("Pooled Region created.");
+}
+
+void createEntry(const char* name, const char* key, const char* value) {
+  LOG("createEntry() entered.");
+  fprintf(stdout, "Creating entry -- key: %s  value: %s in region %s\n", key,
+          value, name);
+  fflush(stdout);
+  // Create entry, verify entry is correct
+  CacheableKeyPtr keyPtr = createKey(key);
+  CacheableStringPtr valPtr = CacheableString::create(value);
+
+  RegionPtr regPtr = getHelper()->getRegion(name);
+  ASSERT(regPtr != NULLPTR, "Region not found.");
+
+  ASSERT(!regPtr->containsKey(keyPtr),
+         "Key should not have been found in region.");
+  ASSERT(!regPtr->containsValueForKey(keyPtr),
+         "Value should not have been found in region.");
+
+  // regPtr->create( keyPtr, valPtr );
+  regPtr->put(keyPtr, valPtr);
+  LOG("Created entry.");
+
+  //verifyEntry(name, key, value);
+  LOG("Entry created.");
+}
+
+
+
+const char* keys[] = {"Key-1", "Key-2", "Key-3", "Key-4"};
+const char* vals[] = {"Value-1", "Value-2", "Value-3", "Value-4"};
+const char* nvals[] = {"New Value-1", "New Value-2", "New Value-3",
+                       "New Value-4"};
+
+const char* regionNames[] = {"DistRegionAck", "DistRegionNoAck"};
+
+const bool USE_ACK = true;
+const bool NO_ACK = false;
+
+DUNIT_TASK_DEFINITION(SERVER1, CreateLocator1_With_SSL_untrustedCert)
+  {
+    // starting locator
+    if (isLocator) CacheHelper::initLocator(1, true, false, -1, 0, true);
+    LOG("Locator1 started with SSL");
+  }
+END_TASK_DEFINITION
+
+
+
+DUNIT_TASK_DEFINITION(SERVER1, CreateServer1_With_Locator_And_SSL_untrustedCert)
+  {
+    // starting servers
+    if (isLocalServer) CacheHelper::initServer(1, NULL, locatorsG, NULL, true, true, false,
false, true);
+  }
+END_TASK_DEFINITION
+
+DUNIT_TASK_DEFINITION(CLIENT1, CreateClient1)
+  { initClient(true); }
+END_TASK_DEFINITION
+
+DUNIT_TASK_DEFINITION(CLIENT1, CreateRegions1_PoolLocators)
+  {
+    createPooledRegion(regionNames[0], USE_ACK, locatorsG, "__TESTPOOL1_",
+                       true);
+    createPooledRegion(regionNames[1], NO_ACK, locatorsG, "__TESTPOOL1_", true);
+    RegionPtr regPtr = getHelper()->getRegion(regionNames[0]);
+    try {
+      regPtr->registerAllKeys(false, NULLPTR, false, false);
+      FAIL("Should have got NotConnectedException during registerAllKeys");
+    }
+    catch (NotConnectedException exp) {
+      LOG("Connection Failed as expected via NotConnectedException");
+    }
+    LOG("CreateRegions1_PoolLocators complete.");
+  }
+END_TASK_DEFINITION
+
+DUNIT_TASK_DEFINITION(CLIENT1, CloseCache1)
+  { cleanProc(); }
+END_TASK_DEFINITION
+
+DUNIT_TASK_DEFINITION(SERVER1, CloseServer1)
+  {
+    if (isLocalServer) {
+      CacheHelper::closeServer(1);
+      LOG("SERVER1 stopped");
+    }
+  }
+END_TASK_DEFINITION
+
+DUNIT_TASK_DEFINITION(SERVER1, CloseLocator_With_SSL)
+  {
+    // stop locator
+    if (isLocator) {
+      CacheHelper::closeLocator(1, true);
+      LOG("Locator1 stopped");
+    }
+  }
+END_TASK_DEFINITION
 
 DUNIT_MAIN
-  { doThinClientSSL(true, true); }
+  {
+    CALL_TASK(CreateLocator1_With_SSL_untrustedCert);
+    CALL_TASK(CreateServer1_With_Locator_And_SSL_untrustedCert)
+
+    CALL_TASK(CreateClient1);
+
+    CALL_TASK(CreateRegions1_PoolLocators);
+
+    CALL_TASK(CloseCache1);
+    CALL_TASK(CloseServer1);
+
+    CALL_TASK(CloseLocator_With_SSL);
+  }
 END_MAIN

http://git-wip-us.apache.org/repos/asf/geode-native/blob/8b67c130/src/cppcache/integration-test/testThinClientSSLAuthUntrusted.cpp
----------------------------------------------------------------------
diff --git a/src/cppcache/integration-test/testThinClientSSLAuthUntrusted.cpp b/src/cppcache/integration-test/testThinClientSSLAuthUntrusted.cpp
new file mode 100644
index 0000000..26214d9
--- /dev/null
+++ b/src/cppcache/integration-test/testThinClientSSLAuthUntrusted.cpp
@@ -0,0 +1,195 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "fw_dunit.hpp"
+#include <geode/GeodeCppCache.hpp>
+#include <ace/OS.h>
+#include <ace/High_Res_Timer.h>
+#include <string>
+
+#define ROOT_NAME "ThinClientSSLAuthUntrusted"
+#define ROOT_SCOPE DISTRIBUTED_ACK
+
+#include "CacheHelper.hpp"
+
+using namespace apache::geode::client;
+using namespace test;
+
+CacheHelper* cacheHelper = NULL;
+bool isLocalServer = false;
+
+static bool isLocator = false;
+const char* locatorsG =
+    CacheHelper::getLocatorHostPort(isLocator, isLocalServer, 1);
+
+#define CLIENT1 s1p1
+#define SERVER1 s2p1
+
+void initClient(const bool isthinClient) {
+  if (cacheHelper == NULL) {
+    PropertiesPtr props = Properties::create();
+    props->insert("ssl-enabled", "true");
+    std::string keystore = std::string(ACE_OS::getenv("TESTSRC")) + "/keystore";
+    std::string pubkey = keystore + "/client_truststore.pem";
+    std::string privkey = keystore + "/client_keystore_untrusted.pem";
+    props->insert("ssl-keystore", privkey.c_str());
+    props->insert("ssl-keystore-password", "secret");
+    props->insert("ssl-truststore", pubkey.c_str());
+    cacheHelper = new CacheHelper(isthinClient, props);
+  }
+  ASSERT(cacheHelper, "Failed to create a CacheHelper client instance.");
+}
+void cleanProc() {
+  if (cacheHelper != NULL) {
+    delete cacheHelper;
+    cacheHelper = NULL;
+  }
+}
+
+CacheHelper* getHelper() {
+  ASSERT(cacheHelper != NULL, "No cacheHelper initialized.");
+  return cacheHelper;
+}
+
+
+void createPooledRegion(const char* name, bool ackMode, const char* locators,
+                        const char* poolname,
+                        bool clientNotificationEnabled = false,
+                        bool cachingEnable = true) {
+  LOG("createRegion_Pool() entered.");
+  fprintf(stdout, "Creating region --  %s  ackMode is %d\n", name, ackMode);
+  fflush(stdout);
+  RegionPtr regPtr =
+      getHelper()->createPooledRegion(name, ackMode, locators, poolname,
+                                      cachingEnable, clientNotificationEnabled);
+  ASSERT(regPtr != NULLPTR, "Failed to create region.");
+  LOG("Pooled Region created.");
+}
+
+void createEntry(const char* name, const char* key, const char* value) {
+  LOG("createEntry() entered.");
+  fprintf(stdout, "Creating entry -- key: %s  value: %s in region %s\n", key,
+          value, name);
+  fflush(stdout);
+  // Create entry, verify entry is correct
+  CacheableKeyPtr keyPtr = createKey(key);
+  CacheableStringPtr valPtr = CacheableString::create(value);
+
+  RegionPtr regPtr = getHelper()->getRegion(name);
+  ASSERT(regPtr != NULLPTR, "Region not found.");
+
+  ASSERT(!regPtr->containsKey(keyPtr),
+         "Key should not have been found in region.");
+  ASSERT(!regPtr->containsValueForKey(keyPtr),
+         "Value should not have been found in region.");
+
+  // regPtr->create( keyPtr, valPtr );
+  regPtr->put(keyPtr, valPtr);
+  LOG("Created entry.");
+
+  //verifyEntry(name, key, value);
+  LOG("Entry created.");
+}
+
+
+
+const char* keys[] = {"Key-1", "Key-2", "Key-3", "Key-4"};
+const char* vals[] = {"Value-1", "Value-2", "Value-3", "Value-4"};
+const char* nvals[] = {"New Value-1", "New Value-2", "New Value-3",
+                       "New Value-4"};
+
+const char* regionNames[] = {"DistRegionAck", "DistRegionNoAck"};
+
+const bool USE_ACK = true;
+const bool NO_ACK = false;
+
+DUNIT_TASK_DEFINITION(SERVER1, CreateLocator1_With_SSL_untrustedCert)
+  {
+    // starting locator
+    if (isLocator) CacheHelper::initLocator(1, true, false, -1, 0, false);
+    LOG("Locator1 started with SSL");
+  }
+END_TASK_DEFINITION
+
+
+
+DUNIT_TASK_DEFINITION(SERVER1, CreateServer1_With_Locator_And_SSL_untrustedCert)
+  {
+    // starting servers
+    if (isLocalServer) CacheHelper::initServer(1, NULL, locatorsG, NULL, true, true, false,
false, false);
+  }
+END_TASK_DEFINITION
+
+DUNIT_TASK_DEFINITION(CLIENT1, CreateClient1)
+  { initClient(true); }
+END_TASK_DEFINITION
+
+DUNIT_TASK_DEFINITION(CLIENT1, CreateRegions1_PoolLocators)
+  {
+    createPooledRegion(regionNames[0], USE_ACK, locatorsG, "__TESTPOOL1_",
+                       true);
+    createPooledRegion(regionNames[1], NO_ACK, locatorsG, "__TESTPOOL1_", true);
+    RegionPtr regPtr = getHelper()->getRegion(regionNames[0]);
+    try {
+      regPtr->registerAllKeys(false, NULLPTR, false, false);
+      FAIL("Should have got NotConnectedException during registerAllKeys");
+    }
+    catch (NotConnectedException exp) {
+      LOG("Connection Failed as expected via NotConnectedException");
+    }
+    LOG("CreateRegions1_PoolLocators complete.");
+  }
+END_TASK_DEFINITION
+
+DUNIT_TASK_DEFINITION(CLIENT1, CloseCache1)
+  { cleanProc(); }
+END_TASK_DEFINITION
+
+DUNIT_TASK_DEFINITION(SERVER1, CloseServer1)
+  {
+    if (isLocalServer) {
+      CacheHelper::closeServer(1);
+      LOG("SERVER1 stopped");
+    }
+  }
+END_TASK_DEFINITION
+
+DUNIT_TASK_DEFINITION(SERVER1, CloseLocator_With_SSL)
+  {
+    // stop locator
+    if (isLocator) {
+      CacheHelper::closeLocator(1, true);
+      LOG("Locator1 stopped");
+    }
+  }
+END_TASK_DEFINITION
+
+DUNIT_MAIN
+  {
+    CALL_TASK(CreateLocator1_With_SSL_untrustedCert);
+    CALL_TASK(CreateServer1_With_Locator_And_SSL_untrustedCert)
+
+    CALL_TASK(CreateClient1);
+
+    CALL_TASK(CreateRegions1_PoolLocators);
+
+    CALL_TASK(CloseCache1);
+    CALL_TASK(CloseServer1);
+
+    CALL_TASK(CloseLocator_With_SSL);
+  }
+END_MAIN


Mime
View raw message