summaryrefslogtreecommitdiffstats
path: root/pki/base/util/src/netscape/security/x509/AlgIdDSA.java
diff options
context:
space:
mode:
Diffstat (limited to 'pki/base/util/src/netscape/security/x509/AlgIdDSA.java')
-rw-r--r--pki/base/util/src/netscape/security/x509/AlgIdDSA.java185
1 files changed, 0 insertions, 185 deletions
diff --git a/pki/base/util/src/netscape/security/x509/AlgIdDSA.java b/pki/base/util/src/netscape/security/x509/AlgIdDSA.java
deleted file mode 100644
index 0a64ad37b..000000000
--- a/pki/base/util/src/netscape/security/x509/AlgIdDSA.java
+++ /dev/null
@@ -1,185 +0,0 @@
-// --- BEGIN COPYRIGHT BLOCK ---
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; version 2 of the License.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this program; if not, write to the Free Software Foundation, Inc.,
-// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-//
-// (C) 2007 Red Hat, Inc.
-// All rights reserved.
-// --- END COPYRIGHT BLOCK ---
-package netscape.security.x509;
-
-import java.io.IOException;
-import java.math.BigInteger;
-import java.security.ProviderException;
-import java.security.interfaces.DSAParams;
-
-import netscape.security.util.BigInt;
-import netscape.security.util.DerOutputStream;
-import netscape.security.util.DerValue;
-
-/**
- * This class identifies DSS/DSA Algorithm variants, which are distinguished
- * by using different algorithm parameters <em>P, Q, G</em>. It uses the
- * NIST/IETF standard DER encoding. These are used to implement the Digital
- * Signature Standard (DSS), FIPS 186.
- *
- * <P>
- * <em><b>NOTE:</b> At this time, DSS/DSA Algorithm IDs must always
- * include these parameters. Use of DSS/DSA in modes where parameters are
- * either implicit (e.g. a default applicable to a site or a larger scope),
- * or are derived from some Certificate Authority's DSS certificate, is
- * not currently supported. </em>
- *
- * @version 1.31
- * @author David Brownell
- */
-public final class AlgIdDSA extends AlgorithmId implements DSAParams {
- /**
- *
- */
- private static final long serialVersionUID = 5978220691806461631L;
- /*
- * The three unsigned integer parameters.
- */
- private BigInteger p, q, g;
-
- /** Returns the DSS/DSA parameter "P" */
- public BigInteger getP() {
- return p;
- }
-
- /** Returns the DSS/DSA parameter "Q" */
- public BigInteger getQ() {
- return q;
- }
-
- /** Returns the DSS/DSA parameter "G" */
- public BigInteger getG() {
- return g;
- }
-
- /**
- * Default constructor. The OID and parameters must be
- * deserialized before this algorithm ID is used.
- */
- // XXX deprecated for general use
- public AlgIdDSA() {
- }
-
- AlgIdDSA(DerValue val) throws IOException {
- super(val.getOID());
- }
-
- /**
- * Construct an AlgIdDSA from an X.509 encoded byte array.
- */
- public AlgIdDSA(byte[] encodedAlg) throws IOException {
- super(new DerValue(encodedAlg).getOID());
- }
-
- /**
- * Constructs a DSS/DSA Algorithm ID from unsigned integers that
- * define the algorithm parameters. Those integers are encoded
- * as big-endian byte arrays.
- *
- * @param p the DSS/DSA paramter "P"
- * @param q the DSS/DSA paramter "Q"
- * @param g the DSS/DSA paramter "G"
- */
- public AlgIdDSA(byte p[], byte q[], byte g[])
- throws IOException {
- this(new BigInteger(1, p),
- new BigInteger(1, q),
- new BigInteger(1, g));
- }
-
- /**
- * Constructs a DSS/DSA Algorithm ID from numeric parameters.
- *
- * @param p the DSS/DSA paramter "P"
- * @param q the DSS/DSA paramter "Q"
- * @param g the DSS/DSA paramter "G"
- */
- public AlgIdDSA(BigInteger p, BigInteger q, BigInteger g) {
- super(DSA_oid);
-
- try {
- this.p = p;
- this.q = q;
- this.g = g;
- initializeParams();
-
- } catch (IOException e) {
- /* this should not happen */
- throw new ProviderException("Construct DSS/DSA Algorithm ID");
- }
- }
-
- /**
- * Returns "DSA", indicating the Digital Signature Algorithm (DSA) as
- * defined by the Digital Signature Standard (DSS), FIPS 186.
- */
- public String getName() {
- return "DSA";
- }
-
- /*
- * For algorithm IDs which haven't been created from a DER encoded
- * value, "params" must be created.
- */
- private void initializeParams()
- throws IOException {
- DerOutputStream out = new DerOutputStream();
-
- out.putInteger(new BigInt(p.toByteArray()));
- out.putInteger(new BigInt(q.toByteArray()));
- out.putInteger(new BigInt(g.toByteArray()));
- params = new DerValue(DerValue.tag_Sequence, out.toByteArray());
- }
-
- /**
- * Parses algorithm parameters P, Q, and G. They're found
- * in the "params" member, which never needs to be changed.
- */
- protected void decodeParams()
- throws IOException {
- if (params == null || params.tag != DerValue.tag_Sequence)
- throw new IOException("DSA alg parsing error");
-
- params.data.reset();
-
- this.p = params.data.getInteger().toBigInteger();
- this.q = params.data.getInteger().toBigInteger();
- this.g = params.data.getInteger().toBigInteger();
-
- if (params.data.available() != 0)
- throw new IOException("AlgIdDSA params, extra=" +
- params.data.available());
- }
-
- /*
- * Returns a formatted string describing the parameters.
- */
- public String toString() {
- return paramsToString();
- }
-
- /*
- * Returns a string describing the parameters.
- */
- protected String paramsToString() {
- return "\n p:\n" + (new BigInt(p)).toString() +
- "\n q:\n" + (new BigInt(q)).toString() +
- "\n g:\n" + (new BigInt(g)).toString() +
- "\n";
- }
-}