Przeglądaj źródła

PKI Certificates was added due to one month expired time of end entity certs and icv was updated from 2.5.0 to ocf.2.0.5

Trishia 4 lat temu
rodzic
commit
b233dae156

+ 1 - 1
OnBoardingTool/app/build.gradle

@@ -29,7 +29,7 @@ android {
             enable true
             enable true
             reset()
             reset()
             include 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a'
             include 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a'
-            universalApk false
+            universalApk true
         }
         }
     }
     }
 
 

+ 26 - 0
OnBoardingTool/app/src/main/assets/pki_certs/ee.pem

@@ -0,0 +1,26 @@
+-----BEGIN CERTIFICATE-----
+MIIEJTCCA8qgAwIBAgIJAI0K+3tTsk9aMAoGCCqGSM49BAMCMFsxDDAKBgNVBAoM
+A09DRjEiMCAGA1UECwwZS3lyaW8gVGVzdCBJbmZyYXN0cnVjdHVyZTEnMCUGA1UE
+AwweS3lyaW8gVEVTVCBJbnRlcm1lZGlhdGUgQ0EwMDAyMB4XDTIwMDkxNTExNDAw
+MVoXDTIwMTAxNTExNDAwMVowZjEMMAoGA1UECgwDT0NGMSIwIAYDVQQLDBlLeXJp
+byBUZXN0IEluZnJhc3RydWN0dXJlMTIwMAYDVQQDDCl1dWlkPTJiMzJlMTUyLTM3
+NTYtNGZiNi1iM2YyLWQ4ZGI3YWFmZTM5ZjBZMBMGByqGSM49AgEGCCqGSM49AwEH
+A0IABNEFlXJSr3o6OoM8yeMMfGsddfQLjY0gStWLxGf6sTYAvMMZ5Epy82pjPnCR
+gHQ2/AZ/4cUsOQvqQOksSbAj5AWjggJqMIICZjAJBgNVHRMEAjAAMA4GA1UdDwEB
+/wQEAwIDiDApBgNVHSUEIjAgBggrBgEFBQcDAgYIKwYBBQUHAwEGCisGAQQBgt58
+AQYwHQYDVR0OBBYEFLCE6xcKakf+Zc0C2GZzj56UMQ8KMB8GA1UdIwQYMBaAFBlz
+agQaCwdwT1N5UzaH/Ay6fK4LMIGWBggrBgEFBQcBAQSBiTCBhjBdBggrBgEFBQcw
+AoZRaHR0cDovL3Rlc3Rwa2kua3lyaW8uY29tL29jZi9jYWNlcnRzL0JCRTY0RjlB
+N0VFMzdEMjlBMDVFNEJCNzc1OTVGMzA4QkU0MUVCMDcuY3J0MCUGCCsGAQUFBzAB
+hhlodHRwOi8vdGVzdG9jc3Aua3lyaW8uY29tMF8GA1UdHwRYMFYwVKBSoFCGTmh0
+dHA6Ly90ZXN0cGtpLmt5cmlvLmNvbS9vY2YvY3Jscy9CQkU2NEY5QTdFRTM3RDI5
+QTA1RTRCQjc3NTk1RjMwOEJFNDFFQjA3LmNybDAYBgNVHSAEETAPMA0GCysGAQQB
+g5FWAAECMGwGCisGAQQBg5FWAQAEXjBcMAkCAQICAQACAQAwNgwZMS4zLjYuMS40
+LjEuNTE0MTQuMC4wLjEuMAwZMS4zLjYuMS40LjEuNTE0MTQuMC4wLjIuMAwMT0JU
+ICYgQnJpZGdlDAlJTVNvZnRMYWIwKgYKKwYBBAGDkVYBAQQcMBoGCysGAQQBg5FW
+AQEABgsrBgEEAYORVgEBATAwBgorBgEEAYORVgECBCIwIAwOMS4zLjYuMS40LjEu
+NzEMCURpc2NvdmVyeQwDMS4wMAoGCCqGSM49BAMCA0kAMEYCIQCUR0ePTUel4m5f
+jFFI3K7/YNeAmgQBaUUPYXXMbaZG6wIhAKywbaM7h305YJSxchBHTCjb8Pybgrq3
+G9mC9+Goyro2
+-----END CERTIFICATE-----
+

