summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortb <>2023-05-01 07:56:05 +0000
committertb <>2023-05-01 07:56:05 +0000
commit38d0d0c9fd2517e8884907165358d5b38b7c222b (patch)
tree08a3a7fe5d1c297932acf90a11f470bb841f360d
parente403ec38092a02f61a4eec978529d0616b55ff00 (diff)
downloadopenbsd-38d0d0c9fd2517e8884907165358d5b38b7c222b.tar.gz
openbsd-38d0d0c9fd2517e8884907165358d5b38b7c222b.tar.bz2
openbsd-38d0d0c9fd2517e8884907165358d5b38b7c222b.zip
Mechanically convert curve_list[] to C99 initializers
ok jsing
-rw-r--r--src/lib/libcrypto/ec/ec_curve.c380
1 files changed, 325 insertions, 55 deletions
diff --git a/src/lib/libcrypto/ec/ec_curve.c b/src/lib/libcrypto/ec/ec_curve.c
index 56959941f8..1af7db55a8 100644
--- a/src/lib/libcrypto/ec/ec_curve.c
+++ b/src/lib/libcrypto/ec/ec_curve.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ec_curve.c,v 1.28 2023/05/01 07:54:08 tb Exp $ */ 1/* $OpenBSD: ec_curve.c,v 1.29 2023/05/01 07:56:05 tb Exp $ */
2/* 2/*
3 * Written by Nils Larsch for the OpenSSL project. 3 * Written by Nils Larsch for the OpenSSL project.
4 */ 4 */
@@ -1826,67 +1826,337 @@ typedef struct _ec_list_element_st {
1826static const ec_list_element curve_list[] = { 1826static const ec_list_element curve_list[] = {
1827 /* prime field curves */ 1827 /* prime field curves */
1828 /* secg curves */ 1828 /* secg curves */
1829 {NID_secp112r1, &_EC_SECG_PRIME_112R1.h, 0, "SECG/WTLS curve over a 112 bit prime field"}, 1829 {
1830 {NID_secp112r2, &_EC_SECG_PRIME_112R2.h, 0, "SECG curve over a 112 bit prime field"}, 1830 .nid = NID_secp112r1,
1831 {NID_secp128r1, &_EC_SECG_PRIME_128R1.h, 0, "SECG curve over a 128 bit prime field"}, 1831 .data = &_EC_SECG_PRIME_112R1.h,
1832 {NID_secp128r2, &_EC_SECG_PRIME_128R2.h, 0, "SECG curve over a 128 bit prime field"}, 1832 .meth = 0,
1833 {NID_secp160k1, &_EC_SECG_PRIME_160K1.h, 0, "SECG curve over a 160 bit prime field"}, 1833 .comment = "SECG/WTLS curve over a 112 bit prime field",
1834 {NID_secp160r1, &_EC_SECG_PRIME_160R1.h, 0, "SECG curve over a 160 bit prime field"}, 1834 },
1835 {NID_secp160r2, &_EC_SECG_PRIME_160R2.h, 0, "SECG/WTLS curve over a 160 bit prime field"}, 1835 {
1836 .nid = NID_secp112r2,
1837 .data = &_EC_SECG_PRIME_112R2.h,
1838 .meth = 0,
1839 .comment = "SECG curve over a 112 bit prime field",
1840 },
1841 {
1842 .nid = NID_secp128r1,
1843 .data = &_EC_SECG_PRIME_128R1.h,
1844 .meth = 0,
1845 .comment = "SECG curve over a 128 bit prime field",
1846 },
1847 {
1848 .nid = NID_secp128r2,
1849 .data = &_EC_SECG_PRIME_128R2.h,
1850 .meth = 0,
1851 .comment = "SECG curve over a 128 bit prime field",
1852 },
1853 {
1854 .nid = NID_secp160k1,
1855 .data = &_EC_SECG_PRIME_160K1.h,
1856 .meth = 0,
1857 .comment = "SECG curve over a 160 bit prime field",
1858 },
1859 {
1860 .nid = NID_secp160r1,
1861 .data = &_EC_SECG_PRIME_160R1.h,
1862 .meth = 0,
1863 .comment = "SECG curve over a 160 bit prime field",
1864 },
1865 {
1866 .nid = NID_secp160r2,
1867 .data = &_EC_SECG_PRIME_160R2.h,
1868 .meth = 0,
1869 .comment = "SECG/WTLS curve over a 160 bit prime field",
1870 },
1836 /* SECG secp192r1 is the same as X9.62 prime192v1 and hence omitted */ 1871 /* SECG secp192r1 is the same as X9.62 prime192v1 and hence omitted */
1837 {NID_secp192k1, &_EC_SECG_PRIME_192K1.h, 0, "SECG curve over a 192 bit prime field"}, 1872 {
1838 {NID_secp224k1, &_EC_SECG_PRIME_224K1.h, 0, "SECG curve over a 224 bit prime field"}, 1873 .nid = NID_secp192k1,
1839 {NID_secp224r1, &_EC_NIST_PRIME_224.h, 0, "NIST/SECG curve over a 224 bit prime field"}, 1874 .data = &_EC_SECG_PRIME_192K1.h,
1840 {NID_secp256k1, &_EC_SECG_PRIME_256K1.h, 0, "SECG curve over a 256 bit prime field"}, 1875 .meth = 0,
1876 .comment = "SECG curve over a 192 bit prime field",
1877 },
1878 {
1879 .nid = NID_secp224k1,
1880 .data = &_EC_SECG_PRIME_224K1.h,
1881 .meth = 0,
1882 .comment = "SECG curve over a 224 bit prime field",
1883 },
1884 {
1885 .nid = NID_secp224r1,
1886 .data = &_EC_NIST_PRIME_224.h,
1887 .meth = 0,
1888 .comment = "NIST/SECG curve over a 224 bit prime field",
1889 },
1890 {
1891 .nid = NID_secp256k1,
1892 .data = &_EC_SECG_PRIME_256K1.h,
1893 .meth = 0,
1894 .comment = "SECG curve over a 256 bit prime field",
1895 },
1841 /* SECG secp256r1 is the same as X9.62 prime256v1 and hence omitted */ 1896 /* SECG secp256r1 is the same as X9.62 prime256v1 and hence omitted */
1842 {NID_secp384r1, &_EC_NIST_PRIME_384.h, 0, "NIST/SECG curve over a 384 bit prime field"}, 1897 {
1843 {NID_secp521r1, &_EC_NIST_PRIME_521.h, 0, "NIST/SECG curve over a 521 bit prime field"}, 1898 .nid = NID_secp384r1,
1899 .data = &_EC_NIST_PRIME_384.h,
1900 .meth = 0,
1901 .comment = "NIST/SECG curve over a 384 bit prime field",
1902 },
1903 {
1904 .nid = NID_secp521r1,
1905 .data = &_EC_NIST_PRIME_521.h,
1906 .meth = 0,
1907 .comment = "NIST/SECG curve over a 521 bit prime field",
1908 },
1844 /* X9.62 curves */ 1909 /* X9.62 curves */
1845 {NID_X9_62_prime192v1, &_EC_NIST_PRIME_192.h, 0, "NIST/X9.62/SECG curve over a 192 bit prime field"}, 1910 {
1846 {NID_X9_62_prime192v2, &_EC_X9_62_PRIME_192V2.h, 0, "X9.62 curve over a 192 bit prime field"}, 1911 .nid = NID_X9_62_prime192v1,
1847 {NID_X9_62_prime192v3, &_EC_X9_62_PRIME_192V3.h, 0, "X9.62 curve over a 192 bit prime field"}, 1912 .data = &_EC_NIST_PRIME_192.h,
1848 {NID_X9_62_prime239v1, &_EC_X9_62_PRIME_239V1.h, 0, "X9.62 curve over a 239 bit prime field"}, 1913 .meth = 0,
1849 {NID_X9_62_prime239v2, &_EC_X9_62_PRIME_239V2.h, 0, "X9.62 curve over a 239 bit prime field"}, 1914 .comment = "NIST/X9.62/SECG curve over a 192 bit prime field",
1850 {NID_X9_62_prime239v3, &_EC_X9_62_PRIME_239V3.h, 0, "X9.62 curve over a 239 bit prime field"}, 1915 },
1851 {NID_X9_62_prime256v1, &_EC_X9_62_PRIME_256V1.h, 0, "X9.62/SECG curve over a 256 bit prime field"}, 1916 {
1852 {NID_wap_wsg_idm_ecid_wtls6, &_EC_SECG_PRIME_112R1.h, 0, "SECG/WTLS curve over a 112 bit prime field"}, 1917 .nid = NID_X9_62_prime192v2,
1853 {NID_wap_wsg_idm_ecid_wtls7, &_EC_SECG_PRIME_160R2.h, 0, "SECG/WTLS curve over a 160 bit prime field"}, 1918 .data = &_EC_X9_62_PRIME_192V2.h,
1854 {NID_wap_wsg_idm_ecid_wtls8, &_EC_WTLS_8.h, 0, "WTLS curve over a 112 bit prime field"}, 1919 .meth = 0,
1855 {NID_wap_wsg_idm_ecid_wtls9, &_EC_WTLS_9.h, 0, "WTLS curve over a 160 bit prime field"}, 1920 .comment = "X9.62 curve over a 192 bit prime field",
1856 {NID_wap_wsg_idm_ecid_wtls12, &_EC_WTLS_12.h, 0, "WTLS curve over a 224 bit prime field"}, 1921 },
1922 {
1923 .nid = NID_X9_62_prime192v3,
1924 .data = &_EC_X9_62_PRIME_192V3.h,
1925 .meth = 0,
1926 .comment = "X9.62 curve over a 192 bit prime field",
1927 },
1928 {
1929 .nid = NID_X9_62_prime239v1,
1930 .data = &_EC_X9_62_PRIME_239V1.h,
1931 .meth = 0,
1932 .comment = "X9.62 curve over a 239 bit prime field",
1933 },
1934 {
1935 .nid = NID_X9_62_prime239v2,
1936 .data = &_EC_X9_62_PRIME_239V2.h,
1937 .meth = 0,
1938 .comment = "X9.62 curve over a 239 bit prime field",
1939 },
1940 {
1941 .nid = NID_X9_62_prime239v3,
1942 .data = &_EC_X9_62_PRIME_239V3.h,
1943 .meth = 0,
1944 .comment = "X9.62 curve over a 239 bit prime field",
1945 },
1946 {
1947 .nid = NID_X9_62_prime256v1,
1948 .data = &_EC_X9_62_PRIME_256V1.h,
1949 .meth = 0,
1950 .comment = "X9.62/SECG curve over a 256 bit prime field",
1951 },
1952 {
1953 .nid = NID_wap_wsg_idm_ecid_wtls6,
1954 .data = &_EC_SECG_PRIME_112R1.h,
1955 .meth = 0,
1956 .comment = "SECG/WTLS curve over a 112 bit prime field",
1957 },
1958 {
1959 .nid = NID_wap_wsg_idm_ecid_wtls7,
1960 .data = &_EC_SECG_PRIME_160R2.h,
1961 .meth = 0,
1962 .comment = "SECG/WTLS curve over a 160 bit prime field",
1963 },
1964 {
1965 .nid = NID_wap_wsg_idm_ecid_wtls8,
1966 .data = &_EC_WTLS_8.h,
1967 .meth = 0,
1968 .comment = "WTLS curve over a 112 bit prime field",
1969 },
1970 {
1971 .nid = NID_wap_wsg_idm_ecid_wtls9,
1972 .data = &_EC_WTLS_9.h,
1973 .meth = 0,
1974 .comment = "WTLS curve over a 160 bit prime field",
1975 },
1976 {
1977 .nid = NID_wap_wsg_idm_ecid_wtls12,
1978 .data = &_EC_WTLS_12.h,
1979 .meth = 0,
1980 .comment = "WTLS curve over a 224 bit prime field",
1981 },
1857 /* RFC 5639 curves */ 1982 /* RFC 5639 curves */
1858 {NID_brainpoolP160r1, &_EC_brainpoolP160r1.h, 0, "RFC 5639 curve over a 160 bit prime field"}, 1983 {
1859 {NID_brainpoolP160t1, &_EC_brainpoolP160t1.h, 0, "RFC 5639 curve over a 160 bit prime field"}, 1984 .nid = NID_brainpoolP160r1,
1860 {NID_brainpoolP192r1, &_EC_brainpoolP192r1.h, 0, "RFC 5639 curve over a 192 bit prime field"}, 1985 .data = &_EC_brainpoolP160r1.h,
1861 {NID_brainpoolP192t1, &_EC_brainpoolP192t1.h, 0, "RFC 5639 curve over a 192 bit prime field"}, 1986 .meth = 0,
1862 {NID_brainpoolP224r1, &_EC_brainpoolP224r1.h, 0, "RFC 5639 curve over a 224 bit prime field"}, 1987 .comment = "RFC 5639 curve over a 160 bit prime field",
1863 {NID_brainpoolP224t1, &_EC_brainpoolP224t1.h, 0, "RFC 5639 curve over a 224 bit prime field"}, 1988 },
1864 {NID_brainpoolP256r1, &_EC_brainpoolP256r1.h, 0, "RFC 5639 curve over a 256 bit prime field"}, 1989 {
1865 {NID_brainpoolP256t1, &_EC_brainpoolP256t1.h, 0, "RFC 5639 curve over a 256 bit prime field"}, 1990 .nid = NID_brainpoolP160t1,
1866 {NID_brainpoolP320r1, &_EC_brainpoolP320r1.h, 0, "RFC 5639 curve over a 320 bit prime field"}, 1991 .data = &_EC_brainpoolP160t1.h,
1867 {NID_brainpoolP320t1, &_EC_brainpoolP320t1.h, 0, "RFC 5639 curve over a 320 bit prime field"}, 1992 .meth = 0,
1868 {NID_brainpoolP384r1, &_EC_brainpoolP384r1.h, 0, "RFC 5639 curve over a 384 bit prime field"}, 1993 .comment = "RFC 5639 curve over a 160 bit prime field",
1869 {NID_brainpoolP384t1, &_EC_brainpoolP384t1.h, 0, "RFC 5639 curve over a 384 bit prime field"}, 1994 },
1870 {NID_brainpoolP512r1, &_EC_brainpoolP512r1.h, 0, "RFC 5639 curve over a 512 bit prime field"}, 1995 {
1871 {NID_brainpoolP512t1, &_EC_brainpoolP512t1.h, 0, "RFC 5639 curve over a 512 bit prime field"}, 1996 .nid = NID_brainpoolP192r1,
1997 .data = &_EC_brainpoolP192r1.h,
1998 .meth = 0,
1999 .comment = "RFC 5639 curve over a 192 bit prime field",
2000 },
2001 {
2002 .nid = NID_brainpoolP192t1,
2003 .data = &_EC_brainpoolP192t1.h,
2004 .meth = 0,
2005 .comment = "RFC 5639 curve over a 192 bit prime field",
2006 },
2007 {
2008 .nid = NID_brainpoolP224r1,
2009 .data = &_EC_brainpoolP224r1.h,
2010 .meth = 0,
2011 .comment = "RFC 5639 curve over a 224 bit prime field",
2012 },
2013 {
2014 .nid = NID_brainpoolP224t1,
2015 .data = &_EC_brainpoolP224t1.h,
2016 .meth = 0,
2017 .comment = "RFC 5639 curve over a 224 bit prime field",
2018 },
2019 {
2020 .nid = NID_brainpoolP256r1,
2021 .data = &_EC_brainpoolP256r1.h,
2022 .meth = 0,
2023 .comment = "RFC 5639 curve over a 256 bit prime field",
2024 },
2025 {
2026 .nid = NID_brainpoolP256t1,
2027 .data = &_EC_brainpoolP256t1.h,
2028 .meth = 0,
2029 .comment = "RFC 5639 curve over a 256 bit prime field",
2030 },
2031 {
2032 .nid = NID_brainpoolP320r1,
2033 .data = &_EC_brainpoolP320r1.h,
2034 .meth = 0,
2035 .comment = "RFC 5639 curve over a 320 bit prime field",
2036 },
2037 {
2038 .nid = NID_brainpoolP320t1,
2039 .data = &_EC_brainpoolP320t1.h,
2040 .meth = 0,
2041 .comment = "RFC 5639 curve over a 320 bit prime field",
2042 },
2043 {
2044 .nid = NID_brainpoolP384r1,
2045 .data = &_EC_brainpoolP384r1.h,
2046 .meth = 0,
2047 .comment = "RFC 5639 curve over a 384 bit prime field",
2048 },
2049 {
2050 .nid = NID_brainpoolP384t1,
2051 .data = &_EC_brainpoolP384t1.h,
2052 .meth = 0,
2053 .comment = "RFC 5639 curve over a 384 bit prime field",
2054 },
2055 {
2056 .nid = NID_brainpoolP512r1,
2057 .data = &_EC_brainpoolP512r1.h,
2058 .meth = 0,
2059 .comment = "RFC 5639 curve over a 512 bit prime field",
2060 },
2061 {
2062 .nid = NID_brainpoolP512t1,
2063 .data = &_EC_brainpoolP512t1.h,
2064 .meth = 0,
2065 .comment = "RFC 5639 curve over a 512 bit prime field",
2066 },
1872 /* ANSSI */ 2067 /* ANSSI */
1873 {NID_FRP256v1, &_EC_FRP256v1.h, 0, "FRP256v1"}, 2068 {
2069 .nid = NID_FRP256v1,
2070 .data = &_EC_FRP256v1.h,
2071 .meth = 0,
2072 .comment = "FRP256v1",
2073 },
1874#ifndef OPENSSL_NO_GOST 2074#ifndef OPENSSL_NO_GOST
1875 /* GOST R 34.10-2001 */ 2075 /* GOST R 34.10-2001 */
1876 {NID_id_GostR3410_2001_TestParamSet, &_EC_GOST_2001_Test.h, 0, "GOST R 34.10-2001 Test Curve"}, 2076 {
1877 {NID_id_GostR3410_2001_CryptoPro_A_ParamSet, &_EC_GOST_2001_CryptoPro_A.h, 0, "GOST R 34.10-2001 CryptoPro-A"}, 2077 .nid = NID_id_GostR3410_2001_TestParamSet,
1878 {NID_id_GostR3410_2001_CryptoPro_B_ParamSet, &_EC_GOST_2001_CryptoPro_B.h, 0, "GOST R 34.10-2001 CryptoPro-B"}, 2078 .data = &_EC_GOST_2001_Test.h,
1879 {NID_id_GostR3410_2001_CryptoPro_C_ParamSet, &_EC_GOST_2001_CryptoPro_C.h, 0, "GOST R 34.10-2001 CryptoPro-C"}, 2079 .meth = 0,
1880 {NID_id_GostR3410_2001_CryptoPro_XchA_ParamSet, &_EC_GOST_2001_CryptoPro_A.h, 0, "GOST R 34.10-2001 CryptoPro-XchA"}, 2080 .comment = "GOST R 34.10-2001 Test Curve",
1881 {NID_id_GostR3410_2001_CryptoPro_XchB_ParamSet, &_EC_GOST_2001_CryptoPro_C.h, 0, "GOST R 34.10-2001 CryptoPro-XchB"}, 2081 },
1882 {NID_id_tc26_gost_3410_12_256_paramSetA, &_EC_GOST_2012_256_TC26_A.h, 0, "GOST R 34.10-2012 256 TC26-A"}, 2082 {
1883 {NID_id_tc26_gost_3410_12_256_paramSetB, &_EC_GOST_2001_CryptoPro_A.h, 0, "GOST R 34.10-2012 256 TC26-B"}, 2083 .nid = NID_id_GostR3410_2001_CryptoPro_A_ParamSet,
1884 {NID_id_tc26_gost_3410_12_256_paramSetC, &_EC_GOST_2001_CryptoPro_B.h, 0, "GOST R 34.10-2012 256 TC26-C"}, 2084 .data = &_EC_GOST_2001_CryptoPro_A.h,
1885 {NID_id_tc26_gost_3410_12_256_paramSetD, &_EC_GOST_2001_CryptoPro_C.h, 0, "GOST R 34.10-2012 256 TC26-D"}, 2085 .meth = 0,
1886 {NID_id_tc26_gost_3410_12_512_paramSetTest, &_EC_GOST_2012_512_Test.h, 0, "GOST R 34.10-2012 512 Test Curve"}, 2086 .comment = "GOST R 34.10-2001 CryptoPro-A",
1887 {NID_id_tc26_gost_3410_12_512_paramSetA, &_EC_GOST_2012_512_TC26_A.h, 0, "GOST R 34.10-2012 512 TC26-A"}, 2087 },
1888 {NID_id_tc26_gost_3410_12_512_paramSetB, &_EC_GOST_2012_512_TC26_B.h, 0, "GOST R 34.10-2012 512 TC26-B"}, 2088 {
1889 {NID_id_tc26_gost_3410_12_512_paramSetC, &_EC_GOST_2012_512_TC26_C.h, 0, "GOST R 34.10-2012 512 TC26-C"}, 2089 .nid = NID_id_GostR3410_2001_CryptoPro_B_ParamSet,
2090 .data = &_EC_GOST_2001_CryptoPro_B.h,
2091 .meth = 0,
2092 .comment = "GOST R 34.10-2001 CryptoPro-B",
2093 },
2094 {
2095 .nid = NID_id_GostR3410_2001_CryptoPro_C_ParamSet,
2096 .data = &_EC_GOST_2001_CryptoPro_C.h,
2097 .meth = 0,
2098 .comment = "GOST R 34.10-2001 CryptoPro-C",
2099 },
2100 {
2101 .nid = NID_id_GostR3410_2001_CryptoPro_XchA_ParamSet,
2102 .data = &_EC_GOST_2001_CryptoPro_A.h,
2103 .meth = 0,
2104 .comment = "GOST R 34.10-2001 CryptoPro-XchA",
2105 },
2106 {
2107 .nid = NID_id_GostR3410_2001_CryptoPro_XchB_ParamSet,
2108 .data = &_EC_GOST_2001_CryptoPro_C.h,
2109 .meth = 0,
2110 .comment = "GOST R 34.10-2001 CryptoPro-XchB",
2111 },
2112 {
2113 .nid = NID_id_tc26_gost_3410_12_256_paramSetA,
2114 .data = &_EC_GOST_2012_256_TC26_A.h,
2115 .meth = 0,
2116 .comment = "GOST R 34.10-2012 256 TC26-A",
2117 },
2118 {
2119 .nid = NID_id_tc26_gost_3410_12_256_paramSetB,
2120 .data = &_EC_GOST_2001_CryptoPro_A.h,
2121 .meth = 0,
2122 .comment = "GOST R 34.10-2012 256 TC26-B",
2123 },
2124 {
2125 .nid = NID_id_tc26_gost_3410_12_256_paramSetC,
2126 .data = &_EC_GOST_2001_CryptoPro_B.h,
2127 .meth = 0,
2128 .comment = "GOST R 34.10-2012 256 TC26-C",
2129 },
2130 {
2131 .nid = NID_id_tc26_gost_3410_12_256_paramSetD,
2132 .data = &_EC_GOST_2001_CryptoPro_C.h,
2133 .meth = 0,
2134 .comment = "GOST R 34.10-2012 256 TC26-D",
2135 },
2136 {
2137 .nid = NID_id_tc26_gost_3410_12_512_paramSetTest,
2138 .data = &_EC_GOST_2012_512_Test.h,
2139 .meth = 0,
2140 .comment = "GOST R 34.10-2012 512 Test Curve",
2141 },
2142 {
2143 .nid = NID_id_tc26_gost_3410_12_512_paramSetA,
2144 .data = &_EC_GOST_2012_512_TC26_A.h,
2145 .meth = 0,
2146 .comment = "GOST R 34.10-2012 512 TC26-A",
2147 },
2148 {
2149 .nid = NID_id_tc26_gost_3410_12_512_paramSetB,
2150 .data = &_EC_GOST_2012_512_TC26_B.h,
2151 .meth = 0,
2152 .comment = "GOST R 34.10-2012 512 TC26-B",
2153 },
2154 {
2155 .nid = NID_id_tc26_gost_3410_12_512_paramSetC,
2156 .data = &_EC_GOST_2012_512_TC26_C.h,
2157 .meth = 0,
2158 .comment = "GOST R 34.10-2012 512 TC26-C",
2159 },
1890#endif 2160#endif
1891}; 2161};
1892 2162