16e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrompackage org.bouncycastle.asn1.x500.style; 26e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom 36e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstromimport org.bouncycastle.asn1.x500.RDN; 46e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstromimport org.bouncycastle.asn1.x500.X500Name; 570c8287138e69a98c2f950036f9f703ee37228c8Brian Carlstromimport org.bouncycastle.asn1.x500.X500NameStyle; 66e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom 76e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom/** 86e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom * Variation of BCStyle that insists on strict ordering for equality 96e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom * and hashCode comparisons 106e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom */ 116e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrompublic class BCStrictStyle 126e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom extends BCStyle 136e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom{ 1470c8287138e69a98c2f950036f9f703ee37228c8Brian Carlstrom public static final X500NameStyle INSTANCE = new BCStrictStyle(); 1570c8287138e69a98c2f950036f9f703ee37228c8Brian Carlstrom 166e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom public boolean areEqual(X500Name name1, X500Name name2) 176e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom { 186e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom RDN[] rdns1 = name1.getRDNs(); 196e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom RDN[] rdns2 = name2.getRDNs(); 206e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom 216e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom if (rdns1.length != rdns2.length) 226e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom { 236e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom return false; 246e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom } 256e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom 266e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom for (int i = 0; i != rdns1.length; i++) 276e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom { 2870c8287138e69a98c2f950036f9f703ee37228c8Brian Carlstrom if (!rdnAreEqual(rdns1[i], rdns2[i])) 296e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom { 306e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom return false; 316e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom } 326e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom } 336e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom 346e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom return true; 356e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom } 366e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom} 37