+ 5 - 0
OnBoardingTool/app/src/main/assets/pki_certs/key.pem

@@ -0,0 +1,5 @@
+-----BEGIN EC PRIVATE KEY-----
+MHcCAQEEIJdSLNbPtgkP6+Aay3BhCNh9T6Z05PIwODzhNMswa7FtoAoGCCqGSM49
+AwEHoUQDQgAE0QWVclKvejo6gzzJ4wx8ax119AuNjSBK1YvEZ/qxNgC8wxnkSnLz
+amM+cJGAdDb8Bn/hxSw5C+pA6SxJsCPkBQ==
+-----END EC PRIVATE KEY-----

+ 10 - 0
OnBoardingTool/app/src/main/assets/pki_certs/rootca3.pem

@@ -0,0 +1,10 @@
+-----BEGIN CERTIFICATE-----
+MIIBYDCCAQegAwIBAgIIL0XxghPsq3IwCgYIKoZIzj0EAwIwIzEMMAoGA1UEChMD
+T0NGMRMwEQYDVQQDEwpUZXN0Um9vdENBMCAXDTE5MDEyNjAzMzE0MVoYDzIwNjkw
+MTI2MDMzMTQxWjAjMQwwCgYDVQQKEwNPQ0YxEzARBgNVBAMTClRlc3RSb290Q0Ew
+WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASTJlur3UWmRc7kvFCFiaFtOqiG8lYG
+p68OjW7rp3ZJg5/Ikit/aLw7uIjk/DiO8m9rGAAz8F8GngMZV3WGTBuxoyMwITAO
+BgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAgNHADBE
+AiA+EX8rODCjtnpSrRRdDgOBg6T6/7LEbSi0Yr7yjm78iwIgR/Pp2bQTHhbvwcBF
+alBvvEsqG37QCoAuTyg7spcZDoQ=
+-----END CERTIFICATE-----

+ 18 - 0
OnBoardingTool/app/src/main/assets/pki_certs/subca1.pem

@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC+jCCAqGgAwIBAgIJAPObjMBXKhG1MAoGCCqGSM49BAMCMFMxDDAKBgNVBAoM
+A09DRjEiMCAGA1UECwwZS3lyaW8gVGVzdCBJbmZyYXN0cnVjdHVyZTEfMB0GA1UE
+AwwWS3lyaW8gVEVTVCBST09UIENBMDAwMjAeFw0xODExMzAxODEyMTVaFw0yODEx
+MjYxODEyMTVaMFsxDDAKBgNVBAoMA09DRjEiMCAGA1UECwwZS3lyaW8gVGVzdCBJ
+bmZyYXN0cnVjdHVyZTEnMCUGA1UEAwweS3lyaW8gVEVTVCBJbnRlcm1lZGlhdGUg
+Q0EwMDAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEvA+Gn3ofRpH40XuVppBR
+f78mDtfclOkBd7/32yQcmK2LQ0wm/uyl2cyeABPuN6NFcR9+LYkXZ5P4Ovy9R43Q
+vqOCAVQwggFQMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMB0G
+A1UdDgQWBBQZc2oEGgsHcE9TeVM2h/wMunyuCzAfBgNVHSMEGDAWgBQoSOTlJ1jZ
+CO4JNOSxuz1ZZh/I9TCBjQYIKwYBBQUHAQEEgYAwfjBVBggrBgEFBQcwAoZJaHR0
+cDovL3Rlc3Rwa2kua3lyaW8uY29tL29jZi80RTY4RTNGQ0YwRjJFNEY4MEE4RDE0
+MzhGNkExQkE1Njk1NzEzRDYzLmNydDAlBggrBgEFBQcwAYYZaHR0cDovL3Rlc3Rv
+Y3NwLmt5cmlvLmNvbTBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vdGVzdHBraS5r
+eXJpby5jb20vb2NmLzRFNjhFM0ZDRjBGMkU0RjgwQThEMTQzOEY2QTFCQTU2OTU3
+MTNENjMuY3JsMAoGCCqGSM49BAMCA0cAMEQCHwXkRYd+u5pOPH544wBmBRJz/b0j
+ppvUIHx8IUH0CioCIQDC8CnMVTOC5aIoo5Yg4k7BDDNxbRQoPujYes0OTVGgPA==
+-----END CERTIFICATE-----

