01: // Copyright (c) 1999-2004 Brian Wellington (bwelling@xbill.org)
02:
03: package org.xbill.DNS.security;
04:
05: import java.math.*;
06: import java.security.interfaces.*;
07:
08: /**
09: * A stub implementation of a DSA (Digital Signature Algorithm) public key
10: *
11: * @author Brian Wellington
12: */
13:
14: class DSAPubKey implements DSAPublicKey {
15:
16: static class SimpleDSAParams implements DSAParams {
17: private BigInteger P, Q, G;
18:
19: public SimpleDSAParams(BigInteger p, BigInteger q, BigInteger g) {
20: P = p;
21: Q = q;
22: G = g;
23: }
24:
25: public BigInteger getP() {
26: return P;
27: }
28:
29: public BigInteger getQ() {
30: return Q;
31: }
32:
33: public BigInteger getG() {
34: return G;
35: }
36: }
37:
38: private DSAParams params;
39: private BigInteger Y;
40:
41: /** Create a DSA public key from its parts */
42: public DSAPubKey(BigInteger p, BigInteger q, BigInteger g,
43: BigInteger y) {
44: params = (DSAParams) new SimpleDSAParams(p, q, g);
45: Y = y;
46: }
47:
48: /** Obtain the public value of a DSA public key */
49: public BigInteger getY() {
50: return Y;
51: }
52:
53: /** Obtain the parameters of a DSA public key */
54: public DSAParams getParams() {
55: return params;
56: }
57:
58: /** Obtain the algorithm of a DSA public key */
59: public String getAlgorithm() {
60: return "DSA";
61: }
62:
63: /** Obtain the format of a DSA public key (unimplemented) */
64: public String getFormat() {
65: return null;
66: }
67:
68: /** Obtain the encoded representation of a DSA public key (unimplemented) */
69: public byte[] getEncoded() {
70: return null;
71: }
72:
73: }
|