summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjsing <>2018-03-17 14:40:45 +0000
committerjsing <>2018-03-17 14:40:45 +0000
commite1a22b8c62b92cd313093f7abfeac785adc963e5 (patch)
tree6d4bf08e65211843db6a2d7d8335ac799b364e0e /src
parent66eff36ef195a6a7a765636645756dca24d23c6b (diff)
downloadopenbsd-e1a22b8c62b92cd313093f7abfeac785adc963e5.tar.gz
openbsd-e1a22b8c62b92cd313093f7abfeac785adc963e5.tar.bz2
openbsd-e1a22b8c62b92cd313093f7abfeac785adc963e5.zip
Provide SSL_CIPHER_get_auth_nid(), SSL_CIPHER_get_cipher_nid(),
SSL_CIPHER_get_digest_nid(), SSL_CIPHER_get_kx_nid() and SSL_CIPHER_is_aead().
Diffstat (limited to 'src')
-rw-r--r--src/lib/libssl/Symbols.list5
-rw-r--r--src/lib/libssl/ssl.h7
-rw-r--r--src/lib/libssl/ssl_ciph.c100
3 files changed, 110 insertions, 2 deletions
diff --git a/src/lib/libssl/Symbols.list b/src/lib/libssl/Symbols.list
index 4947bce162..cf5ff1453d 100644
--- a/src/lib/libssl/Symbols.list
+++ b/src/lib/libssl/Symbols.list
@@ -39,13 +39,18 @@ ERR_load_SSL_strings
39 39
40/* general API */ 40/* general API */
41SSL_CIPHER_description 41SSL_CIPHER_description
42SSL_CIPHER_get_auth_nid
42SSL_CIPHER_get_bits 43SSL_CIPHER_get_bits
43SSL_CIPHER_get_by_id 44SSL_CIPHER_get_by_id
44SSL_CIPHER_get_by_value 45SSL_CIPHER_get_by_value
46SSL_CIPHER_get_cipher_nid
47SSL_CIPHER_get_digest_nid
45SSL_CIPHER_get_id 48SSL_CIPHER_get_id
49SSL_CIPHER_get_kx_nid
46SSL_CIPHER_get_name 50SSL_CIPHER_get_name
47SSL_CIPHER_get_value 51SSL_CIPHER_get_value
48SSL_CIPHER_get_version 52SSL_CIPHER_get_version
53SSL_CIPHER_is_aead
49SSL_COMP_add_compression_method 54SSL_COMP_add_compression_method
50SSL_COMP_get_compression_methods 55SSL_COMP_get_compression_methods
51SSL_COMP_get_name 56SSL_COMP_get_name
diff --git a/src/lib/libssl/ssl.h b/src/lib/libssl/ssl.h
index 3a5e2f5f03..206049887d 100644
--- a/src/lib/libssl/ssl.h
+++ b/src/lib/libssl/ssl.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl.h,v 1.148 2018/03/17 14:26:13 jsing Exp $ */ 1/* $OpenBSD: ssl.h,v 1.149 2018/03/17 14:40:45 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -1255,6 +1255,11 @@ char * SSL_CIPHER_get_version(const SSL_CIPHER *c);
1255const char * SSL_CIPHER_get_name(const SSL_CIPHER *c); 1255const char * SSL_CIPHER_get_name(const SSL_CIPHER *c);
1256unsigned long SSL_CIPHER_get_id(const SSL_CIPHER *c); 1256unsigned long SSL_CIPHER_get_id(const SSL_CIPHER *c);
1257uint16_t SSL_CIPHER_get_value(const SSL_CIPHER *c); 1257uint16_t SSL_CIPHER_get_value(const SSL_CIPHER *c);
1258int SSL_CIPHER_get_cipher_nid(const SSL_CIPHER *c);
1259int SSL_CIPHER_get_digest_nid(const SSL_CIPHER *c);
1260int SSL_CIPHER_get_kx_nid(const SSL_CIPHER *c);
1261int SSL_CIPHER_get_auth_nid(const SSL_CIPHER *c);
1262int SSL_CIPHER_is_aead(const SSL_CIPHER *c);
1258 1263
1259int SSL_get_fd(const SSL *s); 1264int SSL_get_fd(const SSL *s);
1260int SSL_get_rfd(const SSL *s); 1265int SSL_get_rfd(const SSL *s);
diff --git a/src/lib/libssl/ssl_ciph.c b/src/lib/libssl/ssl_ciph.c
index f30ffeaf2c..271d77f38b 100644
--- a/src/lib/libssl/ssl_ciph.c
+++ b/src/lib/libssl/ssl_ciph.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl_ciph.c,v 1.97 2017/08/28 16:37:04 jsing Exp $ */ 1/* $OpenBSD: ssl_ciph.c,v 1.98 2018/03/17 14:40:45 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -1720,6 +1720,104 @@ SSL_CIPHER_get_value(const SSL_CIPHER *c)
1720 return ssl3_cipher_get_value(c); 1720 return ssl3_cipher_get_value(c);
1721} 1721}
1722 1722
1723int
1724SSL_CIPHER_get_cipher_nid(const SSL_CIPHER *c)
1725{
1726 switch (c->algorithm_enc) {
1727 case SSL_eNULL:
1728 return NID_undef;
1729 case SSL_3DES:
1730 return NID_des_ede3_cbc;
1731 case SSL_AES128:
1732 return NID_aes_128_cbc;
1733 case SSL_AES128GCM:
1734 return NID_aes_128_gcm;
1735 case SSL_AES256:
1736 return NID_aes_256_cbc;
1737 case SSL_AES256GCM:
1738 return NID_aes_256_gcm;
1739 case SSL_CAMELLIA128:
1740 return NID_camellia_128_cbc;
1741 case SSL_CAMELLIA256:
1742 return NID_camellia_256_cbc;
1743 case SSL_CHACHA20POLY1305:
1744 return NID_chacha20_poly1305;
1745 case SSL_DES:
1746 return NID_des_cbc;
1747 case SSL_RC4:
1748 return NID_rc4;
1749 case SSL_eGOST2814789CNT:
1750 return NID_gost89_cnt;
1751 default:
1752 return NID_undef;
1753 }
1754}
1755
1756int
1757SSL_CIPHER_get_digest_nid(const SSL_CIPHER *c)
1758{
1759 switch (c->algorithm_mac) {
1760 case SSL_AEAD:
1761 return NID_undef;
1762 case SSL_GOST89MAC:
1763 return NID_id_Gost28147_89_MAC;
1764 case SSL_GOST94:
1765 return NID_id_GostR3411_94;
1766 case SSL_MD5:
1767 return NID_md5;
1768 case SSL_SHA1:
1769 return NID_sha1;
1770 case SSL_SHA256:
1771 return NID_sha256;
1772 case SSL_SHA384:
1773 return NID_sha384;
1774 case SSL_STREEBOG256:
1775 return NID_id_tc26_gost3411_2012_256;
1776 default:
1777 return NID_undef;
1778 }
1779}
1780
1781int
1782SSL_CIPHER_get_kx_nid(const SSL_CIPHER *c)
1783{
1784 switch (c->algorithm_mkey) {
1785 case SSL_kDHE:
1786 return NID_kx_dhe;
1787 case SSL_kECDHE:
1788 return NID_kx_ecdhe;
1789 case SSL_kGOST:
1790 return NID_kx_gost;
1791 case SSL_kRSA:
1792 return NID_kx_rsa;
1793 default:
1794 return NID_undef;
1795 }
1796}
1797
1798int
1799SSL_CIPHER_get_auth_nid(const SSL_CIPHER *c)
1800{
1801 switch (c->algorithm_auth) {
1802 case SSL_aNULL:
1803 return NID_auth_null;
1804 case SSL_aECDSA:
1805 return NID_auth_ecdsa;
1806 case SSL_aGOST01:
1807 return NID_auth_gost01;
1808 case SSL_aRSA:
1809 return NID_auth_rsa;
1810 default:
1811 return NID_undef;
1812 }
1813}
1814
1815int
1816SSL_CIPHER_is_aead(const SSL_CIPHER *c)
1817{
1818 return (c->algorithm_mac & SSL_AEAD) == SSL_AEAD;
1819}
1820
1723void * 1821void *
1724SSL_COMP_get_compression_methods(void) 1822SSL_COMP_get_compression_methods(void)
1725{ 1823{