1 /* $OpenBSD: ec.h,v 1.7 2024/10/22 15:54:33 tb Exp $ */ 2 /* 3 * Copyright (c) 2023 Bob Beck <beck@openbsd.org> 4 * 5 * Permission to use, copy, modify, and distribute this software for any 6 * purpose with or without fee is hereby granted, provided that the above 7 * copyright notice and this permission notice appear in all copies. 8 * 9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 */ 17 18 #ifndef _LIBCRYPTO_EC_H 19 #define _LIBCRYPTO_EC_H 20 21 #ifndef _MSC_VER 22 #include_next <openssl/ec.h> 23 #else 24 #include "../include/openssl/ec.h" 25 #endif 26 #include "crypto_namespace.h" 27 28 LCRYPTO_USED(EC_GFp_simple_method); 29 LCRYPTO_USED(EC_GFp_mont_method); 30 LCRYPTO_USED(EC_GROUP_new); 31 LCRYPTO_USED(EC_GROUP_free); 32 LCRYPTO_USED(EC_GROUP_copy); 33 LCRYPTO_USED(EC_GROUP_dup); 34 LCRYPTO_USED(EC_GROUP_method_of); 35 LCRYPTO_USED(EC_METHOD_get_field_type); 36 LCRYPTO_USED(EC_GROUP_set_generator); 37 LCRYPTO_USED(EC_GROUP_get0_generator); 38 LCRYPTO_USED(EC_GROUP_get_order); 39 LCRYPTO_USED(EC_GROUP_order_bits); 40 LCRYPTO_USED(EC_GROUP_get_cofactor); 41 LCRYPTO_USED(EC_GROUP_set_curve_name); 42 LCRYPTO_USED(EC_GROUP_get_curve_name); 43 LCRYPTO_USED(EC_GROUP_set_asn1_flag); 44 LCRYPTO_USED(EC_GROUP_get_asn1_flag); 45 LCRYPTO_USED(EC_GROUP_set_point_conversion_form); 46 LCRYPTO_USED(EC_GROUP_get_point_conversion_form); 47 LCRYPTO_USED(EC_GROUP_get0_seed); 48 LCRYPTO_USED(EC_GROUP_get_seed_len); 49 LCRYPTO_USED(EC_GROUP_set_seed); 50 LCRYPTO_USED(EC_GROUP_set_curve); 51 LCRYPTO_USED(EC_GROUP_get_curve); 52 LCRYPTO_USED(EC_GROUP_get_degree); 53 LCRYPTO_USED(EC_GROUP_check); 54 LCRYPTO_USED(EC_GROUP_check_discriminant); 55 LCRYPTO_USED(EC_GROUP_cmp); 56 LCRYPTO_USED(EC_GROUP_new_curve_GFp); 57 LCRYPTO_USED(EC_GROUP_new_by_curve_name); 58 LCRYPTO_USED(EC_get_builtin_curves); 59 LCRYPTO_USED(EC_curve_nid2nist); 60 LCRYPTO_USED(EC_curve_nist2nid); 61 LCRYPTO_USED(EC_POINT_new); 62 LCRYPTO_USED(EC_POINT_free); 63 LCRYPTO_USED(EC_POINT_copy); 64 LCRYPTO_USED(EC_POINT_dup); 65 LCRYPTO_USED(EC_POINT_method_of); 66 LCRYPTO_USED(EC_POINT_set_to_infinity); 67 LCRYPTO_USED(EC_POINT_set_affine_coordinates); 68 LCRYPTO_USED(EC_POINT_get_affine_coordinates); 69 LCRYPTO_USED(EC_POINT_set_compressed_coordinates); 70 LCRYPTO_USED(EC_POINT_point2oct); 71 LCRYPTO_USED(EC_POINT_oct2point); 72 LCRYPTO_USED(EC_POINT_point2bn); 73 LCRYPTO_USED(EC_POINT_bn2point); 74 LCRYPTO_USED(EC_POINT_point2hex); 75 LCRYPTO_USED(EC_POINT_hex2point); 76 LCRYPTO_USED(EC_POINT_add); 77 LCRYPTO_USED(EC_POINT_dbl); 78 LCRYPTO_USED(EC_POINT_invert); 79 LCRYPTO_USED(EC_POINT_is_at_infinity); 80 LCRYPTO_USED(EC_POINT_is_on_curve); 81 LCRYPTO_USED(EC_POINT_cmp); 82 LCRYPTO_USED(EC_POINT_make_affine); 83 LCRYPTO_USED(EC_POINTs_make_affine); 84 LCRYPTO_USED(EC_POINTs_mul); 85 LCRYPTO_USED(EC_POINT_mul); 86 LCRYPTO_USED(EC_GROUP_precompute_mult); 87 LCRYPTO_USED(EC_GROUP_have_precompute_mult); 88 LCRYPTO_USED(EC_GROUP_get_basis_type); 89 LCRYPTO_USED(d2i_ECPKParameters); 90 LCRYPTO_USED(i2d_ECPKParameters); 91 LCRYPTO_USED(ECPKParameters_print); 92 LCRYPTO_USED(ECPKParameters_print_fp); 93 LCRYPTO_USED(EC_KEY_new); 94 LCRYPTO_USED(EC_KEY_get_flags); 95 LCRYPTO_USED(EC_KEY_set_flags); 96 LCRYPTO_USED(EC_KEY_clear_flags); 97 LCRYPTO_USED(EC_KEY_new_by_curve_name); 98 LCRYPTO_USED(EC_KEY_free); 99 LCRYPTO_USED(EC_KEY_copy); 100 LCRYPTO_USED(EC_KEY_dup); 101 LCRYPTO_USED(EC_KEY_up_ref); 102 LCRYPTO_USED(EC_KEY_get0_group); 103 LCRYPTO_USED(EC_KEY_set_group); 104 LCRYPTO_USED(EC_KEY_get0_private_key); 105 LCRYPTO_USED(EC_KEY_set_private_key); 106 LCRYPTO_USED(EC_KEY_get0_public_key); 107 LCRYPTO_USED(EC_KEY_set_public_key); 108 LCRYPTO_USED(EC_KEY_get_enc_flags); 109 LCRYPTO_USED(EC_KEY_set_enc_flags); 110 LCRYPTO_USED(EC_KEY_get_conv_form); 111 LCRYPTO_USED(EC_KEY_set_conv_form); 112 LCRYPTO_USED(EC_KEY_set_asn1_flag); 113 LCRYPTO_USED(EC_KEY_precompute_mult); 114 LCRYPTO_USED(EC_KEY_generate_key); 115 LCRYPTO_USED(EC_KEY_check_key); 116 LCRYPTO_USED(EC_KEY_set_public_key_affine_coordinates); 117 LCRYPTO_USED(d2i_ECPrivateKey); 118 LCRYPTO_USED(i2d_ECPrivateKey); 119 LCRYPTO_USED(d2i_ECParameters); 120 LCRYPTO_USED(i2d_ECParameters); 121 LCRYPTO_USED(o2i_ECPublicKey); 122 LCRYPTO_USED(i2o_ECPublicKey); 123 LCRYPTO_USED(ECParameters_print); 124 LCRYPTO_USED(EC_KEY_print); 125 LCRYPTO_USED(ECParameters_print_fp); 126 LCRYPTO_USED(EC_KEY_print_fp); 127 LCRYPTO_USED(EC_KEY_set_ex_data); 128 LCRYPTO_USED(EC_KEY_get_ex_data); 129 LCRYPTO_USED(EC_KEY_OpenSSL); 130 LCRYPTO_USED(EC_KEY_get_default_method); 131 LCRYPTO_USED(EC_KEY_set_default_method); 132 LCRYPTO_USED(EC_KEY_get_method); 133 LCRYPTO_USED(EC_KEY_set_method); 134 LCRYPTO_USED(EC_KEY_new_method); 135 LCRYPTO_USED(ECDH_size); 136 LCRYPTO_USED(ECDH_compute_key); 137 LCRYPTO_USED(ECDSA_SIG_new); 138 LCRYPTO_USED(ECDSA_SIG_free); 139 LCRYPTO_USED(i2d_ECDSA_SIG); 140 LCRYPTO_USED(d2i_ECDSA_SIG); 141 LCRYPTO_USED(ECDSA_SIG_get0_r); 142 LCRYPTO_USED(ECDSA_SIG_get0_s); 143 LCRYPTO_USED(ECDSA_SIG_get0); 144 LCRYPTO_USED(ECDSA_SIG_set0); 145 LCRYPTO_USED(ECDSA_size); 146 LCRYPTO_USED(ECDSA_do_sign); 147 LCRYPTO_USED(ECDSA_do_verify); 148 LCRYPTO_USED(ECDSA_sign); 149 LCRYPTO_USED(ECDSA_verify); 150 LCRYPTO_USED(EC_KEY_METHOD_new); 151 LCRYPTO_USED(EC_KEY_METHOD_free); 152 LCRYPTO_USED(EC_KEY_METHOD_set_init); 153 LCRYPTO_USED(EC_KEY_METHOD_set_keygen); 154 LCRYPTO_USED(EC_KEY_METHOD_set_compute_key); 155 LCRYPTO_USED(EC_KEY_METHOD_set_sign); 156 LCRYPTO_USED(EC_KEY_METHOD_set_verify); 157 LCRYPTO_USED(EC_KEY_METHOD_get_init); 158 LCRYPTO_USED(EC_KEY_METHOD_get_keygen); 159 LCRYPTO_USED(EC_KEY_METHOD_get_compute_key); 160 LCRYPTO_USED(EC_KEY_METHOD_get_sign); 161 LCRYPTO_USED(EC_KEY_METHOD_get_verify); 162 LCRYPTO_USED(ECParameters_dup); 163 LCRYPTO_USED(ERR_load_EC_strings); 164 LCRYPTO_UNUSED(EC_GROUP_clear_free); 165 LCRYPTO_UNUSED(EC_GROUP_set_curve_GFp); 166 LCRYPTO_UNUSED(EC_GROUP_get_curve_GFp); 167 LCRYPTO_UNUSED(EC_POINT_clear_free); 168 LCRYPTO_UNUSED(EC_POINT_set_Jprojective_coordinates_GFp); 169 LCRYPTO_UNUSED(EC_POINT_get_Jprojective_coordinates_GFp); 170 LCRYPTO_UNUSED(EC_POINT_set_affine_coordinates_GFp); 171 LCRYPTO_UNUSED(EC_POINT_get_affine_coordinates_GFp); 172 LCRYPTO_UNUSED(EC_POINT_set_compressed_coordinates_GFp); 173 174 #endif /* _LIBCRYPTO_EC_H */ 175