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