- /*
- * @(#)ECFieldFp.java 1.3 03/12/19
- *
- * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
- * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
- */
- package java.security.spec;
-
- import java.math.BigInteger;
- import java.util.Arrays;
-
- /**
- * This immutable class defines an elliptic curve (EC) prime
- * finite field.
- *
- * @see ECField
- *
- * @author Valerie Peng
- * @version 1.3, 12/19/03
- *
- * @since 1.5
- */
- public class ECFieldFp implements ECField {
-
- private BigInteger p;
-
- /**
- * Creates an elliptic curve prime finite field
- * with the specified prime <code>p</code>.
- * @param p the prime.
- * @exception NullPointerException if <code>p</code> is null.
- * @exception IllegalArgumentException if <code>p</code>
- * is not positive.
- */
- public ECFieldFp(BigInteger p) {
- if (p.signum() != 1) {
- throw new IllegalArgumentException("p is not positive");
- }
- this.p = p;
- }
-
- /**
- * Returns the field size in bits which is size of prime p
- * for this prime finite field.
- * @return the field size in bits.
- */
- public int getFieldSize() {
- return p.bitLength();
- };
-
- /**
- * Returns the prime <code>p</code> of this prime finite field.
- * @return the prime.
- */
- public BigInteger getP() {
- return p;
- }
-
- /**
- * Compares this prime finite field for equality with the
- * specified object.
- * @param obj the object to be compared.
- * @return true if <code>obj</code> is an instance
- * of ECFieldFp and the prime value match, false otherwise.
- */
- public boolean equals(Object obj) {
- if (this == obj) return true;
- if (obj instanceof ECFieldFp) {
- return (p.equals(((ECFieldFp)obj).p));
- }
- return false;
- }
-
- /**
- * Returns a hash code value for this prime finite field.
- * @return a hash code value.
- */
- public int hashCode() {
- return p.hashCode();
- }
- }