Package org.globus.gsi.gssapi
Class SSLUtil
- java.lang.Object
-
- org.globus.gsi.gssapi.SSLUtil
-
public class SSLUtil extends Object
A collection of SSL-protocol related functions.
-
-
Constructor Summary
Constructors Constructor Description SSLUtil()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static boolean
isSSLPacket(byte[] header)
Determines if a given header is a SSL packet (has a SSL header)static boolean
isSSLv2HelloPacket(byte[] header)
Determines if a given header is a SSLv2 client or server hello packetstatic boolean
isSSLv3Packet(byte[] header)
Determines if a given header is a SSLv3 packet (has a SSL header) or a backward compatible version of TLS using the same header format.static int
read(InputStream in, byte[] buf, int off, int len)
Reads some number of bytes from the input stream.static void
readFully(InputStream in, byte[] buf, int off, int len)
Reads some number of bytes from the input stream.static byte[]
readSslMessage(InputStream in)
Reads an entire SSL message from the specified input stream.static int
toInt(byte[] buf, int off)
Converts 4 bytes to anint
at the specified offset in the given byte array.static long
toLong(byte[] buf, int off)
Converts 8 bytes to along
at the specified offset in the given byte array.static short
toShort(byte a, byte b)
Converts 2 bytes to ashort
.static int
toUnsignedShort(byte a, byte b)
Converts 2 bytes to aunsigned short
.static void
writeInt(int v, byte[] buf, int off)
Converts the specified int value into 4 bytes.
-
-
-
Method Detail
-
read
public static int read(InputStream in, byte[] buf, int off, int len) throws IOException
Reads some number of bytes from the input stream. This function reads maximum data available on the stream.- Parameters:
in
- the input stream to read the bytes from.buf
- the buffer into which read the data is read.off
- the start offset in array b at which the data is written.len
- the maximum number of bytes to read.- Throws:
IOException
- if I/O error occurs.
-
readFully
public static void readFully(InputStream in, byte[] buf, int off, int len) throws IOException
Reads some number of bytes from the input stream. This function blocks until all data is read or an I/O error occurs.- Parameters:
in
- the input stream to read the bytes from.buf
- the buffer into which read the data is read.off
- the start offset in array b at which the data is written.len
- the maximum number of bytes to read.- Throws:
IOException
- if I/O error occurs.
-
readSslMessage
public static byte[] readSslMessage(InputStream in) throws IOException
Reads an entire SSL message from the specified input stream.- Parameters:
in
- the input stream to read the SSL message from.- Returns:
- the byte array containing the SSL message
- Throws:
IOException
- if I/O error occurs.
-
isSSLPacket
public static final boolean isSSLPacket(byte[] header)
Determines if a given header is a SSL packet (has a SSL header)- Returns:
- true if the header is a SSL header. False, otherwise.
-
isSSLv3Packet
public static final boolean isSSLv3Packet(byte[] header)
Determines if a given header is a SSLv3 packet (has a SSL header) or a backward compatible version of TLS using the same header format.- Returns:
- true if the header is a SSLv3 header. False, otherwise.
-
isSSLv2HelloPacket
public static final boolean isSSLv2HelloPacket(byte[] header)
Determines if a given header is a SSLv2 client or server hello packet- Returns:
- true if the header is such a SSLv2 client or server hello packet. False, otherwise.
-
toShort
public static short toShort(byte a, byte b)
Converts 2 bytes to ashort
.- Parameters:
a
- byte 1b
- byte 2- Returns:
- the
short
value of the 2 bytes
-
toUnsignedShort
public static int toUnsignedShort(byte a, byte b)
Converts 2 bytes to aunsigned short
.- Parameters:
a
- byte 1b
- byte 2- Returns:
- the
unsigned short
value of the 2 bytes
-
toInt
public static int toInt(byte[] buf, int off)
Converts 4 bytes to anint
at the specified offset in the given byte array.- Parameters:
buf
- the byte array containing the 4 bytes to be converted to anint
.off
- offset in the byte array- Returns:
- the
int
value of the 4 bytes.
-
writeInt
public static void writeInt(int v, byte[] buf, int off)
Converts the specified int value into 4 bytes. The bytes are put into the specified byte array at a given offset location.- Parameters:
v
- the int value to convert into 4 bytes.buf
- the byte array to put the resulting 4 bytes.off
- offset in the byte array
-
toLong
public static long toLong(byte[] buf, int off)
Converts 8 bytes to along
at the specified offset in the given byte array.- Parameters:
buf
- the byte array containing the 8 bytes to be converted to along
.off
- offset in the byte array- Returns:
- the
long
value of the 8 bytes.
-
-