01: /*
02: * @(#)RSAPublicKey.java 1.6 02/07/24 @(#)
03: *
04: * Copyright (c) 2000-2001 Sun Microsystems, Inc. All rights reserved.
05: * PROPRIETARY/CONFIDENTIAL
06: * Use is subject to license terms.
07: */
08:
09: package com.sun.portal.ksecurity;
10:
11: /**
12: * Specifies the RSA public key interface. An RSA key is not ready for
13: * us until both the modulus and exponent have been set.
14: */
15: public abstract interface RSAPublicKey extends PublicKey {
16: /**
17: * Returns the public exponent value of the key in the specified
18: * buffer. The data format is big-endian and right-aligned (the
19: * least significant bit is the least significant bit of the last
20: * byte).
21: * @param buf the output buffer where the exponent is placed
22: * @param offset offset within buf where the exponent starts
23: * @return byte length of the exponent copied into buf
24: * @see #setExponent
25: */
26: public short getExponent(byte[] buf, short offset);
27:
28: /**
29: * Returns the modulus value of the key in the specified buffer. The
30: * data format is big-endian and right-aligned (the least significant
31: * bit is the least significant bit of the last byte).
32: * @param buf the output buffer where the modulus is placed
33: * @param offset offset within buf where the modulus starts
34: * @return byte length of the modulus copied into buf
35: * @see #setModulus
36: */
37: public short getModulus(byte[] buf, short offset);
38:
39: /**
40: * Sets the public exponent value of the key. The
41: * data format is big-endian and right-aligned (the least significant
42: * bit is the least significant bit of the last byte).
43: * @param buf the input buffer containing the exponent
44: * @param offset offset within buf where the exponent starts
45: * @param len exponent length in bytes
46: * @exception CryptoException with reason code set to ILLEGAL_VALUE
47: * if the specified exponent data is inconsistent with the key size.
48: * @see #getExponent
49: */
50: public void setExponent(byte[] buf, short offset, short len)
51: throws CryptoException;
52:
53: /**
54: * Sets the modulus value of the key. The data format is big-endian
55: * and right-aligned (the least significant bit is the least
56: * significant bit of the last byte).
57: * @param buf the input buffer containing the modulus
58: * @param offset offset within buf where the modulus starts
59: * @param len modulus length in bytes
60: * @exception CryptoException with reason code set to ILLEGAL_VALUE
61: * if the specified modulus data is inconsistent with the key size.
62: * @see #getModulus
63: */
64: public void setModulus(byte[] buf, short offset, short len)
65: throws CryptoException;
66:
67: /**
68: * Checks if this RSAPublicKey has the same exponent and modulus
69: * as the specified key.
70: * @param k an RSAPublicKey against which this key is to be compared
71: * @return true if the two keys have the same exponent and modulus,
72: * false otherwise
73: */
74: public boolean equals(RSAPublicKey k);
75: }
|