Moved OC random implementation to c_common folder to make it available for CA as well. As Seed Random should be called at common place for RI and CA.
Change-Id: I0a7cd674b9c4212b3a1d1e382aa1f455bec1a6d2
Signed-off-by: koushik.girijala <g.koushik@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/4101
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Jon A. Cruz <jonc@osg.samsung.com>
examples_env.AppendUnique(CPPPATH = [
'../../resource/include/',
'../../resource/csdk/stack/include',
- '../../resource/csdk/ocrandom/include',
+ '../../resource/c_common/ocrandom/include',
'../../resource/csdk/logger/include',
'../../resource/oc_logger/include'
])
YOCTOLDFLAGS=-loc -loctbstack -loc_logger -lmraa
-CXXFLAGS=-I../../resource/include -I../../resource/csdk/stack/include -I../../resource/csdk/ocrandom/include -I../../resource/csdk/logger/include -I../../resource/oc_logger/include
+CXXFLAGS=-I../../resource/include -I../../resource/csdk/stack/include -I../../resource/c_common/ocrandom/include -I../../resource/csdk/logger/include -I../../resource/oc_logger/include
LDFLAGS=-L../../out/linux/$(CLIENTARCH)/$(BUILDTYPE) -loc -loctbstack -loc_logger
os.path.join(Dir('.').abspath),
os.path.join(Dir('.').abspath, 'oic_malloc/include'),
os.path.join(Dir('.').abspath, 'oic_string/include'),
- os.path.join(Dir('.').abspath, 'oic_time/include')
+ os.path.join(Dir('.').abspath, 'oic_time/include'),
+ os.path.join(Dir('.').abspath, 'ocrandom/include')
])
if target_os == 'tizen':
else:
env.AppendUnique(LIBPATH = [os.path.join(env.get('BUILD_DIR'), 'resource/c_common')])
-env.AppendUnique(LIBS = ['c_common'])
+if target_os in ['tizen', 'linux']:
+ env.ParseConfig("pkg-config --cflags --libs uuid")
+
+env.PrependUnique(LIBS = ['c_common'])
common_env = env.Clone()
# Source files and Targets
######################################################################
common_src = [
- 'oic_string/src/oic_string.c',
- 'oic_malloc/src/oic_malloc.c',
- 'oic_time/src/oic_time.c'
- ]
+ 'oic_string/src/oic_string.c',
+ 'oic_malloc/src/oic_malloc.c',
+ 'oic_time/src/oic_time.c',
+ 'ocrandom/src/ocrandom.c',
+ ]
commonlib = common_env.StaticLibrary('c_common', common_src)
common_env.InstallTarget(commonlib, 'c_common')
{
result += result + GetRandomBit();
}
- randomSeed(result);
+ srandom(result);
return 0;
#endif
#if defined(__ANDROID__) || defined(__linux__) || defined(__APPLE__)
return rand() & 0x00FF;
#elif defined ARDUINO
- return random(256) & 0x00FF;
+ return random() & 0x00FF;
#endif
}
from tools.scons.RunTest import *
run_test(randomtest_env,
'resource_csdk_random_test.memcheck',
- 'resource/csdk/ocrandom/test/randomtests')
+ 'resource/c_common/ocrandom/test/randomtests')
'../../extlibs/cjson/',
'../../extlibs/timer/',
'logger/include',
- 'ocrandom/include',
'stack/include',
'stack/include/internal',
'../oc_logger/include',
liboctbstack_env.AppendUnique(LIBS = ['coap', 'm'])
-if target_os == 'tizen':
- liboctbstack_env.ParseConfig("pkg-config --cflags --libs uuid")
+if target_os in ['tizen', 'linux']:
+ liboctbstack_env.ParseConfig("pkg-config --cflags --libs uuid")
if target_os not in ['android', 'arduino', 'windows', 'winrt']:
liboctbstack_env.AppendUnique(LIBS = ['pthread'])
OCTBSTACK_SRC + 'occollection.c',
OCTBSTACK_SRC + 'oicgroup.c',
'logger/src/logger.c',
- 'ocrandom/src/ocrandom.c',
OCTBSTACK_SRC + "rdpayload.c"
]
BuildRequires: boost-system
BuildRequires: boost-filesystem
BuildRequires: scons
+BuildRequires: pkgconfig(uuid)
%description
if (!g_isInitialized)
{
+ if (0 != OCSeedRandom())
+ {
+ OIC_LOG(ERROR, TAG, "Seed Random Failed");
+ }
+
CAResult_t res = CAInitializeMessageHandler();
if (res != CA_STATUS_OK)
{
}
g_isInitialized = true;
}
+
return CA_STATUS_OK;
}
// For glibc information on feature test macros,
// Refer http://www.gnu.org/software/libc/manual/html_node/Feature-Test-Macros.html
//
-// This file requires #define use due to random() and srandom()
// For details on compatibility and glibc support,
// Refer http://www.gnu.org/software/libc/manual/html_node/BSD-Random.html
#define _DEFAULT_SOURCE
#include "logger.h"
#include "oic_malloc.h"
#include "oic_string.h"
-
-// ARM GCC compiler doesnt define srandom function.
-#if defined(ARDUINO) && !defined(ARDUINO_ARCH_SAM)
-#define HAVE_SRANDOM 1
-#endif
+#include "ocrandom.h"
#define TAG "CA_PRTCL_MSG"
static const char COAP_URI_HEADER[] = "coap://[::]/";
-static unsigned int SEED = 0;
-
CAResult_t CAGetRequestInfoFromPDU(const coap_pdu_t *pdu, const CAEndpoint_t *endpoint,
CARequestInfo_t *outReqInfo)
{
return CA_STATUS_INVALID_PARAM;
}
- if (SEED == 0)
- {
-#ifdef ARDUINO
- SEED = now();
-#else
- SEED = time(NULL);
-#endif
- if (SEED == (unsigned int)((time_t)-1))
- {
- OIC_LOG(ERROR, TAG, "seed is not made");
- SEED = 0;
- return CA_STATUS_FAILED;
- }
-#if HAVE_SRANDOM
- srandom(SEED);
-#else
- srand(SEED);
-#endif
- }
-
// memory allocation
char *temp = (char *) OICCalloc(tokenLength, sizeof(char));
if (NULL == temp)
return CA_MEMORY_ALLOC_FAILED;
}
- // set random byte
- for (uint8_t index = 0; index < tokenLength; index++)
- {
- // use valid characters
-#ifdef ARDUINO
- temp[index] = rand() & 0x00FF;
-#else
- temp[index] = random() & 0x00FF;
-#endif
- }
+ OCFillRandomMem((uint8_t *)temp, tokenLength);
// save token
*token = temp;
INPUT = . \
../stack/include \
../ocsocket/include \
- ../ocrandom/include \
+ ../../c_common/ocrandom/include \
../occoap/include \
# This tag can be used to specify the character encoding of the source files
os.path.join(Dir('.').abspath, './../stack/include/internal'),
os.path.join(Dir('.').abspath, './../logger'),
os.path.join(Dir('.').abspath, './../../oc_logger/include'),
- os.path.join(Dir('.').abspath, './../ocrandom/include'),
+ os.path.join(Dir('.').abspath, './../../c_common/ocrandom/include'),
os.path.join(Dir('.').abspath, './../connectivity/api'),
os.path.join(Dir('.').abspath, './../connectivity/common/inc'),
os.path.join(Dir('.').abspath, './../security/include'),
'../../../extlibs/cjson/',
'../../../extlibs/tinydtls/',
'../logger/include',
- '../ocrandom/include',
+ '../../c_common/ocrandom/include',
'../stack/include',
'../stack/include/internal',
'../../oc_logger/include',
provisioning_env.AppendUnique(CPPPATH = [
'../../stack/include',
'../../stack/include/internal',
- '../../ocrandom/include',
+ '../../../c_common/ocrandom/include',
'../../logger/include',
'../../../oc_logger/include',
'../../ocmalloc/include',
######################################################################
provisioning_env.AppendUnique(CPPPATH = [
'../../../../stack/include',
- '../../../../ocrandom/include',
+ '../../../../../c_common/ocrandom/include',
'../../../../logger/include',
'../../../../security/include',
'../../../../../oc_logger/include',
defaultDeviceHandler = NULL;
defaultDeviceHandlerCallbackParameter = NULL;
- OCSeedRandom();
result = CAResultToOCResult(CAInitialize());
VERIFY_SUCCESS(result, OC_STACK_OK);
'../../security/include',
'../../ocsocket/include',
'../../logger/include',
- '../../ocrandom/include',
+ '../../../c_common/ocrandom/include',
'../../stack/include',
'../../stack/include/internal',
'../../connectivity/api',
examples_env.AppendUnique(CPPPATH = [
'../include/',
'../csdk/stack/include',
- '../csdk/ocrandom/include',
+ '../c_common/ocrandom/include',
'../csdk/logger/include',
'../oc_logger/include'
])
oclib_env.AppendUnique(CPPPATH = [
'../include/',
'../csdk/stack/include',
- '../csdk/ocrandom/include',
+ '../c_common/ocrandom/include',
'../csdk/logger/include',
'../oc_logger/include',
'../csdk/connectivity/lib/libcoap-4.1.1'
SConscript('c_common/oic_string/test/SConscript')
SConscript('c_common/oic_malloc/test/SConscript')
SConscript('c_common/oic_time/test/SConscript')
+ SConscript('c_common/ocrandom/test/SConscript')
# Build C unit tests
SConscript('csdk/stack/test/SConscript')
- SConscript('csdk/ocrandom/test/SConscript')
SConscript('csdk/connectivity/test/SConscript')
'../csdk/connectivity/api',
'../csdk/connectivity/external/inc',
'../csdk/ocsocket/include',
- '../csdk/ocrandom/include',
+ '../c_common/ocrandom/include',
'../csdk/logger/include',
'#extlibs/gtest/gtest-1.7.0/include',
'#extlibs/hippomocks-master/HippoMocks',
simulator_env.AppendUnique(CPPPATH = [
'../../resource/include/',
'../../resource/csdk/stack/include',
- '../../resource/csdk/ocrandom/include',
+ '../../resource/c_common/ocrandom/include',
'../../resource/csdk/logger/include',
'../../resource/oc_logger/include',
'./ramlparser/raml',
#Build sample application
SConscript('examples/server/SConscript')
-SConscript('examples/client/SConscript')
\ No newline at end of file
+SConscript('examples/client/SConscript')
resource_path + '/include' ,
resource_path + '/oc_logger/include',
resource_path + '/csdk/stack/include',
- resource_path + '/csdk/ocrandom/include',
+ resource_path + '/c_common/ocrandom/include',
resource_path + '/csdk/logger/include'
])
echo "Framework: Copying includes..."
cp -r resource/csdk/stack/include/*.h $FRAMEWORK_BUNDLE/Headers
cp -r resource/csdk/ocsocket/include/*.h $FRAMEWORK_BUNDLE/Headers
-cp -r resource/csdk/ocrandom/include/*.h $FRAMEWORK_BUNDLE/Headers
+cp -r resource/c_common/ocrandom/include/*.h $FRAMEWORK_BUNDLE/Headers
cp -r resource/csdk/ocmalloc/include/*.h $FRAMEWORK_BUNDLE/Headers
echo "Framework: Creating plist..."
echo "Framework: Copying includes..."
cp -r resource/csdk/stack/include/*.h $FRAMEWORK_BUNDLE/Headers
-cp -r resource/csdk/ocrandom/include/*.h $FRAMEWORK_BUNDLE/Headers
+cp -r resource/c_common/ocrandom/include/*.h $FRAMEWORK_BUNDLE/Headers
cp -r resource/csdk/ocmalloc/include/*.h $FRAMEWORK_BUNDLE/Headers
echo "Framework: Creating plist..."
cp resource/csdk/stack/include/*.h %{buildroot}%{_includedir}
cp resource/csdk/logger/include/*.h %{buildroot}%{_includedir}
-cp resource/csdk/ocrandom/include/*.h %{buildroot}%{_includedir}
+cp resource/c_common/ocrandom/include/*.h %{buildroot}%{_includedir}
cp -r resource/oc_logger/include/* %{buildroot}%{_includedir}
cp resource/include/*.h %{buildroot}%{_includedir}