16e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrompackage org.bouncycastle.util.io.pem;
26e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom
36e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrompublic class PemHeader
46e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom{
56e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    private String name;
66e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    private String value;
76e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom
86e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    public PemHeader(String name, String value)
96e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    {
106e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        this.name = name;
116e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        this.value = value;
126e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    }
136e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom
146e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    public String getName()
156e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    {
166e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        return name;
176e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    }
186e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom
196e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    public String getValue()
206e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    {
216e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        return value;
226e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    }
236e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom
246e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    public int hashCode()
256e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    {
266e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        return getHashCode(this.name) + 31 * getHashCode(this.value);
276e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    }
286e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom
296e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    public boolean equals(Object o)
306e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    {
316e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        if (!(o instanceof PemHeader))
326e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        {
336e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom            return false;
346e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        }
356e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom
366e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        PemHeader other = (PemHeader)o;
376e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom
386e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        return other == this || (isEqual(this.name, other.name) && isEqual(this.value, other.value));
396e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    }
406e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom
416e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    private int getHashCode(String s)
426e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    {
436e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        if (s == null)
446e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        {
456e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom            return 1;
466e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        }
476e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom
486e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        return s.hashCode();
496e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    }
506e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom
516e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    private boolean isEqual(String s1, String s2)
526e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    {
536e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        if (s1 == s2)
546e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        {
556e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom            return true;
566e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        }
576e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom
586e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        if (s1 == null || s2 == null)
596e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        {
606e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom            return false;
616e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        }
626e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom
636e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        return s1.equals(s2);
646e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    }
656e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom
666e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom}
67