summaryrefslogtreecommitdiffstats
path: root/libjava/classpath/gnu/javax/crypto/key/IncomingMessage.java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/classpath/gnu/javax/crypto/key/IncomingMessage.java')
-rw-r--r--libjava/classpath/gnu/javax/crypto/key/IncomingMessage.java114
1 files changed, 38 insertions, 76 deletions
diff --git a/libjava/classpath/gnu/javax/crypto/key/IncomingMessage.java b/libjava/classpath/gnu/javax/crypto/key/IncomingMessage.java
index e04c85399fc..9701d80a79d 100644
--- a/libjava/classpath/gnu/javax/crypto/key/IncomingMessage.java
+++ b/libjava/classpath/gnu/javax/crypto/key/IncomingMessage.java
@@ -58,30 +58,22 @@ import java.security.PrivateKey;
import java.security.PublicKey;
/**
- * <p>An implementation of an incoming message for use with key agreement
- * protocols.</p>
+ * An implementation of an incoming message for use with key agreement
+ * protocols.
*/
public class IncomingMessage
{
-
- // Constants and variables
- // -------------------------------------------------------------------------
-
/** The internal buffer stream containing the message's contents. */
protected ByteArrayInputStream in;
-
/** The length of the message contents, according to its 4-byte header. */
protected int length;
- // Constructor(s)
- // -------------------------------------------------------------------------
-
/**
- * <p>Constructs an incoming message given the message's encoded form,
- * including its header bytes.</p>
- *
+ * Constructs an incoming message given the message's encoded form, including
+ * its header bytes.
+ *
* @param b the encoded form, including the header bytes, of an incoming
- * message.
+ * message.
* @throws KeyAgreementException if the buffer is malformed.
*/
public IncomingMessage(byte[] b) throws KeyAgreementException
@@ -89,15 +81,13 @@ public class IncomingMessage
this();
if (b.length < 4)
- {
- throw new KeyAgreementException("message header too short");
- }
- length = b[0] << 24 | (b[1] & 0xFF) << 16 | (b[2] & 0xFF) << 8
- | (b[3] & 0xFF);
+ throw new KeyAgreementException("message header too short");
+ length = b[0] << 24
+ | (b[1] & 0xFF) << 16
+ | (b[2] & 0xFF) << 8
+ | (b[3] & 0xFF);
if (length > Registry.SASL_BUFFER_MAX_LIMIT || length < 0)
- {
- throw new KeyAgreementException("message size limit exceeded");
- }
+ throw new KeyAgreementException("message size limit exceeded");
in = new ByteArrayInputStream(b, 4, length);
}
@@ -107,16 +97,13 @@ public class IncomingMessage
super();
}
- // Class methods
- // -------------------------------------------------------------------------
-
/**
- * <p>Returns an instance of a message given its encoded contents, excluding
- * the message's header bytes.</p>
- *
- * <p>Calls the method with the same name and three arguments as:
+ * Returns an instance of a message given its encoded contents, excluding the
+ * message's header bytes.
+ * <p>
+ * Calls the method with the same name and three arguments as:
* <code>getInstance(raw, 0, raw.length)</code>.
- *
+ *
* @param raw the encoded form, excluding the header bytes.
* @return a new instance of <code>IncomingMessage</code>.
*/
@@ -126,9 +113,9 @@ public class IncomingMessage
}
/**
- * <p>Returns an instance of a message given its encoded contents, excluding
- * the message's header bytes.</p>
- *
+ * Returns an instance of a message given its encoded contents, excluding the
+ * message's header bytes.
+ *
* @param raw the encoded form, excluding the header bytes.
* @param offset offset where to start using raw bytes from.
* @param len number of bytes to use.
@@ -142,8 +129,8 @@ public class IncomingMessage
}
/**
- * <p>Converts two octets into the number that they represent.</p>
- *
+ * Converts two octets into the number that they represent.
+ *
* @param b the two octets.
* @return the length.
*/
@@ -151,32 +138,27 @@ public class IncomingMessage
{
int result = (b[0] & 0xFF) << 8 | (b[1] & 0xFF);
if (result > Registry.SASL_TWO_BYTE_MAX_LIMIT)
- {
- throw new KeyAgreementException("encoded MPI size limit exceeded");
- }
+ throw new KeyAgreementException("encoded MPI size limit exceeded");
return result;
}
/**
- * <p>Converts four octets into the number that they represent.</p>
- *
+ * Converts four octets into the number that they represent.
+ *
* @param b the four octets.
* @return the length.
*/
public static int fourBytesToLength(byte[] b) throws KeyAgreementException
{
- int result = b[0] << 24 | (b[1] & 0xFF) << 16 | (b[2] & 0xFF) << 8
- | (b[3] & 0xFF);
+ int result = b[0] << 24
+ | (b[1] & 0xFF) << 16
+ | (b[2] & 0xFF) << 8
+ | (b[3] & 0xFF);
if (result > Registry.SASL_FOUR_BYTE_MAX_LIMIT || result < 0)
- {
- throw new KeyAgreementException("encoded entity size limit exceeded");
- }
+ throw new KeyAgreementException("encoded entity size limit exceeded");
return result;
}
- // Instance methods
- // -------------------------------------------------------------------------
-
public boolean hasMoreElements()
{
return (in.available() > 0);
@@ -195,18 +177,15 @@ public class IncomingMessage
{
if (in.available() < 5)
throw new KeyAgreementException("not enough bytes for a public key in message");
-
byte[] elementLengthBytes = new byte[4];
in.read(elementLengthBytes, 0, 4);
int elementLength = fourBytesToLength(elementLengthBytes);
if (in.available() < elementLength)
throw new KeyAgreementException("illegal public key encoding");
-
int keyTypeAndFormatID = in.read() & 0xFF;
elementLength--;
byte[] kb = new byte[elementLength];
in.read(kb, 0, elementLength);
-
// instantiate the right codec and decode
IKeyPairCodec kpc = getKeyPairCodec(keyTypeAndFormatID);
return kpc.decodePublicKey(kb);
@@ -225,66 +204,50 @@ public class IncomingMessage
{
if (in.available() < 5)
throw new KeyAgreementException("not enough bytes for a private key in message");
-
byte[] elementLengthBytes = new byte[4];
in.read(elementLengthBytes, 0, 4);
int elementLength = fourBytesToLength(elementLengthBytes);
if (in.available() < elementLength)
throw new KeyAgreementException("illegal private key encoding");
-
int keyTypeAndFormatID = in.read() & 0xFF;
elementLength--;
byte[] kb = new byte[elementLength];
in.read(kb, 0, elementLength);
-
// instantiate the right codec and decode
IKeyPairCodec kpc = getKeyPairCodec(keyTypeAndFormatID);
return kpc.decodePrivateKey(kb);
}
/**
- * <p>Decodes an MPI from the current message's contents.</p>
- *
+ * Decodes an MPI from the current message's contents.
+ *
* @return a native representation of an MPI.
* @throws KeyAgreementException if an encoding exception occurs during the
- * operation.
+ * operation.
*/
public BigInteger readMPI() throws KeyAgreementException
{
if (in.available() < 2)
- {
- throw new KeyAgreementException(
- "not enough bytes for an MPI in message");
- }
+ throw new KeyAgreementException("not enough bytes for an MPI in message");
byte[] elementLengthBytes = new byte[2];
in.read(elementLengthBytes, 0, 2);
int elementLength = twoBytesToLength(elementLengthBytes);
if (in.available() < elementLength)
- {
- throw new KeyAgreementException("illegal MPI encoding");
- }
-
+ throw new KeyAgreementException("illegal MPI encoding");
byte[] element = new byte[elementLength];
in.read(element, 0, element.length);
-
return new BigInteger(1, element);
}
public String readString() throws KeyAgreementException
{
if (in.available() < 2)
- {
- throw new KeyAgreementException(
- "not enough bytes for a text in message");
- }
+ throw new KeyAgreementException("not enough bytes for a text in message");
byte[] elementLengthBytes = new byte[2];
in.read(elementLengthBytes, 0, 2);
int elementLength = twoBytesToLength(elementLengthBytes);
if (in.available() < elementLength)
- {
- throw new KeyAgreementException("illegal text encoding");
- }
-
+ throw new KeyAgreementException("illegal text encoding");
byte[] element = new byte[elementLength];
in.read(element, 0, element.length);
String result = null;
@@ -296,7 +259,6 @@ public class IncomingMessage
{
throw new KeyAgreementException("unxupported UTF8 encoding", x);
}
-
return result;
}
@@ -353,4 +315,4 @@ public class IncomingMessage
+ formatID);
}
}
-} \ No newline at end of file
+}
OpenPOWER on IntegriCloud