home *** CD-ROM | disk | FTP | other *** search
- package java.security;
-
- import java.io.ByteArrayInputStream;
- import java.io.IOException;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutputStream;
- import java.io.Serializable;
- import java.lang.reflect.Constructor;
- import java.security.cert.Certificate;
- import java.security.cert.CertificateEncodingException;
- import java.security.cert.CertificateException;
- import java.security.cert.CertificateFactory;
- import java.security.cert.X509Certificate;
- import java.util.ArrayList;
- import java.util.Hashtable;
-
- public final class UnresolvedPermission extends Permission implements Serializable {
- private String type;
- private String name;
- private String actions;
- private transient Certificate[] certs;
- private static final Class[] PARAMS;
- // $FF: synthetic field
- static Class class$java$lang$String;
-
- public UnresolvedPermission(String var1, String var2, String var3, Certificate[] var4) {
- super(var1);
- if (var1 == null) {
- throw new NullPointerException("type can't be null");
- } else {
- this.type = var1;
- this.name = var2;
- this.actions = var3;
- if (var4 != null) {
- for(int var5 = 0; var5 < var4.length; ++var5) {
- if (!(var4[var5] instanceof X509Certificate)) {
- this.certs = (Certificate[])var4.clone();
- break;
- }
- }
-
- if (this.certs == null) {
- int var6 = 0;
-
- int var7;
- for(var7 = 0; var6 < var4.length; ++var6) {
- ++var7;
-
- while(var6 + 1 < var4.length && ((X509Certificate)var4[var6]).getIssuerDN().equals(((X509Certificate)var4[var6 + 1]).getSubjectDN())) {
- ++var6;
- }
- }
-
- if (var7 == var4.length) {
- this.certs = (Certificate[])var4.clone();
- }
-
- if (this.certs == null) {
- ArrayList var8 = new ArrayList();
-
- for(int var9 = 0; var9 < var4.length; ++var9) {
- var8.add(var4[var9]);
-
- while(var9 + 1 < var4.length && ((X509Certificate)var4[var9]).getIssuerDN().equals(((X509Certificate)var4[var9 + 1]).getSubjectDN())) {
- ++var9;
- }
- }
-
- this.certs = new Certificate[var8.size()];
- var8.toArray(this.certs);
- }
- }
- }
-
- }
- }
-
- Permission resolve(Permission var1, Certificate[] var2) {
- if (this.certs != null) {
- if (var2 == null) {
- return null;
- }
-
- for(int var4 = 0; var4 < this.certs.length; ++var4) {
- boolean var3 = false;
-
- for(int var5 = 0; var5 < var2.length; ++var5) {
- if (this.certs[var4].equals(var2[var5])) {
- var3 = true;
- break;
- }
- }
-
- if (!var3) {
- return null;
- }
- }
- }
-
- try {
- Class var7 = var1.getClass();
- Constructor var8 = var7.getConstructor(PARAMS);
- return (Permission)var8.newInstance(this.name, this.actions);
- } catch (Exception var6) {
- return null;
- }
- }
-
- public boolean implies(Permission var1) {
- return false;
- }
-
- public boolean equals(Object var1) {
- if (var1 == this) {
- return true;
- } else if (!(var1 instanceof UnresolvedPermission)) {
- return false;
- } else {
- UnresolvedPermission var2 = (UnresolvedPermission)var1;
- if (this.type.equals(var2.type) && this.name.equals(var2.name) && this.actions.equals(var2.actions)) {
- if (this.certs.length != var2.certs.length) {
- return false;
- } else {
- for(int var3 = 0; var3 < this.certs.length; ++var3) {
- boolean var5 = false;
-
- for(int var4 = 0; var4 < var2.certs.length; ++var4) {
- if (this.certs[var3].equals(var2.certs[var4])) {
- var5 = true;
- break;
- }
- }
-
- if (!var5) {
- return false;
- }
- }
-
- for(int var6 = 0; var6 < var2.certs.length; ++var6) {
- boolean var8 = false;
-
- for(int var7 = 0; var7 < this.certs.length; ++var7) {
- if (var2.certs[var6].equals(this.certs[var7])) {
- var8 = true;
- break;
- }
- }
-
- if (!var8) {
- return false;
- }
- }
-
- return true;
- }
- } else {
- return false;
- }
- }
- }
-
- public int hashCode() {
- int var1 = this.type.hashCode();
- if (this.name != null) {
- var1 ^= this.name.hashCode();
- }
-
- if (this.actions != null) {
- var1 ^= this.actions.hashCode();
- }
-
- return var1;
- }
-
- public String getActions() {
- return "";
- }
-
- public String toString() {
- return "(unresolved " + this.type + " " + this.name + " " + this.actions + ")";
- }
-
- public PermissionCollection newPermissionCollection() {
- return new UnresolvedPermissionCollection();
- }
-
- private synchronized void writeObject(ObjectOutputStream var1) throws IOException {
- var1.defaultWriteObject();
- if (this.certs != null && this.certs.length != 0) {
- var1.writeInt(this.certs.length);
-
- for(int var2 = 0; var2 < this.certs.length; ++var2) {
- Certificate var3 = this.certs[var2];
-
- try {
- var1.writeUTF(var3.getType());
- byte[] var4 = var3.getEncoded();
- var1.writeInt(var4.length);
- var1.write(var4);
- } catch (CertificateEncodingException var5) {
- throw new IOException(((Throwable)var5).getMessage());
- }
- }
- } else {
- var1.writeInt(0);
- }
-
- }
-
- private synchronized void readObject(ObjectInputStream var1) throws IOException, ClassNotFoundException {
- Hashtable var3 = null;
- var1.defaultReadObject();
- if (this.type == null) {
- throw new NullPointerException("type can't be null");
- } else {
- int var4 = var1.readInt();
- if (var4 > 0) {
- var3 = new Hashtable(3);
- this.certs = new Certificate[var4];
- }
-
- for(int var5 = 0; var5 < var4; ++var5) {
- String var6 = var1.readUTF();
- CertificateFactory var2;
- if (var3.containsKey(var6)) {
- var2 = (CertificateFactory)var3.get(var6);
- } else {
- try {
- var2 = CertificateFactory.getInstance(var6);
- } catch (CertificateException var12) {
- throw new ClassNotFoundException("Certificate factory for " + var6 + " not found");
- }
-
- var3.put(var6, var2);
- }
-
- Object var7 = null;
-
- try {
- var13 = new byte[var1.readInt()];
- } catch (OutOfMemoryError var11) {
- throw new IOException("Certificate too big");
- }
-
- var1.readFully(var13);
- ByteArrayInputStream var8 = new ByteArrayInputStream(var13);
-
- try {
- this.certs[var5] = var2.generateCertificate(var8);
- } catch (CertificateException var10) {
- throw new IOException(((Throwable)var10).getMessage());
- }
-
- var8.close();
- }
-
- }
- }
-
- // $FF: synthetic method
- static Class class$(String var0) {
- try {
- return Class.forName(var0);
- } catch (ClassNotFoundException var2) {
- throw new NoClassDefFoundError(((Throwable)var2).getMessage());
- }
- }
-
- static {
- PARAMS = new Class[]{class$java$lang$String == null ? (class$java$lang$String = class$("java.lang.String")) : class$java$lang$String, class$java$lang$String == null ? (class$java$lang$String = class$("java.lang.String")) : class$java$lang$String};
- }
- }
-