ECFieldFp.java revision 2ad60cfc28e14ee8f0bb038720836a4696c478ad
1/* 2 * Licensed to the Apache Software Foundation (ASF) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * The ASF licenses this file to You under the Apache License, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 18/** 19* @author Vladimir N. Molotkov 20* @version $Revision$ 21*/ 22 23package java.security.spec; 24 25import java.math.BigInteger; 26 27import org.apache.harmony.security.internal.nls.Messages; 28 29/** 30 * @com.intel.drl.spec_ref 31 * 32 */ 33public class ECFieldFp implements ECField { 34 // Prime 35 private final BigInteger p; 36 37 /** 38 * @com.intel.drl.spec_ref 39 */ 40 public ECFieldFp(BigInteger p) { 41 this.p = p; 42 43 if (this.p == null) { 44 throw new NullPointerException(Messages.getString("security.83", "p")); //$NON-NLS-1$ //$NON-NLS-2$ 45 } 46 if (this.p.signum() != 1) { 47 throw new IllegalArgumentException(Messages.getString("security.86", "p")); //$NON-NLS-1$ //$NON-NLS-2$ 48 } 49 } 50 51 /** 52 * @com.intel.drl.spec_ref 53 */ 54 public int getFieldSize() { 55 return p.bitLength(); 56 } 57 58 /** 59 * @com.intel.drl.spec_ref 60 */ 61 public BigInteger getP() { 62 return p; 63 } 64 65 /** 66 * @com.intel.drl.spec_ref 67 */ 68 public boolean equals(Object obj) { 69 // object equals itself 70 if (this == obj) { 71 return true; 72 } 73 if (obj instanceof ECFieldFp) { 74 return (this.p.equals(((ECFieldFp)obj).p)); 75 } 76 return false; 77 } 78 79 /** 80 * @com.intel.drl.spec_ref 81 */ 82 public int hashCode() { 83 return p.hashCode(); 84 } 85} 86