+ 57 - 0
OnBoardingTool/app/src/main/java/org/iotivity/onboardingtool/FactoryPresetsHandler.java

@@ -37,12 +37,50 @@ public class FactoryPresetsHandler implements OCFactoryPresetsHandler {
 
 
     private void setPKISecurityMfgCert(long deviceIndex) {
     private void setPKISecurityMfgCert(long deviceIndex) {
 
 
+        // load End Endtity cert
+        byte[] cert = getFileBytes("pki_certs/ee.pem");
+        if (cert == null) {
+            Log.e(TAG, "Failed to read certificates");
+            return;
+        }
+
+        // load End Endtity private key
+        byte[] key = getFileBytes("pki_certs/key.pem");
+        if (key == null) {
+            Log.e(TAG, "Failed to read private key");
+            return;
+        }
+
+        // add End Entity Cert
+        int eeCredId = OCPki.addMfgCert(deviceIndex, cert, key);
+        Log.d(TAG, "addMfgCert() credId = " + eeCredId);
+        if (eeCredId < 0) {
+            Log.e(TAG, "Error installing manufacturer ee certificate");
+            return;
+        }
+
+        // load Sub CA
+        byte[] subCa = getFileBytes("pki_certs/subca1.pem");
+        if (subCa == null) {
+            Log.e(TAG, "Failed to read sub ca cetificate");
+            return;
+        }
+        // add Sub CA
+        int subCaCredId = OCPki.addMfgIntermediateCert(deviceIndex, eeCredId, subCa);
+        Log.d(TAG, "addMfgIntermediateCert() result = " + subCaCredId);
+        if (subCaCredId < 0) {
+            Log.e(TAG, "Error installing intermediate ca certificate");
+            return;
+        }
+
+        // load Root CA 1
         byte[] rootCa1 = getFileBytes("pki_certs/rootca1.pem");
         byte[] rootCa1 = getFileBytes("pki_certs/rootca1.pem");
         if (rootCa1 == null) {
         if (rootCa1 == null) {
             Log.e(TAG, "Failed to read root ca1 certificate");
             Log.e(TAG, "Failed to read root ca1 certificate");
             return;
             return;
         }
         }
 
 
+        // add Root CA 1
         int rootCaCredId = OCPki.addMfgTrustAnchor(deviceIndex, rootCa1);
         int rootCaCredId = OCPki.addMfgTrustAnchor(deviceIndex, rootCa1);
         Log.d(TAG, "addMfgTrustAnchor() result = " + rootCaCredId);
         Log.d(TAG, "addMfgTrustAnchor() result = " + rootCaCredId);
         if (rootCaCredId < 0) {
         if (rootCaCredId < 0) {
@@ -50,18 +88,37 @@ public class FactoryPresetsHandler implements OCFactoryPresetsHandler {
             return;
             return;
         }
         }
 
 
+        // load Root CA 2
         byte[] rootCa2 = getFileBytes("pki_certs/rootca2.pem");
         byte[] rootCa2 = getFileBytes("pki_certs/rootca2.pem");
         if (rootCa2 == null) {
         if (rootCa2 == null) {
             Log.e(TAG, "Failed to read root ca2 certificate");
             Log.e(TAG, "Failed to read root ca2 certificate");
             return;
             return;
         }
         }
 
 
+        // add Root CA 2
         rootCaCredId = OCPki.addMfgTrustAnchor(deviceIndex, rootCa2);
         rootCaCredId = OCPki.addMfgTrustAnchor(deviceIndex, rootCa2);
         Log.d(TAG, "addMfgTrustAnchor() result = " + rootCaCredId);
         Log.d(TAG, "addMfgTrustAnchor() result = " + rootCaCredId);
         if (rootCaCredId < 0) {
         if (rootCaCredId < 0) {
             Log.e(TAG, "Error installing root ca2 certificate");
             Log.e(TAG, "Error installing root ca2 certificate");
             return;
             return;
         }
         }
+
+        // load Root CA 3
+        byte[] rootCa3 = getFileBytes("pki_certs/rootca3.pem");
+        if (rootCa3 == null) {
+            Log.e(TAG, "Failed to read root ca3 certificate");
+            return;
+        }
+
+        // add Root CA 3
+        rootCaCredId = OCPki.addMfgTrustAnchor(deviceIndex, rootCa3);
+        Log.d(TAG, "addMfgTrustAnchor() result = " + rootCaCredId);
+        if (rootCaCredId < 0) {
+            Log.e(TAG, "Error installing root ca3 certificate");
+            return;
+        }
+
+
     }
     }
 
 
     public byte[] getFileBytes(String filepath) {
     public byte[] getFileBytes(String filepath) {

+ 1 - 1
OnBoardingTool/app/src/main/java/org/iotivity/onboardingtool/ObtInitHandler.java

@@ -24,7 +24,7 @@ public class ObtInitHandler implements OCMainInitHandler {
         Log.d(TAG, "inside ObtInitHandler.initialize()");
         Log.d(TAG, "inside ObtInitHandler.initialize()");
         int ret = obtPlatform.platformInit("OCF"); // Manufaturer Name
         int ret = obtPlatform.platformInit("OCF"); // Manufaturer Name
         if (ret >= 0) {
         if (ret >= 0) {
-            OcDevice device = new OcDevice("/oic/d", "oic.d.dots", "OBT", "ocf.2.5.0", "ocf.res.1.3.0,ocf.sh.1.3.0");
+            OcDevice device = new OcDevice("/oic/d", "oic.d.dots", "OBT", "ocf.2.0.5", "ocf.res.1.3.0,ocf.sh.1.3.0");
             ret |= obtPlatform.addDevice(device);
             ret |= obtPlatform.addDevice(device);
             // Note: device must be added to platform before additional resource types can be added
             // Note: device must be added to platform before additional resource types can be added
             device.bindResourceType("oic.d.ams");
             device.bindResourceType("oic.d.ams");

+ 3 - 3
OnBoardingTool/app/src/main/java/org/iotivity/onboardingtool/OnBoardingActivity.java

@@ -111,8 +111,8 @@ public class OnBoardingActivity extends AppCompatActivity {
 
 
         super.onDestroy();
         super.onDestroy();
 
 
-        //System.runFinalizersOnExit(true);
-        //System.exit(0);
+        System.runFinalizersOnExit(true);
+        System.exit(0);
     }
     }
 
 
     @Override
     @Override
@@ -221,7 +221,7 @@ public class OnBoardingActivity extends AppCompatActivity {
                         ownedArrayAdapter.notifyDataSetChanged();
                         ownedArrayAdapter.notifyDataSetChanged();
                         unownedDeviceList.clear();
                         unownedDeviceList.clear();
                         unownedArrayAdapter.notifyDataSetChanged();
                         unownedArrayAdapter.notifyDataSetChanged();
-                        obt = new OcObt();
+                        //obt = new OcObt();
                     }
                     }
                 });
                 });