diff options
Diffstat (limited to 'libraries/spongycastle/core/src/main/java/org/spongycastle/crypto/tls/SecurityParameters.java')
-rw-r--r-- | libraries/spongycastle/core/src/main/java/org/spongycastle/crypto/tls/SecurityParameters.java | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/libraries/spongycastle/core/src/main/java/org/spongycastle/crypto/tls/SecurityParameters.java b/libraries/spongycastle/core/src/main/java/org/spongycastle/crypto/tls/SecurityParameters.java new file mode 100644 index 000000000..c5d543946 --- /dev/null +++ b/libraries/spongycastle/core/src/main/java/org/spongycastle/crypto/tls/SecurityParameters.java @@ -0,0 +1,90 @@ +package org.spongycastle.crypto.tls; + +import org.spongycastle.util.Arrays; + +public class SecurityParameters +{ + int entity = -1; + int cipherSuite = -1; + short compressionAlgorithm = -1; + int prfAlgorithm = -1; + int verifyDataLength = -1; + byte[] masterSecret = null; + byte[] clientRandom = null; + byte[] serverRandom = null; + + // TODO Keep these internal, since it's maybe not the ideal place for them + short maxFragmentLength = -1; + boolean truncatedHMac = false; + + void copySessionParametersFrom(SecurityParameters other) + { + this.entity = other.entity; + this.cipherSuite = other.cipherSuite; + this.compressionAlgorithm = other.compressionAlgorithm; + this.prfAlgorithm = other.prfAlgorithm; + this.verifyDataLength = other.verifyDataLength; + this.masterSecret = Arrays.clone(other.masterSecret); + } + + void clear() + { + if (this.masterSecret != null) + { + Arrays.fill(this.masterSecret, (byte)0); + this.masterSecret = null; + } + } + + /** + * @return {@link ConnectionEnd} + */ + public int getEntity() + { + return entity; + } + + /** + * @return {@link CipherSuite} + */ + public int getCipherSuite() + { + return cipherSuite; + } + + /** + * @return {@link CompressionMethod} + */ + public short getCompressionAlgorithm() + { + return compressionAlgorithm; + } + + /** + * @return {@link PRFAlgorithm} + */ + public int getPrfAlgorithm() + { + return prfAlgorithm; + } + + public int getVerifyDataLength() + { + return verifyDataLength; + } + + public byte[] getMasterSecret() + { + return masterSecret; + } + + public byte[] getClientRandom() + { + return clientRandom; + } + + public byte[] getServerRandom() + { + return serverRandom; + } +} |