Added CCM and CCM_8 cipher suites.
[BoarSSL] / SSLTLS / SSL.cs
index 4059194..0b0948f 100644 (file)
@@ -204,6 +204,16 @@ public sealed class SSL {
        public const int ECDH_RSA_WITH_AES_128_GCM_SHA256       = 0xC031;
        public const int ECDH_RSA_WITH_AES_256_GCM_SHA384       = 0xC032;
 
+       /* From RFC 6655 and 7251 */
+       public const int RSA_WITH_AES_128_CCM                   = 0xC09C;
+       public const int RSA_WITH_AES_256_CCM                   = 0xC09D;
+       public const int RSA_WITH_AES_128_CCM_8                 = 0xC0A0;
+       public const int RSA_WITH_AES_256_CCM_8                 = 0xC0A1;
+       public const int ECDHE_ECDSA_WITH_AES_128_CCM           = 0xC0AC;
+       public const int ECDHE_ECDSA_WITH_AES_256_CCM           = 0xC0AD;
+       public const int ECDHE_ECDSA_WITH_AES_128_CCM_8         = 0xC0AE;
+       public const int ECDHE_ECDSA_WITH_AES_256_CCM_8         = 0xC0AF;
+
        /* From RFC 7905 */
        public const int ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256      = 0xCCA8;
        public const int ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256    = 0xCCA9;
@@ -504,6 +514,22 @@ public sealed class SSL {
                        return "ECDH_RSA_WITH_AES_128_GCM_SHA256";
                case ECDH_RSA_WITH_AES_256_GCM_SHA384:
                        return "ECDH_RSA_WITH_AES_256_GCM_SHA384";
+               case RSA_WITH_AES_128_CCM:
+                       return "RSA_WITH_AES_128_CCM";
+               case RSA_WITH_AES_256_CCM:
+                       return "RSA_WITH_AES_256_CCM";
+               case RSA_WITH_AES_128_CCM_8:
+                       return "RSA_WITH_AES_128_CCM_8";
+               case RSA_WITH_AES_256_CCM_8:
+                       return "RSA_WITH_AES_256_CCM_8";
+               case ECDHE_ECDSA_WITH_AES_128_CCM:
+                       return "ECDHE_ECDSA_WITH_AES_128_CCM";
+               case ECDHE_ECDSA_WITH_AES_256_CCM:
+                       return "ECDHE_ECDSA_WITH_AES_256_CCM";
+               case ECDHE_ECDSA_WITH_AES_128_CCM_8:
+                       return "ECDHE_ECDSA_WITH_AES_128_CCM_8";
+               case ECDHE_ECDSA_WITH_AES_256_CCM_8:
+                       return "ECDHE_ECDSA_WITH_AES_256_CCM_8";
                case ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256:
                        return "ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256";
                case ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256:
@@ -718,6 +744,22 @@ public sealed class SSL {
                        return ECDH_RSA_WITH_AES_128_GCM_SHA256;
                case "ECDHRSAWITHAES256GCMSHA384":
                        return ECDH_RSA_WITH_AES_256_GCM_SHA384;
+               case "RSAWITHAES128CCM":
+                       return RSA_WITH_AES_128_CCM;
+               case "RSAWITHAES256CCM":
+                       return RSA_WITH_AES_256_CCM;
+               case "RSAWITHAES128CCM8":
+                       return RSA_WITH_AES_128_CCM_8;
+               case "RSAWITHAES256CCM8":
+                       return RSA_WITH_AES_256_CCM_8;
+               case "ECDHEECDSAWITHAES128CCM":
+                       return ECDHE_ECDSA_WITH_AES_128_CCM;
+               case "ECDHEECDSAWITHAES256CCM":
+                       return ECDHE_ECDSA_WITH_AES_256_CCM;
+               case "ECDHEECDSAWITHAES128CCM8":
+                       return ECDHE_ECDSA_WITH_AES_128_CCM_8;
+               case "ECDHEECDSAWITHAES256CCM8":
+                       return ECDHE_ECDSA_WITH_AES_256_CCM_8;
                case "ECDHERSAWITHCHACHA20POLY1305SHA256":
                        return ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256;
                case "ECDHEECDSAWITHCHACHA20POLY1305SHA256":
@@ -867,6 +909,10 @@ public sealed class SSL {
                case RSA_WITH_AES_256_CBC_SHA256:
                case RSA_WITH_AES_128_GCM_SHA256:
                case RSA_WITH_AES_256_GCM_SHA384:
+               case RSA_WITH_AES_128_CCM:
+               case RSA_WITH_AES_256_CCM:
+               case RSA_WITH_AES_128_CCM_8:
+               case RSA_WITH_AES_256_CCM_8:
                        return true;
                default:
                        return false;
@@ -996,6 +1042,10 @@ public sealed class SSL {
                case ECDHE_ECDSA_WITH_AES_256_CBC_SHA384:
                case ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:
                case ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:
+               case ECDHE_ECDSA_WITH_AES_128_CCM:
+               case ECDHE_ECDSA_WITH_AES_256_CCM:
+               case ECDHE_ECDSA_WITH_AES_128_CCM_8:
+               case ECDHE_ECDSA_WITH_AES_256_CCM_8:
                case ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256:
                        return true;
                default:
@@ -1093,6 +1143,14 @@ public sealed class SSL {
                case ECDHE_RSA_WITH_AES_256_GCM_SHA384:
                case ECDH_RSA_WITH_AES_128_GCM_SHA256:
                case ECDH_RSA_WITH_AES_256_GCM_SHA384:
+               case RSA_WITH_AES_128_CCM:
+               case RSA_WITH_AES_256_CCM:
+               case RSA_WITH_AES_128_CCM_8:
+               case RSA_WITH_AES_256_CCM_8:
+               case ECDHE_ECDSA_WITH_AES_128_CCM:
+               case ECDHE_ECDSA_WITH_AES_256_CCM:
+               case ECDHE_ECDSA_WITH_AES_128_CCM_8:
+               case ECDHE_ECDSA_WITH_AES_256_CCM_8:
                case ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256:
                case ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256:
                case DHE_RSA_WITH_CHACHA20_POLY1305_SHA256: