Skip to content

Detect presence of GCM (and ICM-192) at runtime, not compile time #387

@JonathanLennox

Description

@JonathanLennox

Even if LibSRTP is compiled without OpenSSL support, it should be possible to use srtp_replace_cipher_type to install SRTP_AES_GCM_128, SRTP_AES_GCM_256, or SRTP_AES_ICM_192 ciphers and have things work.

This came up in my discussions with @nils-ohlmeier; he wants to get libsrtp to use NSS (Mozilla's native crypto library) in Firefox, since they don't use OpenSSL. I suggested that using srtp_replace_cipher_type would likely be more maintainable than contributing back NSS patches to the mainline project. But if he wants to install crypto modules for all the modes, libsrtp would need to support using those modes even if when doesn't have native crypto support for them.

My expectation would be that if you tried to use a mode for which you hadn't installed a cipher, srtp_add_stream would fail. The current code will indeed do this, failing with srtp_err_status_fail, but a better error status could be added. (Maybe srtp_err_status_bad_cipher?)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions