@@ -345,3 +345,361 @@ OPENSSL_UNUSED static const uint32_t ksecp256k1MontGY[] = {
345345#else
346346#error "unknown word size"
347347#endif
348+
349+ // brainpoolP224r1
350+ OPENSSL_UNUSED static const uint64_t kbrainpoolP224r1FieldN0 = 0xe24d216ae149c101 ;
351+ OPENSSL_UNUSED static const uint64_t kbrainpoolP224r1OrderN0 = 0x5fc488776cfb37a1 ;
352+ #if defined(OPENSSL_64_BIT )
353+ OPENSSL_UNUSED static const uint64_t kbrainpoolP224r1Field [] = {
354+ 0x97da89f57ec8c0ff , 0x75d1d787b09f0757 , 0x264366862a183025 ,
355+ 0x00000000d7c134aa };
356+ OPENSSL_UNUSED static const uint64_t kbrainpoolP224r1Order [] = {
357+ 0x6ddebca3a5a7939f , 0x75d0fb98d116bc4b , 0x264366862a183025 ,
358+ 0x00000000d7c134aa };
359+ OPENSSL_UNUSED static const uint64_t kbrainpoolP224r1FieldR [] = {
360+ 0xd682785e20b562f7 , 0xa8e8428f5cbf0389 , 0x1c3fb2447b576cf5 ,
361+ 0x0000000079360611 };
362+ OPENSSL_UNUSED static const uint64_t kbrainpoolP224r1FieldRR [] = {
363+ 0x3bfbc9bf6b3d58ff , 0x76f9ee46f691d105 , 0x7ea5577c77e3d7e4 ,
364+ 0x000000002b3d40dd };
365+ OPENSSL_UNUSED static const uint64_t kbrainpoolP224r1OrderRR [] = {
366+ 0xf3d67605e0d86b49 , 0xf0f40a07bab96b21 , 0xb4581327a35371e1 ,
367+ 0x000000005234fe17 };
368+ OPENSSL_UNUSED static const uint64_t kbrainpoolP224r1MontB [] = {
369+ 0xa959a2ca9f9ac530 , 0xf8d8ad2184f93130 , 0x4a11d01123c3229d ,
370+ 0x00000000508fa146 };
371+ OPENSSL_UNUSED static const uint64_t kbrainpoolP224r1MontGX [] = {
372+ 0x7993ea716ad29d1b , 0x4d402109cf9a7441 , 0x5ddc6352bebd634f ,
373+ 0x000000000211cad8 };
374+ OPENSSL_UNUSED static const uint64_t kbrainpoolP224r1MontGY [] = {
375+ 0xc4e76c808e956e51 , 0x8f3e2bd5f943b361 , 0xcac7fbecf98919fa ,
376+ 0x00000000285b6e63 };
377+ #elif defined(OPENSSL_32_BIT )
378+ OPENSSL_UNUSED static const uint32_t kbrainpoolP224r1Field [] = {
379+ 0x7ec8c0ff , 0x97da89f5 , 0xb09f0757 , 0x75d1d787 , 0x2a183025 , 0x26436686 ,
380+ 0xd7c134aa };
381+ OPENSSL_UNUSED static const uint32_t kbrainpoolP224r1Order [] = {
382+ 0xa5a7939f , 0x6ddebca3 , 0xd116bc4b , 0x75d0fb98 , 0x2a183025 , 0x26436686 ,
383+ 0xd7c134aa };
384+ OPENSSL_UNUSED static const uint32_t kbrainpoolP224r1FieldR [] = {
385+ 0x81373f01 , 0x6825760a , 0x4f60f8a8 , 0x8a2e2878 , 0xd5e7cfda , 0xd9bc9979 ,
386+ 0x283ecb55 };
387+ OPENSSL_UNUSED static const uint32_t kbrainpoolP224r1FieldRR [] = {
388+ 0x64dcd04f , 0x7867ca80 , 0x43c20e72 , 0x96af774c , 0x3fe8a2aa , 0x2e6a6ce4 ,
389+ 0x0578fd59 };
390+ OPENSSL_UNUSED static const uint32_t kbrainpoolP224r1OrderRR [] = {
391+ 0x486ca401 , 0xaddaf8aa , 0x9399652c , 0x9f24919b , 0x1e9cae24 , 0x3211a561 ,
392+ 0x4a73a656 };
393+ OPENSSL_UNUSED static const uint32_t kbrainpoolP224r1MontB [] = {
394+ 0xaf83166f , 0xc21b9d8a , 0x0034e6d5 , 0xce9dac7f , 0xb76ec712 , 0xf5331b76 ,
395+ 0x9be078e3 };
396+ OPENSSL_UNUSED static const uint32_t kbrainpoolP224r1MontGX [] = {
397+ 0x234bfb4b , 0x31fdc9d7 , 0xb5e4939a , 0x19886fa3 , 0xb1cc327a , 0x29c4eb1d ,
398+ 0x9d928506 };
399+ OPENSSL_UNUSED static const uint32_t kbrainpoolP224r1MontGY [] = {
400+ 0x258adb1a , 0x3ff9013c , 0x3e5d0f80 , 0x4c141f60 , 0x89de7323 , 0x22b9dc72 ,
401+ 0xba215755 };
402+ #else
403+ #error "unknown word size"
404+ #endif
405+ #if defined(OPENSSL_64_BIT )
406+ OPENSSL_UNUSED static const uint64_t kbrainpoolP224r1MontA [] = {
407+ 0x2445385352d02a7e , 0x138210f178836b75 , 0x44cb7837c437d367 ,
408+ 0x000000004acba11e };
409+ #elif defined(OPENSSL_32_BIT )
410+ OPENSSL_UNUSED static const uint32_t kbrainpoolP224r1MontA [] = {
411+ 0x0a148fa3 , 0x38d15f58 , 0x4ba447ce , 0x14928da0 , 0x0d367346 , 0x8cddc740 ,
412+ 0x19f07d7c };
413+ #else
414+ #error "unknown word size"
415+ #endif
416+
417+ // brainpoolP256r1
418+ OPENSSL_UNUSED static const uint64_t kbrainpoolP256r1FieldN0 = 0xc6a75590cefd89b9 ;
419+ OPENSSL_UNUSED static const uint64_t kbrainpoolP256r1OrderN0 = 0xfbffbebdcbb40ee9 ;
420+ #if defined(OPENSSL_64_BIT )
421+ OPENSSL_UNUSED static const uint64_t kbrainpoolP256r1Field [] = {
422+ 0x2013481d1f6e5377 , 0x6e3bf623d5262028 , 0x3e660a909d838d72 ,
423+ 0xa9fb57dba1eea9bc };
424+ OPENSSL_UNUSED static const uint64_t kbrainpoolP256r1Order [] = {
425+ 0x901e0e82974856a7 , 0x8c397aa3b561a6f7 , 0x3e660a909d838d71 ,
426+ 0xa9fb57dba1eea9bc };
427+ OPENSSL_UNUSED static const uint64_t kbrainpoolP256r1FieldR [] = {
428+ 0xdfecb7e2e091ac89 , 0x91c409dc2ad9dfd7 , 0xc199f56f627c728d ,
429+ 0x5604a8245e115643 };
430+ OPENSSL_UNUSED static const uint64_t kbrainpoolP256r1FieldRR [] = {
431+ 0x8cfedf7ba6465b6c , 0x5cce4c26614d4f4d , 0xa1ecdacd6b1ac807 ,
432+ 0x4717aa21e5957fa8 };
433+ OPENSSL_UNUSED static const uint64_t kbrainpoolP256r1OrderRR [] = {
434+ 0xe1d8d8de3312fca6 , 0xf35d176a1134e4a0 , 0x9b7f25e76c815cb0 ,
435+ 0x0b25f1b9c3236762 };
436+ OPENSSL_UNUSED static const uint64_t kbrainpoolP256r1MontB [] = {
437+ 0x05d24d72c0c0f36f , 0x0ac34a49cc51bf59 , 0x64ca989357f2e9d9 ,
438+ 0x1634f57646a3c93e };
439+ OPENSSL_UNUSED static const uint64_t kbrainpoolP256r1MontGX [] = {
440+ 0x27c0d92d351fd10c , 0x80de4d9ab97cf30a , 0x704c311d6b892ad3 ,
441+ 0x8e1f767a9e119bdf };
442+ OPENSSL_UNUSED static const uint64_t kbrainpoolP256r1MontGY [] = {
443+ 0x9a4fe948a0917a17 , 0xa618f259cd950162 , 0x16fdf6e8dfbd8b03 ,
444+ 0x14eb78c6026eb0a2 };
445+ #elif defined(OPENSSL_32_BIT )
446+ OPENSSL_UNUSED static const uint32_t kbrainpoolP256r1Field [] = {
447+ 0x1f6e5377 , 0x2013481d , 0xd5262028 , 0x6e3bf623 , 0x9d838d72 , 0x3e660a90 ,
448+ 0xa1eea9bc , 0xa9fb57db };
449+ OPENSSL_UNUSED static const uint32_t kbrainpoolP256r1Order [] = {
450+ 0x974856a7 , 0x901e0e82 , 0xb561a6f7 , 0x8c397aa3 , 0x9d838d71 , 0x3e660a90 ,
451+ 0xa1eea9bc , 0xa9fb57db };
452+ OPENSSL_UNUSED static const uint32_t kbrainpoolP256r1FieldR [] = {
453+ 0xe091ac89 , 0xdfecb7e2 , 0x2ad9dfd7 , 0x91c409dc , 0x627c728d , 0xc199f56f ,
454+ 0x5e115643 , 0x5604a824 };
455+ OPENSSL_UNUSED static const uint32_t kbrainpoolP256r1FieldRR [] = {
456+ 0xa6465b6c , 0x8cfedf7b , 0x614d4f4d , 0x5cce4c26 , 0x6b1ac807 , 0xa1ecdacd ,
457+ 0xe5957fa8 , 0x4717aa21 };
458+ OPENSSL_UNUSED static const uint32_t kbrainpoolP256r1OrderRR [] = {
459+ 0x3312fca6 , 0xe1d8d8de , 0x1134e4a0 , 0xf35d176a , 0x6c815cb0 , 0x9b7f25e7 ,
460+ 0xc3236762 , 0x0b25f1b9 };
461+ OPENSSL_UNUSED static const uint32_t kbrainpoolP256r1MontB [] = {
462+ 0xc0c0f36f , 0x05d24d72 , 0xcc51bf59 , 0x0ac34a49 , 0x57f2e9d9 , 0x64ca9893 ,
463+ 0x46a3c93e , 0x1634f576 };
464+ OPENSSL_UNUSED static const uint32_t kbrainpoolP256r1MontGX [] = {
465+ 0x351fd10c , 0x27c0d92d , 0xb97cf30a , 0x80de4d9a , 0x6b892ad3 , 0x704c311d ,
466+ 0x9e119bdf , 0x8e1f767a };
467+ OPENSSL_UNUSED static const uint32_t kbrainpoolP256r1MontGY [] = {
468+ 0xa0917a17 , 0x9a4fe948 , 0xcd950162 , 0xa618f259 , 0xdfbd8b03 , 0x16fdf6e8 ,
469+ 0x026eb0a2 , 0x14eb78c6 };
470+ #else
471+ #error "unknown word size"
472+ #endif
473+ #if defined(OPENSSL_64_BIT )
474+ OPENSSL_UNUSED static const uint64_t kbrainpoolP256r1MontA [] = {
475+ 0xd5d18edf69696261 , 0xa68123f1c1d20c64 , 0x95ec1e5e6398556e ,
476+ 0x1e4676abd666bc17 };
477+ #elif defined(OPENSSL_32_BIT )
478+ OPENSSL_UNUSED static const uint32_t kbrainpoolP256r1MontA [] = {
479+ 0x69696261 , 0xd5d18edf , 0xc1d20c64 , 0xa68123f1 , 0x6398556e , 0x95ec1e5e ,
480+ 0xd666bc17 , 0x1e4676ab };
481+ #else
482+ #error "unknown word size"
483+ #endif
484+
485+ // brainpoolP320r1
486+ OPENSSL_UNUSED static const uint64_t kbrainpoolP320r1FieldN0 = 0x3d1e9ba22a8a9e69 ;
487+ OPENSSL_UNUSED static const uint64_t kbrainpoolP320r1OrderN0 = 0x6d42e535fc62420f ;
488+ #if defined(OPENSSL_64_BIT )
489+ OPENSSL_UNUSED static const uint64_t kbrainpoolP320r1Field [] = {
490+ 0xfcd412b1f1b32e27 , 0x4f92b9ec7893ec28 , 0xf98fcfa6f6f40def ,
491+ 0xe13c785ed201e065 , 0xd35e472036bc4fb7 };
492+ OPENSSL_UNUSED static const uint64_t kbrainpoolP320r1Order [] = {
493+ 0x8691555b44c59311 , 0x2d482ec7ee8658e9 , 0xf98fcfa5b68f12a3 ,
494+ 0xe13c785ed201e065 , 0xd35e472036bc4fb7 };
495+ OPENSSL_UNUSED static const uint64_t kbrainpoolP320r1FieldR [] = {
496+ 0x032bed4e0e4cd1d9 , 0xb06d4613876c13d7 , 0x06703059090bf210 ,
497+ 0x1ec387a12dfe1f9a , 0x2ca1b8dfc943b048 };
498+ OPENSSL_UNUSED static const uint64_t kbrainpoolP320r1FieldRR [] = {
499+ 0x994ee88a743b52f9 , 0xc2478a8d906978ef , 0x1f4c881f30c5b676 ,
500+ 0x5455a964e614d6d2 , 0xa259ba4a6c2d9252 };
501+ OPENSSL_UNUSED static const uint64_t kbrainpoolP320r1OrderRR [] = {
502+ 0x679d29df2513e4cd , 0x91c3001be0e16805 , 0x86b330bcaf86c409 ,
503+ 0xe30d35244e6390fe , 0x31ec87c73200b14f };
504+ OPENSSL_UNUSED static const uint64_t kbrainpoolP320r1MontB [] = {
505+ 0xc92e58f8bff1db1a , 0x14babbde20847b05 , 0x1856e1da965d8ef9 ,
506+ 0x917a9c72229d010d , 0x9336afca29885368 };
507+ OPENSSL_UNUSED static const uint64_t kbrainpoolP320r1MontGX [] = {
508+ 0xbd925e705d7c0ab9 , 0xee70fea4deccf0fb , 0x702afc301cfd939e ,
509+ 0x564fee03bf5221f3 , 0x446ef8b341b3f4e4 };
510+ OPENSSL_UNUSED static const uint64_t kbrainpoolP320r1MontGY [] = {
511+ 0x5401378747cc614c , 0xc67f8607801ee279 , 0x54134356af3f0bf7 ,
512+ 0xfb6a1a2181e5be79 , 0x769a9382bd74ab8a };
513+ #elif defined(OPENSSL_32_BIT )
514+ OPENSSL_UNUSED static const uint32_t kbrainpoolP320r1Field [] = {
515+ 0xf1b32e27 , 0xfcd412b1 , 0x7893ec28 , 0x4f92b9ec , 0xf6f40def , 0xf98fcfa6 ,
516+ 0xd201e065 , 0xe13c785e , 0x36bc4fb7 , 0xd35e4720 };
517+ OPENSSL_UNUSED static const uint32_t kbrainpoolP320r1Order [] = {
518+ 0x44c59311 , 0x8691555b , 0xee8658e9 , 0x2d482ec7 , 0xb68f12a3 , 0xf98fcfa5 ,
519+ 0xd201e065 , 0xe13c785e , 0x36bc4fb7 , 0xd35e4720 };
520+ OPENSSL_UNUSED static const uint32_t kbrainpoolP320r1FieldR [] = {
521+ 0x0e4cd1d9 , 0x032bed4e , 0x876c13d7 , 0xb06d4613 , 0x090bf210 , 0x06703059 ,
522+ 0x2dfe1f9a , 0x1ec387a1 , 0xc943b048 , 0x2ca1b8df };
523+ OPENSSL_UNUSED static const uint32_t kbrainpoolP320r1FieldRR [] = {
524+ 0x743b52f9 , 0x994ee88a , 0x906978ef , 0xc2478a8d , 0x30c5b676 , 0x1f4c881f ,
525+ 0xe614d6d2 , 0x5455a964 , 0x6c2d9252 , 0xa259ba4a };
526+ OPENSSL_UNUSED static const uint32_t kbrainpoolP320r1OrderRR [] = {
527+ 0x2513e4cd , 0x679d29df , 0xe0e16805 , 0x91c3001b , 0xaf86c409 , 0x86b330bc ,
528+ 0x4e6390fe , 0xe30d3524 , 0x3200b14f , 0x31ec87c7 };
529+ OPENSSL_UNUSED static const uint32_t kbrainpoolP320r1MontB [] = {
530+ 0xbff1db1a , 0xc92e58f8 , 0x20847b05 , 0x14babbde , 0x965d8ef9 , 0x1856e1da ,
531+ 0x229d010d , 0x917a9c72 , 0x29885368 , 0x9336afca };
532+ OPENSSL_UNUSED static const uint32_t kbrainpoolP320r1MontGX [] = {
533+ 0x5d7c0ab9 , 0xbd925e70 , 0xdeccf0fb , 0xee70fea4 , 0x1cfd939e , 0x702afc30 ,
534+ 0xbf5221f3 , 0x564fee03 , 0x41b3f4e4 , 0x446ef8b3 };
535+ OPENSSL_UNUSED static const uint32_t kbrainpoolP320r1MontGY [] = {
536+ 0x47cc614c , 0x54013787 , 0x801ee279 , 0xc67f8607 , 0xaf3f0bf7 , 0x54134356 ,
537+ 0x81e5be79 , 0xfb6a1a21 , 0xbd74ab8a , 0x769a9382 };
538+ #else
539+ #error "unknown word size"
540+ #endif
541+ #if defined(OPENSSL_64_BIT )
542+ OPENSSL_UNUSED static const uint64_t kbrainpoolP320r1MontA [] = {
543+ 0x20b3f27b0f7135a2 , 0x03f46a6da3c2df86 , 0xa139a3e1bb98b013 ,
544+ 0x3a3598e8cdeb36df , 0x467bb8b9cec29d66 };
545+ #elif defined(OPENSSL_32_BIT )
546+ OPENSSL_UNUSED static const uint32_t kbrainpoolP320r1MontA [] = {
547+ 0x0f7135a2 , 0x20b3f27b , 0xa3c2df86 , 0x03f46a6d , 0xbb98b013 , 0xa139a3e1 ,
548+ 0xcdeb36df , 0x3a3598e8 , 0xcec29d66 , 0x467bb8b9 };
549+ #else
550+ #error "unknown word size"
551+ #endif
552+
553+ // brainpoolP384r1
554+ OPENSSL_UNUSED static const uint64_t kbrainpoolP384r1FieldN0 = 0x9a6ea96cea9ec825 ;
555+ OPENSSL_UNUSED static const uint64_t kbrainpoolP384r1OrderN0 = 0x5cfedd2a5cb5bb93 ;
556+ #if defined(OPENSSL_64_BIT )
557+ OPENSSL_UNUSED static const uint64_t kbrainpoolP384r1Field [] = {
558+ 0x874700133107ec53 , 0xacd3a729901d1a71 , 0x12b1da197fb71123 ,
559+ 0x152f7109ed5456b4 , 0x0f5d6f7e50e641df , 0x8cb91e82a3386d28 };
560+ OPENSSL_UNUSED static const uint64_t kbrainpoolP384r1Order [] = {
561+ 0x3b883202e9046565 , 0xcf3ab6af6b7fc310 , 0x1f166e6cac0425a7 ,
562+ 0x152f7109ed5456b3 , 0x0f5d6f7e50e641df , 0x8cb91e82a3386d28 };
563+ OPENSSL_UNUSED static const uint64_t kbrainpoolP384r1FieldR [] = {
564+ 0x78b8ffeccef813ad , 0x532c58d66fe2e58e , 0xed4e25e68048eedc ,
565+ 0xead08ef612aba94b , 0xf0a29081af19be20 , 0x7346e17d5cc792d7 };
566+ OPENSSL_UNUSED static const uint64_t kbrainpoolP384r1FieldRR [] = {
567+ 0x087cefff40b64bde , 0x535283343d7fd965 , 0x8e28f99cc9940899 ,
568+ 0x621401919918d5af , 0xd5c6ef3ba57e052c , 0x36bf6883178df842 };
569+ OPENSSL_UNUSED static const uint64_t kbrainpoolP384r1OrderRR [] = {
570+ 0xac4ed3a2de771c8e , 0x37264e202f2b6b6e , 0x2a927e3b9802688a ,
571+ 0x574a74cb52d748ff , 0x8f886dc965165fdb , 0x0ce8941a614e97c2 };
572+ OPENSSL_UNUSED static const uint64_t kbrainpoolP384r1MontB [] = {
573+ 0x1f05fdea00c8e16d , 0x362ef7c8205a0fe3 , 0xcdb456c3f7216eda ,
574+ 0x17413827fe77fed8 , 0x2b335681d1cd255d , 0x453dcefae84686aa };
575+ OPENSSL_UNUSED static const uint64_t kbrainpoolP384r1MontGX [] = {
576+ 0xa189deebd438fbc1 , 0x66fc80e8d5a886bf , 0x94c378e99d202f23 ,
577+ 0x068b264ef95c2164 , 0x9cdd0dcfbacd0099 , 0x8500753388f53fc1 };
578+ OPENSSL_UNUSED static const uint64_t kbrainpoolP384r1MontGY [] = {
579+ 0xe738b3310de140a5 , 0xf5e0d246c7996f55 , 0xf88309a38f0737fc ,
580+ 0xa180acd4d5719217 , 0xc61625664f21ddb6 , 0x2cf4a062458968b5 };
581+ #elif defined(OPENSSL_32_BIT )
582+ OPENSSL_UNUSED static const uint32_t kbrainpoolP384r1Field [] = {
583+ 0x3107ec53 , 0x87470013 , 0x901d1a71 , 0xacd3a729 , 0x7fb71123 , 0x12b1da19 ,
584+ 0xed5456b4 , 0x152f7109 , 0x50e641df , 0x0f5d6f7e , 0xa3386d28 , 0x8cb91e82 };
585+ OPENSSL_UNUSED static const uint32_t kbrainpoolP384r1Order [] = {
586+ 0xe9046565 , 0x3b883202 , 0x6b7fc310 , 0xcf3ab6af , 0xac0425a7 , 0x1f166e6c ,
587+ 0xed5456b3 , 0x152f7109 , 0x50e641df , 0x0f5d6f7e , 0xa3386d28 , 0x8cb91e82 };
588+ OPENSSL_UNUSED static const uint32_t kbrainpoolP384r1FieldR [] = {
589+ 0xcef813ad , 0x78b8ffec , 0x6fe2e58e , 0x532c58d6 , 0x8048eedc , 0xed4e25e6 ,
590+ 0x12aba94b , 0xead08ef6 , 0xaf19be20 , 0xf0a29081 , 0x5cc792d7 , 0x7346e17d };
591+ OPENSSL_UNUSED static const uint32_t kbrainpoolP384r1FieldRR [] = {
592+ 0x40b64bde , 0x087cefff , 0x3d7fd965 , 0x53528334 , 0xc9940899 , 0x8e28f99c ,
593+ 0x9918d5af , 0x62140191 , 0xa57e052c , 0xd5c6ef3b , 0x178df842 , 0x36bf6883 };
594+ OPENSSL_UNUSED static const uint32_t kbrainpoolP384r1OrderRR [] = {
595+ 0xde771c8e , 0xac4ed3a2 , 0x2f2b6b6e , 0x37264e20 , 0x9802688a , 0x2a927e3b ,
596+ 0x52d748ff , 0x574a74cb , 0x65165fdb , 0x8f886dc9 , 0x614e97c2 , 0x0ce8941a };
597+ OPENSSL_UNUSED static const uint32_t kbrainpoolP384r1MontB [] = {
598+ 0x00c8e16d , 0x1f05fdea , 0x205a0fe3 , 0x362ef7c8 , 0xf7216eda , 0xcdb456c3 ,
599+ 0xfe77fed8 , 0x17413827 , 0xd1cd255d , 0x2b335681 , 0xe84686aa , 0x453dcefa };
600+ OPENSSL_UNUSED static const uint32_t kbrainpoolP384r1MontGX [] = {
601+ 0xd438fbc1 , 0xa189deeb , 0xd5a886bf , 0x66fc80e8 , 0x9d202f23 , 0x94c378e9 ,
602+ 0xf95c2164 , 0x068b264e , 0xbacd0099 , 0x9cdd0dcf , 0x88f53fc1 , 0x85007533 };
603+ OPENSSL_UNUSED static const uint32_t kbrainpoolP384r1MontGY [] = {
604+ 0x0de140a5 , 0xe738b331 , 0xc7996f55 , 0xf5e0d246 , 0x8f0737fc , 0xf88309a3 ,
605+ 0xd5719217 , 0xa180acd4 , 0x4f21ddb6 , 0xc6162566 , 0x458968b5 , 0x2cf4a062 };
606+ #else
607+ #error "unknown word size"
608+ #endif
609+ #if defined(OPENSSL_64_BIT )
610+ OPENSSL_UNUSED static const uint64_t kbrainpoolP384r1MontA [] = {
611+ 0xdb26b895466c3c99 , 0x75d7f3fef157b07b , 0x936771b9d7f10db4 ,
612+ 0xe7ffe9e535529374 , 0x400a8fdf42b00c60 , 0x7c338021a2e8c0d1 };
613+ #elif defined(OPENSSL_32_BIT )
614+ OPENSSL_UNUSED static const uint32_t kbrainpoolP384r1MontA [] = {
615+ 0x466c3c99 , 0xdb26b895 , 0xf157b07b , 0x75d7f3fe , 0xd7f10db4 , 0x936771b9 ,
616+ 0x35529374 , 0xe7ffe9e5 , 0x42b00c60 , 0x400a8fdf , 0xa2e8c0d1 , 0x7c338021 };
617+ #else
618+ #error "unknown word size"
619+ #endif
620+
621+ // brainpoolP512r1
622+ OPENSSL_UNUSED static const uint64_t kbrainpoolP512r1FieldN0 = 0x839b32207d89efc5 ;
623+ OPENSSL_UNUSED static const uint64_t kbrainpoolP512r1OrderN0 = 0xad49541f0f1b7027 ;
624+ #if defined(OPENSSL_64_BIT )
625+ OPENSSL_UNUSED static const uint64_t kbrainpoolP512r1Field [] = {
626+ 0x28aa6056583a48f3 , 0x2881ff2f2d82c685 , 0xaecda12ae6a380e6 ,
627+ 0x7d4d9b009bc66842 , 0xd6639cca70330871 , 0xcb308db3b3c9d20e ,
628+ 0x3fd4e6ae33c9fc07 , 0xaadd9db8dbe9c48b };
629+ OPENSSL_UNUSED static const uint64_t kbrainpoolP512r1Order [] = {
630+ 0xb58796829ca90069 , 0x1db1d381085ddadd , 0x418661197fac1047 ,
631+ 0x553e5c414ca92619 , 0xd6639cca70330870 , 0xcb308db3b3c9d20e ,
632+ 0x3fd4e6ae33c9fc07 , 0xaadd9db8dbe9c48b };
633+ OPENSSL_UNUSED static const uint64_t kbrainpoolP512r1FieldR [] = {
634+ 0xd7559fa9a7c5b70d , 0xd77e00d0d27d397a , 0x51325ed5195c7f19 ,
635+ 0x82b264ff643997bd , 0x299c63358fccf78e , 0x34cf724c4c362df1 ,
636+ 0xc02b1951cc3603f8 , 0x5522624724163b74 };
637+ OPENSSL_UNUSED static const uint64_t kbrainpoolP512r1FieldRR [] = {
638+ 0x49ad144a6158f205 , 0x793fb13027157905 , 0x53b7f9bc905affd3 ,
639+ 0xe0c19a7783514a25 , 0x19486fd8d5898057 , 0xa16daa5fd42bff83 ,
640+ 0x202e19402056eecc , 0x3c4c9d05a9ff6450 };
641+ OPENSSL_UNUSED static const uint64_t kbrainpoolP512r1OrderRR [] = {
642+ 0xd2a3681ecda81671 , 0x0886b75895283ddd , 0x3ec64bd033b7627f ,
643+ 0xa6f230c72f0207e8 , 0xd7f9cc263b790de3 , 0x723c37a22f16bbdf ,
644+ 0x95df1b4c194b2e56 , 0xa794586a718407b0 };
645+ OPENSSL_UNUSED static const uint64_t kbrainpoolP512r1MontB [] = {
646+ 0x507e839620e92a34 , 0x009b63c7e58e5a34 , 0xe16ba4562d8724aa ,
647+ 0xc73e30e89877be02 , 0x97e00c63fe222433 , 0xcbda57ac6d17d81d ,
648+ 0x642312a50bb5aaa2 , 0x6a4aabb4471e8ea7 };
649+ OPENSSL_UNUSED static const uint64_t kbrainpoolP512r1MontGX [] = {
650+ 0xc4ce96095161d9d3 , 0x683e4d64272c02a4 , 0x34ab04146df55e8f ,
651+ 0x8550539514c01fc8 , 0x2433d76f905c8737 , 0xb2b6ea37f36d3cf7 ,
652+ 0x871cb5ca006d4573 , 0x5a2ba14c0994e981 };
653+ OPENSSL_UNUSED static const uint64_t kbrainpoolP512r1MontGY [] = {
654+ 0x2f90662925042a6d , 0x7518df6f4742f325 , 0xbf8455534c859490 ,
655+ 0x360ec775598ecc3e , 0x7c170b888fe62fdc , 0x585d2b77cd9d3f8c ,
656+ 0x9a5ed7da870f3f9b , 0x8c50c9d12acb7281 };
657+ #elif defined(OPENSSL_32_BIT )
658+ OPENSSL_UNUSED static const uint32_t kbrainpoolP512r1Field [] = {
659+ 0x583a48f3 , 0x28aa6056 , 0x2d82c685 , 0x2881ff2f , 0xe6a380e6 , 0xaecda12a ,
660+ 0x9bc66842 , 0x7d4d9b00 , 0x70330871 , 0xd6639cca , 0xb3c9d20e , 0xcb308db3 ,
661+ 0x33c9fc07 , 0x3fd4e6ae , 0xdbe9c48b , 0xaadd9db8 };
662+ OPENSSL_UNUSED static const uint32_t kbrainpoolP512r1Order [] = {
663+ 0x9ca90069 , 0xb5879682 , 0x085ddadd , 0x1db1d381 , 0x7fac1047 , 0x41866119 ,
664+ 0x4ca92619 , 0x553e5c41 , 0x70330870 , 0xd6639cca , 0xb3c9d20e , 0xcb308db3 ,
665+ 0x33c9fc07 , 0x3fd4e6ae , 0xdbe9c48b , 0xaadd9db8 };
666+ OPENSSL_UNUSED static const uint32_t kbrainpoolP512r1FieldR [] = {
667+ 0xa7c5b70d , 0xd7559fa9 , 0xd27d397a , 0xd77e00d0 , 0x195c7f19 , 0x51325ed5 ,
668+ 0x643997bd , 0x82b264ff , 0x8fccf78e , 0x299c6335 , 0x4c362df1 , 0x34cf724c ,
669+ 0xcc3603f8 , 0xc02b1951 , 0x24163b74 , 0x55226247 };
670+ OPENSSL_UNUSED static const uint32_t kbrainpoolP512r1FieldRR [] = {
671+ 0x6158f205 , 0x49ad144a , 0x27157905 , 0x793fb130 , 0x905affd3 , 0x53b7f9bc ,
672+ 0x83514a25 , 0xe0c19a77 , 0xd5898057 , 0x19486fd8 , 0xd42bff83 , 0xa16daa5f ,
673+ 0x2056eecc , 0x202e1940 , 0xa9ff6450 , 0x3c4c9d05 };
674+ OPENSSL_UNUSED static const uint32_t kbrainpoolP512r1OrderRR [] = {
675+ 0xcda81671 , 0xd2a3681e , 0x95283ddd , 0x0886b758 , 0x33b7627f , 0x3ec64bd0 ,
676+ 0x2f0207e8 , 0xa6f230c7 , 0x3b790de3 , 0xd7f9cc26 , 0x2f16bbdf , 0x723c37a2 ,
677+ 0x194b2e56 , 0x95df1b4c , 0x718407b0 , 0xa794586a };
678+ OPENSSL_UNUSED static const uint32_t kbrainpoolP512r1MontB [] = {
679+ 0x20e92a34 , 0x507e8396 , 0xe58e5a34 , 0x009b63c7 , 0x2d8724aa , 0xe16ba456 ,
680+ 0x9877be02 , 0xc73e30e8 , 0xfe222433 , 0x97e00c63 , 0x6d17d81d , 0xcbda57ac ,
681+ 0x0bb5aaa2 , 0x642312a5 , 0x471e8ea7 , 0x6a4aabb4 };
682+ OPENSSL_UNUSED static const uint32_t kbrainpoolP512r1MontGX [] = {
683+ 0x5161d9d3 , 0xc4ce9609 , 0x272c02a4 , 0x683e4d64 , 0x6df55e8f , 0x34ab0414 ,
684+ 0x14c01fc8 , 0x85505395 , 0x905c8737 , 0x2433d76f , 0xf36d3cf7 , 0xb2b6ea37 ,
685+ 0x006d4573 , 0x871cb5ca , 0x0994e981 , 0x5a2ba14c };
686+ OPENSSL_UNUSED static const uint32_t kbrainpoolP512r1MontGY [] = {
687+ 0x25042a6d , 0x2f906629 , 0x4742f325 , 0x7518df6f , 0x4c859490 , 0xbf845553 ,
688+ 0x598ecc3e , 0x360ec775 , 0x8fe62fdc , 0x7c170b88 , 0xcd9d3f8c , 0x585d2b77 ,
689+ 0x870f3f9b , 0x9a5ed7da , 0x2acb7281 , 0x8c50c9d1 };
690+ #else
691+ #error "unknown word size"
692+ #endif
693+ #if defined(OPENSSL_64_BIT )
694+ OPENSSL_UNUSED static const uint64_t kbrainpoolP512r1MontA [] = {
695+ 0xda1f8a34ea10c446 , 0x14e4957dafa7d283 , 0x40b04b724675bbab ,
696+ 0xcf8f01119e6e87ff , 0xa5ec30c83f80d1c7 , 0x182d0f59f41e8778 ,
697+ 0xb83b84fae2d0850c , 0x5ec4f187227d2a83 };
698+ #elif defined(OPENSSL_32_BIT )
699+ OPENSSL_UNUSED static const uint32_t kbrainpoolP512r1MontA [] = {
700+ 0xea10c446 , 0xda1f8a34 , 0xafa7d283 , 0x14e4957d , 0x4675bbab , 0x40b04b72 ,
701+ 0x9e6e87ff , 0xcf8f0111 , 0x3f80d1c7 , 0xa5ec30c8 , 0xf41e8778 , 0x182d0f59 ,
702+ 0xe2d0850c , 0xb83b84fa , 0x227d2a83 , 0x5ec4f187 };
703+ #else
704+ #error "unknown word size"
705+ #endif
0 commit comments