001package org.apache.commons.ssl.org.bouncycastle.asn1.x500.style; 002 003import org.apache.commons.ssl.org.bouncycastle.asn1.x500.RDN; 004import org.apache.commons.ssl.org.bouncycastle.asn1.x500.X500Name; 005import org.apache.commons.ssl.org.bouncycastle.asn1.x500.X500NameStyle; 006 007/** 008 * Variation of BCStyle that insists on strict ordering for equality 009 * and hashCode comparisons 010 */ 011public class BCStrictStyle 012 extends BCStyle 013{ 014 public static final X500NameStyle INSTANCE = new BCStrictStyle(); 015 016 public boolean areEqual(X500Name name1, X500Name name2) 017 { 018 RDN[] rdns1 = name1.getRDNs(); 019 RDN[] rdns2 = name2.getRDNs(); 020 021 if (rdns1.length != rdns2.length) 022 { 023 return false; 024 } 025 026 for (int i = 0; i != rdns1.length; i++) 027 { 028 if (!rdnAreEqual(rdns1[i], rdns2[i])) 029 { 030 return false; 031 } 032 } 033 034 return true; 035 } 036}