s2n_ecc_preferences.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738
  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 <stdbool.h>
  17. #include <strings.h>
  18. #include "api/s2n.h"
  19. #include "crypto/s2n_ecc_evp.h"
  20. struct s2n_ecc_preferences {
  21. uint8_t count;
  22. const struct s2n_ecc_named_curve *const *ecc_curves;
  23. };
  24. extern const struct s2n_ecc_preferences s2n_ecc_preferences_20140601;
  25. extern const struct s2n_ecc_preferences s2n_ecc_preferences_20200310;
  26. extern const struct s2n_ecc_preferences s2n_ecc_preferences_20230623;
  27. extern const struct s2n_ecc_preferences s2n_ecc_preferences_default_fips;
  28. extern const struct s2n_ecc_preferences s2n_ecc_preferences_20201021;
  29. extern const struct s2n_ecc_preferences s2n_ecc_preferences_20210816;
  30. extern const struct s2n_ecc_preferences s2n_ecc_preferences_test_all;
  31. extern const struct s2n_ecc_preferences s2n_ecc_preferences_null;
  32. int s2n_check_ecc_preferences_curves_list(const struct s2n_ecc_preferences *ecc_preferences);
  33. bool s2n_ecc_preferences_includes_curve(const struct s2n_ecc_preferences *ecc_preferences, uint16_t query_iana_id);