Skip to content

Commit 2d01cf6

Browse files
committed
src/openssl.c: Return .standard_name from :getCipherInfo
1 parent 357a7f6 commit 2d01cf6

File tree

2 files changed

+366
-1
lines changed

2 files changed

+366
-1
lines changed

doc/luaossl.tex

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1097,7 +1097,8 @@ \section{Modules}
10971097

10981098
\begin{tabular}{ c | l }
10991099
field & description\\\hline
1100-
.name & cipher name returned by \fn{SSL\_CIPHER\_get\_name}\\
1100+
.name & OpenSSL cipher name returned by \fn{SSL\_CIPHER\_get\_name}\\
1101+
.standard_name & standard cipher name returned by \fn{SSL\_CIPHER\_get\_standard\_name}\\
11011102
.bits & number of secret bits returned by \fn{SSL\_CIPHER\_get\_bits}\\
11021103
.version & SSL/TLS version string returned by \fn{SSL\_CIPHER\_get\_version}\\
11031104
.description & key:value cipher description returned by \fn{SSL\_CIPHER\_description}

src/openssl.c

Lines changed: 364 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,10 @@
271271
#define HAVE_RSA_SET0_KEY (OPENSSL_PREREQ(1,1,0) || LIBRESSL_PREREQ(2,7,0))
272272
#endif
273273

274+
#ifndef HAVE_SSL_CIPHER_STANDARD_NAME
275+
#define HAVE_SSL_CIPHER_STANDARD_NAME (!defined(OPENSSL_NO_SSL_TRACE) || OPENSSL_PREREQ(1,1,1))
276+
#endif
277+
274278
#ifndef HAVE_SSL_CLIENT_VERSION
275279
#define HAVE_SSL_CLIENT_VERSION OPENSSL_PREREQ(1,1,0)
276280
#endif
@@ -1785,6 +1789,363 @@ static size_t compat_SSL_SESSION_get_master_key(const SSL_SESSION *session, unsi
17851789
}
17861790
#endif
17871791

1792+
#if !HAVE_SSL_CIPHER_STANDARD_NAME
1793+
static const struct {int num; const char *name;} ssl_ciphers_tbl[] = {
1794+
{0x0000, "TLS_NULL_WITH_NULL_NULL"},
1795+
{0x0001, "TLS_RSA_WITH_NULL_MD5"},
1796+
{0x0002, "TLS_RSA_WITH_NULL_SHA"},
1797+
{0x0003, "TLS_RSA_EXPORT_WITH_RC4_40_MD5"},
1798+
{0x0004, "TLS_RSA_WITH_RC4_128_MD5"},
1799+
{0x0005, "TLS_RSA_WITH_RC4_128_SHA"},
1800+
{0x0006, "TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5"},
1801+
{0x0007, "TLS_RSA_WITH_IDEA_CBC_SHA"},
1802+
{0x0008, "TLS_RSA_EXPORT_WITH_DES40_CBC_SHA"},
1803+
{0x0009, "TLS_RSA_WITH_DES_CBC_SHA"},
1804+
{0x000A, "TLS_RSA_WITH_3DES_EDE_CBC_SHA"},
1805+
{0x000B, "TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA"},
1806+
{0x000C, "TLS_DH_DSS_WITH_DES_CBC_SHA"},
1807+
{0x000D, "TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA"},
1808+
{0x000E, "TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA"},
1809+
{0x000F, "TLS_DH_RSA_WITH_DES_CBC_SHA"},
1810+
{0x0010, "TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA"},
1811+
{0x0011, "TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA"},
1812+
{0x0012, "TLS_DHE_DSS_WITH_DES_CBC_SHA"},
1813+
{0x0013, "TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA"},
1814+
{0x0014, "TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA"},
1815+
{0x0015, "TLS_DHE_RSA_WITH_DES_CBC_SHA"},
1816+
{0x0016, "TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA"},
1817+
{0x0017, "TLS_DH_anon_EXPORT_WITH_RC4_40_MD5"},
1818+
{0x0018, "TLS_DH_anon_WITH_RC4_128_MD5"},
1819+
{0x0019, "TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA"},
1820+
{0x001A, "TLS_DH_anon_WITH_DES_CBC_SHA"},
1821+
{0x001B, "TLS_DH_anon_WITH_3DES_EDE_CBC_SHA"},
1822+
{0x001D, "TLS_FORTEZZA_KEA_WITH_FORTEZZA_CBC_SHA"},
1823+
{0x001E, "TLS_FORTEZZA_KEA_WITH_RC4_128_SHA"},
1824+
{0x001F, "TLS_KRB5_WITH_3DES_EDE_CBC_SHA"},
1825+
{0x0020, "TLS_KRB5_WITH_RC4_128_SHA"},
1826+
{0x0021, "TLS_KRB5_WITH_IDEA_CBC_SHA"},
1827+
{0x0022, "TLS_KRB5_WITH_DES_CBC_MD5"},
1828+
{0x0023, "TLS_KRB5_WITH_3DES_EDE_CBC_MD5"},
1829+
{0x0024, "TLS_KRB5_WITH_RC4_128_MD5"},
1830+
{0x0025, "TLS_KRB5_WITH_IDEA_CBC_MD5"},
1831+
{0x0026, "TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA"},
1832+
{0x0027, "TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA"},
1833+
{0x0028, "TLS_KRB5_EXPORT_WITH_RC4_40_SHA"},
1834+
{0x0029, "TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5"},
1835+
{0x002A, "TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5"},
1836+
{0x002B, "TLS_KRB5_EXPORT_WITH_RC4_40_MD5"},
1837+
{0x002C, "TLS_PSK_WITH_NULL_SHA"},
1838+
{0x002D, "TLS_DHE_PSK_WITH_NULL_SHA"},
1839+
{0x002E, "TLS_RSA_PSK_WITH_NULL_SHA"},
1840+
{0x002F, "TLS_RSA_WITH_AES_128_CBC_SHA"},
1841+
{0x0030, "TLS_DH_DSS_WITH_AES_128_CBC_SHA"},
1842+
{0x0031, "TLS_DH_RSA_WITH_AES_128_CBC_SHA"},
1843+
{0x0032, "TLS_DHE_DSS_WITH_AES_128_CBC_SHA"},
1844+
{0x0033, "TLS_DHE_RSA_WITH_AES_128_CBC_SHA"},
1845+
{0x0034, "TLS_DH_anon_WITH_AES_128_CBC_SHA"},
1846+
{0x0035, "TLS_RSA_WITH_AES_256_CBC_SHA"},
1847+
{0x0036, "TLS_DH_DSS_WITH_AES_256_CBC_SHA"},
1848+
{0x0037, "TLS_DH_RSA_WITH_AES_256_CBC_SHA"},
1849+
{0x0038, "TLS_DHE_DSS_WITH_AES_256_CBC_SHA"},
1850+
{0x0039, "TLS_DHE_RSA_WITH_AES_256_CBC_SHA"},
1851+
{0x003A, "TLS_DH_anon_WITH_AES_256_CBC_SHA"},
1852+
{0x003B, "TLS_RSA_WITH_NULL_SHA256"},
1853+
{0x003C, "TLS_RSA_WITH_AES_128_CBC_SHA256"},
1854+
{0x003D, "TLS_RSA_WITH_AES_256_CBC_SHA256"},
1855+
{0x003E, "TLS_DH_DSS_WITH_AES_128_CBC_SHA256"},
1856+
{0x003F, "TLS_DH_RSA_WITH_AES_128_CBC_SHA256"},
1857+
{0x0040, "TLS_DHE_DSS_WITH_AES_128_CBC_SHA256"},
1858+
{0x0041, "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA"},
1859+
{0x0042, "TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA"},
1860+
{0x0043, "TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA"},
1861+
{0x0044, "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA"},
1862+
{0x0045, "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA"},
1863+
{0x0046, "TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA"},
1864+
{0x0067, "TLS_DHE_RSA_WITH_AES_128_CBC_SHA256"},
1865+
{0x0068, "TLS_DH_DSS_WITH_AES_256_CBC_SHA256"},
1866+
{0x0069, "TLS_DH_RSA_WITH_AES_256_CBC_SHA256"},
1867+
{0x006A, "TLS_DHE_DSS_WITH_AES_256_CBC_SHA256"},
1868+
{0x006B, "TLS_DHE_RSA_WITH_AES_256_CBC_SHA256"},
1869+
{0x006C, "TLS_DH_anon_WITH_AES_128_CBC_SHA256"},
1870+
{0x006D, "TLS_DH_anon_WITH_AES_256_CBC_SHA256"},
1871+
{0x0081, "TLS_GOSTR341001_WITH_28147_CNT_IMIT"},
1872+
{0x0083, "TLS_GOSTR341001_WITH_NULL_GOSTR3411"},
1873+
{0x0084, "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA"},
1874+
{0x0085, "TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA"},
1875+
{0x0086, "TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA"},
1876+
{0x0087, "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA"},
1877+
{0x0088, "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA"},
1878+
{0x0089, "TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA"},
1879+
{0x008A, "TLS_PSK_WITH_RC4_128_SHA"},
1880+
{0x008B, "TLS_PSK_WITH_3DES_EDE_CBC_SHA"},
1881+
{0x008C, "TLS_PSK_WITH_AES_128_CBC_SHA"},
1882+
{0x008D, "TLS_PSK_WITH_AES_256_CBC_SHA"},
1883+
{0x008E, "TLS_DHE_PSK_WITH_RC4_128_SHA"},
1884+
{0x008F, "TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA"},
1885+
{0x0090, "TLS_DHE_PSK_WITH_AES_128_CBC_SHA"},
1886+
{0x0091, "TLS_DHE_PSK_WITH_AES_256_CBC_SHA"},
1887+
{0x0092, "TLS_RSA_PSK_WITH_RC4_128_SHA"},
1888+
{0x0093, "TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA"},
1889+
{0x0094, "TLS_RSA_PSK_WITH_AES_128_CBC_SHA"},
1890+
{0x0095, "TLS_RSA_PSK_WITH_AES_256_CBC_SHA"},
1891+
{0x0096, "TLS_RSA_WITH_SEED_CBC_SHA"},
1892+
{0x0097, "TLS_DH_DSS_WITH_SEED_CBC_SHA"},
1893+
{0x0098, "TLS_DH_RSA_WITH_SEED_CBC_SHA"},
1894+
{0x0099, "TLS_DHE_DSS_WITH_SEED_CBC_SHA"},
1895+
{0x009A, "TLS_DHE_RSA_WITH_SEED_CBC_SHA"},
1896+
{0x009B, "TLS_DH_anon_WITH_SEED_CBC_SHA"},
1897+
{0x009C, "TLS_RSA_WITH_AES_128_GCM_SHA256"},
1898+
{0x009D, "TLS_RSA_WITH_AES_256_GCM_SHA384"},
1899+
{0x009E, "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256"},
1900+
{0x009F, "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384"},
1901+
{0x00A0, "TLS_DH_RSA_WITH_AES_128_GCM_SHA256"},
1902+
{0x00A1, "TLS_DH_RSA_WITH_AES_256_GCM_SHA384"},
1903+
{0x00A2, "TLS_DHE_DSS_WITH_AES_128_GCM_SHA256"},
1904+
{0x00A3, "TLS_DHE_DSS_WITH_AES_256_GCM_SHA384"},
1905+
{0x00A4, "TLS_DH_DSS_WITH_AES_128_GCM_SHA256"},
1906+
{0x00A5, "TLS_DH_DSS_WITH_AES_256_GCM_SHA384"},
1907+
{0x00A6, "TLS_DH_anon_WITH_AES_128_GCM_SHA256"},
1908+
{0x00A7, "TLS_DH_anon_WITH_AES_256_GCM_SHA384"},
1909+
{0x00A8, "TLS_PSK_WITH_AES_128_GCM_SHA256"},
1910+
{0x00A9, "TLS_PSK_WITH_AES_256_GCM_SHA384"},
1911+
{0x00AA, "TLS_DHE_PSK_WITH_AES_128_GCM_SHA256"},
1912+
{0x00AB, "TLS_DHE_PSK_WITH_AES_256_GCM_SHA384"},
1913+
{0x00AC, "TLS_RSA_PSK_WITH_AES_128_GCM_SHA256"},
1914+
{0x00AD, "TLS_RSA_PSK_WITH_AES_256_GCM_SHA384"},
1915+
{0x00AE, "TLS_PSK_WITH_AES_128_CBC_SHA256"},
1916+
{0x00AF, "TLS_PSK_WITH_AES_256_CBC_SHA384"},
1917+
{0x00B0, "TLS_PSK_WITH_NULL_SHA256"},
1918+
{0x00B1, "TLS_PSK_WITH_NULL_SHA384"},
1919+
{0x00B2, "TLS_DHE_PSK_WITH_AES_128_CBC_SHA256"},
1920+
{0x00B3, "TLS_DHE_PSK_WITH_AES_256_CBC_SHA384"},
1921+
{0x00B4, "TLS_DHE_PSK_WITH_NULL_SHA256"},
1922+
{0x00B5, "TLS_DHE_PSK_WITH_NULL_SHA384"},
1923+
{0x00B6, "TLS_RSA_PSK_WITH_AES_128_CBC_SHA256"},
1924+
{0x00B7, "TLS_RSA_PSK_WITH_AES_256_CBC_SHA384"},
1925+
{0x00B8, "TLS_RSA_PSK_WITH_NULL_SHA256"},
1926+
{0x00B9, "TLS_RSA_PSK_WITH_NULL_SHA384"},
1927+
{0x00BA, "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256"},
1928+
{0x00BB, "TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256"},
1929+
{0x00BC, "TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256"},
1930+
{0x00BD, "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256"},
1931+
{0x00BE, "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256"},
1932+
{0x00BF, "TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256"},
1933+
{0x00C0, "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256"},
1934+
{0x00C1, "TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256"},
1935+
{0x00C2, "TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256"},
1936+
{0x00C3, "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256"},
1937+
{0x00C4, "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256"},
1938+
{0x00C5, "TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256"},
1939+
{0x00FF, "TLS_EMPTY_RENEGOTIATION_INFO_SCSV"},
1940+
{0x5600, "TLS_FALLBACK_SCSV"},
1941+
{0xC001, "TLS_ECDH_ECDSA_WITH_NULL_SHA"},
1942+
{0xC002, "TLS_ECDH_ECDSA_WITH_RC4_128_SHA"},
1943+
{0xC003, "TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA"},
1944+
{0xC004, "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA"},
1945+
{0xC005, "TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA"},
1946+
{0xC006, "TLS_ECDHE_ECDSA_WITH_NULL_SHA"},
1947+
{0xC007, "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA"},
1948+
{0xC008, "TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA"},
1949+
{0xC009, "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA"},
1950+
{0xC00A, "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA"},
1951+
{0xC00B, "TLS_ECDH_RSA_WITH_NULL_SHA"},
1952+
{0xC00C, "TLS_ECDH_RSA_WITH_RC4_128_SHA"},
1953+
{0xC00D, "TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA"},
1954+
{0xC00E, "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA"},
1955+
{0xC00F, "TLS_ECDH_RSA_WITH_AES_256_CBC_SHA"},
1956+
{0xC010, "TLS_ECDHE_RSA_WITH_NULL_SHA"},
1957+
{0xC011, "TLS_ECDHE_RSA_WITH_RC4_128_SHA"},
1958+
{0xC012, "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA"},
1959+
{0xC013, "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA"},
1960+
{0xC014, "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA"},
1961+
{0xC015, "TLS_ECDH_anon_WITH_NULL_SHA"},
1962+
{0xC016, "TLS_ECDH_anon_WITH_RC4_128_SHA"},
1963+
{0xC017, "TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA"},
1964+
{0xC018, "TLS_ECDH_anon_WITH_AES_128_CBC_SHA"},
1965+
{0xC019, "TLS_ECDH_anon_WITH_AES_256_CBC_SHA"},
1966+
{0xC01A, "TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA"},
1967+
{0xC01B, "TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA"},
1968+
{0xC01C, "TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA"},
1969+
{0xC01D, "TLS_SRP_SHA_WITH_AES_128_CBC_SHA"},
1970+
{0xC01E, "TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA"},
1971+
{0xC01F, "TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA"},
1972+
{0xC020, "TLS_SRP_SHA_WITH_AES_256_CBC_SHA"},
1973+
{0xC021, "TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA"},
1974+
{0xC022, "TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA"},
1975+
{0xC023, "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256"},
1976+
{0xC024, "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384"},
1977+
{0xC025, "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256"},
1978+
{0xC026, "TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384"},
1979+
{0xC027, "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256"},
1980+
{0xC028, "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"},
1981+
{0xC029, "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256"},
1982+
{0xC02A, "TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384"},
1983+
{0xC02B, "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256"},
1984+
{0xC02C, "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384"},
1985+
{0xC02D, "TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256"},
1986+
{0xC02E, "TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384"},
1987+
{0xC02F, "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"},
1988+
{0xC030, "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"},
1989+
{0xC031, "TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256"},
1990+
{0xC032, "TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384"},
1991+
{0xC033, "TLS_ECDHE_PSK_WITH_RC4_128_SHA"},
1992+
{0xC034, "TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA"},
1993+
{0xC035, "TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA"},
1994+
{0xC036, "TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA"},
1995+
{0xC037, "TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256"},
1996+
{0xC038, "TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384"},
1997+
{0xC039, "TLS_ECDHE_PSK_WITH_NULL_SHA"},
1998+
{0xC03A, "TLS_ECDHE_PSK_WITH_NULL_SHA256"},
1999+
{0xC03B, "TLS_ECDHE_PSK_WITH_NULL_SHA384"},
2000+
{0xC03C, "TLS_RSA_WITH_ARIA_128_CBC_SHA256"},
2001+
{0xC03D, "TLS_RSA_WITH_ARIA_256_CBC_SHA384"},
2002+
{0xC03E, "TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256"},
2003+
{0xC03F, "TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384"},
2004+
{0xC040, "TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256"},
2005+
{0xC041, "TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384"},
2006+
{0xC042, "TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256"},
2007+
{0xC043, "TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384"},
2008+
{0xC044, "TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256"},
2009+
{0xC045, "TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384"},
2010+
{0xC046, "TLS_DH_anon_WITH_ARIA_128_CBC_SHA256"},
2011+
{0xC047, "TLS_DH_anon_WITH_ARIA_256_CBC_SHA384"},
2012+
{0xC048, "TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256"},
2013+
{0xC049, "TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384"},
2014+
{0xC04A, "TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256"},
2015+
{0xC04B, "TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384"},
2016+
{0xC04C, "TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256"},
2017+
{0xC04D, "TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384"},
2018+
{0xC04E, "TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256"},
2019+
{0xC04F, "TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384"},
2020+
{0xC050, "TLS_RSA_WITH_ARIA_128_GCM_SHA256"},
2021+
{0xC051, "TLS_RSA_WITH_ARIA_256_GCM_SHA384"},
2022+
{0xC052, "TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256"},
2023+
{0xC053, "TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384"},
2024+
{0xC054, "TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256"},
2025+
{0xC055, "TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384"},
2026+
{0xC056, "TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256"},
2027+
{0xC057, "TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384"},
2028+
{0xC058, "TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256"},
2029+
{0xC059, "TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384"},
2030+
{0xC05A, "TLS_DH_anon_WITH_ARIA_128_GCM_SHA256"},
2031+
{0xC05B, "TLS_DH_anon_WITH_ARIA_256_GCM_SHA384"},
2032+
{0xC05C, "TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256"},
2033+
{0xC05D, "TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384"},
2034+
{0xC05E, "TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256"},
2035+
{0xC05F, "TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384"},
2036+
{0xC060, "TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256"},
2037+
{0xC061, "TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384"},
2038+
{0xC062, "TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256"},
2039+
{0xC063, "TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384"},
2040+
{0xC064, "TLS_PSK_WITH_ARIA_128_CBC_SHA256"},
2041+
{0xC065, "TLS_PSK_WITH_ARIA_256_CBC_SHA384"},
2042+
{0xC066, "TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256"},
2043+
{0xC067, "TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384"},
2044+
{0xC068, "TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256"},
2045+
{0xC069, "TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384"},
2046+
{0xC06A, "TLS_PSK_WITH_ARIA_128_GCM_SHA256"},
2047+
{0xC06B, "TLS_PSK_WITH_ARIA_256_GCM_SHA384"},
2048+
{0xC06C, "TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256"},
2049+
{0xC06D, "TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384"},
2050+
{0xC06E, "TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256"},
2051+
{0xC06F, "TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384"},
2052+
{0xC070, "TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256"},
2053+
{0xC071, "TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384"},
2054+
{0xC072, "TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256"},
2055+
{0xC073, "TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384"},
2056+
{0xC074, "TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256"},
2057+
{0xC075, "TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384"},
2058+
{0xC076, "TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256"},
2059+
{0xC077, "TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384"},
2060+
{0xC078, "TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256"},
2061+
{0xC079, "TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384"},
2062+
{0xC07A, "TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256"},
2063+
{0xC07B, "TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384"},
2064+
{0xC07C, "TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256"},
2065+
{0xC07D, "TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384"},
2066+
{0xC07E, "TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256"},
2067+
{0xC07F, "TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384"},
2068+
{0xC080, "TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256"},
2069+
{0xC081, "TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384"},
2070+
{0xC082, "TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256"},
2071+
{0xC083, "TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384"},
2072+
{0xC084, "TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256"},
2073+
{0xC085, "TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384"},
2074+
{0xC086, "TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256"},
2075+
{0xC087, "TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384"},
2076+
{0xC088, "TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256"},
2077+
{0xC089, "TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384"},
2078+
{0xC08A, "TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256"},
2079+
{0xC08B, "TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384"},
2080+
{0xC08C, "TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256"},
2081+
{0xC08D, "TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384"},
2082+
{0xC08E, "TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256"},
2083+
{0xC08F, "TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384"},
2084+
{0xC090, "TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256"},
2085+
{0xC091, "TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384"},
2086+
{0xC092, "TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256"},
2087+
{0xC093, "TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384"},
2088+
{0xC094, "TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256"},
2089+
{0xC095, "TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384"},
2090+
{0xC096, "TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256"},
2091+
{0xC097, "TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384"},
2092+
{0xC098, "TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256"},
2093+
{0xC099, "TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384"},
2094+
{0xC09A, "TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256"},
2095+
{0xC09B, "TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384"},
2096+
{0xC09C, "TLS_RSA_WITH_AES_128_CCM"},
2097+
{0xC09D, "TLS_RSA_WITH_AES_256_CCM"},
2098+
{0xC09E, "TLS_DHE_RSA_WITH_AES_128_CCM"},
2099+
{0xC09F, "TLS_DHE_RSA_WITH_AES_256_CCM"},
2100+
{0xC0A0, "TLS_RSA_WITH_AES_128_CCM_8"},
2101+
{0xC0A1, "TLS_RSA_WITH_AES_256_CCM_8"},
2102+
{0xC0A2, "TLS_DHE_RSA_WITH_AES_128_CCM_8"},
2103+
{0xC0A3, "TLS_DHE_RSA_WITH_AES_256_CCM_8"},
2104+
{0xC0A4, "TLS_PSK_WITH_AES_128_CCM"},
2105+
{0xC0A5, "TLS_PSK_WITH_AES_256_CCM"},
2106+
{0xC0A6, "TLS_DHE_PSK_WITH_AES_128_CCM"},
2107+
{0xC0A7, "TLS_DHE_PSK_WITH_AES_256_CCM"},
2108+
{0xC0A8, "TLS_PSK_WITH_AES_128_CCM_8"},
2109+
{0xC0A9, "TLS_PSK_WITH_AES_256_CCM_8"},
2110+
{0xC0AA, "TLS_PSK_DHE_WITH_AES_128_CCM_8"},
2111+
{0xC0AB, "TLS_PSK_DHE_WITH_AES_256_CCM_8"},
2112+
{0xC0AC, "TLS_ECDHE_ECDSA_WITH_AES_128_CCM"},
2113+
{0xC0AD, "TLS_ECDHE_ECDSA_WITH_AES_256_CCM"},
2114+
{0xC0AE, "TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8"},
2115+
{0xC0AF, "TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8"},
2116+
{0xCCA8, "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256"},
2117+
{0xCCA9, "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256"},
2118+
{0xCCAA, "TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256"},
2119+
{0xCCAB, "TLS_PSK_WITH_CHACHA20_POLY1305_SHA256"},
2120+
{0xCCAC, "TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256"},
2121+
{0xCCAD, "TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256"},
2122+
{0xCCAE, "TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256"},
2123+
{0xFEFE, "SSL_RSA_FIPS_WITH_DES_CBC_SHA"},
2124+
{0xFEFF, "SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA"},
2125+
{0xFF85, "GOST2012-GOST8912-GOST8912"},
2126+
{0xFF87, "GOST2012-NULL-GOST12"},
2127+
};
2128+
2129+
#define SSL_CIPHER_standard_name(...) EXPAND( compat_SSL_CIPHER_standard_name(__VA_ARGS__) )
2130+
2131+
static const char *compat_SSL_CIPHER_standard_name(const SSL_CIPHER *c){
2132+
size_t i;
2133+
int id;
2134+
2135+
if (!c)
2136+
return "(NONE)";
2137+
2138+
id = SSL_CIPHER_get_protocol_id(c);
2139+
2140+
for (i = 0; i < countof(ssl_ciphers_tbl); i++) {
2141+
if (ssl_ciphers_tbl[i]->num == id)
2142+
return ssl_ciphers_tbl[i]->name;
2143+
}
2144+
2145+
return NULL;
2146+
} /* compat_SSL_CIPHER_standard_name() */
2147+
#endif
2148+
17882149
#if !HAVE_SSL_CLIENT_VERSION
17892150
#define SSL_client_version(...) EXPAND( compat_SSL_client_version(__VA_ARGS__) )
17902151

@@ -9449,6 +9810,9 @@ static int ssl_getCipherInfo(lua_State *L) {
94499810
lua_pushstring(L, SSL_CIPHER_get_name(cipher));
94509811
lua_setfield(L, -2, "name");
94519812

9813+
lua_pushstring(L, SSL_CIPHER_standard_name(cipher));
9814+
lua_setfield(L, -2, "standard_name");
9815+
94529816
lua_pushinteger(L, SSL_CIPHER_get_bits(cipher, 0));
94539817
lua_setfield(L, -2, "bits");
94549818

0 commit comments

Comments
 (0)