DHValidationParameters.java revision b61a96e7ef1a78acf013bbf08fe537e5b5f129ca
1b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallampackage org.bouncycastle.crypto.params; 2b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam 3b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallampublic class DHValidationParameters 4b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam{ 5b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam private byte[] seed; 6b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam private int counter; 7b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam 8b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam public DHValidationParameters( 9b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam byte[] seed, 10b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam int counter) 11b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam { 12b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam this.seed = seed; 13b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam this.counter = counter; 14b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam } 15b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam 16b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam public boolean equals( 17b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam Object o) 18b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam { 19b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam if (!(o instanceof DHValidationParameters)) 20b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam { 21b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam return false; 22b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam } 23b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam 24b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam DHValidationParameters other = (DHValidationParameters)o; 25b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam 26b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam if (other.counter != this.counter) 27b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam { 28b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam return false; 29b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam } 30b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam 31b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam if (other.seed.length != this.seed.length) 32b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam { 33b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam return false; 34b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam } 35b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam 36b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam for (int i = 0; i != other.seed.length; i++) 37b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam { 38b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam if (other.seed[i] != this.seed[i]) 39b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam { 40b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam return false; 41b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam } 42b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam } 43b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam 44b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam return true; 45b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam } 46b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam 47b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam public int hashCode() 48b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam { 49b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam int code = counter; 50b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam 51b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam for (int i = 0; i != seed.length; i++) 52b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam { 53b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam code ^= (seed[i] & 0xff) << (i % 4); 54b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam } 55b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam 56b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam return code; 57b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam } 58b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam} 59