Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace GnuTLS by OpenSSL #47

Open
igsha opened this issue Apr 8, 2024 · 0 comments
Open

Replace GnuTLS by OpenSSL #47

igsha opened this issue Apr 8, 2024 · 0 comments
Labels
enhancement New feature or request

Comments

@igsha
Copy link
Collaborator

igsha commented Apr 8, 2024

Motivation

Native building through msvc on windows is possible with openssl library.
It is recommended to use meson because it is native tool to build vala and glib-oriented projects.

What works

  1. Dino can be built on windows using mingw + cmake or meson + gnutls.
  2. Dino can be built though meson with openssl but w/o ICE plugin. That's why calling does not work now.

Analysis

The GnuTLS library is used in the ICE plugin to establish encrypted session.
There are 2 parts in the plugin (dtls_srtp.vala):

  • Certificate generation and maniplation through X509.
  • Session manipulation:
    • create TLS connection via UDP (DTLS);
    • extract certificates from session;
    • handshaking;
    • support SRTP profile;
    • set priority profile string, e.g., NORMAL:!VERS-TLS-ALL:+VERS-DTLS-ALL:+CTYPE-CLI-X509.

It seems all of the above features are supported by openssl.
There is no much information about DTLS handshaking between openssl and gnutls.
The first part (X509) can be easily ported on openssl.

The most unlear part is SRTP support, set priority string and handshaking.

@mxlgv mxlgv added the enhancement New feature or request label Aug 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants