diff options
| author | jsing <> | 2018-03-17 14:40:45 +0000 |
|---|---|---|
| committer | jsing <> | 2018-03-17 14:40:45 +0000 |
| commit | e1a22b8c62b92cd313093f7abfeac785adc963e5 (patch) | |
| tree | 6d4bf08e65211843db6a2d7d8335ac799b364e0e | |
| parent | 66eff36ef195a6a7a765636645756dca24d23c6b (diff) | |
| download | openbsd-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().
| -rw-r--r-- | src/lib/libssl/Symbols.list | 5 | ||||
| -rw-r--r-- | src/lib/libssl/ssl.h | 7 | ||||
| -rw-r--r-- | src/lib/libssl/ssl_ciph.c | 100 |
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 */ |
| 41 | SSL_CIPHER_description | 41 | SSL_CIPHER_description |
| 42 | SSL_CIPHER_get_auth_nid | ||
| 42 | SSL_CIPHER_get_bits | 43 | SSL_CIPHER_get_bits |
| 43 | SSL_CIPHER_get_by_id | 44 | SSL_CIPHER_get_by_id |
| 44 | SSL_CIPHER_get_by_value | 45 | SSL_CIPHER_get_by_value |
| 46 | SSL_CIPHER_get_cipher_nid | ||
| 47 | SSL_CIPHER_get_digest_nid | ||
| 45 | SSL_CIPHER_get_id | 48 | SSL_CIPHER_get_id |
| 49 | SSL_CIPHER_get_kx_nid | ||
| 46 | SSL_CIPHER_get_name | 50 | SSL_CIPHER_get_name |
| 47 | SSL_CIPHER_get_value | 51 | SSL_CIPHER_get_value |
| 48 | SSL_CIPHER_get_version | 52 | SSL_CIPHER_get_version |
| 53 | SSL_CIPHER_is_aead | ||
| 49 | SSL_COMP_add_compression_method | 54 | SSL_COMP_add_compression_method |
| 50 | SSL_COMP_get_compression_methods | 55 | SSL_COMP_get_compression_methods |
| 51 | SSL_COMP_get_name | 56 | SSL_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); | |||
| 1255 | const char * SSL_CIPHER_get_name(const SSL_CIPHER *c); | 1255 | const char * SSL_CIPHER_get_name(const SSL_CIPHER *c); |
| 1256 | unsigned long SSL_CIPHER_get_id(const SSL_CIPHER *c); | 1256 | unsigned long SSL_CIPHER_get_id(const SSL_CIPHER *c); |
| 1257 | uint16_t SSL_CIPHER_get_value(const SSL_CIPHER *c); | 1257 | uint16_t SSL_CIPHER_get_value(const SSL_CIPHER *c); |
| 1258 | int SSL_CIPHER_get_cipher_nid(const SSL_CIPHER *c); | ||
| 1259 | int SSL_CIPHER_get_digest_nid(const SSL_CIPHER *c); | ||
| 1260 | int SSL_CIPHER_get_kx_nid(const SSL_CIPHER *c); | ||
| 1261 | int SSL_CIPHER_get_auth_nid(const SSL_CIPHER *c); | ||
| 1262 | int SSL_CIPHER_is_aead(const SSL_CIPHER *c); | ||
| 1258 | 1263 | ||
| 1259 | int SSL_get_fd(const SSL *s); | 1264 | int SSL_get_fd(const SSL *s); |
| 1260 | int SSL_get_rfd(const SSL *s); | 1265 | int 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 | ||
| 1723 | int | ||
| 1724 | SSL_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 | |||
| 1756 | int | ||
| 1757 | SSL_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 | |||
| 1781 | int | ||
| 1782 | SSL_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 | |||
| 1798 | int | ||
| 1799 | SSL_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 | |||
| 1815 | int | ||
| 1816 | SSL_CIPHER_is_aead(const SSL_CIPHER *c) | ||
| 1817 | { | ||
| 1818 | return (c->algorithm_mac & SSL_AEAD) == SSL_AEAD; | ||
| 1819 | } | ||
| 1820 | |||
| 1723 | void * | 1821 | void * |
| 1724 | SSL_COMP_get_compression_methods(void) | 1822 | SSL_COMP_get_compression_methods(void) |
| 1725 | { | 1823 | { |
