help_vars.Add(EnumVariable('TARGET_ARCH', 'Target architecture', default_arch, os_arch_map[target_os]))
help_vars.Add(EnumVariable('SECURED', 'Build with DTLS', '0', allowed_values=('0', '1')))
+help_vars.Add(EnumVariable('DTLS_WITH_X509', 'DTLS with X.509 support', '0', allowed_values=('0', '1')))
help_vars.Add(EnumVariable('TEST', 'Run unit tests', '0', allowed_values=('0', '1')))
help_vars.Add(BoolVariable('LOGGING', 'Enable stack logging', logging_default))
help_vars.Add(BoolVariable('UPLOAD', 'Upload binary ? (For Arduino)', require_upload))
asn1_env.Configure(src_dir + '/extlibs/asn1cert', './asn1c-0.9.27/asn1c/asn1c certificate.asn')
asn1_env.Configure(src_dir + '/extlibs/asn1cert', './asn1c-0.9.27/asn1c/asn1c crl.asn')
asn1_env.Configure(src_dir + '/extlibs/asn1cert', './asn1c-0.9.27/asn1c/asn1c csr.asn')
+ asn1_env.Configure(src_dir + '/extlibs/asn1cert', 'rm converter-sample.c')
-
+ #Build asn1 as static library
+ asn1_src = Glob('*.c')
+ asn1_lib = asn1_env.StaticLibrary('asn1', asn1_src)
+ asn1_env.InstallTarget(asn1_lib, 'libasn1')
if target_os in ['android', 'linux', 'tizen']:
liboctbstack_env.PrependUnique(LIBS = ['connectivity_abstraction'])
+
if with_ra:
liboctbstack_env.AppendUnique(LIBS = ['ra_xmpp'])
if env.get('LOGGING'):
liboctbstack_env.AppendUnique(CPPDEFINES = ['TB_LOG'])
+if env.get('DTLS_WITH_X509') == '1':
+ liboctbstack_env.AppendUnique(CPPDEFINES = ['__WITH_X509__'])
+
liboctbstack_env.Append(LIBS = ['c_common'])
######################################################################
'adapter_util/caadapternetdtls.c')])
env.AppendUnique(CPPPATH = [os.path.join(root_dir,
'external/inc')])
+if env.get('DTLS_WITH_X509') == '1':
+ src_dir = env.get('SRC_DIR')
+ env.AppendUnique(CPPPATH = [src_dir + '/resource/csdk/connectivity/inc/pkix'])
+ env.AppendUnique(CPPPATH = [src_dir + '/extlibs/tinydtls/ecc/'])
+ env.AppendUnique(CPPPATH = [src_dir + '/extlibs/tinydtls/sha2/'])
+ env.AppendUnique(CPPDEFINES = ['__WITH_X509__'])
+ if not env.get('RELEASE'):
+ env.AppendUnique(CPPDEFINES = ['X509_DEBUG'])
+ pkix_src = Glob('adapter_util/pkix/*.c');
+ env.AppendUnique(CA_SRC = pkix_src)
ca_common_src = None
if ca_os == 'arduino':
if not env.get('RELEASE'):
libocsrm_env.AppendUnique(CPPDEFINES = ['TB_LOG'])
+if env.get('DTLS_WITH_X509') == '1':
+ libocsrm_env.AppendUnique(CPPDEFINES = ['__WITH_X509__'])
+
######################################################################
# Source files and Targets
######################################################################
OCSRM_SRC + 'base64.c'
]
+if env.get('DTLS_WITH_X509') == '1' and env.get('SECURED') == '1':
+ crl_src = [OCSRM_SRC + 'crlresource.c']
+ libocsrm_src = libocsrm_src + crl_src
+
+
libocsrm = libocsrm_env.StaticLibrary('libocsrm', libocsrm_src)
libocsrm_env.InstallTarget(libocsrm, 'libocsrm')
'../../connectivity/lib/libcoap-4.1.1',
'../../connectivity/api',
'../include',
- '../include/internal'
+ '../include/internal',
+ '../../../../extlibs/tinydtls/ecc',
+ '../../../../extlibs/tinydtls/sha2',
+ '../../../../extlibs/asn1cert',
+ 'ck_manager/include'
])
target_os = env.get('TARGET_OS')
provisioning_env.AppendUnique(CFLAGS = ['-D__WITH_DTLS__'])
provisioning_env.AppendUnique(LIBS = ['tinydtls'])
+if env.get('DTLS_WITH_X509') == '1':
+ provisioning_env.AppendUnique(LIBS = ['CKManger'])
+
provisioning_env.ParseConfig('pkg-config --libs glib-2.0');
if target_os == 'android':
provisioning_env.InstallTarget(provisioningserver, 'libocpmapi')
provisioning_env.UserInstallTargetLib(provisioningserver, 'libocpmapi')
+if env.get('DTLS_WITH_X509') == '1':
+ SConscript('ck_manager/SConscript')
+
if target_os in ['linux']:
SConscript('sample/SConscript')
--- /dev/null
+# SConscript file for Local PKI project
+
+Import('env')
+
+x509_env = env.Clone()
+
+EXTLIBS_DIR = "/extlibs/"
+
+# Includes
+INCLUDE_DIRS = []
+
+src_dir = x509_env.get('SRC_DIR')
+
+SConscript(src_dir + '/extlibs/asn1cert/SConscript')
+
+#Internal sources
+INCLUDE_DIRS.append(src_dir +'/resource/csdk/security/provisioning/ck_manager/include/');
+INCLUDE_DIRS.append(src_dir + '/resource/csdk/connectivity/inc/pkix/');
+
+#External sources
+INCLUDE_DIRS.append(src_dir + '/extlibs/tinydtls/ecc/');
+INCLUDE_DIRS.append(src_dir + '/extlibs/tinydtls/sha2/');
+INCLUDE_DIRS.append(src_dir + '/extlibs/asn1cert/');
+INCLUDE_DIRS.append(src_dir + '/extlibs/cjson/');
+
+#OIC incude
+INCLUDE_DIRS.append(src_dir + '/resource/csdk/security/include/');
+INCLUDE_DIRS.append(src_dir + '/resource/csdk/security/include/internal/');
+INCLUDE_DIRS.append(src_dir + '/resource/csdk/stack/include/');
+
+DEFINES = ['WITH_SHA256', 'uECC_CURVE=uECC_secp256r1', 'X509_DEBUG']
+
+x509_env.AppendUnique(CPPPATH = INCLUDE_DIRS)
+x509_env.AppendUnique(CPPDEFINES = DEFINES)
+
+#Encoder/Decoder source code
+ckmanager_src = Glob('src/*.c')
+
+#Build static libraries
+ckmStaticLib = x509_env.StaticLibrary('CKManager', ckmanager_src)
+
+x509_env.InstallTarget(ckmStaticLib, 'libCKManager')
+
+#x509_env.AppendUnique(LIBS = ['ocsrm'])
+x509_env.AppendUnique(LIBS = ['asn1'])
+x509_env.AppendUnique(LIBS = ['Base64'])
+x509_env.AppendUnique(LIBS = ['Json'])
--- /dev/null
+# //******************************************************************
+# //
+# // Copyright 2015 Samsung Electronics All Rights Reserved.
+# //
+# //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+# //
+# // Licensed 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.
+# //
+# //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+#
+# SConscript file for Local PKI google tests
+
+Import('env')
+
+import os
+import os.path
+tools_env = env.Clone()
+
+src_dir = tools_env.get('SRC_DIR')
+
+######################################################################
+# Build flags
+######################################################################
+tools_env.PrependUnique(CPPPATH = [
+ '../include/',
+ '../../../../../../extlibs/asn1cert',
+ '../../../../../../extlibs/tinydtls/ecc',
+ '../../../../../../extlibs/tinydtls/sha2',
+ '../../../../connectivity/inc/pkix/'
+ ])
+tools_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
+
+tools_env.AppendUnique(LIBS = ['CKManager'])
+tools_env.AppendUnique(LIBS = ['asn1'])
+tools_env.AppendUnique(LIBS = ['octbstack'])
+tools_env.AppendUnique(LIBS = ['tinydtls'])
+tools_env.AppendUnique(LIBS = ['connectivity_abstraction'])
+
+if not env.get('RELEASE'):
+ tools_env.AppendUnique(CPPDEFINES = ['X509_DEBUG'])
+
+######################################################################
+# Source files and Targets
+######################################################################
+x509_check = tools_env.Program('x509_check', ['x509_check.c'])
+x509_issue = tools_env.Program('x509_issue', ['x509_issue.c'])
+
+
+
--- /dev/null
+# //******************************************************************
+# //
+# // Copyright 2015 Samsung Electronics All Rights Reserved.
+# //
+# //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+# //
+# // Licensed 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.
+# //
+# //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+#
+# SConscript file for Local PKI google tests
+
+Import('env')
+
+import os
+import os.path
+pki_test_env = env.Clone()
+
+src_dir = pki_test_env.get('SRC_DIR')
+
+######################################################################
+# Build flags
+######################################################################
+pki_test_env.PrependUnique(CPPPATH = ['../include/',
+ '../include/internal',
+ '../../include',
+ '../../include/internal',
+ '../../../include',
+ '../../../include/internal',
+ '../../../../connectivity/inc',
+ '../../../../connectivity/api',
+ '../../../../logger/include',
+ '../../../../stack/include',
+ '../../../../../oc_logger/include',
+ '../../../../../../extlibs/gtest/gtest-1.7.0/include',
+ '../../../../../../extlibs/asn1cert',
+ '../../../../../../extlibs/tinydtls',
+ '../../../../../../extlibs/tinydtls/ecc',
+ '../../../../../../extlibs/tinydtls/sha2'
+ ])
+pki_test_env.AppendUnique(CXXFLAGS = ['-std=c++0x', '-Wall', '-pthread'])
+pki_test_env.AppendUnique(LIBS = ['pthread'])
+pki_test_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
+pki_test_env.AppendUnique(LIBPATH = [src_dir + '/extlibs/gtest/gtest-1.7.0/lib/.libs'])
+
+pki_test_env.AppendUnique(LIBS = ['octbstack'])
+pki_test_env.AppendUnique(LIBS = ['CKManager'])
+pki_test_env.AppendUnique(LIBS = ['asn1'])
+pki_test_env.AppendUnique(LIBS = ['gtest'])
+pki_test_env.AppendUnique(LIBS = ['gtest_main'])
+
+if env.get('SECURED') == '1':
+ pki_test_env.AppendUnique(LIBS = ['tinydtls'])
+
+if not env.get('RELEASE'):
+ pki_test_env.AppendUnique(CPPDEFINES = ['TB_LOG'])
+
+######################################################################
+# Source files and Targets
+######################################################################
+unittest = pki_test_env.Program('unittest', ['pki_test.cpp'])
+
+Alias("test", [unittest])
+
+
+
+unittest_src_dir = src_dir + '/resource/csdk/security/provisioning/ck_manager/unittest/test_data/'
+unittest_build_dir = env.get('BUILD_DIR') +'/resource/csdk/security/provisioning/ck_manager/unittest'
+
+pki_test_env.Alias("install",env.Install( unittest_build_dir, [ unittest_src_dir + '01.der',
+ unittest_src_dir + 'cacert.der',
+ unittest_src_dir + 'capub.der',
+ unittest_src_dir + 'cert_chain.dat',
+ unittest_src_dir + 'chain.der',
+ unittest_src_dir + 'CKMInfo.json' ]))
+
+env.AppendTarget('test')
+if env.get('TEST') == '1':
+ target_os = env.get('TARGET_OS')
+ if target_os == 'linux':
+ out_dir = env.get('BUILD_DIR')
+ result_dir = env.get('BUILD_DIR') + '/test_out/'
+ if not os.path.isdir(result_dir):
+ os.makedirs(result_dir)
+ pki_test_env.AppendENVPath('GTEST_OUTPUT', ['xml:'+ result_dir])
+ pki_test_env.AppendENVPath('LD_LIBRARY_PATH', [out_dir])
+ pki_test_env.AppendENVPath('LD_LIBRARY_PATH', [src_dir + '/extlibs/gtest/gtest-1.7.0/lib/.libs'])
+ ut = pki_test_env.Command ('ut', None, out_dir + '/resource/csdk/security/unittest/unittest')
+AlwaysBuild ('ut')
+
if env.get('SECURED') == '1':
provisioning_env.AppendUnique(LIBS = ['tinydtls'])
+if env.get('DTLS_WITH_X509') == '1':
+ provisioning_env.AppendUnique(LIBS = ['CKManager'])
+ provisioning_env.AppendUnique(LIBS = ['asn1'])
provisioning_env.ParseConfig('pkg-config --libs glib-2.0');
provisioning_env.AppendUnique(CPPDEFINES = ['TB_LOG'])
if env.get('SECURED') == '1':
sptest_env.AppendUnique(LIBS = ['tinydtls'])
+if env.get('DTLS_WITH_X509') == '1':
+ sptest_env.AppendUnique(LIBS = ['CKManager'])
+ sptest_env.AppendUnique(LIBS = ['asn1'])
if not env.get('RELEASE'):
sptest_env.AppendUnique(CPPDEFINES = ['TB_LOG'])