javacommons/security/tsrc/javasrc/com/nokia/mj/impl/security/OMJSecurityTests.java
branchRCL_3
changeset 83 26b2b12093af
parent 71 d5e927d5853b
equal deleted inserted replaced
77:7cee158cb8cd 83:26b2b12093af
   194         credentials = authenticationModule.authenticateJad(appUID,null,securityAttributes.getAuthenticationAttributes());
   194         credentials = authenticationModule.authenticateJad(appUID,null,securityAttributes.getAuthenticationAttributes());
   195         permissionGranter.grantJadPermissions(appUID, null, securityAttributes.getPermissionAttributes(), credentials);
   195         permissionGranter.grantJadPermissions(appUID, null, securityAttributes.getPermissionAttributes(), credentials);
   196         allAttributes.clear();
   196         allAttributes.clear();
   197         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   197         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   198         securityAttributes.addManifestAttributes(allAttributes);
   198         securityAttributes.addManifestAttributes(allAttributes);
   199         credentials = authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   199         authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   200         authenticationModule.addSecurityData(session, appUID, null);
   200         permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
   201         permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), credentials);
   201         permissionGranter.getBlanketPermissions(appUID);
   202         permissionGranter.getBlanketPermissions(appUID);
       
   203         permissionGranter.addSecurityData(session, appUID, null);
       
   204         signingCerts = authenticationModule.getCertificatesDetails(session, appUID);
   202         signingCerts = authenticationModule.getCertificatesDetails(session, appUID);
   205         assertWithTrace(signingCerts != null
   203         assertWithTrace(signingCerts != null
   206                         && signingCerts.length == 1
   204                         && signingCerts.length == 1
   207                         && signingCerts[0].getIssuer() != null
   205                         && signingCerts[0].getIssuer() != null
   208                         && signingCerts[0].getDateNotAfter() != null
   206                         && signingCerts[0].getDateNotAfter() != null
   241         permissionGranter.grantJadPermissions(appUID, null, securityAttributes.getPermissionAttributes(), credentials);
   239         permissionGranter.grantJadPermissions(appUID, null, securityAttributes.getPermissionAttributes(), credentials);
   242         allAttributes.clear();
   240         allAttributes.clear();
   243         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   241         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   244         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.socket,javax.microedition.io.Connector.http"));
   242         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.socket,javax.microedition.io.Connector.http"));
   245         securityAttributes.addManifestAttributes(allAttributes);
   243         securityAttributes.addManifestAttributes(allAttributes);
   246         credentials = authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   244         authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   247         authenticationModule.addSecurityData(session, appUID, null);
   245         permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
   248         permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), credentials);
   246         permissionGranter.getBlanketPermissions(appUID);
   249         permissionGranter.getBlanketPermissions(appUID);
       
   250         permissionGranter.addSecurityData(session, appUID, null);
       
   251         signingCerts = authenticationModule.getCertificatesDetails(session, appUID);
   247         signingCerts = authenticationModule.getCertificatesDetails(session, appUID);
   252         assertWithTrace(signingCerts != null
   248         assertWithTrace(signingCerts != null
   253                         && signingCerts.length == 1
   249                         && signingCerts.length == 1
   254                         && signingCerts[0].getIssuer() != null
   250                         && signingCerts[0].getIssuer() != null
   255                         && signingCerts[0].getDateNotAfter() != null
   251                         && signingCerts[0].getDateNotAfter() != null
   287         permissionGranter.grantJadPermissions(appUID, null, securityAttributes.getPermissionAttributes(), credentials);
   283         permissionGranter.grantJadPermissions(appUID, null, securityAttributes.getPermissionAttributes(), credentials);
   288         allAttributes.clear();
   284         allAttributes.clear();
   289         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   285         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   290         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.socket,javax.microedition.io.Connector.http"));
   286         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.socket,javax.microedition.io.Connector.http"));
   291         securityAttributes.addManifestAttributes(allAttributes);
   287         securityAttributes.addManifestAttributes(allAttributes);
   292         credentials = authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   288         authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   293         authenticationModule.addSecurityData(session, appUID, null);
   289         permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
   294         permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), credentials);
   290         permissionGranter.getBlanketPermissions(appUID);
   295         permissionGranter.getBlanketPermissions(appUID);
       
   296         permissionGranter.addSecurityData(session, appUID, null);
       
   297         allAttributes.clear();
   291         allAttributes.clear();
   298         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   292         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   299         allAttributes.put(AuthenticationAttribute.MAIN_ATTRIBUTE_PREFIX + "1-1", new Attribute("",        "MIICWDCCAcECBEhQwA0wDQYJKoZIhvcNAQEEBQAwczELMAkGA1UEBhMCZmkxEjAQBgNVBAgTCVBpcmthbm1hYTEQMA4GA1UEBxMHVGFtcGVyZTEOMAwGA1UEChMFTm9raWExDTALBgNVBAsTBEphdmExHzAdBgNVBAMMFkpQX0RldmljZV9NYW51ZmFjdHVyZXIwHhcNMDgwNjEyMDYxOTU3WhcNMTgwNjEwMDYxOTU3WjBzMQswCQYDVQQGEwJmaTESMBAGA1UECBMJUGlya2FubWFhMRAwDgYDVQQHEwdUYW1wZXJlMQ4wDAYDVQQKEwVOb2tpYTENMAsGA1UECxMESmF2YTEfMB0GA1UEAwwWSlBfRGV2aWNlX01hbnVmYWN0dXJlcjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApi3ipIPj8O33/rZre1euh7Itd9d6ZVf2mvQ/tLpHEsFJe5XLOsVViMvFskhhKUzmDsRbP4J03L6827/vEDIi/1i8kJGLaoFqJYaLGFWI2Zmxlj6aJV8cfZyOjmQPWJn1IDEe1ZAWbvMSp8xibWRsCLNEGKIkxQvAr/QDK/6iS+kCAwEAATANBgkqhkiG9w0BAQQFAAOBgQCDXt6klAs6yKvdTab3D2wkdoi3Lu4YFsMgLexJOu5HhAUJ/9VYO+Q2+mjd95MRsTa5rWQ2Jjvhn57Z3z/KBOwfHbymmNtMk6Gl14H0vQRoHa31jh3mTuAy5KotDVthaDp30aOizk473NU68wY1WdP4gFk5ZhrpNea9q3st13BxIQ=="));
   293         allAttributes.put(AuthenticationAttribute.MAIN_ATTRIBUTE_PREFIX + "1-1", new Attribute("",        "MIICWDCCAcECBEhQwA0wDQYJKoZIhvcNAQEEBQAwczELMAkGA1UEBhMCZmkxEjAQBgNVBAgTCVBpcmthbm1hYTEQMA4GA1UEBxMHVGFtcGVyZTEOMAwGA1UEChMFTm9raWExDTALBgNVBAsTBEphdmExHzAdBgNVBAMMFkpQX0RldmljZV9NYW51ZmFjdHVyZXIwHhcNMDgwNjEyMDYxOTU3WhcNMTgwNjEwMDYxOTU3WjBzMQswCQYDVQQGEwJmaTESMBAGA1UECBMJUGlya2FubWFhMRAwDgYDVQQHEwdUYW1wZXJlMQ4wDAYDVQQKEwVOb2tpYTENMAsGA1UECxMESmF2YTEfMB0GA1UEAwwWSlBfRGV2aWNlX01hbnVmYWN0dXJlcjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApi3ipIPj8O33/rZre1euh7Itd9d6ZVf2mvQ/tLpHEsFJe5XLOsVViMvFskhhKUzmDsRbP4J03L6827/vEDIi/1i8kJGLaoFqJYaLGFWI2Zmxlj6aJV8cfZyOjmQPWJn1IDEe1ZAWbvMSp8xibWRsCLNEGKIkxQvAr/QDK/6iS+kCAwEAATANBgkqhkiG9w0BAQQFAAOBgQCDXt6klAs6yKvdTab3D2wkdoi3Lu4YFsMgLexJOu5HhAUJ/9VYO+Q2+mjd95MRsTa5rWQ2Jjvhn57Z3z/KBOwfHbymmNtMk6Gl14H0vQRoHa31jh3mTuAy5KotDVthaDp30aOizk473NU68wY1WdP4gFk5ZhrpNea9q3st13BxIQ=="));
   300         allAttributes.put(AuthenticationAttribute.SECOND_LEGACY_ATTRIBUTE_NAME ,new Attribute("", "IcANmLKiOJQF8ABCNDj1PNNH/O8v9jfCVuiGBVm8enXDkM/gLwPjrC65sDKpOCHPqssUlHzjmVN5b9g8aRs4jxUOXNt2b732J7NSIPh97vw/WrP/KHdiooi/1KFUyklMyokK9ZrIv+GW1ttLCfKbuFupT9zmPAmWJQpnuD7J6sE="));
   294         allAttributes.put(AuthenticationAttribute.SECOND_LEGACY_ATTRIBUTE_NAME ,new Attribute("", "IcANmLKiOJQF8ABCNDj1PNNH/O8v9jfCVuiGBVm8enXDkM/gLwPjrC65sDKpOCHPqssUlHzjmVN5b9g8aRs4jxUOXNt2b732J7NSIPh97vw/WrP/KHdiooi/1KFUyklMyokK9ZrIv+GW1ttLCfKbuFupT9zmPAmWJQpnuD7J6sE="));
   301         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.socket,javax.microedition.io.Connector.http"));
   295         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.socket,javax.microedition.io.Connector.http"));
   305         permissionGranter.grantJadPermissions(appUID2, null, securityAttributes.getPermissionAttributes(), credentials);
   299         permissionGranter.grantJadPermissions(appUID2, null, securityAttributes.getPermissionAttributes(), credentials);
   306         allAttributes.clear();
   300         allAttributes.clear();
   307         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   301         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   308         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.socket,javax.microedition.io.Connector.http"));
   302         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.socket,javax.microedition.io.Connector.http"));
   309         securityAttributes.addManifestAttributes(allAttributes);
   303         securityAttributes.addManifestAttributes(allAttributes);
   310         credentials = authenticationModule.authenticateJar(appUID2,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   304         authenticationModule.authenticateJar(session, appUID2,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   311         authenticationModule.addSecurityData(session, appUID2, null);
   305         permissionGranter.grantJarPermissions(session, appUID2, null, securityAttributes.getPermissionAttributes());
   312         permissionGranter.grantJarPermissions( appUID2, null, securityAttributes.getPermissionAttributes(), credentials);
   306         permissionGranter.getBlanketPermissions(appUID);
   313         permissionGranter.getBlanketPermissions(appUID);
       
   314         permissionGranter.addSecurityData(session, appUID2, null);
       
   315         // 2 legacy unsigned MIDlets, install from JAD -> checkPermission succeeds
   307         // 2 legacy unsigned MIDlets, install from JAD -> checkPermission succeeds
   316         storage.removeAuthenticationStorageData(appUID);
   308         storage.removeAuthenticationStorageData(appUID);
   317         permissionGranter.removeSecurityData(session,appUID);
   309         permissionGranter.removeSecurityData(session,appUID);
   318         PermissionResolver.testClearCache();
   310         PermissionResolver.testClearCache();
   319         allAttributes.clear();
   311         allAttributes.clear();
   323         credentials = authenticationModule.authenticateJad(appUID,null,securityAttributes.getAuthenticationAttributes());
   315         credentials = authenticationModule.authenticateJad(appUID,null,securityAttributes.getAuthenticationAttributes());
   324         permissionGranter.grantJadPermissions(appUID, null, securityAttributes.getPermissionAttributes(), credentials);
   316         permissionGranter.grantJadPermissions(appUID, null, securityAttributes.getPermissionAttributes(), credentials);
   325         allAttributes.clear();
   317         allAttributes.clear();
   326         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   318         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   327         securityAttributes.addManifestAttributes(allAttributes);
   319         securityAttributes.addManifestAttributes(allAttributes);
   328         credentials = authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   320         authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   329         authenticationModule.addSecurityData(session, appUID, null);
   321         permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
   330         permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), credentials);
   322         permissionGranter.getBlanketPermissions(appUID);
   331         permissionGranter.getBlanketPermissions(appUID);
       
   332         permissionGranter.addSecurityData(session, appUID, null);
       
   333         signingCerts = authenticationModule.getCertificatesDetails(session, appUID);
   323         signingCerts = authenticationModule.getCertificatesDetails(session, appUID);
   334         assertWithTrace(signingCerts == null);
   324         assertWithTrace(signingCerts == null);
   335         ac.checkPermission(new java.util.PropertyPermission("microedition.version", "read"));
   325         ac.checkPermission(new java.util.PropertyPermission("microedition.version", "read"));
   336         // legacy unsigned MIDlet, install from JAR -> checkPermission suceeds (with showing the prompts except for assigned perms)
   326         // legacy unsigned MIDlet, install from JAR -> checkPermission suceeds (with showing the prompts except for assigned perms)
   337         storage.removeAuthenticationStorageData(appUID);
   327         storage.removeAuthenticationStorageData(appUID);
   339         PermissionResolver.testClearCache();
   329         PermissionResolver.testClearCache();
   340         allAttributes.clear();
   330         allAttributes.clear();
   341         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   331         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   342         securityAttributes = new SecurityAttributes();
   332         securityAttributes = new SecurityAttributes();
   343         securityAttributes.addManifestAttributes(allAttributes);
   333         securityAttributes.addManifestAttributes(allAttributes);
   344         credentials = authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   334         authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   345         authenticationModule.addSecurityData(session, appUID, null);
   335         permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
   346         permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), credentials);
   336         permissionGranter.getBlanketPermissions(appUID);
   347         permissionGranter.getBlanketPermissions(appUID);
       
   348         permissionGranter.addSecurityData(session, appUID, null);
       
   349         signingCerts = authenticationModule.getCertificatesDetails(session, appUID);
   337         signingCerts = authenticationModule.getCertificatesDetails(session, appUID);
   350         assertWithTrace(signingCerts == null);
   338         assertWithTrace(signingCerts == null);
   351         ac.checkPermission(new java.util.PropertyPermission("microedition.version", "read"));
   339         ac.checkPermission(new java.util.PropertyPermission("microedition.version", "read"));
   352         storage.removeAuthenticationStorageData(appUID);
   340         storage.removeAuthenticationStorageData(appUID);
   353         permissionGranter.removeSecurityData(session,appUID);
   341         permissionGranter.removeSecurityData(session,appUID);
   366         permissionGranter.grantJadPermissions(appUID, null, securityAttributes.getPermissionAttributes(), credentials);
   354         permissionGranter.grantJadPermissions(appUID, null, securityAttributes.getPermissionAttributes(), credentials);
   367         allAttributes.clear();
   355         allAttributes.clear();
   368         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   356         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   369         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.socket,javax.microedition.io.Connector.http"));
   357         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.socket,javax.microedition.io.Connector.http"));
   370         securityAttributes.addManifestAttributes(allAttributes);
   358         securityAttributes.addManifestAttributes(allAttributes);
   371         credentials = authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   359         authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   372         authenticationModule.addSecurityData(session, appUID, null);
       
   373         storage.removeAuthenticationStorageData(appUID2);
   360         storage.removeAuthenticationStorageData(appUID2);
   374         permissionGranter.removeSecurityData(session,appUID2);
   361         permissionGranter.removeSecurityData(session,appUID2);
   375         PermissionResolver.testClearCache();
   362         PermissionResolver.testClearCache();
   376         allAttributes.clear();
   363         allAttributes.clear();
   377         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   364         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   399         credentials = authenticationModule.authenticateJad(appUID,null,securityAttributes.getAuthenticationAttributes());
   386         credentials = authenticationModule.authenticateJad(appUID,null,securityAttributes.getAuthenticationAttributes());
   400         permissionGranter.grantJadPermissions(appUID, null, securityAttributes.getPermissionAttributes(), credentials);
   387         permissionGranter.grantJadPermissions(appUID, null, securityAttributes.getPermissionAttributes(), credentials);
   401         allAttributes.clear();
   388         allAttributes.clear();
   402         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP3));
   389         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP3));
   403         securityAttributes.addManifestAttributes(allAttributes);
   390         securityAttributes.addManifestAttributes(allAttributes);
   404         credentials = authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   391         authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   405         authenticationModule.addSecurityData(session, appUID, null);
   392         permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
   406         permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), credentials);
   393         permissionGranter.getBlanketPermissions(appUID);
   407         permissionGranter.getBlanketPermissions(appUID);
       
   408         permissionGranter.addSecurityData(session, appUID, null);
       
   409         storage.removeAuthenticationStorageData(appUID2);
   394         storage.removeAuthenticationStorageData(appUID2);
   410         permissionGranter.removeSecurityData(session,appUID2);
   395         permissionGranter.removeSecurityData(session,appUID2);
   411         PermissionResolver.testClearCache();
   396         PermissionResolver.testClearCache();
   412         allAttributes.clear();
   397         allAttributes.clear();
   413         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP3));
   398         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP3));
   439         credentials = authenticationModule.authenticateJad(appUID,null,securityAttributes.getAuthenticationAttributes());
   424         credentials = authenticationModule.authenticateJad(appUID,null,securityAttributes.getAuthenticationAttributes());
   440         permissionGranter.grantJadPermissions(appUID, null, securityAttributes.getPermissionAttributes(), credentials);
   425         permissionGranter.grantJadPermissions(appUID, null, securityAttributes.getPermissionAttributes(), credentials);
   441         allAttributes.clear();
   426         allAttributes.clear();
   442         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   427         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   443         securityAttributes.addManifestAttributes(allAttributes);
   428         securityAttributes.addManifestAttributes(allAttributes);
   444         credentials = authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   429         authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   445         authenticationModule.addSecurityData(session, appUID, null);
   430         permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
   446         permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), credentials);
   431         permissionGranter.getBlanketPermissions(appUID);
   447         permissionGranter.getBlanketPermissions(appUID);
       
   448         permissionGranter.addSecurityData(session, appUID, null);
       
   449         storage.removeAuthenticationStorageData(appUID2);
   432         storage.removeAuthenticationStorageData(appUID2);
   450         permissionGranter.removeSecurityData(session,appUID2);
   433         permissionGranter.removeSecurityData(session,appUID2);
   451         PermissionResolver.testClearCache();
   434         PermissionResolver.testClearCache();
   452         allAttributes.clear();
   435         allAttributes.clear();
   453         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   436         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   469         credentials = authenticationModule.authenticateJad(appUID,null,securityAttributes.getAuthenticationAttributes());
   452         credentials = authenticationModule.authenticateJad(appUID,null,securityAttributes.getAuthenticationAttributes());
   470         permissionGranter.grantJadPermissions(appUID, null, securityAttributes.getPermissionAttributes(), credentials);
   453         permissionGranter.grantJadPermissions(appUID, null, securityAttributes.getPermissionAttributes(), credentials);
   471         allAttributes.clear();
   454         allAttributes.clear();
   472         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   455         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   473         securityAttributes.addManifestAttributes(allAttributes);
   456         securityAttributes.addManifestAttributes(allAttributes);
   474         credentials = authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   457         authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   475         authenticationModule.addSecurityData(session, appUID, null);
   458         permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
   476         permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), credentials);
   459         permissionGranter.getBlanketPermissions(appUID);
   477         permissionGranter.getBlanketPermissions(appUID);
       
   478         permissionGranter.addSecurityData(session, appUID, null);
       
   479         storage.removeAuthenticationStorageData(appUID2);
   460         storage.removeAuthenticationStorageData(appUID2);
   480         permissionGranter.removeSecurityData(session,appUID2);
   461         permissionGranter.removeSecurityData(session,appUID2);
   481         PermissionResolver.testClearCache();
   462         PermissionResolver.testClearCache();
   482         appPackageEntry = new StorageEntry();
   463         appPackageEntry = new StorageEntry();
   483         appPackageEntry.addAttribute(new StorageAttribute(
   464         appPackageEntry.addAttribute(new StorageAttribute(
   492                                          "MIDP-2.0"));
   473                                          "MIDP-2.0"));
   493         session.write(StorageNames.APPLICATION_PACKAGE_ATTRIBUTES_TABLE, appPackageEntry);
   474         session.write(StorageNames.APPLICATION_PACKAGE_ATTRIBUTES_TABLE, appPackageEntry);
   494         allAttributes.clear();
   475         allAttributes.clear();
   495         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   476         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   496         securityAttributes.addManifestAttributes(allAttributes);
   477         securityAttributes.addManifestAttributes(allAttributes);
   497         credentials = authenticationModule.authenticateJar(appUID2,appUID,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   478         authenticationModule.authenticateJar(session, appUID2,appUID,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   498         authenticationModule.addSecurityData(session, appUID2, appUID);
   479         permissionGranter.grantJarPermissions(session, appUID2, null, securityAttributes.getPermissionAttributes());
   499         permissionGranter.grantJarPermissions( appUID2, null, securityAttributes.getPermissionAttributes(), credentials);
   480         permissionGranter.getBlanketPermissions(appUID);
   500         permissionGranter.getBlanketPermissions(appUID);
       
   501         permissionGranter.addSecurityData(session, appUID2, null);
       
   502         // update from manufacturer to operator succeeds for legacy suites
   481         // update from manufacturer to operator succeeds for legacy suites
   503         storage.removeAuthenticationStorageData(appUID);
   482         storage.removeAuthenticationStorageData(appUID);
   504         permissionGranter.removeSecurityData(session,appUID);
   483         permissionGranter.removeSecurityData(session,appUID);
   505         PermissionResolver.testClearCache();
   484         PermissionResolver.testClearCache();
   506         allAttributes.clear();
   485         allAttributes.clear();
   514         permissionGranter.grantJadPermissions(appUID, null, securityAttributes.getPermissionAttributes(), credentials);
   493         permissionGranter.grantJadPermissions(appUID, null, securityAttributes.getPermissionAttributes(), credentials);
   515         allAttributes.clear();
   494         allAttributes.clear();
   516         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   495         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   517         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.socket,javax.microedition.io.Connector.http"));
   496         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.socket,javax.microedition.io.Connector.http"));
   518         securityAttributes.addManifestAttributes(allAttributes);
   497         securityAttributes.addManifestAttributes(allAttributes);
   519         credentials = authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   498         authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   520         authenticationModule.addSecurityData(session, appUID, null);
       
   521         storage.removeAuthenticationStorageData(appUID2);
   499         storage.removeAuthenticationStorageData(appUID2);
   522         permissionGranter.removeSecurityData(session,appUID2);
   500         permissionGranter.removeSecurityData(session,appUID2);
   523         PermissionResolver.testClearCache();
   501         PermissionResolver.testClearCache();
   524         allAttributes.clear();
   502         allAttributes.clear();
   525         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   503         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   545         permissionGranter.grantJadPermissions(appUID, null, securityAttributes.getPermissionAttributes(), credentials);
   523         permissionGranter.grantJadPermissions(appUID, null, securityAttributes.getPermissionAttributes(), credentials);
   546         allAttributes.clear();
   524         allAttributes.clear();
   547         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   525         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   548         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.socket,javax.microedition.io.Connector.http"));
   526         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.socket,javax.microedition.io.Connector.http"));
   549         securityAttributes.addManifestAttributes(allAttributes);
   527         securityAttributes.addManifestAttributes(allAttributes);
   550         credentials = authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   528         authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   551         authenticationModule.addSecurityData(session, appUID, null);
   529         permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
   552         permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), credentials);
   530         permissionGranter.getBlanketPermissions(appUID);
   553         permissionGranter.getBlanketPermissions(appUID);
       
   554         permissionGranter.addSecurityData(session, appUID, null);
       
   555         appPackageEntry = new StorageEntry();
   531         appPackageEntry = new StorageEntry();
   556         appPackageEntry.addAttribute(new StorageAttribute(
   532         appPackageEntry.addAttribute(new StorageAttribute(
   557                                          StorageAttribute.ID,
   533                                          StorageAttribute.ID,
   558                                          appUID.getStringValue()));
   534                                          appUID.getStringValue()));
   559         session.remove(StorageNames.APPLICATION_PACKAGE_ATTRIBUTES_TABLE, appPackageEntry);
   535         session.remove(StorageNames.APPLICATION_PACKAGE_ATTRIBUTES_TABLE, appPackageEntry);
   578         permissionGranter.grantJadPermissions(appUID2, null, securityAttributes.getPermissionAttributes(), credentials);
   554         permissionGranter.grantJadPermissions(appUID2, null, securityAttributes.getPermissionAttributes(), credentials);
   579         allAttributes.clear();
   555         allAttributes.clear();
   580         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   556         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   581         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.socket,javax.microedition.io.Connector.http"));
   557         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.socket,javax.microedition.io.Connector.http"));
   582         securityAttributes.addManifestAttributes(allAttributes);
   558         securityAttributes.addManifestAttributes(allAttributes);
   583         credentials = authenticationModule.authenticateJar(appUID2,appUID,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   559         authenticationModule.authenticateJar(session, appUID2,appUID,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   584         authenticationModule.addSecurityData(session, appUID2, appUID);
   560         permissionGranter.grantJarPermissions(session, appUID2, appUID, securityAttributes.getPermissionAttributes());
   585         permissionGranter.grantJarPermissions( appUID2, appUID, securityAttributes.getPermissionAttributes(), credentials);
   561         permissionGranter.getBlanketPermissions(appUID);
   586         permissionGranter.getBlanketPermissions(appUID);
       
   587         permissionGranter.addSecurityData(session, appUID2, appUID);
       
   588         // update from identified third party to identified third party but with different organization for signing certificate fails for MIDP3 MIDlets
   562         // update from identified third party to identified third party but with different organization for signing certificate fails for MIDP3 MIDlets
   589         storage.removeAuthenticationStorageData(appUID);
   563         storage.removeAuthenticationStorageData(appUID);
   590         permissionGranter.removeSecurityData(session,appUID);
   564         permissionGranter.removeSecurityData(session,appUID);
   591         PermissionResolver.testClearCache();
   565         PermissionResolver.testClearCache();
   592         allAttributes.clear();
   566         allAttributes.clear();
   597         securityAttributes.addDescriptorAttributes(allAttributes);
   571         securityAttributes.addDescriptorAttributes(allAttributes);
   598         credentials = authenticationModule.authenticateJad(appUID,null,securityAttributes.getAuthenticationAttributes());
   572         credentials = authenticationModule.authenticateJad(appUID,null,securityAttributes.getAuthenticationAttributes());
   599         allAttributes.clear();
   573         allAttributes.clear();
   600         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP3));
   574         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP3));
   601         securityAttributes.addManifestAttributes(allAttributes);
   575         securityAttributes.addManifestAttributes(allAttributes);
   602         credentials = authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   576         authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   603         authenticationModule.addSecurityData(session, appUID, null);
       
   604         appPackageEntry = new StorageEntry();
   577         appPackageEntry = new StorageEntry();
   605         appPackageEntry.addAttribute(new StorageAttribute(
   578         appPackageEntry.addAttribute(new StorageAttribute(
   606                                          StorageAttribute.ID,
   579                                          StorageAttribute.ID,
   607                                          appUID.getStringValue()));
   580                                          appUID.getStringValue()));
   608         session.remove(StorageNames.APPLICATION_PACKAGE_ATTRIBUTES_TABLE, appPackageEntry);
   581         session.remove(StorageNames.APPLICATION_PACKAGE_ATTRIBUTES_TABLE, appPackageEntry);
   648         permissionGranter.grantJadPermissions(appUID, null, securityAttributes.getPermissionAttributes(), credentials);
   621         permissionGranter.grantJadPermissions(appUID, null, securityAttributes.getPermissionAttributes(), credentials);
   649         allAttributes.clear();
   622         allAttributes.clear();
   650         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   623         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   651         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.socket,javax.microedition.io.Connector.http"));
   624         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.socket,javax.microedition.io.Connector.http"));
   652         securityAttributes.addManifestAttributes(allAttributes);
   625         securityAttributes.addManifestAttributes(allAttributes);
   653         credentials = authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   626         authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   654         authenticationModule.addSecurityData(session, appUID, null);
   627         permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
   655         permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), credentials);
   628         permissionGranter.getBlanketPermissions(appUID);
   656         permissionGranter.getBlanketPermissions(appUID);
       
   657         permissionGranter.addSecurityData(session, appUID, null);
       
   658         appPackageEntry = new StorageEntry();
   629         appPackageEntry = new StorageEntry();
   659         appPackageEntry.addAttribute(new StorageAttribute(
   630         appPackageEntry.addAttribute(new StorageAttribute(
   660                                          StorageAttribute.ID,
   631                                          StorageAttribute.ID,
   661                                          appUID.getStringValue()));
   632                                          appUID.getStringValue()));
   662         session.remove(StorageNames.APPLICATION_PACKAGE_ATTRIBUTES_TABLE, appPackageEntry);
   633         session.remove(StorageNames.APPLICATION_PACKAGE_ATTRIBUTES_TABLE, appPackageEntry);
   681         permissionGranter.grantJadPermissions(appUID2, null, securityAttributes.getPermissionAttributes(), credentials);
   652         permissionGranter.grantJadPermissions(appUID2, null, securityAttributes.getPermissionAttributes(), credentials);
   682         allAttributes.clear();
   653         allAttributes.clear();
   683         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   654         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   684         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.socket,javax.microedition.io.Connector.http"));
   655         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.socket,javax.microedition.io.Connector.http"));
   685         securityAttributes.addManifestAttributes(allAttributes);
   656         securityAttributes.addManifestAttributes(allAttributes);
   686         credentials = authenticationModule.authenticateJar(appUID2,appUID,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   657         authenticationModule.authenticateJar(session, appUID2,appUID,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   687         authenticationModule.addSecurityData(session, appUID2, appUID);
   658         permissionGranter.grantJarPermissions(session, appUID2, appUID, securityAttributes.getPermissionAttributes());
   688          permissionGranter.grantJarPermissions( appUID2, appUID, securityAttributes.getPermissionAttributes(), credentials);
   659         permissionGranter.getBlanketPermissions(appUID);
   689         permissionGranter.getBlanketPermissions(appUID);
       
   690         permissionGranter.addSecurityData(session, appUID2, appUID);
       
   691         // update from identified third party to identified third party succeeds (V1 requests P1 (Net), P2 (Messaging), P3 (Messaging), V2 requests P2 (Messaging), P4 (UserData), P5 (Net)) -> check that P1 is removed, P2 is retained (with old settings), P3 is removed, P4 and P5 are added with brand new settings
   660         // update from identified third party to identified third party succeeds (V1 requests P1 (Net), P2 (Messaging), P3 (Messaging), V2 requests P2 (Messaging), P4 (UserData), P5 (Net)) -> check that P1 is removed, P2 is retained (with old settings), P3 is removed, P4 and P5 are added with brand new settings
   692         storage.removeAuthenticationStorageData(appUID);
   661         storage.removeAuthenticationStorageData(appUID);
   693         permissionGranter.removeSecurityData(session,appUID);
   662         permissionGranter.removeSecurityData(session,appUID);
   694         PermissionResolver.testClearCache();
   663         PermissionResolver.testClearCache();
   695         allAttributes.clear();
   664         allAttributes.clear();
   703         permissionGranter.grantJadPermissions(appUID, null, securityAttributes.getPermissionAttributes(), credentials);
   672         permissionGranter.grantJadPermissions(appUID, null, securityAttributes.getPermissionAttributes(), credentials);
   704         allAttributes.clear();
   673         allAttributes.clear();
   705         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   674         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   706         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.socket,javax.wireless.messaging.sms.send,javax.wireless.messaging.mms.send"));
   675         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.socket,javax.wireless.messaging.sms.send,javax.wireless.messaging.mms.send"));
   707         securityAttributes.addManifestAttributes(allAttributes);
   676         securityAttributes.addManifestAttributes(allAttributes);
   708         credentials = authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   677         authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   709         authenticationModule.addSecurityData(session, appUID, null);
   678         permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
   710         permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), credentials);
   679         permissionGranter.getBlanketPermissions(appUID);
   711         permissionGranter.getBlanketPermissions(appUID);
   680         permissionGranter.getBlanketPermissions(appUID);
   712         permissionGranter.addSecurityData(session, appUID, null);
       
   713         appPackageEntry = new StorageEntry();
   681         appPackageEntry = new StorageEntry();
   714         appPackageEntry.addAttribute(new StorageAttribute(
   682         appPackageEntry.addAttribute(new StorageAttribute(
   715                                          StorageAttribute.ID,
   683                                          StorageAttribute.ID,
   716                                          appUID.getStringValue()));
   684                                          appUID.getStringValue()));
   717         session.remove(StorageNames.APPLICATION_PACKAGE_ATTRIBUTES_TABLE, appPackageEntry);
   685         session.remove(StorageNames.APPLICATION_PACKAGE_ATTRIBUTES_TABLE, appPackageEntry);
   736         permissionGranter.grantJadPermissions(appUID, appUID, securityAttributes.getPermissionAttributes(), credentials);
   704         permissionGranter.grantJadPermissions(appUID, appUID, securityAttributes.getPermissionAttributes(), credentials);
   737         allAttributes.clear();
   705         allAttributes.clear();
   738         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   706         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   739         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.wireless.messaging.sms.send,javax.microedition.io.Connector.file.read,javax.microedition.io.Connector.http"));
   707         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.wireless.messaging.sms.send,javax.microedition.io.Connector.file.read,javax.microedition.io.Connector.http"));
   740         securityAttributes.addManifestAttributes(allAttributes);
   708         securityAttributes.addManifestAttributes(allAttributes);
   741         credentials = authenticationModule.authenticateJar(appUID,appUID,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   709         authenticationModule.authenticateJar(session, appUID,appUID,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   742         authenticationModule.addSecurityData(session, appUID, appUID);
   710         permissionGranter.grantJarPermissions(session, appUID, appUID, securityAttributes.getPermissionAttributes());
   743         permissionGranter.grantJarPermissions( appUID, appUID, securityAttributes.getPermissionAttributes(), credentials);
   711         permissionGranter.getBlanketPermissions(appUID);
   744         permissionGranter.getBlanketPermissions(appUID);
       
   745         permissionGranter.addSecurityData(session, appUID, appUID);
       
   746         grantedPermissions = storage.readGrantedPermissions(appUID);
   712         grantedPermissions = storage.readGrantedPermissions(appUID);
   747         MIDPPermission p1 = PermissionMappingTable.get("javax.wireless.messaging.sms.send");
   713         MIDPPermission p1 = PermissionMappingTable.get("javax.wireless.messaging.sms.send");
   748         MIDPPermission p2 = PermissionMappingTable.get("javax.microedition.io.Connector.file.read");
   714         MIDPPermission p2 = PermissionMappingTable.get("javax.microedition.io.Connector.file.read");
   749         MIDPPermission p3 = PermissionMappingTable.get("javax.microedition.io.Connector.http");
   715         MIDPPermission p3 = PermissionMappingTable.get("javax.microedition.io.Connector.http");
   750         MIDPPermission p4 = PermissionMappingTable.get("javax.microedition.PropertyPermission");
   716         MIDPPermission p4 = PermissionMappingTable.get("javax.microedition.PropertyPermission");
   756                                                                                                                UserSecuritySettings.BLANKET_INTERACTION_MODE,
   722                                                                                                                UserSecuritySettings.BLANKET_INTERACTION_MODE,
   757                                                                                                                new int[]{UserSecuritySettings.BLANKET_INTERACTION_MODE,
   723                                                                                                                new int[]{UserSecuritySettings.BLANKET_INTERACTION_MODE,
   758                                                                                                                          UserSecuritySettings.NO_INTERACTION_MODE,
   724                                                                                                                          UserSecuritySettings.NO_INTERACTION_MODE,
   759                                                                                                                          UserSecuritySettings.ONESHOT_INTERACTION_MODE,
   725                                                                                                                          UserSecuritySettings.ONESHOT_INTERACTION_MODE,
   760                                                                                                                          UserSecuritySettings.SESSION_INTERACTION_MODE})),
   726                                                                                                                          UserSecuritySettings.SESSION_INTERACTION_MODE})),
   761                                                     new PolicyBasedPermissionImpl(p2.getName(), p2.getTarget(), p2.getActionList(),
   727                                                     new PolicyBasedPermissionImpl(p2.getName(), "*", p2.getActionList(),
   762                                                                                   new UserSecuritySettingsImpl("Read User Data Access",
   728                                                                                   new UserSecuritySettingsImpl("Read User Data Access",
   763                                                                                                                UserSecuritySettings.SESSION_INTERACTION_MODE,
   729                                                                                                                UserSecuritySettings.SESSION_INTERACTION_MODE,
   764                                                                                                                new int[]{UserSecuritySettings.BLANKET_INTERACTION_MODE,
   730                                                                                                                new int[]{UserSecuritySettings.BLANKET_INTERACTION_MODE,
   765                                                                                                                          UserSecuritySettings.NO_INTERACTION_MODE,
   731                                                                                                                          UserSecuritySettings.NO_INTERACTION_MODE,
   766                                                                                                                          UserSecuritySettings.ONESHOT_INTERACTION_MODE,
   732                                                                                                                          UserSecuritySettings.ONESHOT_INTERACTION_MODE,
   812         permissionGranter.grantJadPermissions(appUID, null, securityAttributes.getPermissionAttributes(), credentials);
   778         permissionGranter.grantJadPermissions(appUID, null, securityAttributes.getPermissionAttributes(), credentials);
   813         allAttributes.clear();
   779         allAttributes.clear();
   814         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   780         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   815         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.socket,javax.wireless.messaging.sms.send,javax.wireless.messaging.mms.send"));
   781         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.socket,javax.wireless.messaging.sms.send,javax.wireless.messaging.mms.send"));
   816         securityAttributes.addManifestAttributes(allAttributes);
   782         securityAttributes.addManifestAttributes(allAttributes);
   817         credentials = authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   783         authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   818         authenticationModule.addSecurityData(session, appUID, null);
   784         permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
   819         permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), credentials);
       
   820         blanketPermissions = permissionGranter.getBlanketPermissions(appUID);
   785         blanketPermissions = permissionGranter.getBlanketPermissions(appUID);
   821         permissionGranter.addSecurityData(session, appUID, null);
       
   822         assertWithTrace(checkStringArrays(blanketPermissions,
   786         assertWithTrace(checkStringArrays(blanketPermissions,
   823                                           new String[] {UserSecuritySettingsImpl.getLocalizedName(UserSecuritySettings.NET_ACCESS_SETTINGS),
   787                                           new String[] {UserSecuritySettingsImpl.getLocalizedName(UserSecuritySettings.NET_ACCESS_SETTINGS),
   824                                                         UserSecuritySettingsImpl.getLocalizedName(UserSecuritySettings.MESSAGING_SETTINGS)
   788                                                         UserSecuritySettingsImpl.getLocalizedName(UserSecuritySettings.MESSAGING_SETTINGS)
   825                                                        }));
   789                                                        }));
   826         appPackageEntry = new StorageEntry();
   790         appPackageEntry = new StorageEntry();
   848         permissionGranter.grantJadPermissions(appUID, appUID, securityAttributes.getPermissionAttributes(), credentials);
   812         permissionGranter.grantJadPermissions(appUID, appUID, securityAttributes.getPermissionAttributes(), credentials);
   849         allAttributes.clear();
   813         allAttributes.clear();
   850         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   814         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   851         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.wireless.messaging.sms.send,javax.microedition.io.Connector.file.read,javax.microedition.io.Connector.http"));
   815         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.wireless.messaging.sms.send,javax.microedition.io.Connector.file.read,javax.microedition.io.Connector.http"));
   852         securityAttributes.addManifestAttributes(allAttributes);
   816         securityAttributes.addManifestAttributes(allAttributes);
   853         credentials = authenticationModule.authenticateJar(appUID,appUID,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   817         authenticationModule.authenticateJar(session, appUID,appUID,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   854         authenticationModule.addSecurityData(session, appUID, appUID);
   818         permissionGranter.grantJarPermissions(session, appUID, appUID, securityAttributes.getPermissionAttributes());
   855         permissionGranter.grantJarPermissions( appUID, appUID, securityAttributes.getPermissionAttributes(), credentials);
       
   856         blanketPermissions = permissionGranter.getBlanketPermissions(appUID);
   819         blanketPermissions = permissionGranter.getBlanketPermissions(appUID);
   857         permissionGranter.addSecurityData(session, appUID, appUID);
       
   858         assertWithTrace(checkStringArrays(blanketPermissions,
   820         assertWithTrace(checkStringArrays(blanketPermissions,
   859                                           new String[] {UserSecuritySettingsImpl.getLocalizedName(UserSecuritySettings.NET_ACCESS_SETTINGS),
   821                                           new String[] {UserSecuritySettingsImpl.getLocalizedName(UserSecuritySettings.NET_ACCESS_SETTINGS),
   860                                                         UserSecuritySettingsImpl.getLocalizedName(UserSecuritySettings.MESSAGING_SETTINGS),
   822                                                         UserSecuritySettingsImpl.getLocalizedName(UserSecuritySettings.MESSAGING_SETTINGS),
   861                                                         UserSecuritySettingsImpl.getLocalizedName(UserSecuritySettings.READ_USER_DATA_ACCESS_SETTINGS)
   823                                                         UserSecuritySettingsImpl.getLocalizedName(UserSecuritySettings.READ_USER_DATA_ACCESS_SETTINGS)
   862                                                        }));
   824                                                        }));
   875         permissionGranter.grantJadPermissions(appUID, null, securityAttributes.getPermissionAttributes(), credentials);
   837         permissionGranter.grantJadPermissions(appUID, null, securityAttributes.getPermissionAttributes(), credentials);
   876         allAttributes.clear();
   838         allAttributes.clear();
   877         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   839         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   878         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.socket,javax.wireless.messaging.sms.send,javax.wireless.messaging.mms.send"));
   840         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.socket,javax.wireless.messaging.sms.send,javax.wireless.messaging.mms.send"));
   879         securityAttributes.addManifestAttributes(allAttributes);
   841         securityAttributes.addManifestAttributes(allAttributes);
   880         credentials = authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   842         authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   881         authenticationModule.addSecurityData(session, appUID, null);
   843         permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
   882         permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), credentials);
       
   883         blanketPermissions = permissionGranter.getBlanketPermissions(appUID);
   844         blanketPermissions = permissionGranter.getBlanketPermissions(appUID);
   884         permissionGranter.addSecurityData(session, appUID, null);
       
   885         assertWithTrace(checkStringArrays(blanketPermissions,
   845         assertWithTrace(checkStringArrays(blanketPermissions,
   886                                           new String[] {UserSecuritySettingsImpl.getLocalizedName(UserSecuritySettings.NET_ACCESS_SETTINGS),
   846                                           new String[] {UserSecuritySettingsImpl.getLocalizedName(UserSecuritySettings.NET_ACCESS_SETTINGS),
   887                                                         UserSecuritySettingsImpl.getLocalizedName(UserSecuritySettings.MESSAGING_SETTINGS)
   847                                                         UserSecuritySettingsImpl.getLocalizedName(UserSecuritySettings.MESSAGING_SETTINGS)
   888                                                        }));
   848                                                        }));
   889         permissionGranter.setPermissionsToBlanket(session, appUID);
   849         permissionGranter.setPermissionsToBlanket(session, appUID);
   910         permissionGranter.grantJadPermissions(appUID, appUID, securityAttributes.getPermissionAttributes(), credentials);
   870         permissionGranter.grantJadPermissions(appUID, appUID, securityAttributes.getPermissionAttributes(), credentials);
   911         allAttributes.clear();
   871         allAttributes.clear();
   912         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   872         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   913         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.wireless.messaging.sms.send,javax.microedition.io.Connector.file.read,javax.microedition.io.Connector.http"));
   873         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.wireless.messaging.sms.send,javax.microedition.io.Connector.file.read,javax.microedition.io.Connector.http"));
   914         securityAttributes.addManifestAttributes(allAttributes);
   874         securityAttributes.addManifestAttributes(allAttributes);
   915         credentials = authenticationModule.authenticateJar(appUID,appUID,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   875         authenticationModule.authenticateJar(session, appUID,appUID,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   916         authenticationModule.addSecurityData(session, appUID, appUID);
   876         permissionGranter.grantJarPermissions(session, appUID, appUID, securityAttributes.getPermissionAttributes());
   917         permissionGranter.grantJarPermissions( appUID, appUID, securityAttributes.getPermissionAttributes(), credentials);
       
   918         blanketPermissions = permissionGranter.getBlanketPermissions(appUID);
   877         blanketPermissions = permissionGranter.getBlanketPermissions(appUID);
   919         permissionGranter.addSecurityData(session, appUID, appUID);
       
   920         assertWithTrace(checkStringArrays(blanketPermissions,
   878         assertWithTrace(checkStringArrays(blanketPermissions,
   921                                           new String[] {UserSecuritySettingsImpl.getLocalizedName(UserSecuritySettings.NET_ACCESS_SETTINGS),
   879                                           new String[] {UserSecuritySettingsImpl.getLocalizedName(UserSecuritySettings.NET_ACCESS_SETTINGS),
   922                                                         UserSecuritySettingsImpl.getLocalizedName(UserSecuritySettings.READ_USER_DATA_ACCESS_SETTINGS)
   880                                                         UserSecuritySettingsImpl.getLocalizedName(UserSecuritySettings.READ_USER_DATA_ACCESS_SETTINGS)
   923                                                        }));
   881                                                        }));
   924         // put the permissions to blanket and re-install the same suite with same permissions -> check that there are no blanket permissions returned
   882         // put the permissions to blanket and re-install the same suite with same permissions -> check that there are no blanket permissions returned
   934         permissionGranter.grantJadPermissions(appUID, appUID, securityAttributes.getPermissionAttributes(), credentials);
   892         permissionGranter.grantJadPermissions(appUID, appUID, securityAttributes.getPermissionAttributes(), credentials);
   935         allAttributes.clear();
   893         allAttributes.clear();
   936         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   894         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   937         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.wireless.messaging.sms.send,javax.microedition.io.Connector.file.read,javax.microedition.io.Connector.http"));
   895         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.wireless.messaging.sms.send,javax.microedition.io.Connector.file.read,javax.microedition.io.Connector.http"));
   938         securityAttributes.addManifestAttributes(allAttributes);
   896         securityAttributes.addManifestAttributes(allAttributes);
   939         credentials = authenticationModule.authenticateJar(appUID,appUID,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   897         authenticationModule.authenticateJar(session, appUID,appUID,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   940         authenticationModule.addSecurityData(session, appUID, appUID);
   898         permissionGranter.grantJarPermissions(session, appUID, appUID, securityAttributes.getPermissionAttributes());
   941         permissionGranter.grantJarPermissions( appUID, appUID, securityAttributes.getPermissionAttributes(), credentials);
       
   942         blanketPermissions = permissionGranter.getBlanketPermissions(appUID);
   899         blanketPermissions = permissionGranter.getBlanketPermissions(appUID);
   943         permissionGranter.addSecurityData(session, appUID, appUID);
       
   944         assertWithTrace(blanketPermissions == null);
   900         assertWithTrace(blanketPermissions == null);
   945         // change some settings to e.g. Session and reinstall the same suite with same permissions -> check that only the settings which are not Blanket (due to being changed) are returned
   901         // change some settings to e.g. Session and reinstall the same suite with same permissions -> check that only the settings which are not Blanket (due to being changed) are returned
   946         storage.writeUserSecuritySettings(appUID, "Messaging", UserSecuritySettings.SESSION_INTERACTION_MODE);
   902         storage.writeUserSecuritySettings(appUID, "Messaging", UserSecuritySettings.SESSION_INTERACTION_MODE);
   947         allAttributes.clear();
   903         allAttributes.clear();
   948         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   904         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   955         permissionGranter.grantJadPermissions(appUID, appUID, securityAttributes.getPermissionAttributes(), credentials);
   911         permissionGranter.grantJadPermissions(appUID, appUID, securityAttributes.getPermissionAttributes(), credentials);
   956         allAttributes.clear();
   912         allAttributes.clear();
   957         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   913         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   958         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.wireless.messaging.sms.send,javax.microedition.io.Connector.file.read,javax.microedition.io.Connector.http"));
   914         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.wireless.messaging.sms.send,javax.microedition.io.Connector.file.read,javax.microedition.io.Connector.http"));
   959         securityAttributes.addManifestAttributes(allAttributes);
   915         securityAttributes.addManifestAttributes(allAttributes);
   960         credentials = authenticationModule.authenticateJar(appUID,appUID,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   916         authenticationModule.authenticateJar(session, appUID,appUID,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
   961         authenticationModule.addSecurityData(session, appUID, appUID);
   917         permissionGranter.grantJarPermissions(session, appUID, appUID, securityAttributes.getPermissionAttributes());
   962         permissionGranter.grantJarPermissions( appUID, appUID, securityAttributes.getPermissionAttributes(), credentials);
       
   963         blanketPermissions = permissionGranter.getBlanketPermissions(appUID);
   918         blanketPermissions = permissionGranter.getBlanketPermissions(appUID);
   964         permissionGranter.addSecurityData(session, appUID, appUID);
       
   965         assertWithTrace(checkStringArrays(blanketPermissions,
   919         assertWithTrace(checkStringArrays(blanketPermissions,
   966                                           new String[] {UserSecuritySettingsImpl.getLocalizedName(UserSecuritySettings.MESSAGING_SETTINGS)}));
   920                                           new String[] {UserSecuritySettingsImpl.getLocalizedName(UserSecuritySettings.MESSAGING_SETTINGS)}));
   967         // upgrade tests for legacy suites
   921         // upgrade tests for legacy suites
   968         upgradeTests(true);
   922         upgradeTests(true);
   969         // upgrade tests for MIDP3 suites
   923         // upgrade tests for MIDP3 suites
   992         permissionGranter.grantJadPermissions(appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
   946         permissionGranter.grantJadPermissions(appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
   993         allAttributes.clear();
   947         allAttributes.clear();
   994         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   948         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   995         allAttributes.put(PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.http,javax.wireless.messaging.sms.send"));
   949         allAttributes.put(PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.http,javax.wireless.messaging.sms.send"));
   996         securityAttributes.addManifestAttributes(allAttributes);
   950         securityAttributes.addManifestAttributes(allAttributes);
   997         permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
   951         permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
   998         permissionGranter.getBlanketPermissions(appUID);
   952         permissionGranter.getBlanketPermissions(appUID);
   999         assertTrue(permissionGranter.getBlanketPermissionsDetails(appUID) == null);
   953         assertTrue(permissionGranter.getBlanketPermissionsDetails(appUID) == null);
  1000         permissionGranter.addSecurityData(session, appUID, null);
       
  1001         // getBlanketPermissionsDetails for Multimedia Read User Data -> no details
   954         // getBlanketPermissionsDetails for Multimedia Read User Data -> no details
  1002         permissionGranter.removeSecurityData(session, appUID);
   955         permissionGranter.removeSecurityData(session, appUID);
  1003         storage.removeAuthenticationStorageData(appUID);
   956         storage.removeAuthenticationStorageData(appUID);
  1004         permissionGranter.removeSecurityData(session, appUID);
   957         permissionGranter.removeSecurityData(session, appUID);
  1005         authData = new AuthenticationStorageData("IdentifiedThirdParty", "ITDP", null, null, null, null);
   958         authData = new AuthenticationStorageData("IdentifiedThirdParty", "ITDP", null, null, null, null);
  1016         permissionGranter.grantJadPermissions(appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
   969         permissionGranter.grantJadPermissions(appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
  1017         allAttributes.clear();
   970         allAttributes.clear();
  1018         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   971         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
  1019         allAttributes.put(PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.media.control.RecordControl,javax.microedition.io.Connector.file.read"));
   972         allAttributes.put(PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.media.control.RecordControl,javax.microedition.io.Connector.file.read"));
  1020         securityAttributes.addManifestAttributes(allAttributes);
   973         securityAttributes.addManifestAttributes(allAttributes);
  1021         permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
   974         permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
  1022         permissionGranter.getBlanketPermissions(appUID);
   975         permissionGranter.getBlanketPermissions(appUID);
  1023         permissionGranter.addSecurityData(session, appUID, null);
       
  1024         assertTrue(permissionGranter.getBlanketPermissionsDetails(appUID) == null);
   976         assertTrue(permissionGranter.getBlanketPermissionsDetails(appUID) == null);
  1025         // getBlanketPermissionsDetails for Multimedia, Local Connectivity -> privacy details
   977         // getBlanketPermissionsDetails for Multimedia, Local Connectivity -> privacy details
  1026         permissionGranter.removeSecurityData(session, appUID);
   978         permissionGranter.removeSecurityData(session, appUID);
  1027         storage.removeAuthenticationStorageData(appUID);
   979         storage.removeAuthenticationStorageData(appUID);
  1028         permissionGranter.removeSecurityData(session, appUID);
   980         permissionGranter.removeSecurityData(session, appUID);
  1040         permissionGranter.grantJadPermissions(appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
   992         permissionGranter.grantJadPermissions(appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
  1041         allAttributes.clear();
   993         allAttributes.clear();
  1042         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
   994         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
  1043         allAttributes.put(PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.media.control.RecordControl,javax.microedition.io.Connector.bluetooth.client"));
   995         allAttributes.put(PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.media.control.RecordControl,javax.microedition.io.Connector.bluetooth.client"));
  1044         securityAttributes.addManifestAttributes(allAttributes);
   996         securityAttributes.addManifestAttributes(allAttributes);
  1045         permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
   997         permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
  1046         permissionGranter.getBlanketPermissions(appUID);
   998         permissionGranter.getBlanketPermissions(appUID);
  1047         permissionGranter.addSecurityData(session, appUID, null);
       
  1048         String blanketDetails = permissionGranter.getBlanketPermissionsDetails(appUID);
   999         String blanketDetails = permissionGranter.getBlanketPermissionsDetails(appUID);
  1049         assertTrue("qtn_java_settings_inst_query_perm_sec".equals(blanketDetails)
  1000         assertTrue("qtn_java_settings_inst_query_perm_sec".equals(blanketDetails) 
  1050             || "Allowing these permissions may result in compromised privacy".equals(
  1001             || "Allowing these permissions may result in compromised privacy".equals(
  1051             blanketDetails));
  1002             blanketDetails));
  1052         // getBlanketPermissionsDetails for Messaging, Multimedia -> net details
  1003         // getBlanketPermissionsDetails for Messaging, Multimedia -> net details
  1053         permissionGranter.removeSecurityData(session, appUID);
  1004         permissionGranter.removeSecurityData(session, appUID);
  1054         storage.removeAuthenticationStorageData(appUID);
  1005         storage.removeAuthenticationStorageData(appUID);
  1067         permissionGranter.grantJadPermissions(appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
  1018         permissionGranter.grantJadPermissions(appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
  1068         allAttributes.clear();
  1019         allAttributes.clear();
  1069         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
  1020         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
  1070         allAttributes.put(PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.media.control.RecordControl,javax.wireless.messaging.sms.send"));
  1021         allAttributes.put(PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.media.control.RecordControl,javax.wireless.messaging.sms.send"));
  1071         securityAttributes.addManifestAttributes(allAttributes);
  1022         securityAttributes.addManifestAttributes(allAttributes);
  1072         permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
  1023         permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
  1073         permissionGranter.getBlanketPermissions(appUID);
  1024         permissionGranter.getBlanketPermissions(appUID);
  1074         permissionGranter.addSecurityData(session, appUID, null);
       
  1075         blanketDetails = permissionGranter.getBlanketPermissionsDetails(appUID);
  1025         blanketDetails = permissionGranter.getBlanketPermissionsDetails(appUID);
  1076         assertTrue("qtn_java_settings_inst_query_perm_net".equals(blanketDetails)
  1026         assertTrue("qtn_java_settings_inst_query_perm_net".equals(blanketDetails) 
  1077             || "Allowing these permissions may result in compromised privacy or increased network usage costs".equals(
  1027             || "Allowing these permissions may result in compromised privacy or increased network usage costs".equals(
  1078             blanketDetails));
  1028             blanketDetails));
  1079     }
  1029     }
  1080 
  1030 
  1081     private void upgradeTests(boolean legacySuites)
  1031     private void upgradeTests(boolean legacySuites)
  1106         upgradeDomain(ProtectionDomain.getManufacturerDomain(), ProtectionDomain.getManufacturerDomain(), false, legacySuites);
  1056         upgradeDomain(ProtectionDomain.getManufacturerDomain(), ProtectionDomain.getManufacturerDomain(), false, legacySuites);
  1107     }
  1057     }
  1108 
  1058 
  1109     private void upgradeDomain(ProtectionDomain domain1, ProtectionDomain domain2, boolean expectToFail, boolean legacySuite)
  1059     private void upgradeDomain(ProtectionDomain domain1, ProtectionDomain domain2, boolean expectToFail, boolean legacySuite)
  1110     {
  1060     {
  1111         AuthenticationCredentials[] credentials;
       
  1112         boolean success1 = false;
  1061         boolean success1 = false;
  1113         boolean success2 = false;
  1062         boolean success2 = false;
  1114         storage.removeAuthenticationStorageData(appUID);
  1063         storage.removeAuthenticationStorageData(appUID);
  1115         permissionGranter.removeSecurityData(session,appUID);
  1064         permissionGranter.removeSecurityData(session,appUID);
  1116         PermissionResolver.testClearCache();
  1065         PermissionResolver.testClearCache();
  1130                                          "MicroEdition-Profile"));
  1079                                          "MicroEdition-Profile"));
  1131         appPackageEntry.addAttribute(new StorageAttribute(
  1080         appPackageEntry.addAttribute(new StorageAttribute(
  1132                                          StorageNames.VALUE,
  1081                                          StorageNames.VALUE,
  1133                                          (legacySuite ? "MIDP-2.0" : "MIDP-3.0")));
  1082                                          (legacySuite ? "MIDP-2.0" : "MIDP-3.0")));
  1134         session.write(StorageNames.APPLICATION_PACKAGE_ATTRIBUTES_TABLE, appPackageEntry);
  1083         session.write(StorageNames.APPLICATION_PACKAGE_ATTRIBUTES_TABLE, appPackageEntry);
  1135         credentials = authenticationModule.authenticateJar(appUID, null, domain1, TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar");
  1084         authenticationModule.authenticateJar(session, appUID, null, domain1, TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar");
  1136         authenticationModule.addSecurityData(session, appUID, null);
  1085         permissionGranter.grantJarPermissions(session, appUID, null, domain1);
  1137         permissionGranter.grantJarPermissions(appUID, null, domain1);
       
  1138         blanketPermissions = permissionGranter.getBlanketPermissions(appUID);
  1086         blanketPermissions = permissionGranter.getBlanketPermissions(appUID);
  1139         permissionGranter.addSecurityData(session, appUID, null);
       
  1140         signingCerts = authenticationModule.getCertificatesDetails(session, appUID);
  1087         signingCerts = authenticationModule.getCertificatesDetails(session, appUID);
  1141         success1 = (blanketPermissions == null && signingCerts == null);
  1088         success1 = (blanketPermissions == null && signingCerts == null);
  1142         ac.checkPermission(new java.util.PropertyPermission("microedition.version", "read"));
  1089         ac.checkPermission(new java.util.PropertyPermission("microedition.version", "read"));
  1143         grantedPermissions = storage.readGrantedPermissions(appUID);
  1090         grantedPermissions = storage.readGrantedPermissions(appUID);
  1144         assertWithTrace(PermissionGranterTests.checkGrantedPermissions(grantedPermissions, PermissionGranterTests.getPolicyPermissions(domain1.getName()), getExtPermissions(domain1.getCategory())));
  1091         assertWithTrace(PermissionGranterTests.checkGrantedPermissions(grantedPermissions, PermissionGranterTests.getPolicyPermissions(domain1.getName()), getExtPermissions(domain1.getCategory())));
  1145         String domainCategory = authenticationModule.getProtectionDomainCategory(session, appUID);
  1092         String domainCategory = authenticationModule.getProtectionDomainCategory(session, appUID);
  1146         assertWithTrace(domainCategory.equals(domain1.getCategory()));
  1093         assertWithTrace(domainCategory.equals(domain1.getCategory()));
  1147         try
  1094         try
  1148         {
  1095         {
  1149             credentials = authenticationModule.authenticateJar(appUID, appUID, domain2, TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar");
  1096             authenticationModule.authenticateJar(session, appUID, appUID, domain2, TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar");
  1150             authenticationModule.addSecurityData(session, appUID, appUID);
       
  1151             assertWithTrace(!expectToFail);
  1097             assertWithTrace(!expectToFail);
  1152         }
  1098         }
  1153         catch (InstallerSecurityException e)
  1099         catch (InstallerSecurityException e)
  1154         {
  1100         {
  1155             assertWithTrace(expectToFail);
  1101             assertWithTrace(expectToFail);
  1156             assertWithTrace(e.getOtaStatusCode() == OtaStatusCode.APPLICATION_AUTHORIZATION_FAILURE
  1102             assertWithTrace(e.getOtaStatusCode() == OtaStatusCode.APPLICATION_AUTHORIZATION_FAILURE
  1157                             && e.getShortMessage().equals(errorMessage.get(InstallerErrorMessage.INST_AUTHORIZATION_ERR, null))
  1103                             && e.getShortMessage().equals(errorMessage.get(InstallerErrorMessage.INST_AUTHORIZATION_ERR, null))
  1158                             && e.getDetailedMessage().equals(detailedErrorMessage.get(InstallerDetailedErrorMessage.DIFFERENT_SIGNERS, null)));
  1104                             && e.getDetailedMessage().equals(detailedErrorMessage.get(InstallerDetailedErrorMessage.DIFFERENT_SIGNERS, null)));
  1159             return;
  1105             return;
  1160         }
  1106         }
  1161         permissionGranter.grantJarPermissions(appUID,appUID, domain2);
  1107         permissionGranter.grantJarPermissions(session, appUID,appUID, domain2);
  1162         blanketPermissions = permissionGranter.getBlanketPermissions(appUID);
  1108         blanketPermissions = permissionGranter.getBlanketPermissions(appUID);
  1163         permissionGranter.addSecurityData(session, appUID, appUID);
       
  1164         signingCerts = authenticationModule.getCertificatesDetails(session, appUID);
  1109         signingCerts = authenticationModule.getCertificatesDetails(session, appUID);
  1165         success2 = (blanketPermissions == null && signingCerts == null);
  1110         success2 = (blanketPermissions == null && signingCerts == null);
  1166         assertWithTrace(success1 == true && success2 == true);
  1111         assertWithTrace(success1 == true && success2 == true);
  1167         grantedPermissions = storage.readGrantedPermissions(appUID);
  1112         grantedPermissions = storage.readGrantedPermissions(appUID);
  1168         assertWithTrace(PermissionGranterTests.checkGrantedPermissions(grantedPermissions, PermissionGranterTests.getPolicyPermissions(domain2.getName()), getExtPermissions(domain2.getCategory())));
  1113         assertWithTrace(PermissionGranterTests.checkGrantedPermissions(grantedPermissions, PermissionGranterTests.getPolicyPermissions(domain2.getName()), getExtPermissions(domain2.getCategory())));