1b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallampackage org.bouncycastle.crypto.params;
2b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam
3c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstromimport org.bouncycastle.util.Arrays;
4c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom
5b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallampublic class DSAValidationParameters
6b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam{
7b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    private byte[]  seed;
8b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    private int     counter;
9b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam
10b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    public DSAValidationParameters(
11b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        byte[]  seed,
12b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        int     counter)
13b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    {
14b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        this.seed = seed;
15b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        this.counter = counter;
16b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    }
17b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam
18b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    public int getCounter()
19b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    {
20b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        return counter;
21b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    }
22b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam
23b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    public byte[] getSeed()
24b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    {
25b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        return seed;
26b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    }
27b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam
28c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom    public int hashCode()
29c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom    {
30c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom        return counter ^ Arrays.hashCode(seed);
31c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom    }
32c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom
33b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    public boolean equals(
34b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        Object o)
35b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    {
36b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        if (!(o instanceof DSAValidationParameters))
37b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        {
38b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam            return false;
39b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        }
40b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam
41b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        DSAValidationParameters  other = (DSAValidationParameters)o;
42b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam
43b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        if (other.counter != this.counter)
44b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        {
45b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam            return false;
46b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        }
47b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam
48c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom        return Arrays.areEqual(this.seed, other.seed);
49b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    }
50b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam}
51