001 package org.bouncycastle.jcajce.provider.config; 002 003 import cpw.mods.fml.common.Side; 004 import cpw.mods.fml.common.asm.SideOnly; 005 import java.security.BasicPermission; 006 import java.security.Permission; 007 import java.util.StringTokenizer; 008 import org.bouncycastle.util.Strings; 009 010 public class ProviderConfigurationPermission extends BasicPermission 011 { 012 private final String actions; 013 private final int permissionMask; 014 015 @SideOnly(Side.CLIENT) 016 public ProviderConfigurationPermission(String par1Str) 017 { 018 super(par1Str); 019 this.actions = "all"; 020 this.permissionMask = 15; 021 } 022 023 public ProviderConfigurationPermission(String par1Str, String par2Str) 024 { 025 super(par1Str, par2Str); 026 this.actions = par2Str; 027 this.permissionMask = this.calculateMask(par2Str); 028 } 029 030 private int calculateMask(String par1Str) 031 { 032 StringTokenizer var2 = new StringTokenizer(Strings.toLowerCase(par1Str), " ,"); 033 int var3 = 0; 034 035 while (var2.hasMoreTokens()) 036 { 037 String var4 = var2.nextToken(); 038 039 if (var4.equals("threadlocalecimplicitlyca")) 040 { 041 var3 |= 1; 042 } 043 else if (var4.equals("ecimplicitlyca")) 044 { 045 var3 |= 2; 046 } 047 else if (var4.equals("threadlocaldhdefaultparams")) 048 { 049 var3 |= 4; 050 } 051 else if (var4.equals("dhdefaultparams")) 052 { 053 var3 |= 8; 054 } 055 else if (var4.equals("all")) 056 { 057 var3 |= 15; 058 } 059 } 060 061 if (var3 == 0) 062 { 063 throw new IllegalArgumentException("unknown permissions passed to mask"); 064 } 065 else 066 { 067 return var3; 068 } 069 } 070 071 public String getActions() 072 { 073 return this.actions; 074 } 075 076 public boolean implies(Permission par1Permission) 077 { 078 if (!(par1Permission instanceof ProviderConfigurationPermission)) 079 { 080 return false; 081 } 082 else if (!this.getName().equals(par1Permission.getName())) 083 { 084 return false; 085 } 086 else 087 { 088 ProviderConfigurationPermission var2 = (ProviderConfigurationPermission)par1Permission; 089 return (this.permissionMask & var2.permissionMask) == var2.permissionMask; 090 } 091 } 092 093 public boolean equals(Object par1Obj) 094 { 095 if (par1Obj == this) 096 { 097 return true; 098 } 099 else if (!(par1Obj instanceof ProviderConfigurationPermission)) 100 { 101 return false; 102 } 103 else 104 { 105 ProviderConfigurationPermission var2 = (ProviderConfigurationPermission)par1Obj; 106 return this.permissionMask == var2.permissionMask && this.getName().equals(var2.getName()); 107 } 108 } 109 110 public int hashCode() 111 { 112 return this.getName().hashCode() + this.permissionMask; 113 } 114 }