37 gint
janus_dtls_srtp_init(
const char *server_pem,
const char *server_key,
const char *password, guint timeout);
95 janus_sctp_association *sctp;
149 void janus_dtls_wrap_sctp_data(
janus_dtls_srtp *dtls,
char *label,
char *buf,
int len);
156 int janus_dtls_send_sctp_data(
janus_dtls_srtp *dtls,
char *buf,
int len);
163 void janus_dtls_notify_data(
janus_dtls_srtp *dtls,
char *label,
char *buf,
int len);
gchar * janus_dtls_get_local_fingerprint(void)
Method to return a string representation (SHA-256) of the certificate fingerprint.
Definition: dtls.c:118
SCTP processing for data channels (headers)
Reference counter mechanism.
struct janus_dtls_srtp janus_dtls_srtp
Janus DTLS-SRTP handle.
const gchar * janus_get_dtls_srtp_profile(int profile)
Helper method to get a string representation of an SRTP profile.
Definition: dtls.c:58
OpenSSL BIO agent writer.
janus_dtls_state dtls_state
DTLS state of this component: -1=failed, 0=nothing, 1=trying, 2=connected.
Definition: dtls.h:66
SRTP definitions (headers)
void janus_dtls_srtp_cleanup(void)
Method to cleanup DTLS stuff before exiting.
Definition: dtls.c:467
gint janus_dtls_srtp_init(const char *server_pem, const char *server_key, const char *password, guint timeout)
DTLS stuff initialization.
Definition: dtls.c:329
janus_dtls_srtp * janus_dtls_srtp_create(void *webrtc, janus_dtls_role role)
Create a janus_dtls_srtp instance.
Definition: dtls.c:486
Definition: refcount.h:78
gboolean janus_is_dtls(char *buf)
Helper method to demultiplex DTLS from other protocols.
Definition: dtls.c:99
SSL * ssl
SSL context used for DTLS for this component.
Definition: dtls.h:72
void janus_dtls_srtp_destroy(janus_dtls_srtp *dtls)
Destroy a janus_dtls_srtp instance.
Definition: dtls.c:908
const char * janus_get_ssl_version(void)
Helper method to return info on the crypto library and its version.
Definition: dtls.c:324
int retransmissions
The number of retransmissions that have occurred for this DTLS instance so far.
Definition: dtls.h:92
int janus_dtls_verify_callback(int preverify_ok, X509_STORE_CTX *ctx)
DTLS certificate verification callback (http://www.openssl.org/docs/ssl/SSL_CTX_set_verify.html)
Definition: dtls.c:949
srtp_policy_t local_policy
libsrtp policy for outgoing SRTP packets
Definition: dtls.h:88
void janus_dtls_srtp_send_alert(janus_dtls_srtp *dtls)
Send an alert on a janus_dtls_srtp instance.
Definition: dtls.c:897
gint srtp_valid
Whether SRTP has been correctly set up for this component or not.
Definition: dtls.h:78
srtp_t srtp_out
libsrtp context for outgoing SRTP packets
Definition: dtls.h:84
janus_refcount ref
Reference counter for this instance.
Definition: dtls.h:100
Janus DTLS-SRTP handle.
Definition: dtls.h:60
void janus_dtls_srtp_incoming_msg(janus_dtls_srtp *dtls, char *buf, uint16_t len)
Handle an incoming DTLS message.
Definition: dtls.c:603
int ready
Whether this DTLS stack is now ready to be used for messages as well (e.g., SCTP encapsulation) ...
Definition: dtls.h:90
gboolean janus_dtls_retry(gpointer stack)
DTLS retransmission timer.
Definition: dtls.c:1002
gint64 dtls_connected
Monotonic time of when the DTLS state has switched to connected.
Definition: dtls.h:70
void * pc
Opaque pointer to the WebRTC PeerConnection this DTLS-SRTP context belongs to.
Definition: dtls.h:62
BIO * write_bio
Write BIO (outgoing DTLS data)
Definition: dtls.h:76
void janus_dtls_srtp_handshake(janus_dtls_srtp *dtls)
Start a DTLS handshake.
Definition: dtls.c:560
gint64 dtls_started
Monotonic time of when the DTLS handhake has started.
Definition: dtls.h:68
const gchar * janus_get_dtls_srtp_state(janus_dtls_state state)
Helper method to get a string representation of a Janus DTLS state.
Definition: dtls.c:28
gint srtp_profile
The SRTP profile currently in use.
Definition: dtls.h:80
volatile gint destroyed
Atomic flag to check if this instance has been destroyed.
Definition: dtls.h:98
janus_dtls_role dtls_role
DTLS role of the server for this stream: 1=client, 0=server.
Definition: dtls.h:64
janus_dtls_state
DTLS state.
Definition: dtls.h:52
srtp_policy_t remote_policy
libsrtp policy for incoming SRTP packets
Definition: dtls.h:86
void janus_dtls_callback(const SSL *ssl, int where, int ret)
DTLS alert callback (http://www.openssl.org/docs/ssl/SSL_CTX_set_info_callback.html) ...
Definition: dtls.c:924
janus_dtls_role
DTLS roles.
Definition: dtls.h:45
int janus_dtls_srtp_create_sctp(janus_dtls_srtp *dtls)
Create an SCTP association, for data channels.
Definition: dtls.c:579
const gchar * janus_get_dtls_srtp_role(janus_dtls_role role)
Helper method to get a string representation of a DTLS role.
Definition: dtls.c:44
BIO * read_bio
Read BIO (incoming DTLS data)
Definition: dtls.h:74
srtp_t srtp_in
libsrtp context for incoming SRTP packets
Definition: dtls.h:82