001    /**
002     *
003     *  Licensed to the Apache Software Foundation (ASF) under one or more
004     *  contributor license agreements.  See the NOTICE file distributed with
005     *  this work for additional information regarding copyright ownership.
006     *  The ASF licenses this file to You under the Apache License, Version 2.0
007     *  (the "License"); you may not use this file except in compliance with
008     *  the License.  You may obtain a copy of the License at
009     *
010     *     http://www.apache.org/licenses/LICENSE-2.0
011     *
012     *  Unless required by applicable law or agreed to in writing, software
013     *  distributed under the License is distributed on an "AS IS" BASIS,
014     *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
015     *  See the License for the specific language governing permissions and
016     *  limitations under the License.
017     */
018    
019    package org.apache.geronimo.util.crypto.params;
020    
021    import java.math.BigInteger;
022    
023    import org.apache.geronimo.util.crypto.CipherParameters;
024    
025    public class DSAParameters
026        implements CipherParameters
027    {
028        private BigInteger              g;
029        private BigInteger              q;
030        private BigInteger              p;
031        private DSAValidationParameters validation;
032    
033        public DSAParameters(
034            BigInteger  p,
035            BigInteger  q,
036            BigInteger  g)
037        {
038            this.g = g;
039            this.p = p;
040            this.q = q;
041        }
042    
043        public DSAParameters(
044            BigInteger              p,
045            BigInteger              q,
046            BigInteger              g,
047            DSAValidationParameters params)
048        {
049            this.g = g;
050            this.p = p;
051            this.q = q;
052            this.validation = params;
053        }
054    
055        public BigInteger getP()
056        {
057            return p;
058        }
059    
060        public BigInteger getQ()
061        {
062            return q;
063        }
064    
065        public BigInteger getG()
066        {
067            return g;
068        }
069    
070        public DSAValidationParameters getValidationParameters()
071        {
072            return validation;
073        }
074    
075        public boolean equals(
076            Object  obj)
077        {
078            if (!(obj instanceof DSAParameters))
079            {
080                return false;
081            }
082    
083            DSAParameters    pm = (DSAParameters)obj;
084    
085            return (pm.getP().equals(p) && pm.getQ().equals(q) && pm.getG().equals(g));
086        }
087    }