s2n_cipher_preferences.h 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. /*
  2. * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License").
  5. * You may not use this file except in compliance with the License.
  6. * A copy of the License is located at
  7. *
  8. * http://aws.amazon.com/apache2.0
  9. *
  10. * or in the "license" file accompanying this file. This file is distributed
  11. * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
  12. * express or implied. See the License for the specific language governing
  13. * permissions and limitations under the License.
  14. */
  15. #pragma once
  16. #include <stdint.h>
  17. #include "tls/s2n_cipher_suites.h"
  18. #include "tls/s2n_kem.h"
  19. #include "tls/s2n_tls13.h"
  20. struct s2n_cipher_preferences {
  21. uint8_t count;
  22. struct s2n_cipher_suite **suites;
  23. bool allow_chacha20_boosting;
  24. };
  25. extern const struct s2n_cipher_preferences cipher_preferences_20230317;
  26. extern const struct s2n_cipher_preferences cipher_preferences_20140601;
  27. extern const struct s2n_cipher_preferences cipher_preferences_20141001;
  28. extern const struct s2n_cipher_preferences cipher_preferences_20150202;
  29. extern const struct s2n_cipher_preferences cipher_preferences_20150214;
  30. extern const struct s2n_cipher_preferences cipher_preferences_20150306;
  31. extern const struct s2n_cipher_preferences cipher_preferences_20160411;
  32. extern const struct s2n_cipher_preferences cipher_preferences_20160804;
  33. extern const struct s2n_cipher_preferences cipher_preferences_20160824;
  34. extern const struct s2n_cipher_preferences cipher_preferences_20170210;
  35. extern const struct s2n_cipher_preferences cipher_preferences_20170328;
  36. extern const struct s2n_cipher_preferences cipher_preferences_20170328_gcm;
  37. extern const struct s2n_cipher_preferences cipher_preferences_20170405;
  38. extern const struct s2n_cipher_preferences cipher_preferences_20170405_gcm;
  39. extern const struct s2n_cipher_preferences cipher_preferences_20170718;
  40. extern const struct s2n_cipher_preferences cipher_preferences_20170718_gcm;
  41. extern const struct s2n_cipher_preferences cipher_preferences_20190214;
  42. extern const struct s2n_cipher_preferences cipher_preferences_20190214_gcm;
  43. extern const struct s2n_cipher_preferences cipher_preferences_20190801;
  44. extern const struct s2n_cipher_preferences cipher_preferences_20190120;
  45. extern const struct s2n_cipher_preferences cipher_preferences_20190121;
  46. extern const struct s2n_cipher_preferences cipher_preferences_20190122;
  47. extern const struct s2n_cipher_preferences cipher_preferences_rfc9151;
  48. extern const struct s2n_cipher_preferences cipher_preferences_20210816;
  49. extern const struct s2n_cipher_preferences cipher_preferences_20210816_gcm;
  50. extern const struct s2n_cipher_preferences cipher_preferences_20210825;
  51. extern const struct s2n_cipher_preferences cipher_preferences_20210825_gcm;
  52. extern const struct s2n_cipher_preferences cipher_preferences_20210831;
  53. extern const struct s2n_cipher_preferences cipher_preferences_default_fips;
  54. extern const struct s2n_cipher_preferences cipher_preferences_test_all;
  55. extern const struct s2n_cipher_preferences cipher_preferences_test_all_tls12;
  56. extern const struct s2n_cipher_preferences cipher_preferences_test_all_fips;
  57. extern const struct s2n_cipher_preferences cipher_preferences_test_all_ecdsa;
  58. extern const struct s2n_cipher_preferences cipher_preferences_test_ecdsa_priority;
  59. extern const struct s2n_cipher_preferences cipher_preferences_test_all_rsa_kex;
  60. extern const struct s2n_cipher_preferences cipher_preferences_test_all_tls13;
  61. /* See https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html */
  62. extern const struct s2n_cipher_preferences elb_security_policy_2015_04;
  63. extern const struct s2n_cipher_preferences elb_security_policy_2016_08;
  64. extern const struct s2n_cipher_preferences elb_security_policy_tls_1_1_2017_01;
  65. extern const struct s2n_cipher_preferences elb_security_policy_tls_1_2_2017_01;
  66. extern const struct s2n_cipher_preferences elb_security_policy_tls_1_2_ext_2018_06;
  67. extern const struct s2n_cipher_preferences elb_security_policy_fs_2018_06;
  68. extern const struct s2n_cipher_preferences elb_security_policy_fs_1_2_2019_08;
  69. extern const struct s2n_cipher_preferences elb_security_policy_fs_1_1_2019_08;
  70. extern const struct s2n_cipher_preferences elb_security_policy_fs_1_2_Res_2019_08;
  71. /* CloudFront upstream */
  72. extern const struct s2n_cipher_preferences cipher_preferences_cloudfront_upstream;
  73. extern const struct s2n_cipher_preferences cipher_preferences_cloudfront_upstream_tls10;
  74. extern const struct s2n_cipher_preferences cipher_preferences_cloudfront_upstream_tls11;
  75. extern const struct s2n_cipher_preferences cipher_preferences_cloudfront_upstream_tls12;
  76. /* CloudFront viewer facing */
  77. extern const struct s2n_cipher_preferences cipher_preferences_cloudfront_ssl_v_3;
  78. extern const struct s2n_cipher_preferences cipher_preferences_cloudfront_tls_1_0_2014;
  79. extern const struct s2n_cipher_preferences cipher_preferences_cloudfront_tls_1_0_2016;
  80. extern const struct s2n_cipher_preferences cipher_preferences_cloudfront_tls_1_1_2016;
  81. extern const struct s2n_cipher_preferences cipher_preferences_cloudfront_tls_1_2_2017;
  82. extern const struct s2n_cipher_preferences cipher_preferences_cloudfront_tls_1_2_2018;
  83. extern const struct s2n_cipher_preferences cipher_preferences_cloudfront_tls_1_2_2019;
  84. extern const struct s2n_cipher_preferences cipher_preferences_cloudfront_tls_1_2_2021;
  85. extern const struct s2n_cipher_preferences cipher_preferences_cloudfront_tls_1_2_2021_chacha20_boosted;
  86. /* CloudFront viewer facing legacy TLS 1.2 policies */
  87. extern const struct s2n_cipher_preferences cipher_preferences_cloudfront_ssl_v_3_legacy;
  88. extern const struct s2n_cipher_preferences cipher_preferences_cloudfront_tls_1_0_2014_legacy;
  89. extern const struct s2n_cipher_preferences cipher_preferences_cloudfront_tls_1_0_2016_legacy;
  90. extern const struct s2n_cipher_preferences cipher_preferences_cloudfront_tls_1_1_2016_legacy;
  91. extern const struct s2n_cipher_preferences cipher_preferences_cloudfront_tls_1_2_2018_legacy;
  92. extern const struct s2n_cipher_preferences cipher_preferences_cloudfront_tls_1_2_2019_legacy;
  93. /* AWS Common Runtime Cipher Preferences */
  94. extern const struct s2n_cipher_preferences cipher_preferences_aws_crt_sdk_ssl_v3;
  95. extern const struct s2n_cipher_preferences cipher_preferences_aws_crt_sdk_default;
  96. extern const struct s2n_cipher_preferences cipher_preferences_aws_crt_sdk_tls_13;
  97. /* AWS KMS Cipher Preferences */
  98. extern const struct s2n_cipher_preferences cipher_preferences_kms_tls_1_0_2018_10;
  99. extern const struct s2n_cipher_preferences cipher_preferences_kms_tls_1_0_2021_08;
  100. extern const struct s2n_cipher_preferences cipher_preferences_kms_fips_tls_1_2_2018_10;
  101. extern const struct s2n_cipher_preferences cipher_preferences_kms_fips_tls_1_2_2021_08;
  102. extern const struct s2n_cipher_preferences cipher_preferences_kms_pq_tls_1_0_2019_06;
  103. extern const struct s2n_cipher_preferences cipher_preferences_kms_pq_tls_1_0_2020_02;
  104. extern const struct s2n_cipher_preferences cipher_preferences_kms_pq_tls_1_0_2020_07;
  105. extern const struct s2n_cipher_preferences cipher_preferences_pq_sike_test_tls_1_0_2019_11;
  106. extern const struct s2n_cipher_preferences cipher_preferences_pq_sike_test_tls_1_0_2020_02;
  107. extern const struct s2n_cipher_preferences cipher_preferences_pq_tls_1_0_2020_12;
  108. extern const struct s2n_cipher_preferences cipher_preferences_pq_tls_1_1_2021_05_17;
  109. extern const struct s2n_cipher_preferences cipher_preferences_pq_tls_1_0_2021_05_18;
  110. extern const struct s2n_cipher_preferences cipher_preferences_pq_tls_1_0_2021_05_19;
  111. extern const struct s2n_cipher_preferences cipher_preferences_pq_tls_1_1_2021_05_21;
  112. extern const struct s2n_cipher_preferences cipher_preferences_pq_tls_1_0_2021_05_22;
  113. extern const struct s2n_cipher_preferences cipher_preferences_pq_tls_1_0_2021_05_23;
  114. extern const struct s2n_cipher_preferences cipher_preferences_pq_tls_1_0_2021_05_24;
  115. extern const struct s2n_cipher_preferences cipher_preferences_pq_tls_1_0_2021_05_25;
  116. extern const struct s2n_cipher_preferences cipher_preferences_pq_tls_1_0_2021_05_26;
  117. extern const struct s2n_cipher_preferences cipher_preferences_pq_tls_1_3_2023_06_01;
  118. extern const struct s2n_cipher_preferences cipher_preferences_null;