Alias("coap_http_proxy", [proxy_server])
env.AppendTarget('coap_http_proxy')
+
+if env.get('SECURED') == '1':
+ proxy_sample_src_dir = proxy_sample_app_env.get('SRC_DIR') + '/service/coap-http-proxy/samples/'
+ proxy_sample_build_dir = proxy_sample_app_env.get('BUILD_DIR') +'/service/coap-http-proxy/samples'
+ proxy_sample_app_env.Alias("install", proxy_sample_app_env.Install( proxy_sample_build_dir,
+ proxy_sample_src_dir + 'oic_svr_db_server.dat'))
+ proxy_sample_app_env.Alias("install", proxy_sample_app_env.Install( proxy_sample_build_dir,
+ proxy_sample_src_dir + 'oic_svr_db_client_devowner.dat'))
\ No newline at end of file
--- /dev/null
+{\r
+ "acl": {\r
+ "aclist": {\r
+ "aces": [\r
+ {\r
+ "subjectuuid": "*",\r
+ "resources": [\r
+ {\r
+ "href": "/oic/res",\r
+ "rel": "",\r
+ "rt": ["oic.wk.res"],\r
+ "if": ["oic.if.ll"]\r
+ },\r
+ {\r
+ "href": "/oic/d",\r
+ "rel": "",\r
+ "rt": ["oic.wk.d"],\r
+ "if": ["oic.if.baseline", "oic.if.r"]\r
+ },\r
+ {\r
+ "href": "/oic/p",\r
+ "rel": "",\r
+ "rt": ["oic.wk.p"],\r
+ "if": ["oic.if.baseline", "oic.if.r"]\r
+ },\r
+ {\r
+ "href": "/oic/sec/acl",\r
+ "rel": "",\r
+ "rt": ["oic.r.acl"],\r
+ "if": ["oic.if.baseline"]\r
+ }\r
+ ],\r
+ "permission": 2\r
+ },\r
+ {\r
+ "subjectuuid": "*",\r
+ "resources": [\r
+ {\r
+ "href": "/oic/sec/doxm",\r
+ "rel": "",\r
+ "rt": ["oic.r.doxm"],\r
+ "if": ["oic.if.baseline"]\r
+ },\r
+ {\r
+ "href": "/oic/sec/pstat",\r
+ "rel": "",\r
+ "rt": ["oic.r.pstat"],\r
+ "if": ["oic.if.baseline"]\r
+ }\r
+ ],\r
+ "permission": 2\r
+ }\r
+ ]\r
+ },\r
+ "rowneruuid" : "32323232-3232-3232-3232-323232323232"\r
+ },\r
+ "pstat": {\r
+ "dos": {"s": 3, "p": false},\r
+ "isop": true,\r
+ "deviceuuid": "32323232-3232-3232-3232-323232323232",\r
+ "rowneruuid": "32323232-3232-3232-3232-323232323232",\r
+ "cm": 0,\r
+ "tm": 0,\r
+ "om": 4,\r
+ "sm": 4\r
+ },\r
+ "doxm": {\r
+ "oxms": [0],\r
+ "oxmsel": 0,\r
+ "sct": 1,\r
+ "owned": true,\r
+ "deviceuuid": "32323232-3232-3232-3232-323232323232",\r
+ "devowneruuid": "32323232-3232-3232-3232-323232323232",\r
+ "rowneruuid": "32323232-3232-3232-3232-323232323232"\r
+ },\r
+ "cred": {\r
+ "creds": [\r
+ {\r
+ "credid": 1,\r
+ "subjectuuid": "31313131-3131-3131-3131-313131313131",\r
+ "credtype": 1,\r
+ "privatedata": {\r
+ "data": "AAAAAAAAAAAAAAAA",\r
+ "encoding": "oic.sec.encoding.raw"\r
+ }\r
+ }\r
+ ],\r
+ "rowneruuid": "32323232-3232-3232-3232-323232323232"\r
+ }\r
+}\r
--- /dev/null
+{\r
+ "acl": {\r
+ "aclist": {\r
+ "aces": [\r
+ {\r
+ "subjectuuid": "*",\r
+ "resources": [\r
+ {\r
+ "href": "/oic/res",\r
+ "rel": "",\r
+ "rt": ["oic.wk.res"],\r
+ "if": ["oic.if.ll"]\r
+ },\r
+ {\r
+ "href": "/oic/d",\r
+ "rel": "",\r
+ "rt": ["oic.wk.d"],\r
+ "if": ["oic.if.baseline", "oic.if.r"]\r
+ },\r
+ {\r
+ "href": "/oic/p",\r
+ "rel": "",\r
+ "rt": ["oic.wk.p"],\r
+ "if": ["oic.if.baseline", "oic.if.r"]\r
+ },\r
+ {\r
+ "href": "/oic/sec/acl",\r
+ "rel": "",\r
+ "rt": ["oic.r.acl"],\r
+ "if": ["oic.if.baseline"]\r
+ }\r
+ ],\r
+ "permission": 2\r
+ },\r
+ {\r
+ "subjectuuid": "*",\r
+ "resources": [\r
+ {\r
+ "href": "/oic/sec/doxm",\r
+ "rel": "",\r
+ "rt": ["oic.r.doxm"],\r
+ "if": ["oic.if.baseline"]\r
+ },\r
+ {\r
+ "href": "/oic/sec/pstat",\r
+ "rel": "",\r
+ "rt": ["oic.r.pstat"],\r
+ "if": ["oic.if.baseline"]\r
+ }\r
+ ],\r
+ "permission": 2\r
+ },\r
+ {\r
+ "subjectuuid": "32323232-3232-3232-3232-323232323232",\r
+ "resources": [\r
+ {\r
+ "href": "*",\r
+ "rel": "",\r
+ "rt": ["*"],\r
+ "if": ["*"]\r
+ }\r
+ ],\r
+ "permission": 7\r
+ },\r
+ {\r
+ "subjectuuid": "31393139-3139-3139-3139-313931393139",\r
+ "resources": [\r
+ {\r
+ "href": "/a/led",\r
+ "rel": "",\r
+ "rt": ["oic.core"],\r
+ "if": ["oic.if.baseline"]\r
+ }\r
+ ],\r
+ "permission": 7\r
+ },\r
+ {\r
+ "subjectuuid": "37373737-3737-3737-3737-373737373737",\r
+ "resources": [\r
+ {\r
+ "href": "/a/led",\r
+ "rel": "",\r
+ "rt": ["oic.core"],\r
+ "if": ["oic.if.baseline"]\r
+ }\r
+ ],\r
+ "permission": 6\r
+ }\r
+ ]\r
+ },\r
+ "rowneruuid" : "31313131-3131-3131-3131-313131313131"\r
+ },\r
+ "pstat": {\r
+ "dos": {"s": 3, "p": false},\r
+ "isop": true,\r
+ "deviceuuid": "31313131-3131-3131-3131-313131313131",\r
+ "rowneruuid": "31313131-3131-3131-3131-313131313131",\r
+ "cm": 0,\r
+ "tm": 0,\r
+ "om": 4,\r
+ "sm": 4\r
+ },\r
+ "doxm": {\r
+ "oxms": [0],\r
+ "oxmsel": 0,\r
+ "sct": 1,\r
+ "owned": true,\r
+ "deviceuuid": "31313131-3131-3131-3131-313131313131",\r
+ "devowneruuid": "32323232-3232-3232-3232-323232323232",\r
+ "rowneruuid": "31313131-3131-3131-3131-313131313131"\r
+ },\r
+ "cred": {\r
+ "creds": [\r
+ {\r
+ "credid": 1,\r
+ "subjectuuid": "32323232-3232-3232-3232-323232323232",\r
+ "credtype": 1,\r
+ "period": "20150630T060000/20990920T220000",\r
+ "privatedata": {\r
+ "data": "AAAAAAAAAAAAAAAA",\r
+ "encoding": "oic.sec.encoding.raw"\r
+ }\r
+ },\r
+ {\r
+ "credid": 2,\r
+ "subjectuuid": "31393139-3139-3139-3139-313931393139",\r
+ "credtype": 1,\r
+ "period": "20150630T060000/20990920T220000",\r
+ "privatedata": {\r
+ "data": "BBBBBBBBBBBBBBBB",\r
+ "encoding": "oic.sec.encoding.raw"\r
+ }\r
+ }\r
+ ],\r
+ "rowneruuid": "32323232-3232-3232-3232-323232323232"\r
+ }\r
+}\r
// Will be taken as user input
static char httpResource[MAX_HTTP_URI_LENGTH];
+static char CRED_FILE_DEVOWNER[] = "oic_svr_db_client_devowner.dat";
+
int gQuitFlag = 0;
/* SIGINT handler: set gQuitFlag to 1 for graceful termination */
void handleSigInt(int signum)
return OC_STACK_KEEP_TRANSACTION;
}
+ if (resource->secure)
+ {
+ serverAddr.flags |= OC_SECURE;
+ serverAddr.port = resource->port;
+ }
+
switch (testCase)
{
case TEST_DISCOVER_REQ:
return ret;
}
+FILE *client_fopen_devowner(const char *path, const char *mode)
+{
+ if (0 == strcmp(path, OC_SECURITY_DB_DAT_FILE_NAME))
+ {
+ return fopen(CRED_FILE_DEVOWNER, mode);
+ }
+ else
+ {
+ return fopen(path, mode);
+ }
+}
+
int main(int argc, char* argv[])
{
+ OCPersistentStorage ps = { client_fopen_devowner, fread, fwrite, fclose, unlink };
+ OCRegisterPersistentStorageHandler(&ps);
+
int opt;
while ((opt = getopt(argc, argv, "t:p:")) != -1)
{
return -1;
}
- if (OCInit1(OC_CLIENT, OC_DEFAULT_FLAGS, OC_DEFAULT_FLAGS) != OC_STACK_OK)
+ if (OCInit1(OC_CLIENT_SERVER, OC_DEFAULT_FLAGS, OC_DEFAULT_FLAGS) != OC_STACK_OK)
{
OIC_LOG(ERROR, TAG, "OCStack initialization error");
return -1;
#include <unistd.h>
#endif
#include <stdlib.h>
+#include <string.h>
static int g_quitFlag = 0;
static int g_secureFlag = 0;
+static char CRED_FILE[] = "oic_svr_db_server.dat";
+
void handleSigInt(int signum);
static void PrintUsage()
printf("-s 1 : Launch proxy in secure mode.\n");
}
+FILE* server_fopen(const char *path, const char *mode)
+{
+ if (0 == strcmp(path, OC_SECURITY_DB_DAT_FILE_NAME))
+ {
+ return fopen(CRED_FILE, mode);
+ }
+
+ return fopen(path, mode);
+}
+
/*
* This method is an entry point of CoAP-HTTP Proxy.
*/
int main(int argc, char* argv[])
{
+ // Initialize Persistent Storage for SVR database
+ OCPersistentStorage ps = { server_fopen, fread, fwrite, fclose, unlink };
+ OCRegisterPersistentStorageHandler(&ps);
+
int opt = 0;
while ((opt = getopt(argc, argv, "s:")) != -1)
{