1 /** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one or more 4 * contributor license agreements. See the NOTICE file distributed with 5 * this work for additional information regarding copyright ownership. 6 * The ASF licenses this file to You under the Apache License, Version 2.0 7 * (the "License"); you may not use this file except in compliance with 8 * the License. You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, software 13 * distributed under the License is distributed on an "AS IS" BASIS, 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 */ 18 19 package org.apache.geronimo.util.crypto.params; 20 21 import java.math.BigInteger; 22 23 import org.apache.geronimo.util.crypto.CipherParameters; 24 25 public class DHParameters 26 implements CipherParameters 27 { 28 private BigInteger g; 29 private BigInteger p; 30 private BigInteger q; 31 private int j; 32 private DHValidationParameters validation; 33 34 public DHParameters( 35 BigInteger p, 36 BigInteger g) 37 { 38 this.g = g; 39 this.p = p; 40 } 41 42 public DHParameters( 43 BigInteger p, 44 BigInteger g, 45 BigInteger q, 46 int j) 47 { 48 this.g = g; 49 this.p = p; 50 this.q = q; 51 this.j = j; 52 } 53 54 public DHParameters( 55 BigInteger p, 56 BigInteger g, 57 BigInteger q, 58 int j, 59 DHValidationParameters validation) 60 { 61 this.g = g; 62 this.p = p; 63 this.q = q; 64 this.j = j; 65 } 66 67 public BigInteger getP() 68 { 69 return p; 70 } 71 72 public BigInteger getG() 73 { 74 return g; 75 } 76 77 public BigInteger getQ() 78 { 79 return q; 80 } 81 82 /** 83 * Return the private value length in bits - if set, zero otherwise (use bitLength(P) - 1). 84 * 85 * @return the private value length in bits, zero otherwise. 86 */ 87 public int getJ() 88 { 89 return j; 90 } 91 92 public DHValidationParameters getValidationParameters() 93 { 94 return validation; 95 } 96 97 public boolean equals( 98 Object obj) 99 { 100 if (!(obj instanceof DHParameters)) 101 { 102 return false; 103 } 104 105 DHParameters pm = (DHParameters)obj; 106 107 if (this.getValidationParameters() != null) 108 { 109 if (!this.getValidationParameters().equals(pm.getValidationParameters())) 110 { 111 return false; 112 } 113 } 114 else 115 { 116 if (pm.getValidationParameters() != null) 117 { 118 return false; 119 } 120 } 121 122 if (this.getQ() != null) 123 { 124 if (!this.getQ().equals(pm.getQ())) 125 { 126 return false; 127 } 128 } 129 else 130 { 131 if (pm.getQ() != null) 132 { 133 return false; 134 } 135 } 136 137 return (j == pm.getJ()) && pm.getP().equals(p) && pm.getG().equals(g); 138 } 139 }