MyLog(LOGA_INFO,"Starting SSL test 1 - connection to nonSSL MQTT server");
if(!(assert("Good rc from create",(rc=MQTTAsync_create(&c,options.connection,"test1",MQTTCLIENT_PERSISTENCE_DEFAULT,persistenceStore))==MQTTASYNC_SUCCESS,"rc was %d",rc)))
MyLog(LOGA_INFO,"Starting test 2a - Mutual SSL authentication");
if(!(assert("Good rc from create",(rc=MQTTAsync_create(&c,options.connection,"test2a",MQTTCLIENT_PERSISTENCE_DEFAULT,persistenceStore))==MQTTASYNC_SUCCESS,"rc was %d",rc)))
assert("good rc from create",rc==MQTTASYNC_SUCCESS,"rc was %d\n",rc);
if(rc!=MQTTASYNC_SUCCESS)
gotoexit;
tc.client=c;
...
...
@@ -628,14 +689,16 @@ int test2a(struct Options options)
opts.cleansession=1;
opts.username="testuser";
opts.password="testpassword";
opts.will=&wopts;
opts.will->message="will message";
opts.will->qos=1;
opts.will->retained=0;
opts.will->topicName="will topic";
opts.will=NULL;
opts.onSuccess=asyncTestOnConnect;
opts.onFailure=test2aOnConnectFailure;
opts.context=&tc;
if(options.haconnections!=NULL)
{
opts.serverURIs=options.haconnections;
opts.serverURIcount=options.hacount;
}
opts.ssl=&sslopts;
if(options.server_key_file!=NULL)
...
...
@@ -646,12 +709,24 @@ int test2a(struct Options options)
//opts.ssl->enabledCipherSuites = "DEFAULT";
//opts.ssl->enabledServerCertAuth = 1;
if(!(assert("Good rc from setCallbacks",(rc=MQTTAsync_setCallbacks(c,&tc,NULL,asyncTestMessageArrived,asyncTestOnDeliveryComplete))==MQTTASYNC_SUCCESS,"rc was %d",rc)))
@@ -713,21 +787,30 @@ int test2b(struct Options options)
LOGA_INFO,
"Starting test 2b - connection to SSL MQTT server with clientauth=req but server does not have client cert");
if(!(assert("good rc from create",(rc=MQTTAsync_create(&c,options.connection,"test2b",MQTTCLIENT_PERSISTENCE_DEFAULT,persistenceStore))==MQTTASYNC_SUCCESS,"rc was %d\n",rc)))
"Starting test 2c - connection to SSL MQTT server, server auth enabled but unknown cert");
if(!(assert("good rc from create",(rc=MQTTAsync_create(&c,options.connection,"test2c",MQTTCLIENT_PERSISTENCE_DEFAULT,persistenceStore))==MQTTASYNC_SUCCESS,"rc was %d\n",rc)))
MyLog(LOGA_INFO,"Starting test 3a - Server authentication");
if(!(assert("good rc from create",(rc=MQTTAsync_create(&c,options.connection,"test3a",MQTTCLIENT_PERSISTENCE_DEFAULT,persistenceStore))==MQTTASYNC_SUCCESS,"rc was %d\n",rc)))
assert("Good rc from setCallbacks",rc==MQTTASYNC_SUCCESS,"rc was %d",rc);
if(!(assert("Good rc from setCallbacks",(rc=MQTTAsync_setCallbacks(c,&tc,NULL,asyncTestMessageArrived,asyncTestOnDeliveryComplete))==MQTTASYNC_SUCCESS,"rc was %d",rc)))
MyLog(LOGA_DEBUG,"Connecting");
rc=MQTTAsync_connect(c,&opts);
assert("Good rc from connect",rc==MQTTASYNC_SUCCESS,"rc was %d",rc);
if(rc!=MQTTASYNC_SUCCESS)
gotoexit;
MyLog(LOGA_DEBUG,"Connecting");
while(!tc.subscribed&&!tc.testFinished)
#if defined(WIN32)
Sleep(100);
#else
usleep(10000L);
#endif
if(!(assert("Good rc from connect",(rc=MQTTAsync_connect(c,&opts))==MQTTASYNC_SUCCESS,"rc was %d",rc)))
MyLog(LOGA_INFO,"Starting test 3b - connection to SSL MQTT server with clientauth=opt but client does not have server cert");
MyLog(
LOGA_INFO,
"Starting test 3b - connection to SSL MQTT server with clientauth=opt but client does not have server cert");
if(!(assert("good rc from create",(rc=MQTTAsync_create(&c,options.connection,"test3b",MQTTCLIENT_PERSISTENCE_DEFAULT,persistenceStore))==MQTTASYNC_SUCCESS,"rc was %d\n",rc)))
MyLog(LOGA_INFO,"Starting test 4 - accept invalid server certificates");
if(!(assert("Good rc from create",(rc=MQTTAsync_create(&c,options.connection,"test4",MQTTCLIENT_PERSISTENCE_NONE,persistenceStore))==MQTTASYNC_SUCCESS,"rc was %d",rc)))
@@ -1072,14 +1208,16 @@ int test4(struct Options options)
opts.cleansession=1;
opts.username="testuser";
opts.password="testpassword";
opts.will=&wopts;
opts.will->message="will message";
opts.will->qos=1;
opts.will->retained=0;
opts.will->topicName="will topic";
opts.will=NULL;
opts.onSuccess=asyncTestOnConnect;
opts.onFailure=test4OnConnectFailure;
opts.context=&tc;
if(options.haconnections!=NULL)
{
opts.serverURIs=options.haconnections;
opts.serverURIcount=options.hacount;
}
opts.ssl=&sslopts;
//if (options.server_key_file != NULL) opts.ssl->trustStore = options.server_key_file; /*file of certificates trusted by client*/
...
...
@@ -1088,27 +1226,55 @@ int test4(struct Options options)
//opts.ssl->enabledCipherSuites = "DEFAULT";
opts.ssl->enableServerCertAuth=0;
if(!(assert("Good rc from setCallbacks",(rc=MQTTAsync_setCallbacks(c,&tc,NULL,asyncTestMessageArrived,asyncTestOnDeliveryComplete))==MQTTASYNC_SUCCESS,"rc was %d",rc)))
MyLog(LOGA_INFO,"Starting SSL test 5a - Anonymous ciphers - server authentication disabled");
if(!(assert("good rc from create",(rc=MQTTAsync_create(&c,options.connection,"test5a",MQTTCLIENT_PERSISTENCE_DEFAULT,persistenceStore))==MQTTASYNC_SUCCESS,"rc was %d\n",rc)))
MyLog(LOGA_INFO,
"Starting SSL test 5a - Anonymous ciphers - server authentication disabled");
assert("good rc from create",rc==MQTTASYNC_SUCCESS,"rc was %d\n",rc);
if(rc!=MQTTASYNC_SUCCESS)
gotoexit;
tc.client=c;
...
...
@@ -1169,14 +1340,16 @@ int test5a(struct Options options)
opts.cleansession=1;
opts.username="testuser";
opts.password="testpassword";
opts.will=&wopts;
opts.will->message="will message";
opts.will->qos=1;
opts.will->retained=0;
opts.will->topicName="will topic";
opts.will=NULL;
opts.onSuccess=asyncTestOnConnect;
opts.onFailure=test5aOnConnectFailure;
opts.context=&tc;
if(options.haconnections!=NULL)
{
opts.serverURIs=options.haconnections;
opts.serverURIcount=options.hacount;
}
opts.ssl=&sslopts;
//opts.ssl->trustStore = /*file of certificates trusted by client*/
...
...
@@ -1185,14 +1358,45 @@ int test5a(struct Options options)
opts.ssl->enabledCipherSuites="aNULL";
opts.ssl->enableServerCertAuth=0;
if(!(assert("Good rc from setCallbacks",(rc=MQTTAsync_setCallbacks(c,&tc,NULL,asyncTestMessageArrived,asyncTestOnDeliveryComplete))==MQTTASYNC_SUCCESS,"rc was %d",rc)))
"Starting SSL test 5b - Anonymous ciphers - server authentication enabled");
if(!(assert("good rc from create",(rc=MQTTAsync_create(&c,options.connection,"test5b",MQTTCLIENT_PERSISTENCE_DEFAULT,persistenceStore))==MQTTASYNC_SUCCESS,"rc was %d\n",rc)))
MyLog(LOGA_INFO,"Starting SSL test 5c - Anonymous ciphers - client not using anonymous cipher");
if(!(assert("good rc from create",(rc=MQTTAsync_create(&c,options.connection,"test5c",MQTTCLIENT_PERSISTENCE_DEFAULT,persistenceStore))==MQTTASYNC_SUCCESS,"rc was %d\n",rc)))
MyLog(LOGA_INFO,
"Starting SSL test 5c - Anonymous ciphers - client not using anonymous cipher");
sprintf(tc[i].topic,"sslasync test6 topic num %d",i);
if(!(assert("good rc from create",(rc=MQTTAsync_create(&(tc[i].client),options.connection,tc[i].clientid,MQTTCLIENT_PERSISTENCE_NONE,NULL))==MQTTASYNC_SUCCESS,"rc was %d\n",rc)))
assert("good rc from create",rc==MQTTASYNC_SUCCESS,"rc was %d\n",rc);
if(!(assert("Good rc from setCallbacks",(rc=MQTTAsync_setCallbacks(tc[i].client,&tc[i],NULL,asyncTestMessageArrived,NULL))==MQTTASYNC_SUCCESS,"rc was %d",rc)))
MyLog(LOGA_INFO,"Starting test 7 - big messages");
if(!(assert("good rc from create",(rc=MQTTAsync_create(&c,options.connection,"async_test_7",MQTTCLIENT_PERSISTENCE_NONE,NULL))==MQTTASYNC_SUCCESS,"rc was %d\n",rc)))
gotoexit;
if(!(assert("Good rc from setCallbacks",(rc=MQTTAsync_setCallbacks(c,&tc,NULL,test7MessageArrived,NULL))==MQTTASYNC_SUCCESS,"rc was %d",rc)))