Add SSL_CIPHER_get_kx_name.
This is needed by Android because it passes this string to a handshake callback. It's implemented in Android's OpenSSL in this patch: https://android.googlesource.com/platform/external/openssl.git/+/master/patches/0003-jsse.patch (Note that it's called |SSL_authentication_method| there.) I didn't format this function in OpenSSL style because it's crazy and because we'll probably clang-format ssl/ soon. Change-Id: I865540511b50859c339da5d76ce37810449aa444
This commit is contained in:
@@ -1950,6 +1950,9 @@ OPENSSL_EXPORT const SSL_CIPHER *SSL_get_current_cipher(const SSL *s);
|
||||
OPENSSL_EXPORT int SSL_CIPHER_get_bits(const SSL_CIPHER *c,int *alg_bits);
|
||||
OPENSSL_EXPORT const char * SSL_CIPHER_get_version(const SSL_CIPHER *c);
|
||||
OPENSSL_EXPORT const char * SSL_CIPHER_get_name(const SSL_CIPHER *c);
|
||||
/* SSL_CIPHER_get_kx_name returns a string that describes the key-exchange
|
||||
* method used by |c|. For example, "ECDHE-ECDSA". */
|
||||
OPENSSL_EXPORT const char * SSL_CIPHER_get_kx_name(const SSL_CIPHER *cipher);
|
||||
OPENSSL_EXPORT unsigned long SSL_CIPHER_get_id(const SSL_CIPHER *c);
|
||||
|
||||
OPENSSL_EXPORT int SSL_get_fd(const SSL *s);
|
||||
|
||||
@@ -1742,6 +1742,49 @@ const char *SSL_CIPHER_get_name(const SSL_CIPHER *c)
|
||||
return("(NONE)");
|
||||
}
|
||||
|
||||
const char *SSL_CIPHER_get_kx_name(const SSL_CIPHER *cipher) {
|
||||
if (cipher == NULL) {
|
||||
return "";
|
||||
}
|
||||
|
||||
switch (cipher->algorithm_mkey) {
|
||||
case SSL_kRSA:
|
||||
return SSL_TXT_RSA;
|
||||
case SSL_kDHr:
|
||||
return SSL_TXT_DH "_" SSL_TXT_RSA;
|
||||
case SSL_kDHd:
|
||||
return SSL_TXT_DH "_" SSL_TXT_DSS;
|
||||
case SSL_kEDH:
|
||||
switch (cipher->algorithm_auth) {
|
||||
case SSL_aDSS:
|
||||
return "DHE_" SSL_TXT_DSS;
|
||||
case SSL_aRSA:
|
||||
return "DHE_" SSL_TXT_RSA;
|
||||
case SSL_aNULL:
|
||||
return SSL_TXT_DH "_anon";
|
||||
default:
|
||||
return "UNKNOWN";
|
||||
}
|
||||
case SSL_kECDHr:
|
||||
return SSL_TXT_ECDH "_" SSL_TXT_RSA;
|
||||
case SSL_kECDHe:
|
||||
return SSL_TXT_ECDH "_" SSL_TXT_ECDSA;
|
||||
case SSL_kEECDH:
|
||||
switch (cipher->algorithm_auth) {
|
||||
case SSL_aECDSA:
|
||||
return "ECDHE_" SSL_TXT_ECDSA;
|
||||
case SSL_aRSA:
|
||||
return "ECDHE_" SSL_TXT_RSA;
|
||||
case SSL_aNULL:
|
||||
return SSL_TXT_ECDH "_anon";
|
||||
default:
|
||||
return "UNKNOWN";
|
||||
}
|
||||
default:
|
||||
return "UNKNOWN";
|
||||
}
|
||||
}
|
||||
|
||||
/* number of bits for symmetric cipher */
|
||||
int SSL_CIPHER_get_bits(const SSL_CIPHER *c, int *alg_bits)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user