package com.l7tech.policy;

import com.l7tech.common.io.CertUtils;
import java.math.BigInteger;
import java.security.cert.X509Certificate;

public class CertificateInfo {
   private String a;
   private BigInteger b;
   private String c;

   public CertificateInfo() {
   }

   public CertificateInfo(X509Certificate var1) {
      this.a = CertUtils.getIssuerDN(var1);
      this.b = var1.getSerialNumber();
      this.c = CertUtils.getSubjectDN(var1);
   }

   public String getIssuerDn() {
      return this.a;
   }

   public void setIssuerDn(String var1) {
      this.a = var1;
   }

   public BigInteger getSerialNumber() {
      return this.b;
   }

   public void setSerialNumber(BigInteger var1) {
      this.b = var1;
   }

   public String getSubjectDn() {
      return this.c;
   }

   public void setSubjectDn(String var1) {
      this.c = var1;
   }

   public boolean matches(X509Certificate var1) {
      return this.getSubjectDn() != null
         && this.getIssuerDn() != null
         && this.getSerialNumber() != null
         && CertUtils.isEqualDN(CertUtils.formatDN(this.getSubjectDn()), CertUtils.getSubjectDN(var1))
         && CertUtils.isEqualDN(CertUtils.formatDN(this.getIssuerDn()), CertUtils.getIssuerDN(var1))
         && this.getSerialNumber().equals(var1.getSerialNumber());
   }

   @Override
   public boolean equals(Object var1) {
      if (this == var1) {
         return true;
      }

      if (var1 != null && this.getClass() == var1.getClass()) {
         CertificateInfo var2 = (CertificateInfo)var1;
         if (this.a != null ? this.a.equals(var2.a) : var2.a == null) {
            if (this.b != null ? this.b.equals(var2.b) : var2.b == null) {
               return this.c != null ? this.c.equals(var2.c) : var2.c == null;
            } else {
               return false;
            }
         } else {
            return false;
         }
      } else {
         return false;
      }
   }

   @Override
   public int hashCode() {
      int var1 = this.a != null ? this.a.hashCode() : 0;
      var1 = 31 * var1 + (this.b != null ? this.b.hashCode() : 0);
      return 31 * var1 + (this.c != null ? this.c.hashCode() : 0);
   }
}
