16e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrompackage org.bouncycastle.asn1.x9; 26e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom 36e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstromimport org.bouncycastle.asn1.ASN1Encodable; 46e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstromimport org.bouncycastle.asn1.ASN1TaggedObject; 56e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstromimport org.bouncycastle.asn1.DERInteger; 66e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstromimport org.bouncycastle.asn1.DERObject; 76e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom 86e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrompublic class DHPublicKey 96e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom extends ASN1Encodable 106e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom{ 116e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom private DERInteger y; 126e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom 136e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom public static DHPublicKey getInstance(ASN1TaggedObject obj, boolean explicit) 146e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom { 156e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom return getInstance(DERInteger.getInstance(obj, explicit)); 166e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom } 176e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom 186e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom public static DHPublicKey getInstance(Object obj) 196e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom { 206e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom if (obj == null || obj instanceof DHPublicKey) 216e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom { 226e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom return (DHPublicKey)obj; 236e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom } 246e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom 256e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom if (obj instanceof DERInteger) 266e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom { 276e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom return new DHPublicKey((DERInteger)obj); 286e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom } 296e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom 306e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom throw new IllegalArgumentException("Invalid DHPublicKey: " + obj.getClass().getName()); 316e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom } 326e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom 336e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom public DHPublicKey(DERInteger y) 346e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom { 356e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom if (y == null) 366e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom { 376e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom throw new IllegalArgumentException("'y' cannot be null"); 386e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom } 396e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom 406e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom this.y = y; 416e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom } 426e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom 436e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom public DERInteger getY() 446e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom { 456e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom return this.y; 466e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom } 476e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom 486e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom public DERObject toASN1Object() 496e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom { 506e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom return this.y; 516e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom } 526e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom} 53