diff options
| author | jsing <> | 2018-03-17 14:40:45 +0000 |
|---|---|---|
| committer | jsing <> | 2018-03-17 14:40:45 +0000 |
| commit | 97cce1c18a643654314223b6fa1585edfc6b613a (patch) | |
| tree | 6d4bf08e65211843db6a2d7d8335ac799b364e0e /src/lib/libssl/ssl_ciph.c | |
| parent | 960d488632b58b681175adcd0725411a8fc6e764 (diff) | |
| download | openbsd-97cce1c18a643654314223b6fa1585edfc6b613a.tar.gz openbsd-97cce1c18a643654314223b6fa1585edfc6b613a.tar.bz2 openbsd-97cce1c18a643654314223b6fa1585edfc6b613a.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/lib/libssl/ssl_ciph.c')
| -rw-r--r-- | src/lib/libssl/ssl_ciph.c | 100 |
1 files changed, 99 insertions, 1 deletions
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 | { |
