Fixed #1763: Add pj_ssl_cipher_id() API
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@4829 74dad513-b988-da41-8d7b-12977e46ad98
This commit is contained in:
parent
508fffa3f8
commit
37e8cd9fb1
|
@ -243,6 +243,9 @@ PJ_DECL(pj_status_t) pj_ssl_cert_get_verify_status_strings(
|
|||
*/
|
||||
typedef enum pj_ssl_cipher {
|
||||
|
||||
/* Unsupported cipher */
|
||||
PJ_TLS_UNKNOWN_CIPHER = -1,
|
||||
|
||||
/* NULL */
|
||||
PJ_TLS_NULL_WITH_NULL_NULL = 0x00000000,
|
||||
|
||||
|
@ -353,7 +356,9 @@ PJ_DECL(const char*) pj_ssl_cipher_name(pj_ssl_cipher cipher);
|
|||
|
||||
|
||||
/**
|
||||
* Get cipher ID from cipher name string.
|
||||
* Get cipher ID from cipher name string. Note that on different backends
|
||||
* (e.g. OpenSSL or Symbian implementation), cipher names may not be
|
||||
* equivalent for the same cipher ID.
|
||||
*
|
||||
* @param cipher_name The cipher name string.
|
||||
*
|
||||
|
|
|
@ -1888,6 +1888,24 @@ PJ_DEF(const char*) pj_ssl_cipher_name(pj_ssl_cipher cipher)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
/* Get cipher identifier */
|
||||
PJ_DEF(pj_ssl_cipher) pj_ssl_cipher_id(const char *cipher_name)
|
||||
{
|
||||
unsigned i;
|
||||
|
||||
if (openssl_cipher_num == 0) {
|
||||
init_openssl();
|
||||
shutdown_openssl();
|
||||
}
|
||||
|
||||
for (i = 0; i < openssl_cipher_num; ++i) {
|
||||
if (!pj_ansi_stricmp(openssl_ciphers[i].name, cipher_name))
|
||||
return openssl_ciphers[i].id;
|
||||
}
|
||||
|
||||
return PJ_TLS_UNKNOWN_CIPHER;
|
||||
}
|
||||
|
||||
/* Check if the specified cipher is supported by SSL/TLS backend. */
|
||||
PJ_DEF(pj_bool_t) pj_ssl_cipher_is_supported(pj_ssl_cipher cipher)
|
||||
{
|
||||
|
|
|
@ -42,6 +42,7 @@ typedef struct cipher_name_t {
|
|||
/* Cipher name constants */
|
||||
static cipher_name_t cipher_names[] =
|
||||
{
|
||||
{PJ_TLS_UNKNOWN_CIPHER, "UNKNOWN"},
|
||||
{PJ_TLS_NULL_WITH_NULL_NULL, "NULL"},
|
||||
|
||||
/* TLS/SSLv3 */
|
||||
|
@ -759,6 +760,26 @@ PJ_DEF(const char*) pj_ssl_cipher_name(pj_ssl_cipher cipher)
|
|||
}
|
||||
|
||||
|
||||
/* Get cipher identifier */
|
||||
PJ_DEF(pj_ssl_cipher) pj_ssl_cipher_id(const char *cipher_name)
|
||||
{
|
||||
unsigned i;
|
||||
|
||||
if (ciphers_num_ == 0) {
|
||||
pj_ssl_cipher c[1];
|
||||
i = 0;
|
||||
pj_ssl_cipher_get_availables(c, &i);
|
||||
}
|
||||
|
||||
for (i = 0; i < ciphers_num_; ++i) {
|
||||
if (!pj_ansi_stricmp(ciphers_[i].name, cipher_name))
|
||||
return ciphers_[i].id;
|
||||
}
|
||||
|
||||
return PJ_TLS_UNKNOWN_CIPHER;
|
||||
}
|
||||
|
||||
|
||||
/* Check if the specified cipher is supported by SSL/TLS backend. */
|
||||
PJ_DEF(pj_bool_t) pj_ssl_cipher_is_supported(pj_ssl_cipher cipher)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue