Botan  1.11.15
src/lib/pubkey/ec_group/named.cpp
Go to the documentation of this file.
00001 /*
00002 * List of ECC groups
00003 * (C) 2013 Jack Lloyd
00004 *
00005 * Botan is released under the Simplified BSD License (see license.txt)
00006 */
00007 
00008 #include <botan/ec_group.h>
00009 
00010 namespace Botan {
00011 
00012 const char* EC_Group::PEM_for_named_group(const std::string& name)
00013    {
00014    if(name == "secp112r1")
00015       return
00016          "-----BEGIN EC PARAMETERS-----"
00017          "MHQCAQEwGgYHKoZIzj0BAQIPANt8Kr9i415mgHa+rSCLMCAEDtt8Kr9i415mgHa+"
00018          "rSCIBA5lnvi6BDkW7t6JEXArIgQdBAlIcjmZWl7na1X5wvCYqJzlr4ckwKI+Dg/3"
00019          "dQACDwDbfCq/YuNedijfrGVhxQIBAQ=="
00020          "-----END EC PARAMETERS-----";
00021 
00022    if(name == "secp112r2")
00023       return
00024          "-----BEGIN EC PARAMETERS-----"
00025          "MHMCAQEwGgYHKoZIzj0BAQIPANt8Kr9i415mgHa+rSCLMCAEDmEnwkwF84oKqvZc"
00026          "DvAsBA5R3vGBXbXtdPzDTIXXCQQdBEujCrXokrThZJ3QkoZDrc1G9YguN0fe826V"
00027          "bpcCDjbfCq/YuNdZfKEFINBLAgEB"
00028          "-----END EC PARAMETERS-----";
00029 
00030    if(name == "secp128r1")
00031       return
00032          "-----BEGIN EC PARAMETERS-----"
00033          "MIGAAgEBMBwGByqGSM49AQECEQD////9////////////////MCQEEP////3/////"
00034          "//////////wEEOh1ecEQefQ92CSZPCzuXtMEIQQWH/dSi4mbLQwoYHylLFuGz1rI"
00035          "OVuv6xPALaKS3e16gwIRAP////4AAAAAdaMNG5A4oRUCAQE="
00036          "-----END EC PARAMETERS-----";
00037 
00038    if(name == "secp128r2")
00039       return
00040          "-----BEGIN EC PARAMETERS-----"
00041          "MH8CAQEwHAYHKoZIzj0BAQIRAP////3///////////////8wJAQQ1gMZmNGzu/6/"
00042          "Wcybv/mu4QQQXu78o4DQKRncLGVYu22KXQQhBHtqpdheVymD5vsyp83rwUAntpFq"
00043          "iU067nEG/oBfw0tEAhA/////f////74AJHIGE7WjAgEE"
00044          "-----END EC PARAMETERS-----";
00045 
00046    if(name == "secp160k1")
00047       return
00048          "-----BEGIN EC PARAMETERS-----"
00049          "MIGYAgEBMCAGByqGSM49AQECFQD////////////////////+//+sczAsBBQAAAAA"
00050          "AAAAAAAAAAAAAAAAAAAAAAQUAAAAAAAAAAAAAAAAAAAAAAAAAAcEKQQ7TDgs43qh"
00051          "kqQBnnYwNvT13U1+u5OM+TUxj9zta8KChlMXM8PwPE/uAhUBAAAAAAAAAAAAAbj6"
00052          "Ft+rmsoWtrMCAQE="
00053          "-----END EC PARAMETERS-----";
00054 
00055    if(name == "secp160r1")
00056       return
00057          "-----BEGIN EC PARAMETERS-----"
00058          "MIGYAgEBMCAGByqGSM49AQECFQD/////////////////////f////zAsBBT/////"
00059          "////////////////f////AQUHJe+/FS9eotlrPifgdTUrcVl+kUEKQRKlrVojvVz"
00060          "KEZkaYlow4u5E8v8giOmKFUxaJR9WdzJEgQjUTd6xfsyAhUBAAAAAAAAAAAAAfTI"
00061          "+Seu08p1IlcCAQE="
00062          "-----END EC PARAMETERS-----";
00063 
00064    if(name == "secp160r2")
00065       return
00066          "-----BEGIN EC PARAMETERS-----"
00067          "MIGYAgEBMCAGByqGSM49AQECFQD////////////////////+//+sczAsBBT/////"
00068          "///////////////+//+scAQUtOE00/tZ64urVydJBGZNWvUDiLoEKQRS3LA0KToR"
00069          "fh9P8Rsw9xmdMUTObf6v/vLjMfKW4HH6DfmYLP6n1D8uAhUBAAAAAAAAAAAAADUe"
00070          "54aoGPOhoWsCAQE="
00071          "-----END EC PARAMETERS-----";
00072 
00073    if(name == "secp192k1")
00074       return
00075          "-----BEGIN EC PARAMETERS-----"
00076          "MIGwAgEBMCQGByqGSM49AQECGQD//////////////////////////v//7jcwNAQY"
00077          "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
00078          "AAMEMQTbT/EOwFfpriawfQKAt/Q0HaXRsergbH2bLy9tnFYop4RBY9AVvoY0QIKq"
00079          "iNleL50CGQD///////////////4m8vwXD2lGanTe/Y0CAQE="
00080          "-----END EC PARAMETERS-----";
00081 
00082    if(name == "secp192r1")
00083       return
00084          "-----BEGIN EC PARAMETERS-----"
00085          "MIGwAgEBMCQGByqGSM49AQECGQD////////////////////+//////////8wNAQY"
00086          "/////////////////////v/////////8BBhkIQUZ5ZyA5w+n6atyJDBJ/rje7MFG"
00087          "ubEEMQQYjagOsDCQ9ny/IOtDoYgA9P8K/YL/EBIHGSuV/8jaeGMQEe1rJM3Vc/l3"
00088          "oR55SBECGQD///////////////+Z3vg2FGvJsbTSKDECAQE="
00089          "-----END EC PARAMETERS-----";
00090 
00091    if(name == "secp224k1")
00092       return
00093          "-----BEGIN EC PARAMETERS-----"
00094          "MIHIAgEBMCgGByqGSM49AQECHQD///////////////////////////////7//+Vt"
00095          "MDwEHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEHAAAAAAAAAAAAAAAAAAA"
00096          "AAAAAAAAAAAAAAAAAAUEOQShRVszTfCZ3zD8KKFppGfp5HB1qQ9+ZQ62t6Rcfgif"
00097          "7X+6NEKCyvvW9+MZ98CwvVniykvbVW1hpQIdAQAAAAAAAAAAAAAAAAAB3OjS7GGE"
00098          "yvCpcXafsfcCAQE="
00099          "-----END EC PARAMETERS-----";
00100 
00101    if(name == "secp224r1")
00102       return
00103          "-----BEGIN EC PARAMETERS-----"
00104          "MIHIAgEBMCgGByqGSM49AQECHQD/////////////////////AAAAAAAAAAAAAAAB"
00105          "MDwEHP////////////////////7///////////////4EHLQFCoUMBLOr9UEyVlBE"
00106          "sLfXv9i6Jws5QyNV/7QEOQS3Dgy9a7S/fzITkLlKA8HTVsIRIjQygNYRXB0hvTdj"
00107          "iLX3I/tMIt/mzUN1oFoHR2RE1YGZhQB+NAIdAP//////////////////FqLguPA+"
00108          "E90pRVxcKj0CAQE="
00109          "-----END EC PARAMETERS-----";
00110 
00111    if(name == "secp256k1")
00112       return
00113          "-----BEGIN EC PARAMETERS-----"
00114          "MIHgAgEBMCwGByqGSM49AQECIQD////////////////////////////////////+"
00115          "///8LzBEBCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQgAAAAAAAA"
00116          "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcEQQR5vmZ++dy7rFWgYpXOhwsHApv8"
00117          "2y3OKNlZ8oFbFvgXmEg62ncmo8RlXaT7/A4RCKj9F7RIpoVUGZxH0I/7ENS4AiEA"
00118          "/////////////////////rqu3OavSKA7v9JejNA2QUECAQE="
00119          "-----END EC PARAMETERS-----";
00120 
00121    if(name == "secp256r1")
00122       return
00123          "-----BEGIN EC PARAMETERS-----"
00124          "MIHgAgEBMCwGByqGSM49AQECIQD/////AAAAAQAAAAAAAAAAAAAAAP//////////"
00125          "/////zBEBCD/////AAAAAQAAAAAAAAAAAAAAAP///////////////AQgWsY12Ko6"
00126          "k+ez671VdpiGvGUdBrDMU7D2O848PifSYEsEQQRrF9Hy4SxCR/i85uVjpEDydwN9"
00127          "gS3rM6D0oTlF2JjClk/jQuL+Gn+bjufrSnwPnhYrzjNXazFezsu2QGg3v1H1AiEA"
00128          "/////wAAAAD//////////7zm+q2nF56E87nKwvxjJVECAQE="
00129          "-----END EC PARAMETERS-----";
00130 
00131    if(name == "secp384r1")
00132       return
00133          "-----BEGIN EC PARAMETERS-----"
00134          "MIIBQAIBATA8BgcqhkjOPQEBAjEA////////////////////////////////////"
00135          "//////7/////AAAAAAAAAAD/////MGQEMP//////////////////////////////"
00136          "///////////+/////wAAAAAAAAAA/////AQwszEvp+I+5+SYjgVr4/gtGRgdnG7+"
00137          "gUESAxQIj1ATh1rGVjmNii7RnSqFyO3T7CrvBGEEqofKIr6LBTeOscce8yCtdG4d"
00138          "O2KLp5uYWfdB4IJUKjhVAvJdv1UpbDpUXjhydgq3NhfeSpYmLG9dnpi/kpLcKfj0"
00139          "Hb0omhR86doxE7XwuMAKYLHOHX6BnXpDHXyQ6g5fAjEA////////////////////"
00140          "////////////x2NNgfQ3Ld9YGg2ySLCneuzsGWrMxSlzAgEB"
00141          "-----END EC PARAMETERS-----";
00142 
00143    if(name == "secp521r1")
00144       return
00145          "-----BEGIN EC PARAMETERS-----"
00146          "MIIBrAIBATBNBgcqhkjOPQEBAkIB////////////////////////////////////"
00147          "//////////////////////////////////////////////////8wgYgEQgH/////"
00148          "////////////////////////////////////////////////////////////////"
00149          "/////////////////ARCAFGVPrlhjhyaH5KaIaC2hUDuotpyW5mzFfO4tImRjvEJ"
00150          "4VYZOVHsfpN7FlLAvTuxvwc1c9+IPSw08e9FH9RrUD8ABIGFBADGhY4GtwQE6c2e"
00151          "PstmI5W0QpxkgTkFP7Uh+CivYGtNPbqhS1537+dZKP4dwSei/6jeM0izwYVqQpv5"
00152          "fn4xwuW9ZgEYOSlqeJo7wARcil+0LH0b2Zj1RElXm0RoF6+9Fyc+ZiyX7nKZXvQm"
00153          "QMVQuQE/rQdhNTxwhqJywkCIvpR2n9FmUAJCAf//////////////////////////"
00154          "////////////////+lGGh4O/L5Zrf8wBSPcJpdA7tcm4iZxHrrtvtx6ROGQJAgEB"
00155          "-----END EC PARAMETERS-----";
00156 
00157    if(name == "1.3.6.1.4.1.8301.3.1.2.9.0.38")
00158       return
00159          "-----BEGIN EC PARAMETERS-----"
00160          "MIIBrAIBATBNBgcqhkjOPQEBAkIB////////////////////////////////////"
00161          "//////////////////////////////////////////////////8wgYgEQgH/////"
00162          "////////////////////////////////////////////////////////////////"
00163          "/////////////////ARCAFGVPrlhjhyaH5KaIaC2hUDuotpyW5mzFfO4tImRjvEJ"
00164          "4VYZOVHsfpN7FlLAvTuxvwc1c9+IPSw08e9FH9RrUD8ABIGFBADGhY4GtwQE6c2e"
00165          "PstmI5W0QpxkgTkFP7Uh+CivYGtNPbqhS1537+dZKP4dwSei/6jeM0izwYVqQpv5"
00166          "fn4xwuW9ZgEYOSlqeJo7wARcil+0LH0b2Zj1RElXm0RoF6+9Fyc+ZiyX7nKZXvQm"
00167          "QMVQuQE/rQdhNTxwhqJywkCIvpR2n9FmUAJCAf//////////////////////////"
00168          "////////////////+lGGh4O/L5Zrf8wBSPcJpdA7tcm4iZxHrrtvtx6ROGQJAgEB"
00169          "-----END EC PARAMETERS-----";
00170 
00171    if(name == "brainpool160r1")
00172       return
00173          "-----BEGIN EC PARAMETERS-----"
00174          "MIGYAgEBMCAGByqGSM49AQECFQDpXkpfc3BZ3GDfx62Vs9gTlRViDzAsBBQ0Dnvi"
00175          "ooDrdOK+YbradF2X6PfDAAQUHliahZVCNBITT6otveyVyNhnXlgEKQS+1a8W6j9q"
00176          "T2KTjEYx61r3vbzbwxZny0d6Go7DOPlHQWacl2MW2mMhAhUA6V5KX3NwWdxg31mR"
00177          "1FApQJ5g/AkCAQE="
00178          "-----END EC PARAMETERS-----";
00179 
00180    if(name == "brainpool192r1")
00181       return
00182          "-----BEGIN EC PARAMETERS-----"
00183          "MIGwAgEBMCQGByqGSM49AQECGQDDAvQdkyo2zaejRjCT0Y23j85HbeGoYpcwNAQY"
00184          "apEXQHax4OGcOcAx/oaFwcrgQOXGmijvBBhGmijvfCjMo9xyHQRPRJa8yn70FG+/"
00185          "JckEMQTAoGR+qrakh1OwM8VssPCQCi9cSFM3X9YUtpCGar1buItfSCjBSQAC5nc/"
00186          "ovopm48CGQDDAvQdkyo2zaejRi+enpFrW+jxAprErMECAQE="
00187          "-----END EC PARAMETERS-----";
00188 
00189    if(name == "brainpool224r1")
00190       return
00191          "-----BEGIN EC PARAMETERS-----"
00192          "MIHIAgEBMCgGByqGSM49AQECHQDXwTSqJkNmhioYMCV10deHsJ8HV5faifV+yMD/"
00193          "MDwEHGil5iypzmwcKZgDpsFTC1FOGCrYsAQqWcrSn0MEHCWA9jzP5EE4hwcTsakj"
00194          "aeM+ITXSZtuzcjhsQAsEOQQNkCmtLH5c9DQII7KofcaMnkzjF0webv3uEsB9WKpW"
00195          "93LAcm8kxrieTs2sJDVLnpnKo/bTdhQCzQIdANfBNKomQ2aGKhgwJXXQ+5jRFrxL"
00196          "bd68o6Wnk58CAQE="
00197          "-----END EC PARAMETERS-----";
00198 
00199    if(name == "brainpool256r1")
00200       return
00201          "-----BEGIN EC PARAMETERS-----"
00202          "MIHgAgEBMCwGByqGSM49AQECIQCp+1fboe6pvD5mCpCdg41ybjv2I9UmICggE0gd"
00203          "H25TdzBEBCB9Wgl1/CwwV+72dTBBev/n+4BVwSbcXGzpSktE8zC12QQgJtxcbOlK"
00204          "S0TzMLXZu9d8v5WEFilc9+HOa8zcGP+MB7YEQQSL0q65y35XyyxLSC/8gbevud4n"
00205          "4eO9I8I6RFO9ms4yYlR++DXD2sT9l/hGGhRhHcnCd0UTLe2OVFwdVMcvBGmXAiEA"
00206          "qftX26Huqbw+ZgqQnYONcYw5eqO1Yab3kB4OgpdIVqcCAQE="
00207          "-----END EC PARAMETERS-----";
00208 
00209    if(name == "brainpool320r1")
00210       return
00211          "-----BEGIN EC PARAMETERS-----"
00212          "MIIBEAIBATA0BgcqhkjOPQEBAikA015HIDa8T7fhPHhe0gHgZfmPz6b29A3vT5K5"
00213          "7HiT7Cj81BKx8bMuJzBUBCg+4wtWj7qw+IPM69RtPzu4oqc1E/XredpmGQ6whf+p"
00214          "9JLzdal9hg60BChSCIOUnf28QtOtGYZAaIpv4T9BNJVUtJrMMdzNiEU5gW9etKyP"
00215          "sfGmBFEEQ71+mvtT2LhSibzEjuW/5vIBN9EKCH6254ceKhClmccQr40NOeIGERT9"
00216          "0FVF7BzIq0CTJH93J14HQ//tEXGC6qnHeHeqrGrH01JF0WkujuECKQDTXkcgNrxP"
00217          "t+E8eF7SAeBl+Y/PpbaPEqMtSC7H7oZY6YaRVVtExZMRAgEB"
00218          "-----END EC PARAMETERS-----";
00219 
00220    if(name == "brainpool384r1")
00221       return
00222          "-----BEGIN EC PARAMETERS-----"
00223          "MIIBQAIBATA8BgcqhkjOPQEBAjEAjLkegqM4bSgPXW9+UOZB3xUvcQntVFa0ErHa"
00224          "GX+3ESOs06cpkB0acYdHABMxB+xTMGQEMHvDgsY9jBUMPHIICs4Fr6DCvqKOT7In"
00225          "hxORZe+6kfkPiqWBSlA61OsEqMfdIs4oJgQwBKjH3SLOKCaLObVUFvBEfC+3feEH"
00226          "3NKmLogOpT7rYtV8tDkCldvJlDq3hpb6UEwRBGEEHRxk8GjPRf+ipjqBt8E/a4hH"
00227          "o+d+8U/j23/K/gy9EOjoJuA0NtZGqu+HsuJH1K8eir4ddSD5wqRcseuOlc/VUmK3"
00228          "Cyn+7Fhk4ZwFT/mRKSgORkYhd5GBEUKCA0EmPFMVAjEAjLkegqM4bSgPXW9+UOZB"
00229          "3xUvcQntVFazHxZubKwEJafPOrava3/DEDuIMgLpBGVlAgEB"
00230          "-----END EC PARAMETERS-----";
00231 
00232    if(name == "brainpool512r1")
00233       return
00234          "-----BEGIN EC PARAMETERS-----"
00235          "MIIBogIBATBMBgcqhkjOPQEBAkEAqt2duNvpxIs/1OauM8n8B8swjbOzydIO1mOc"
00236          "ynAzCHF9TZsAm8ZoQq7NoSrmo4DmKIH/Ly2CxoUoqmBWWDpI8zCBhARAeDCjMYtg"
00237          "O4niMnFFrCNMxZTL3Y09+RYQqDRByuqYY7wt7V1aqCU6oQou8cmLmsi1fxEXpyvy"
00238          "x7nnwaxNd/yUygRAPfkWEKg0QcrqmGO8Le1dWqglOqEKLvHJi5rItX8RF6cr8se5"
00239          "58GsTXf8lMrcCD5nmEBQt1665d0oCb1jgBb3IwSBgQSBruS92C7ZZFohMi6cTGqT"
00240          "he2fcLXZFsG0O2Lu9NAJjv87H3ji0NSNUNFoe5O5fV98bVBHQGpeaIs1Igm8ufgi"
00241          "fd44XVZjMuzA6r+pz3gi/fIJ9wAkpXsaoADFW4gfgRGy3N5JSl9IXlvKS9iKJ2Ou"
00242          "0corL6jwVAZ4zR4POtgIkgJBAKrdnbjb6cSLP9TmrjPJ/AfLMI2zs8nSDtZjnMpw"
00243          "MwhwVT5cQUypJhlBhmEZf6wQRx2x04EIXdrdtYeWgpypAGkCAQE="
00244          "-----END EC PARAMETERS-----";
00245 
00246    if(name == "x962_p192v2")
00247       return
00248          "-----BEGIN EC PARAMETERS-----"
00249          "MIGwAgEBMCQGByqGSM49AQECGQD////////////////////+//////////8wNAQY"
00250          "/////////////////////v/////////8BBjMItbfuVxrJeScDWNkpOWYDDk6ohZo"
00251          "2VMEMQTuorrn4Ul4QvLed2nP6cmJwHKtaW9IA0pldNEdabbsemcruCoIPfLysIR9"
00252          "6XCy3hUCGQD///////////////5fsack3IBBhkjY3TECAQE="
00253          "-----END EC PARAMETERS-----";
00254 
00255    if(name == "x962_p192v3")
00256       return
00257          "-----BEGIN EC PARAMETERS-----"
00258          "MIGwAgEBMCQGByqGSM49AQECGQD////////////////////+//////////8wNAQY"
00259          "/////////////////////v/////////8BBgiEj3COVoFyqdCPa7MyUdgp9RiJWvV"
00260          "aRYEMQR9KXeBAMZaHaF4NxZYjc4ri0rujiKPGJY4qQ8iY3M3M0tJ3LZqbcj5l4rK"
00261          "dkipQ7ACGQD///////////////96YtAxyD9ClPZA7BMCAQE="
00262          "-----END EC PARAMETERS-----";
00263 
00264    if(name == "x962_p239v1")
00265       return
00266          "-----BEGIN EC PARAMETERS-----"
00267          "MIHSAgEBMCkGByqGSM49AQECHn///////////////3///////4AAAAAAAH//////"
00268          "/zBABB5///////////////9///////+AAAAAAAB///////wEHmsBbDvc8YlB0NZU"
00269          "khR1ynGp2y+yfR03eWGFwpQsCgQ9BA/6ljzcqIFszDO4ZCvt+QXD01hXPT8n+707"
00270          "PLmqr33r6OTpCl2ubkBUylMLoEZUs2gYziJrOfzLewLxrgIef///////////////"
00271          "f///nl6an12QcfvRUiaIkJ0LAgEB"
00272          "-----END EC PARAMETERS-----";
00273 
00274    if(name == "x962_p239v2")
00275       return
00276          "-----BEGIN EC PARAMETERS-----"
00277          "MIHSAgEBMCkGByqGSM49AQECHn///////////////3///////4AAAAAAAH//////"
00278          "/zBABB5///////////////9///////+AAAAAAAB///////wEHmF/q2gyV2y7/tUN"
00279          "mfAknD/uWLlLoAOMeuhMjIMvLAQ9BDivCdmHJ3BRIMkhu16eJilqPNzy81dXoOr9"
00280          "h7gw51sBJeTb6g7HIG2g/AHZsIEyn7VV3m70YCN9/4vkugIef///////////////"
00281          "gAAAz6foWUN31BTAOCG8WCBjAgEB"
00282          "-----END EC PARAMETERS-----";
00283 
00284    if(name == "x962_p239v3")
00285       return
00286          "-----BEGIN EC PARAMETERS-----"
00287          "MIHSAgEBMCkGByqGSM49AQECHn///////////////3///////4AAAAAAAH//////"
00288          "/zBABB5///////////////9///////+AAAAAAAB///////wEHiVXBfoqMGZUsfTL"
00289          "A9anUKMMJQEC1JiHF9m6FattPgQ9BGdoro4Yu5LPzwBclJqixtlIU9DmYLv4VLHJ"
00290          "UF/pWhYH5omPOQwGvB1VK60ibztvz+SLboGEma8Y4+1s8wIef///////////////"
00291          "f///l13rQbOmBXw8QyFGUmVRAgEB"
00292          "-----END EC PARAMETERS-----";
00293 
00294    if(name == "gost_256A")
00295       return
00296          "-----BEGIN EC PARAMETERS-----"
00297          "MIHgAgEBMCwGByqGSM49AQECIQD/////////////////////////////////////"
00298          "///9lzBEBCD////////////////////////////////////////9lAQgAAAAAAAA"
00299          "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKYEQQQAAAAAAAAAAAAAAAAAAAAAAAAA"
00300          "AAAAAAAAAAAAAAAAAY2R5HHgmJzaJ99QWkU/K3Y1KU8t3yPjsSKsyZyenx4UAiEA"
00301          "/////////////////////2xhEHCZWtEARYQbCbdhuJMCAQE="
00302          "-----END EC PARAMETERS-----";
00303 
00304    return nullptr;
00305    }
00306 
00307 }