diff options
Diffstat (limited to 'core/src/main/java/org/spongycastle/crypto/tls/TlsContext.java')
-rw-r--r-- | core/src/main/java/org/spongycastle/crypto/tls/TlsContext.java | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/core/src/main/java/org/spongycastle/crypto/tls/TlsContext.java b/core/src/main/java/org/spongycastle/crypto/tls/TlsContext.java new file mode 100644 index 00000000..a47d1d6e --- /dev/null +++ b/core/src/main/java/org/spongycastle/crypto/tls/TlsContext.java @@ -0,0 +1,45 @@ +package org.spongycastle.crypto.tls; + +import java.security.SecureRandom; + +import org.spongycastle.crypto.prng.RandomGenerator; + +public interface TlsContext +{ + RandomGenerator getNonceRandomGenerator(); + + SecureRandom getSecureRandom(); + + SecurityParameters getSecurityParameters(); + + boolean isServer(); + + ProtocolVersion getClientVersion(); + + ProtocolVersion getServerVersion(); + + /** + * Used to get the resumable session, if any, used by this connection. Only available after the + * handshake has successfully completed. + * + * @return A {@link TlsSession} representing the resumable session used by this connection, or + * null if no resumable session available. + * @see TlsPeer#notifyHandshakeComplete() + */ + TlsSession getResumableSession(); + + Object getUserObject(); + + void setUserObject(Object userObject); + + /** + * Export keying material according to RFC 5705: "Keying Material Exporters for TLS". + * + * @param asciiLabel indicates which application will use the exported keys. + * @param context_value allows the application using the exporter to mix its own data with the TLS PRF for + * the exporter output. + * @param length the number of bytes to generate + * @return a pseudorandom bit string of 'length' bytes generated from the master_secret. + */ + byte[] exportKeyingMaterial(String asciiLabel, byte[] context_value, int length); +} |