Add SHA256 Camellia ciphersuites from RFC5932

PR#2800
diff --git a/ssl/s3_lib.c b/ssl/s3_lib.c
index 3a82b40..36ff200 100644
--- a/ssl/s3_lib.c
+++ b/ssl/s3_lib.c
@@ -2028,6 +2028,202 @@
 	},
 #endif
 
+#ifndef OPENSSL_NO_CAMELLIA
+	/* TLS 1.2 Camellia SHA-256 ciphersuites from RFC5932 */
+
+	/* Cipher BA */
+	{
+	1,
+	TLS1_TXT_RSA_WITH_CAMELLIA_128_CBC_SHA256,
+	TLS1_CK_RSA_WITH_CAMELLIA_128_CBC_SHA256,
+	SSL_kRSA,
+	SSL_aRSA,
+	SSL_CAMELLIA128,
+	SSL_SHA256,
+	SSL_TLSV1_2,
+	SSL_NOT_EXP|SSL_HIGH,
+	SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256,
+	128,
+	128,
+	},
+
+	/* Cipher BB */
+	{
+	1,
+	TLS1_TXT_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256,
+	TLS1_CK_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256,
+	SSL_kDHd,
+	SSL_aDH,
+	SSL_CAMELLIA128,
+	SSL_SHA256,
+	SSL_TLSV1_2,
+	SSL_NOT_EXP|SSL_HIGH,
+	SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256,
+	128,
+	128,
+	},
+
+	/* Cipher BC */
+	{
+	1,
+	TLS1_TXT_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256,
+	TLS1_CK_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256,
+	SSL_kDHr,
+	SSL_aDH,
+	SSL_CAMELLIA128,
+	SSL_SHA256,
+	SSL_TLSV1_2,
+	SSL_NOT_EXP|SSL_HIGH,
+	SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256,
+	128,
+	128,
+	},
+
+	/* Cipher BD */
+	{
+	1,
+	TLS1_TXT_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256,
+	TLS1_CK_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256,
+	SSL_kEDH,
+	SSL_aDSS,
+	SSL_CAMELLIA128,
+	SSL_SHA256,
+	SSL_TLSV1_2,
+	SSL_NOT_EXP|SSL_HIGH,
+	SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256,
+	128,
+	128,
+	},
+
+	/* Cipher BE */
+	{
+	1,
+	TLS1_TXT_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256,
+	TLS1_CK_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256,
+	SSL_kEDH,
+	SSL_aRSA,
+	SSL_CAMELLIA128,
+	SSL_SHA256,
+	SSL_TLSV1_2,
+	SSL_NOT_EXP|SSL_HIGH,
+	SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256,
+	128,
+	128,
+	},
+
+	/* Cipher BF */
+	{
+	1,
+	TLS1_TXT_ADH_WITH_CAMELLIA_128_CBC_SHA256,
+	TLS1_CK_ADH_WITH_CAMELLIA_128_CBC_SHA256,
+	SSL_kEDH,
+	SSL_aNULL,
+	SSL_CAMELLIA128,
+	SSL_SHA256,
+	SSL_TLSV1_2,
+	SSL_NOT_EXP|SSL_HIGH,
+	SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256,
+	128,
+	128,
+	},
+
+	/* Cipher C0 */
+	{
+	1,
+	TLS1_TXT_RSA_WITH_CAMELLIA_256_CBC_SHA256,
+	TLS1_CK_RSA_WITH_CAMELLIA_256_CBC_SHA256,
+	SSL_kRSA,
+	SSL_aRSA,
+	SSL_CAMELLIA256,
+	SSL_SHA256,
+	SSL_TLSV1_2,
+	SSL_NOT_EXP|SSL_HIGH,
+	SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256,
+	256,
+	256,
+	},
+
+	/* Cipher C1 */
+	{
+	1,
+	TLS1_TXT_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256,
+	TLS1_CK_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256,
+	SSL_kDHd,
+	SSL_aDH,
+	SSL_CAMELLIA256,
+	SSL_SHA256,
+	SSL_TLSV1_2,
+	SSL_NOT_EXP|SSL_HIGH,
+	SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256,
+	256,
+	256,
+	},
+
+	/* Cipher C2 */
+	{
+	1,
+	TLS1_TXT_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256,
+	TLS1_CK_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256,
+	SSL_kDHr,
+	SSL_aDH,
+	SSL_CAMELLIA256,
+	SSL_SHA256,
+	SSL_TLSV1_2,
+	SSL_NOT_EXP|SSL_HIGH,
+	SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256,
+	256,
+	256,
+	},
+
+	/* Cipher C3 */
+	{
+	1,
+	TLS1_TXT_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256,
+	TLS1_CK_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256,
+	SSL_kEDH,
+	SSL_aDSS,
+	SSL_CAMELLIA256,
+	SSL_SHA256,
+	SSL_TLSV1_2,
+	SSL_NOT_EXP|SSL_HIGH,
+	SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256,
+	256,
+	256,
+	},
+
+	/* Cipher C4 */
+	{
+	1,
+	TLS1_TXT_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256,
+	TLS1_CK_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256,
+	SSL_kEDH,
+	SSL_aRSA,
+	SSL_CAMELLIA256,
+	SSL_SHA256,
+	SSL_TLSV1_2,
+	SSL_NOT_EXP|SSL_HIGH,
+	SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256,
+	256,
+	256,
+	},
+
+	/* Cipher C5 */
+	{
+	1,
+	TLS1_TXT_ADH_WITH_CAMELLIA_256_CBC_SHA256,
+	TLS1_CK_ADH_WITH_CAMELLIA_256_CBC_SHA256,
+	SSL_kEDH,
+	SSL_aNULL,
+	SSL_CAMELLIA256,
+	SSL_SHA256,
+	SSL_TLSV1_2,
+	SSL_NOT_EXP|SSL_HIGH,
+	SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256,
+	256,
+	256,
+	},
+#endif
+
 #ifndef OPENSSL_NO_ECDH
 	/* Cipher C001 */
 	{