public class TlsUtils
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
static byte[] |
EMPTY_BYTES |
static int[] |
EMPTY_INTS |
static long[] |
EMPTY_LONGS |
static short[] |
EMPTY_SHORTS |
static java.lang.Integer |
EXT_signature_algorithms |
Constructor and Description |
---|
TlsUtils() |
Modifier and Type | Method and Description |
---|---|
static void |
addSignatureAlgorithmsExtension(java.util.Hashtable extensions,
java.util.Vector supportedSignatureAlgorithms)
Add a 'signature_algorithms' extension to existing extensions.
|
static void |
checkUint16(int i) |
static void |
checkUint16(long i) |
static void |
checkUint24(int i) |
static void |
checkUint24(long i) |
static void |
checkUint32(long i) |
static void |
checkUint48(long i) |
static void |
checkUint64(long i) |
static void |
checkUint8(int i) |
static void |
checkUint8(long i) |
static void |
checkUint8(short i) |
static Digest |
cloneHash(short hashAlgorithm,
Digest hash) |
static Digest |
clonePRFHash(int prfAlgorithm,
Digest hash) |
static Digest |
createHash(short hashAlgorithm) |
static Digest |
createHash(SignatureAndHashAlgorithm signatureAndHashAlgorithm) |
static Digest |
createPRFHash(int prfAlgorithm) |
static byte[] |
createSignatureAlgorithmsExtension(java.util.Vector supportedSignatureAlgorithms)
Create a 'signature_algorithms' extension value.
|
static TlsSigner |
createTlsSigner(short clientCertificateType) |
static byte[] |
encodeOpaque8(byte[] buf) |
static void |
encodeSupportedSignatureAlgorithms(java.util.Vector supportedSignatureAlgorithms,
boolean allowAnonymous,
java.io.OutputStream output) |
static byte[] |
encodeUint16ArrayWithUint16Length(int[] uints) |
static byte[] |
encodeUint8ArrayWithUint8Length(short[] uints) |
static java.util.Vector |
getAllSignatureAlgorithms() |
static int |
getCipherType(int ciphersuite) |
static java.util.Vector |
getDefaultDSSSignatureAlgorithms() |
static java.util.Vector |
getDefaultECDSASignatureAlgorithms() |
static java.util.Vector |
getDefaultRSASignatureAlgorithms() |
static java.util.Vector |
getDefaultSupportedSignatureAlgorithms() |
static int |
getEncryptionAlgorithm(int ciphersuite) |
static byte[] |
getExtensionData(java.util.Hashtable extensions,
java.lang.Integer extensionType) |
static short |
getHashAlgorithmForPRFAlgorithm(int prfAlgorithm) |
static int |
getKeyExchangeAlgorithm(int ciphersuite) |
static int |
getMACAlgorithm(int ciphersuite) |
static ProtocolVersion |
getMinimumVersion(int ciphersuite) |
static ASN1ObjectIdentifier |
getOIDForHashAlgorithm(short hashAlgorithm) |
static java.util.Vector |
getSignatureAlgorithmsExtension(java.util.Hashtable extensions)
Get a 'signature_algorithms' extension from extensions.
|
static SignatureAndHashAlgorithm |
getSignatureAndHashAlgorithm(TlsContext context,
TlsSignerCredentials signerCredentials) |
static java.util.Vector |
getUsableSignatureAlgorithms(java.util.Vector sigHashAlgs) |
static boolean |
hasExpectedEmptyExtensionData(java.util.Hashtable extensions,
java.lang.Integer extensionType,
short alertDescription) |
static boolean |
hasSigningCapability(short clientCertificateType) |
static TlsSession |
importSession(byte[] sessionID,
SessionParameters sessionParameters) |
static boolean |
isAEADCipherSuite(int ciphersuite) |
static boolean |
isBlockCipherSuite(int ciphersuite) |
static boolean |
isSignatureAlgorithmsExtensionAllowed(ProtocolVersion clientVersion) |
static boolean |
isSSL(TlsContext context) |
static boolean |
isStreamCipherSuite(int ciphersuite) |
static boolean |
isTLSv11(ProtocolVersion version) |
static boolean |
isTLSv11(TlsContext context) |
static boolean |
isTLSv12(ProtocolVersion version) |
static boolean |
isTLSv12(TlsContext context) |
static boolean |
isValidCipherSuiteForSignatureAlgorithms(int cipherSuite,
java.util.Vector sigAlgs) |
static boolean |
isValidCipherSuiteForVersion(int cipherSuite,
ProtocolVersion serverVersion) |
static boolean |
isValidUint16(int i) |
static boolean |
isValidUint16(long i) |
static boolean |
isValidUint24(int i) |
static boolean |
isValidUint24(long i) |
static boolean |
isValidUint32(long i) |
static boolean |
isValidUint48(long i) |
static boolean |
isValidUint64(long i) |
static boolean |
isValidUint8(int i) |
static boolean |
isValidUint8(long i) |
static boolean |
isValidUint8(short i) |
static java.util.Vector |
parseSupportedSignatureAlgorithms(boolean allowAnonymous,
java.io.InputStream input) |
static byte[] |
PRF_legacy(byte[] secret,
java.lang.String asciiLabel,
byte[] seed,
int size) |
static byte[] |
PRF(TlsContext context,
byte[] secret,
java.lang.String asciiLabel,
byte[] seed,
int size) |
static byte[] |
readAllOrNothing(int length,
java.io.InputStream input) |
static ASN1Primitive |
readASN1Object(byte[] encoding) |
static ASN1Primitive |
readDERObject(byte[] encoding) |
static void |
readFully(byte[] buf,
java.io.InputStream input) |
static byte[] |
readFully(int length,
java.io.InputStream input) |
static byte[] |
readOpaque16(java.io.InputStream input) |
static byte[] |
readOpaque24(java.io.InputStream input) |
static byte[] |
readOpaque8(java.io.InputStream input) |
static java.util.Vector |
readSignatureAlgorithmsExtension(byte[] extensionData)
Read 'signature_algorithms' extension data.
|
static int |
readUint16(byte[] buf,
int offset) |
static int |
readUint16(java.io.InputStream input) |
static int[] |
readUint16Array(int count,
java.io.InputStream input) |
static int |
readUint24(byte[] buf,
int offset) |
static int |
readUint24(java.io.InputStream input) |
static long |
readUint32(byte[] buf,
int offset) |
static long |
readUint32(java.io.InputStream input) |
static long |
readUint48(byte[] buf,
int offset) |
static long |
readUint48(java.io.InputStream input) |
static short |
readUint8(byte[] buf,
int offset) |
static short |
readUint8(java.io.InputStream input) |
static short[] |
readUint8Array(int count,
java.io.InputStream input) |
static ProtocolVersion |
readVersion(byte[] buf,
int offset) |
static ProtocolVersion |
readVersion(java.io.InputStream input) |
static int |
readVersionRaw(byte[] buf,
int offset) |
static int |
readVersionRaw(java.io.InputStream input) |
static void |
verifySupportedSignatureAlgorithm(java.util.Vector supportedSignatureAlgorithms,
SignatureAndHashAlgorithm signatureAlgorithm) |
static void |
writeGMTUnixTime(byte[] buf,
int offset) |
static void |
writeOpaque16(byte[] buf,
java.io.OutputStream output) |
static void |
writeOpaque24(byte[] buf,
java.io.OutputStream output) |
static void |
writeOpaque8(byte[] buf,
java.io.OutputStream output) |
static void |
writeUint16(int i,
byte[] buf,
int offset) |
static void |
writeUint16(int i,
java.io.OutputStream output) |
static void |
writeUint16Array(int[] uints,
byte[] buf,
int offset) |
static void |
writeUint16Array(int[] uints,
java.io.OutputStream output) |
static void |
writeUint16ArrayWithUint16Length(int[] uints,
byte[] buf,
int offset) |
static void |
writeUint16ArrayWithUint16Length(int[] uints,
java.io.OutputStream output) |
static void |
writeUint24(int i,
byte[] buf,
int offset) |
static void |
writeUint24(int i,
java.io.OutputStream output) |
static void |
writeUint32(long i,
byte[] buf,
int offset) |
static void |
writeUint32(long i,
java.io.OutputStream output) |
static void |
writeUint48(long i,
byte[] buf,
int offset) |
static void |
writeUint48(long i,
java.io.OutputStream output) |
static void |
writeUint64(long i,
byte[] buf,
int offset) |
static void |
writeUint64(long i,
java.io.OutputStream output) |
static void |
writeUint8(int i,
byte[] buf,
int offset) |
static void |
writeUint8(int i,
java.io.OutputStream output) |
static void |
writeUint8(short i,
byte[] buf,
int offset) |
static void |
writeUint8(short i,
java.io.OutputStream output) |
static void |
writeUint8Array(short[] uints,
byte[] buf,
int offset) |
static void |
writeUint8Array(short[] uints,
java.io.OutputStream output) |
static void |
writeUint8ArrayWithUint8Length(short[] uints,
byte[] buf,
int offset) |
static void |
writeUint8ArrayWithUint8Length(short[] uints,
java.io.OutputStream output) |
static void |
writeVersion(ProtocolVersion version,
byte[] buf,
int offset) |
static void |
writeVersion(ProtocolVersion version,
java.io.OutputStream output) |
public static final byte[] EMPTY_BYTES
public static final short[] EMPTY_SHORTS
public static final int[] EMPTY_INTS
public static final long[] EMPTY_LONGS
public static final java.lang.Integer EXT_signature_algorithms
public static void checkUint8(short i) throws java.io.IOException
java.io.IOException
public static void checkUint8(int i) throws java.io.IOException
java.io.IOException
public static void checkUint8(long i) throws java.io.IOException
java.io.IOException
public static void checkUint16(int i) throws java.io.IOException
java.io.IOException
public static void checkUint16(long i) throws java.io.IOException
java.io.IOException
public static void checkUint24(int i) throws java.io.IOException
java.io.IOException
public static void checkUint24(long i) throws java.io.IOException
java.io.IOException
public static void checkUint32(long i) throws java.io.IOException
java.io.IOException
public static void checkUint48(long i) throws java.io.IOException
java.io.IOException
public static void checkUint64(long i) throws java.io.IOException
java.io.IOException
public static boolean isValidUint8(short i)
public static boolean isValidUint8(int i)
public static boolean isValidUint8(long i)
public static boolean isValidUint16(int i)
public static boolean isValidUint16(long i)
public static boolean isValidUint24(int i)
public static boolean isValidUint24(long i)
public static boolean isValidUint32(long i)
public static boolean isValidUint48(long i)
public static boolean isValidUint64(long i)
public static boolean isSSL(TlsContext context)
public static boolean isTLSv11(ProtocolVersion version)
public static boolean isTLSv11(TlsContext context)
public static boolean isTLSv12(ProtocolVersion version)
public static boolean isTLSv12(TlsContext context)
public static void writeUint8(short i, java.io.OutputStream output) throws java.io.IOException
java.io.IOException
public static void writeUint8(int i, java.io.OutputStream output) throws java.io.IOException
java.io.IOException
public static void writeUint8(short i, byte[] buf, int offset)
public static void writeUint8(int i, byte[] buf, int offset)
public static void writeUint16(int i, java.io.OutputStream output) throws java.io.IOException
java.io.IOException
public static void writeUint16(int i, byte[] buf, int offset)
public static void writeUint24(int i, java.io.OutputStream output) throws java.io.IOException
java.io.IOException
public static void writeUint24(int i, byte[] buf, int offset)
public static void writeUint32(long i, java.io.OutputStream output) throws java.io.IOException
java.io.IOException
public static void writeUint32(long i, byte[] buf, int offset)
public static void writeUint48(long i, java.io.OutputStream output) throws java.io.IOException
java.io.IOException
public static void writeUint48(long i, byte[] buf, int offset)
public static void writeUint64(long i, java.io.OutputStream output) throws java.io.IOException
java.io.IOException
public static void writeUint64(long i, byte[] buf, int offset)
public static void writeOpaque8(byte[] buf, java.io.OutputStream output) throws java.io.IOException
java.io.IOException
public static void writeOpaque16(byte[] buf, java.io.OutputStream output) throws java.io.IOException
java.io.IOException
public static void writeOpaque24(byte[] buf, java.io.OutputStream output) throws java.io.IOException
java.io.IOException
public static void writeUint8Array(short[] uints, java.io.OutputStream output) throws java.io.IOException
java.io.IOException
public static void writeUint8Array(short[] uints, byte[] buf, int offset) throws java.io.IOException
java.io.IOException
public static void writeUint8ArrayWithUint8Length(short[] uints, java.io.OutputStream output) throws java.io.IOException
java.io.IOException
public static void writeUint8ArrayWithUint8Length(short[] uints, byte[] buf, int offset) throws java.io.IOException
java.io.IOException
public static void writeUint16Array(int[] uints, java.io.OutputStream output) throws java.io.IOException
java.io.IOException
public static void writeUint16Array(int[] uints, byte[] buf, int offset) throws java.io.IOException
java.io.IOException
public static void writeUint16ArrayWithUint16Length(int[] uints, java.io.OutputStream output) throws java.io.IOException
java.io.IOException
public static void writeUint16ArrayWithUint16Length(int[] uints, byte[] buf, int offset) throws java.io.IOException
java.io.IOException
public static byte[] encodeOpaque8(byte[] buf) throws java.io.IOException
java.io.IOException
public static byte[] encodeUint8ArrayWithUint8Length(short[] uints) throws java.io.IOException
java.io.IOException
public static byte[] encodeUint16ArrayWithUint16Length(int[] uints) throws java.io.IOException
java.io.IOException
public static short readUint8(java.io.InputStream input) throws java.io.IOException
java.io.IOException
public static short readUint8(byte[] buf, int offset)
public static int readUint16(java.io.InputStream input) throws java.io.IOException
java.io.IOException
public static int readUint16(byte[] buf, int offset)
public static int readUint24(java.io.InputStream input) throws java.io.IOException
java.io.IOException
public static int readUint24(byte[] buf, int offset)
public static long readUint32(java.io.InputStream input) throws java.io.IOException
java.io.IOException
public static long readUint32(byte[] buf, int offset)
public static long readUint48(java.io.InputStream input) throws java.io.IOException
java.io.IOException
public static long readUint48(byte[] buf, int offset)
public static byte[] readAllOrNothing(int length, java.io.InputStream input) throws java.io.IOException
java.io.IOException
public static byte[] readFully(int length, java.io.InputStream input) throws java.io.IOException
java.io.IOException
public static void readFully(byte[] buf, java.io.InputStream input) throws java.io.IOException
java.io.IOException
public static byte[] readOpaque8(java.io.InputStream input) throws java.io.IOException
java.io.IOException
public static byte[] readOpaque16(java.io.InputStream input) throws java.io.IOException
java.io.IOException
public static byte[] readOpaque24(java.io.InputStream input) throws java.io.IOException
java.io.IOException
public static short[] readUint8Array(int count, java.io.InputStream input) throws java.io.IOException
java.io.IOException
public static int[] readUint16Array(int count, java.io.InputStream input) throws java.io.IOException
java.io.IOException
public static ProtocolVersion readVersion(byte[] buf, int offset) throws java.io.IOException
java.io.IOException
public static ProtocolVersion readVersion(java.io.InputStream input) throws java.io.IOException
java.io.IOException
public static int readVersionRaw(byte[] buf, int offset) throws java.io.IOException
java.io.IOException
public static int readVersionRaw(java.io.InputStream input) throws java.io.IOException
java.io.IOException
public static ASN1Primitive readASN1Object(byte[] encoding) throws java.io.IOException
java.io.IOException
public static ASN1Primitive readDERObject(byte[] encoding) throws java.io.IOException
java.io.IOException
public static void writeGMTUnixTime(byte[] buf, int offset)
public static void writeVersion(ProtocolVersion version, java.io.OutputStream output) throws java.io.IOException
java.io.IOException
public static void writeVersion(ProtocolVersion version, byte[] buf, int offset)
public static java.util.Vector getAllSignatureAlgorithms()
public static java.util.Vector getDefaultDSSSignatureAlgorithms()
public static java.util.Vector getDefaultECDSASignatureAlgorithms()
public static java.util.Vector getDefaultRSASignatureAlgorithms()
public static java.util.Vector getDefaultSupportedSignatureAlgorithms()
public static SignatureAndHashAlgorithm getSignatureAndHashAlgorithm(TlsContext context, TlsSignerCredentials signerCredentials) throws java.io.IOException
java.io.IOException
public static byte[] getExtensionData(java.util.Hashtable extensions, java.lang.Integer extensionType)
public static boolean hasExpectedEmptyExtensionData(java.util.Hashtable extensions, java.lang.Integer extensionType, short alertDescription) throws java.io.IOException
java.io.IOException
public static TlsSession importSession(byte[] sessionID, SessionParameters sessionParameters)
public static boolean isSignatureAlgorithmsExtensionAllowed(ProtocolVersion clientVersion)
public static void addSignatureAlgorithmsExtension(java.util.Hashtable extensions, java.util.Vector supportedSignatureAlgorithms) throws java.io.IOException
extensions
- A Hashtable
to add the extension to.supportedSignatureAlgorithms
- Vector
containing at least 1 SignatureAndHashAlgorithm
.java.io.IOException
public static java.util.Vector getSignatureAlgorithmsExtension(java.util.Hashtable extensions) throws java.io.IOException
extensions
- A Hashtable
to get the extension from, if it is present.Vector
containing at least 1 SignatureAndHashAlgorithm
, or null.java.io.IOException
public static byte[] createSignatureAlgorithmsExtension(java.util.Vector supportedSignatureAlgorithms) throws java.io.IOException
supportedSignatureAlgorithms
- A Vector
containing at least 1 SignatureAndHashAlgorithm
.java.io.IOException
public static java.util.Vector readSignatureAlgorithmsExtension(byte[] extensionData) throws java.io.IOException
extensionData
- The extension data.Vector
containing at least 1 SignatureAndHashAlgorithm
.java.io.IOException
public static void encodeSupportedSignatureAlgorithms(java.util.Vector supportedSignatureAlgorithms, boolean allowAnonymous, java.io.OutputStream output) throws java.io.IOException
java.io.IOException
public static java.util.Vector parseSupportedSignatureAlgorithms(boolean allowAnonymous, java.io.InputStream input) throws java.io.IOException
java.io.IOException
public static void verifySupportedSignatureAlgorithm(java.util.Vector supportedSignatureAlgorithms, SignatureAndHashAlgorithm signatureAlgorithm) throws java.io.IOException
java.io.IOException
public static byte[] PRF(TlsContext context, byte[] secret, java.lang.String asciiLabel, byte[] seed, int size)
public static byte[] PRF_legacy(byte[] secret, java.lang.String asciiLabel, byte[] seed, int size)
public static Digest createHash(short hashAlgorithm)
public static Digest createHash(SignatureAndHashAlgorithm signatureAndHashAlgorithm)
public static Digest createPRFHash(int prfAlgorithm)
public static short getHashAlgorithmForPRFAlgorithm(int prfAlgorithm)
public static ASN1ObjectIdentifier getOIDForHashAlgorithm(short hashAlgorithm)
public static boolean hasSigningCapability(short clientCertificateType)
public static TlsSigner createTlsSigner(short clientCertificateType)
public static int getCipherType(int ciphersuite) throws java.io.IOException
java.io.IOException
public static int getEncryptionAlgorithm(int ciphersuite) throws java.io.IOException
java.io.IOException
public static int getKeyExchangeAlgorithm(int ciphersuite) throws java.io.IOException
java.io.IOException
public static int getMACAlgorithm(int ciphersuite) throws java.io.IOException
java.io.IOException
public static ProtocolVersion getMinimumVersion(int ciphersuite)
public static boolean isAEADCipherSuite(int ciphersuite) throws java.io.IOException
java.io.IOException
public static boolean isBlockCipherSuite(int ciphersuite) throws java.io.IOException
java.io.IOException
public static boolean isStreamCipherSuite(int ciphersuite) throws java.io.IOException
java.io.IOException
public static boolean isValidCipherSuiteForSignatureAlgorithms(int cipherSuite, java.util.Vector sigAlgs)
public static boolean isValidCipherSuiteForVersion(int cipherSuite, ProtocolVersion serverVersion)
public static java.util.Vector getUsableSignatureAlgorithms(java.util.Vector sigHashAlgs)