tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

sftkdhverify.c (109910B)


      1 /* This Source Code Form is subject to the terms of the Mozilla Public
      2 * License, v. 2.0. If a copy of the MPL was not distributed with this
      3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      4 /*
      5 * This file makes sure a prime given to us matches one of the known
      6 * approved primes for diffie-helman.
      7 *
      8 * It also checks if a prime is a safe prime for the case
      9 * where we don't match an approved prime.
     10 */
     11 #include "seccomon.h"
     12 #include "secitem.h"
     13 #include "secerr.h"
     14 #include "blapi.h"
     15 
     16 /* IKE 1536 prime is: 2^1536 - 2^1472 - 1 + 2^64 * { [2^1406 pi] + 741804 } */
     17 static const unsigned char prime_ike_1536[] = {
     18    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC9, 0x0F, 0xDA, 0xA2,
     19    0x21, 0x68, 0xC2, 0x34, 0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1,
     20    0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74, 0x02, 0x0B, 0xBE, 0xA6,
     21    0x3B, 0x13, 0x9B, 0x22, 0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD,
     22    0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B, 0x30, 0x2B, 0x0A, 0x6D,
     23    0xF2, 0x5F, 0x14, 0x37, 0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45,
     24    0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6, 0xF4, 0x4C, 0x42, 0xE9,
     25    0xA6, 0x37, 0xED, 0x6B, 0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED,
     26    0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5, 0xAE, 0x9F, 0x24, 0x11,
     27    0x7C, 0x4B, 0x1F, 0xE6, 0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B, 0x3D,
     28    0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63, 0xBF, 0x05, 0x98, 0xDA, 0x48, 0x36,
     29    0x1C, 0x55, 0xD3, 0x9A, 0x69, 0x16, 0x3F, 0xA8, 0xFD, 0x24, 0xCF, 0x5F,
     30    0x83, 0x65, 0x5D, 0x23, 0xDC, 0xA3, 0xAD, 0x96, 0x1C, 0x62, 0xF3, 0x56,
     31    0x20, 0x85, 0x52, 0xBB, 0x9E, 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D,
     32    0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98, 0x04, 0xF1, 0x74, 0x6C, 0x08,
     33    0xCA, 0x23, 0x73, 0x27, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
     34 };
     35 
     36 /* IKE 2048 prime is: 2^2048 - 2^1984 - 1 + 2^64 * { [2^1918 pi] + 124476 */
     37 static const unsigned char prime_ike_2048[] = {
     38    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC9, 0x0F, 0xDA, 0xA2,
     39    0x21, 0x68, 0xC2, 0x34, 0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1,
     40    0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74, 0x02, 0x0B, 0xBE, 0xA6,
     41    0x3B, 0x13, 0x9B, 0x22, 0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD,
     42    0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B, 0x30, 0x2B, 0x0A, 0x6D,
     43    0xF2, 0x5F, 0x14, 0x37, 0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45,
     44    0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6, 0xF4, 0x4C, 0x42, 0xE9,
     45    0xA6, 0x37, 0xED, 0x6B, 0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED,
     46    0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5, 0xAE, 0x9F, 0x24, 0x11,
     47    0x7C, 0x4B, 0x1F, 0xE6, 0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B, 0x3D,
     48    0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63, 0xBF, 0x05, 0x98, 0xDA, 0x48, 0x36,
     49    0x1C, 0x55, 0xD3, 0x9A, 0x69, 0x16, 0x3F, 0xA8, 0xFD, 0x24, 0xCF, 0x5F,
     50    0x83, 0x65, 0x5D, 0x23, 0xDC, 0xA3, 0xAD, 0x96, 0x1C, 0x62, 0xF3, 0x56,
     51    0x20, 0x85, 0x52, 0xBB, 0x9E, 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D,
     52    0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98, 0x04, 0xF1, 0x74, 0x6C, 0x08,
     53    0xCA, 0x18, 0x21, 0x7C, 0x32, 0x90, 0x5E, 0x46, 0x2E, 0x36, 0xCE, 0x3B,
     54    0xE3, 0x9E, 0x77, 0x2C, 0x18, 0x0E, 0x86, 0x03, 0x9B, 0x27, 0x83, 0xA2,
     55    0xEC, 0x07, 0xA2, 0x8F, 0xB5, 0xC5, 0x5D, 0xF0, 0x6F, 0x4C, 0x52, 0xC9,
     56    0xDE, 0x2B, 0xCB, 0xF6, 0x95, 0x58, 0x17, 0x18, 0x39, 0x95, 0x49, 0x7C,
     57    0xEA, 0x95, 0x6A, 0xE5, 0x15, 0xD2, 0x26, 0x18, 0x98, 0xFA, 0x05, 0x10,
     58    0x15, 0x72, 0x8E, 0x5A, 0x8A, 0xAC, 0xAA, 0x68, 0xFF, 0xFF, 0xFF, 0xFF,
     59    0xFF, 0xFF, 0xFF, 0xFF
     60 };
     61 
     62 /* TLS 2048 prime is: 2^2048 - 2^1984 + {[2^1918 * e] + 560316 } * 2^64 - 1 */
     63 static const unsigned char prime_tls_2048[] = {
     64    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xAD, 0xF8, 0x54, 0x58,
     65    0xA2, 0xBB, 0x4A, 0x9A, 0xAF, 0xDC, 0x56, 0x20, 0x27, 0x3D, 0x3C, 0xF1,
     66    0xD8, 0xB9, 0xC5, 0x83, 0xCE, 0x2D, 0x36, 0x95, 0xA9, 0xE1, 0x36, 0x41,
     67    0x14, 0x64, 0x33, 0xFB, 0xCC, 0x93, 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9,
     68    0x7D, 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8, 0xF6, 0x81, 0xB2, 0x02,
     69    0xAE, 0xC4, 0x61, 0x7A, 0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD, 0x65, 0x61,
     70    0x24, 0x33, 0xF5, 0x1F, 0x5F, 0x06, 0x6E, 0xD0, 0x85, 0x63, 0x65, 0x55,
     71    0x3D, 0xED, 0x1A, 0xF3, 0xB5, 0x57, 0x13, 0x5E, 0x7F, 0x57, 0xC9, 0x35,
     72    0x98, 0x4F, 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, 0xE2, 0xA6, 0x89, 0xDA,
     73    0xF3, 0xEF, 0xE8, 0x72, 0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7, 0x35,
     74    0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A, 0x79, 0x7A, 0xBC, 0x0A, 0xB1, 0x82,
     75    0xB3, 0x24, 0xFB, 0x61, 0xD1, 0x08, 0xA9, 0x4B, 0xB2, 0xC8, 0xE3, 0xFB,
     76    0xB9, 0x6A, 0xDA, 0xB7, 0x60, 0xD7, 0xF4, 0x68, 0x1D, 0x4F, 0x42, 0xA3,
     77    0xDE, 0x39, 0x4D, 0xF4, 0xAE, 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19,
     78    0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D, 0x70, 0x9E, 0x02, 0xFC, 0xE1,
     79    0xCD, 0xF7, 0xE2, 0xEC, 0xC0, 0x34, 0x04, 0xCD, 0x28, 0x34, 0x2F, 0x61,
     80    0x91, 0x72, 0xFE, 0x9C, 0xE9, 0x85, 0x83, 0xFF, 0x8E, 0x4F, 0x12, 0x32,
     81    0xEE, 0xF2, 0x81, 0x83, 0xC3, 0xFE, 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73,
     82    0x3B, 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05, 0xC5, 0x8E, 0xF1, 0x83,
     83    0x7D, 0x16, 0x83, 0xB2, 0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2, 0xEF, 0xFA,
     84    0x88, 0x6B, 0x42, 0x38, 0x61, 0x28, 0x5C, 0x97, 0xFF, 0xFF, 0xFF, 0xFF,
     85    0xFF, 0xFF, 0xFF, 0xFF
     86 };
     87 
     88 /* IKE 3072 prime is: 2^3072 - 2^3008 - 1 + 2^64 * { [2^2942 pi] + 1690314 } */
     89 static const unsigned char prime_ike_3072[] = {
     90    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC9, 0x0F, 0xDA, 0xA2,
     91    0x21, 0x68, 0xC2, 0x34, 0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1,
     92    0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74, 0x02, 0x0B, 0xBE, 0xA6,
     93    0x3B, 0x13, 0x9B, 0x22, 0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD,
     94    0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B, 0x30, 0x2B, 0x0A, 0x6D,
     95    0xF2, 0x5F, 0x14, 0x37, 0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45,
     96    0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6, 0xF4, 0x4C, 0x42, 0xE9,
     97    0xA6, 0x37, 0xED, 0x6B, 0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED,
     98    0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5, 0xAE, 0x9F, 0x24, 0x11,
     99    0x7C, 0x4B, 0x1F, 0xE6, 0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B, 0x3D,
    100    0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63, 0xBF, 0x05, 0x98, 0xDA, 0x48, 0x36,
    101    0x1C, 0x55, 0xD3, 0x9A, 0x69, 0x16, 0x3F, 0xA8, 0xFD, 0x24, 0xCF, 0x5F,
    102    0x83, 0x65, 0x5D, 0x23, 0xDC, 0xA3, 0xAD, 0x96, 0x1C, 0x62, 0xF3, 0x56,
    103    0x20, 0x85, 0x52, 0xBB, 0x9E, 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D,
    104    0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98, 0x04, 0xF1, 0x74, 0x6C, 0x08,
    105    0xCA, 0x18, 0x21, 0x7C, 0x32, 0x90, 0x5E, 0x46, 0x2E, 0x36, 0xCE, 0x3B,
    106    0xE3, 0x9E, 0x77, 0x2C, 0x18, 0x0E, 0x86, 0x03, 0x9B, 0x27, 0x83, 0xA2,
    107    0xEC, 0x07, 0xA2, 0x8F, 0xB5, 0xC5, 0x5D, 0xF0, 0x6F, 0x4C, 0x52, 0xC9,
    108    0xDE, 0x2B, 0xCB, 0xF6, 0x95, 0x58, 0x17, 0x18, 0x39, 0x95, 0x49, 0x7C,
    109    0xEA, 0x95, 0x6A, 0xE5, 0x15, 0xD2, 0x26, 0x18, 0x98, 0xFA, 0x05, 0x10,
    110    0x15, 0x72, 0x8E, 0x5A, 0x8A, 0xAA, 0xC4, 0x2D, 0xAD, 0x33, 0x17, 0x0D,
    111    0x04, 0x50, 0x7A, 0x33, 0xA8, 0x55, 0x21, 0xAB, 0xDF, 0x1C, 0xBA, 0x64,
    112    0xEC, 0xFB, 0x85, 0x04, 0x58, 0xDB, 0xEF, 0x0A, 0x8A, 0xEA, 0x71, 0x57,
    113    0x5D, 0x06, 0x0C, 0x7D, 0xB3, 0x97, 0x0F, 0x85, 0xA6, 0xE1, 0xE4, 0xC7,
    114    0xAB, 0xF5, 0xAE, 0x8C, 0xDB, 0x09, 0x33, 0xD7, 0x1E, 0x8C, 0x94, 0xE0,
    115    0x4A, 0x25, 0x61, 0x9D, 0xCE, 0xE3, 0xD2, 0x26, 0x1A, 0xD2, 0xEE, 0x6B,
    116    0xF1, 0x2F, 0xFA, 0x06, 0xD9, 0x8A, 0x08, 0x64, 0xD8, 0x76, 0x02, 0x73,
    117    0x3E, 0xC8, 0x6A, 0x64, 0x52, 0x1F, 0x2B, 0x18, 0x17, 0x7B, 0x20, 0x0C,
    118    0xBB, 0xE1, 0x17, 0x57, 0x7A, 0x61, 0x5D, 0x6C, 0x77, 0x09, 0x88, 0xC0,
    119    0xBA, 0xD9, 0x46, 0xE2, 0x08, 0xE2, 0x4F, 0xA0, 0x74, 0xE5, 0xAB, 0x31,
    120    0x43, 0xDB, 0x5B, 0xFC, 0xE0, 0xFD, 0x10, 0x8E, 0x4B, 0x82, 0xD1, 0x20,
    121    0xA9, 0x3A, 0xD2, 0xCA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
    122 };
    123 
    124 /* TLS 3072 prime is: 2^3072 - 2^3008 + {[2^2942 * e] + 2625351} * 2^64 - 1 */
    125 static const unsigned char prime_tls_3072[] = {
    126    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xAD, 0xF8, 0x54, 0x58,
    127    0xA2, 0xBB, 0x4A, 0x9A, 0xAF, 0xDC, 0x56, 0x20, 0x27, 0x3D, 0x3C, 0xF1,
    128    0xD8, 0xB9, 0xC5, 0x83, 0xCE, 0x2D, 0x36, 0x95, 0xA9, 0xE1, 0x36, 0x41,
    129    0x14, 0x64, 0x33, 0xFB, 0xCC, 0x93, 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9,
    130    0x7D, 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8, 0xF6, 0x81, 0xB2, 0x02,
    131    0xAE, 0xC4, 0x61, 0x7A, 0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD, 0x65, 0x61,
    132    0x24, 0x33, 0xF5, 0x1F, 0x5F, 0x06, 0x6E, 0xD0, 0x85, 0x63, 0x65, 0x55,
    133    0x3D, 0xED, 0x1A, 0xF3, 0xB5, 0x57, 0x13, 0x5E, 0x7F, 0x57, 0xC9, 0x35,
    134    0x98, 0x4F, 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, 0xE2, 0xA6, 0x89, 0xDA,
    135    0xF3, 0xEF, 0xE8, 0x72, 0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7, 0x35,
    136    0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A, 0x79, 0x7A, 0xBC, 0x0A, 0xB1, 0x82,
    137    0xB3, 0x24, 0xFB, 0x61, 0xD1, 0x08, 0xA9, 0x4B, 0xB2, 0xC8, 0xE3, 0xFB,
    138    0xB9, 0x6A, 0xDA, 0xB7, 0x60, 0xD7, 0xF4, 0x68, 0x1D, 0x4F, 0x42, 0xA3,
    139    0xDE, 0x39, 0x4D, 0xF4, 0xAE, 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19,
    140    0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D, 0x70, 0x9E, 0x02, 0xFC, 0xE1,
    141    0xCD, 0xF7, 0xE2, 0xEC, 0xC0, 0x34, 0x04, 0xCD, 0x28, 0x34, 0x2F, 0x61,
    142    0x91, 0x72, 0xFE, 0x9C, 0xE9, 0x85, 0x83, 0xFF, 0x8E, 0x4F, 0x12, 0x32,
    143    0xEE, 0xF2, 0x81, 0x83, 0xC3, 0xFE, 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73,
    144    0x3B, 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05, 0xC5, 0x8E, 0xF1, 0x83,
    145    0x7D, 0x16, 0x83, 0xB2, 0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2, 0xEF, 0xFA,
    146    0x88, 0x6B, 0x42, 0x38, 0x61, 0x1F, 0xCF, 0xDC, 0xDE, 0x35, 0x5B, 0x3B,
    147    0x65, 0x19, 0x03, 0x5B, 0xBC, 0x34, 0xF4, 0xDE, 0xF9, 0x9C, 0x02, 0x38,
    148    0x61, 0xB4, 0x6F, 0xC9, 0xD6, 0xE6, 0xC9, 0x07, 0x7A, 0xD9, 0x1D, 0x26,
    149    0x91, 0xF7, 0xF7, 0xEE, 0x59, 0x8C, 0xB0, 0xFA, 0xC1, 0x86, 0xD9, 0x1C,
    150    0xAE, 0xFE, 0x13, 0x09, 0x85, 0x13, 0x92, 0x70, 0xB4, 0x13, 0x0C, 0x93,
    151    0xBC, 0x43, 0x79, 0x44, 0xF4, 0xFD, 0x44, 0x52, 0xE2, 0xD7, 0x4D, 0xD3,
    152    0x64, 0xF2, 0xE2, 0x1E, 0x71, 0xF5, 0x4B, 0xFF, 0x5C, 0xAE, 0x82, 0xAB,
    153    0x9C, 0x9D, 0xF6, 0x9E, 0xE8, 0x6D, 0x2B, 0xC5, 0x22, 0x36, 0x3A, 0x0D,
    154    0xAB, 0xC5, 0x21, 0x97, 0x9B, 0x0D, 0xEA, 0xDA, 0x1D, 0xBF, 0x9A, 0x42,
    155    0xD5, 0xC4, 0x48, 0x4E, 0x0A, 0xBC, 0xD0, 0x6B, 0xFA, 0x53, 0xDD, 0xEF,
    156    0x3C, 0x1B, 0x20, 0xEE, 0x3F, 0xD5, 0x9D, 0x7C, 0x25, 0xE4, 0x1D, 0x2B,
    157    0x66, 0xC6, 0x2E, 0x37, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
    158 };
    159 
    160 /* IKE 4096 prime is: 2^4096 - 2^4032 - 1 + 2^64 * { [2^3966 pi] + 240904 } */
    161 static const unsigned char prime_ike_4096[] = {
    162    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC9, 0x0F, 0xDA, 0xA2,
    163    0x21, 0x68, 0xC2, 0x34, 0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1,
    164    0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74, 0x02, 0x0B, 0xBE, 0xA6,
    165    0x3B, 0x13, 0x9B, 0x22, 0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD,
    166    0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B, 0x30, 0x2B, 0x0A, 0x6D,
    167    0xF2, 0x5F, 0x14, 0x37, 0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45,
    168    0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6, 0xF4, 0x4C, 0x42, 0xE9,
    169    0xA6, 0x37, 0xED, 0x6B, 0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED,
    170    0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5, 0xAE, 0x9F, 0x24, 0x11,
    171    0x7C, 0x4B, 0x1F, 0xE6, 0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B, 0x3D,
    172    0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63, 0xBF, 0x05, 0x98, 0xDA, 0x48, 0x36,
    173    0x1C, 0x55, 0xD3, 0x9A, 0x69, 0x16, 0x3F, 0xA8, 0xFD, 0x24, 0xCF, 0x5F,
    174    0x83, 0x65, 0x5D, 0x23, 0xDC, 0xA3, 0xAD, 0x96, 0x1C, 0x62, 0xF3, 0x56,
    175    0x20, 0x85, 0x52, 0xBB, 0x9E, 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D,
    176    0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98, 0x04, 0xF1, 0x74, 0x6C, 0x08,
    177    0xCA, 0x18, 0x21, 0x7C, 0x32, 0x90, 0x5E, 0x46, 0x2E, 0x36, 0xCE, 0x3B,
    178    0xE3, 0x9E, 0x77, 0x2C, 0x18, 0x0E, 0x86, 0x03, 0x9B, 0x27, 0x83, 0xA2,
    179    0xEC, 0x07, 0xA2, 0x8F, 0xB5, 0xC5, 0x5D, 0xF0, 0x6F, 0x4C, 0x52, 0xC9,
    180    0xDE, 0x2B, 0xCB, 0xF6, 0x95, 0x58, 0x17, 0x18, 0x39, 0x95, 0x49, 0x7C,
    181    0xEA, 0x95, 0x6A, 0xE5, 0x15, 0xD2, 0x26, 0x18, 0x98, 0xFA, 0x05, 0x10,
    182    0x15, 0x72, 0x8E, 0x5A, 0x8A, 0xAA, 0xC4, 0x2D, 0xAD, 0x33, 0x17, 0x0D,
    183    0x04, 0x50, 0x7A, 0x33, 0xA8, 0x55, 0x21, 0xAB, 0xDF, 0x1C, 0xBA, 0x64,
    184    0xEC, 0xFB, 0x85, 0x04, 0x58, 0xDB, 0xEF, 0x0A, 0x8A, 0xEA, 0x71, 0x57,
    185    0x5D, 0x06, 0x0C, 0x7D, 0xB3, 0x97, 0x0F, 0x85, 0xA6, 0xE1, 0xE4, 0xC7,
    186    0xAB, 0xF5, 0xAE, 0x8C, 0xDB, 0x09, 0x33, 0xD7, 0x1E, 0x8C, 0x94, 0xE0,
    187    0x4A, 0x25, 0x61, 0x9D, 0xCE, 0xE3, 0xD2, 0x26, 0x1A, 0xD2, 0xEE, 0x6B,
    188    0xF1, 0x2F, 0xFA, 0x06, 0xD9, 0x8A, 0x08, 0x64, 0xD8, 0x76, 0x02, 0x73,
    189    0x3E, 0xC8, 0x6A, 0x64, 0x52, 0x1F, 0x2B, 0x18, 0x17, 0x7B, 0x20, 0x0C,
    190    0xBB, 0xE1, 0x17, 0x57, 0x7A, 0x61, 0x5D, 0x6C, 0x77, 0x09, 0x88, 0xC0,
    191    0xBA, 0xD9, 0x46, 0xE2, 0x08, 0xE2, 0x4F, 0xA0, 0x74, 0xE5, 0xAB, 0x31,
    192    0x43, 0xDB, 0x5B, 0xFC, 0xE0, 0xFD, 0x10, 0x8E, 0x4B, 0x82, 0xD1, 0x20,
    193    0xA9, 0x21, 0x08, 0x01, 0x1A, 0x72, 0x3C, 0x12, 0xA7, 0x87, 0xE6, 0xD7,
    194    0x88, 0x71, 0x9A, 0x10, 0xBD, 0xBA, 0x5B, 0x26, 0x99, 0xC3, 0x27, 0x18,
    195    0x6A, 0xF4, 0xE2, 0x3C, 0x1A, 0x94, 0x68, 0x34, 0xB6, 0x15, 0x0B, 0xDA,
    196    0x25, 0x83, 0xE9, 0xCA, 0x2A, 0xD4, 0x4C, 0xE8, 0xDB, 0xBB, 0xC2, 0xDB,
    197    0x04, 0xDE, 0x8E, 0xF9, 0x2E, 0x8E, 0xFC, 0x14, 0x1F, 0xBE, 0xCA, 0xA6,
    198    0x28, 0x7C, 0x59, 0x47, 0x4E, 0x6B, 0xC0, 0x5D, 0x99, 0xB2, 0x96, 0x4F,
    199    0xA0, 0x90, 0xC3, 0xA2, 0x23, 0x3B, 0xA1, 0x86, 0x51, 0x5B, 0xE7, 0xED,
    200    0x1F, 0x61, 0x29, 0x70, 0xCE, 0xE2, 0xD7, 0xAF, 0xB8, 0x1B, 0xDD, 0x76,
    201    0x21, 0x70, 0x48, 0x1C, 0xD0, 0x06, 0x91, 0x27, 0xD5, 0xB0, 0x5A, 0xA9,
    202    0x93, 0xB4, 0xEA, 0x98, 0x8D, 0x8F, 0xDD, 0xC1, 0x86, 0xFF, 0xB7, 0xDC,
    203    0x90, 0xA6, 0xC0, 0x8F, 0x4D, 0xF4, 0x35, 0xC9, 0x34, 0x06, 0x31, 0x99,
    204    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
    205 };
    206 
    207 /* TLS 4096 prime is: 2^4096 - 2^4032 + {[2^3966 * e] + 5736041} * 2^64 - 1 */
    208 static const unsigned char prime_tls_4096[] = {
    209    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xAD, 0xF8, 0x54, 0x58,
    210    0xA2, 0xBB, 0x4A, 0x9A, 0xAF, 0xDC, 0x56, 0x20, 0x27, 0x3D, 0x3C, 0xF1,
    211    0xD8, 0xB9, 0xC5, 0x83, 0xCE, 0x2D, 0x36, 0x95, 0xA9, 0xE1, 0x36, 0x41,
    212    0x14, 0x64, 0x33, 0xFB, 0xCC, 0x93, 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9,
    213    0x7D, 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8, 0xF6, 0x81, 0xB2, 0x02,
    214    0xAE, 0xC4, 0x61, 0x7A, 0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD, 0x65, 0x61,
    215    0x24, 0x33, 0xF5, 0x1F, 0x5F, 0x06, 0x6E, 0xD0, 0x85, 0x63, 0x65, 0x55,
    216    0x3D, 0xED, 0x1A, 0xF3, 0xB5, 0x57, 0x13, 0x5E, 0x7F, 0x57, 0xC9, 0x35,
    217    0x98, 0x4F, 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, 0xE2, 0xA6, 0x89, 0xDA,
    218    0xF3, 0xEF, 0xE8, 0x72, 0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7, 0x35,
    219    0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A, 0x79, 0x7A, 0xBC, 0x0A, 0xB1, 0x82,
    220    0xB3, 0x24, 0xFB, 0x61, 0xD1, 0x08, 0xA9, 0x4B, 0xB2, 0xC8, 0xE3, 0xFB,
    221    0xB9, 0x6A, 0xDA, 0xB7, 0x60, 0xD7, 0xF4, 0x68, 0x1D, 0x4F, 0x42, 0xA3,
    222    0xDE, 0x39, 0x4D, 0xF4, 0xAE, 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19,
    223    0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D, 0x70, 0x9E, 0x02, 0xFC, 0xE1,
    224    0xCD, 0xF7, 0xE2, 0xEC, 0xC0, 0x34, 0x04, 0xCD, 0x28, 0x34, 0x2F, 0x61,
    225    0x91, 0x72, 0xFE, 0x9C, 0xE9, 0x85, 0x83, 0xFF, 0x8E, 0x4F, 0x12, 0x32,
    226    0xEE, 0xF2, 0x81, 0x83, 0xC3, 0xFE, 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73,
    227    0x3B, 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05, 0xC5, 0x8E, 0xF1, 0x83,
    228    0x7D, 0x16, 0x83, 0xB2, 0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2, 0xEF, 0xFA,
    229    0x88, 0x6B, 0x42, 0x38, 0x61, 0x1F, 0xCF, 0xDC, 0xDE, 0x35, 0x5B, 0x3B,
    230    0x65, 0x19, 0x03, 0x5B, 0xBC, 0x34, 0xF4, 0xDE, 0xF9, 0x9C, 0x02, 0x38,
    231    0x61, 0xB4, 0x6F, 0xC9, 0xD6, 0xE6, 0xC9, 0x07, 0x7A, 0xD9, 0x1D, 0x26,
    232    0x91, 0xF7, 0xF7, 0xEE, 0x59, 0x8C, 0xB0, 0xFA, 0xC1, 0x86, 0xD9, 0x1C,
    233    0xAE, 0xFE, 0x13, 0x09, 0x85, 0x13, 0x92, 0x70, 0xB4, 0x13, 0x0C, 0x93,
    234    0xBC, 0x43, 0x79, 0x44, 0xF4, 0xFD, 0x44, 0x52, 0xE2, 0xD7, 0x4D, 0xD3,
    235    0x64, 0xF2, 0xE2, 0x1E, 0x71, 0xF5, 0x4B, 0xFF, 0x5C, 0xAE, 0x82, 0xAB,
    236    0x9C, 0x9D, 0xF6, 0x9E, 0xE8, 0x6D, 0x2B, 0xC5, 0x22, 0x36, 0x3A, 0x0D,
    237    0xAB, 0xC5, 0x21, 0x97, 0x9B, 0x0D, 0xEA, 0xDA, 0x1D, 0xBF, 0x9A, 0x42,
    238    0xD5, 0xC4, 0x48, 0x4E, 0x0A, 0xBC, 0xD0, 0x6B, 0xFA, 0x53, 0xDD, 0xEF,
    239    0x3C, 0x1B, 0x20, 0xEE, 0x3F, 0xD5, 0x9D, 0x7C, 0x25, 0xE4, 0x1D, 0x2B,
    240    0x66, 0x9E, 0x1E, 0xF1, 0x6E, 0x6F, 0x52, 0xC3, 0x16, 0x4D, 0xF4, 0xFB,
    241    0x79, 0x30, 0xE9, 0xE4, 0xE5, 0x88, 0x57, 0xB6, 0xAC, 0x7D, 0x5F, 0x42,
    242    0xD6, 0x9F, 0x6D, 0x18, 0x77, 0x63, 0xCF, 0x1D, 0x55, 0x03, 0x40, 0x04,
    243    0x87, 0xF5, 0x5B, 0xA5, 0x7E, 0x31, 0xCC, 0x7A, 0x71, 0x35, 0xC8, 0x86,
    244    0xEF, 0xB4, 0x31, 0x8A, 0xED, 0x6A, 0x1E, 0x01, 0x2D, 0x9E, 0x68, 0x32,
    245    0xA9, 0x07, 0x60, 0x0A, 0x91, 0x81, 0x30, 0xC4, 0x6D, 0xC7, 0x78, 0xF9,
    246    0x71, 0xAD, 0x00, 0x38, 0x09, 0x29, 0x99, 0xA3, 0x33, 0xCB, 0x8B, 0x7A,
    247    0x1A, 0x1D, 0xB9, 0x3D, 0x71, 0x40, 0x00, 0x3C, 0x2A, 0x4E, 0xCE, 0xA9,
    248    0xF9, 0x8D, 0x0A, 0xCC, 0x0A, 0x82, 0x91, 0xCD, 0xCE, 0xC9, 0x7D, 0xCF,
    249    0x8E, 0xC9, 0xB5, 0x5A, 0x7F, 0x88, 0xA4, 0x6B, 0x4D, 0xB5, 0xA8, 0x51,
    250    0xF4, 0x41, 0x82, 0xE1, 0xC6, 0x8A, 0x00, 0x7E, 0x5E, 0x65, 0x5F, 0x6A,
    251    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
    252 };
    253 
    254 /* IKE 6144 prime is: 2^6144 - 2^6080 - 1 + 2^64 * { [2^6014 pi] + 929484 } */
    255 static const unsigned char prime_ike_6144[] = {
    256    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC9, 0x0F, 0xDA, 0xA2,
    257    0x21, 0x68, 0xC2, 0x34, 0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1,
    258    0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74, 0x02, 0x0B, 0xBE, 0xA6,
    259    0x3B, 0x13, 0x9B, 0x22, 0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD,
    260    0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B, 0x30, 0x2B, 0x0A, 0x6D,
    261    0xF2, 0x5F, 0x14, 0x37, 0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45,
    262    0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6, 0xF4, 0x4C, 0x42, 0xE9,
    263    0xA6, 0x37, 0xED, 0x6B, 0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED,
    264    0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5, 0xAE, 0x9F, 0x24, 0x11,
    265    0x7C, 0x4B, 0x1F, 0xE6, 0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B, 0x3D,
    266    0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63, 0xBF, 0x05, 0x98, 0xDA, 0x48, 0x36,
    267    0x1C, 0x55, 0xD3, 0x9A, 0x69, 0x16, 0x3F, 0xA8, 0xFD, 0x24, 0xCF, 0x5F,
    268    0x83, 0x65, 0x5D, 0x23, 0xDC, 0xA3, 0xAD, 0x96, 0x1C, 0x62, 0xF3, 0x56,
    269    0x20, 0x85, 0x52, 0xBB, 0x9E, 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D,
    270    0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98, 0x04, 0xF1, 0x74, 0x6C, 0x08,
    271    0xCA, 0x18, 0x21, 0x7C, 0x32, 0x90, 0x5E, 0x46, 0x2E, 0x36, 0xCE, 0x3B,
    272    0xE3, 0x9E, 0x77, 0x2C, 0x18, 0x0E, 0x86, 0x03, 0x9B, 0x27, 0x83, 0xA2,
    273    0xEC, 0x07, 0xA2, 0x8F, 0xB5, 0xC5, 0x5D, 0xF0, 0x6F, 0x4C, 0x52, 0xC9,
    274    0xDE, 0x2B, 0xCB, 0xF6, 0x95, 0x58, 0x17, 0x18, 0x39, 0x95, 0x49, 0x7C,
    275    0xEA, 0x95, 0x6A, 0xE5, 0x15, 0xD2, 0x26, 0x18, 0x98, 0xFA, 0x05, 0x10,
    276    0x15, 0x72, 0x8E, 0x5A, 0x8A, 0xAA, 0xC4, 0x2D, 0xAD, 0x33, 0x17, 0x0D,
    277    0x04, 0x50, 0x7A, 0x33, 0xA8, 0x55, 0x21, 0xAB, 0xDF, 0x1C, 0xBA, 0x64,
    278    0xEC, 0xFB, 0x85, 0x04, 0x58, 0xDB, 0xEF, 0x0A, 0x8A, 0xEA, 0x71, 0x57,
    279    0x5D, 0x06, 0x0C, 0x7D, 0xB3, 0x97, 0x0F, 0x85, 0xA6, 0xE1, 0xE4, 0xC7,
    280    0xAB, 0xF5, 0xAE, 0x8C, 0xDB, 0x09, 0x33, 0xD7, 0x1E, 0x8C, 0x94, 0xE0,
    281    0x4A, 0x25, 0x61, 0x9D, 0xCE, 0xE3, 0xD2, 0x26, 0x1A, 0xD2, 0xEE, 0x6B,
    282    0xF1, 0x2F, 0xFA, 0x06, 0xD9, 0x8A, 0x08, 0x64, 0xD8, 0x76, 0x02, 0x73,
    283    0x3E, 0xC8, 0x6A, 0x64, 0x52, 0x1F, 0x2B, 0x18, 0x17, 0x7B, 0x20, 0x0C,
    284    0xBB, 0xE1, 0x17, 0x57, 0x7A, 0x61, 0x5D, 0x6C, 0x77, 0x09, 0x88, 0xC0,
    285    0xBA, 0xD9, 0x46, 0xE2, 0x08, 0xE2, 0x4F, 0xA0, 0x74, 0xE5, 0xAB, 0x31,
    286    0x43, 0xDB, 0x5B, 0xFC, 0xE0, 0xFD, 0x10, 0x8E, 0x4B, 0x82, 0xD1, 0x20,
    287    0xA9, 0x21, 0x08, 0x01, 0x1A, 0x72, 0x3C, 0x12, 0xA7, 0x87, 0xE6, 0xD7,
    288    0x88, 0x71, 0x9A, 0x10, 0xBD, 0xBA, 0x5B, 0x26, 0x99, 0xC3, 0x27, 0x18,
    289    0x6A, 0xF4, 0xE2, 0x3C, 0x1A, 0x94, 0x68, 0x34, 0xB6, 0x15, 0x0B, 0xDA,
    290    0x25, 0x83, 0xE9, 0xCA, 0x2A, 0xD4, 0x4C, 0xE8, 0xDB, 0xBB, 0xC2, 0xDB,
    291    0x04, 0xDE, 0x8E, 0xF9, 0x2E, 0x8E, 0xFC, 0x14, 0x1F, 0xBE, 0xCA, 0xA6,
    292    0x28, 0x7C, 0x59, 0x47, 0x4E, 0x6B, 0xC0, 0x5D, 0x99, 0xB2, 0x96, 0x4F,
    293    0xA0, 0x90, 0xC3, 0xA2, 0x23, 0x3B, 0xA1, 0x86, 0x51, 0x5B, 0xE7, 0xED,
    294    0x1F, 0x61, 0x29, 0x70, 0xCE, 0xE2, 0xD7, 0xAF, 0xB8, 0x1B, 0xDD, 0x76,
    295    0x21, 0x70, 0x48, 0x1C, 0xD0, 0x06, 0x91, 0x27, 0xD5, 0xB0, 0x5A, 0xA9,
    296    0x93, 0xB4, 0xEA, 0x98, 0x8D, 0x8F, 0xDD, 0xC1, 0x86, 0xFF, 0xB7, 0xDC,
    297    0x90, 0xA6, 0xC0, 0x8F, 0x4D, 0xF4, 0x35, 0xC9, 0x34, 0x02, 0x84, 0x92,
    298    0x36, 0xC3, 0xFA, 0xB4, 0xD2, 0x7C, 0x70, 0x26, 0xC1, 0xD4, 0xDC, 0xB2,
    299    0x60, 0x26, 0x46, 0xDE, 0xC9, 0x75, 0x1E, 0x76, 0x3D, 0xBA, 0x37, 0xBD,
    300    0xF8, 0xFF, 0x94, 0x06, 0xAD, 0x9E, 0x53, 0x0E, 0xE5, 0xDB, 0x38, 0x2F,
    301    0x41, 0x30, 0x01, 0xAE, 0xB0, 0x6A, 0x53, 0xED, 0x90, 0x27, 0xD8, 0x31,
    302    0x17, 0x97, 0x27, 0xB0, 0x86, 0x5A, 0x89, 0x18, 0xDA, 0x3E, 0xDB, 0xEB,
    303    0xCF, 0x9B, 0x14, 0xED, 0x44, 0xCE, 0x6C, 0xBA, 0xCE, 0xD4, 0xBB, 0x1B,
    304    0xDB, 0x7F, 0x14, 0x47, 0xE6, 0xCC, 0x25, 0x4B, 0x33, 0x20, 0x51, 0x51,
    305    0x2B, 0xD7, 0xAF, 0x42, 0x6F, 0xB8, 0xF4, 0x01, 0x37, 0x8C, 0xD2, 0xBF,
    306    0x59, 0x83, 0xCA, 0x01, 0xC6, 0x4B, 0x92, 0xEC, 0xF0, 0x32, 0xEA, 0x15,
    307    0xD1, 0x72, 0x1D, 0x03, 0xF4, 0x82, 0xD7, 0xCE, 0x6E, 0x74, 0xFE, 0xF6,
    308    0xD5, 0x5E, 0x70, 0x2F, 0x46, 0x98, 0x0C, 0x82, 0xB5, 0xA8, 0x40, 0x31,
    309    0x90, 0x0B, 0x1C, 0x9E, 0x59, 0xE7, 0xC9, 0x7F, 0xBE, 0xC7, 0xE8, 0xF3,
    310    0x23, 0xA9, 0x7A, 0x7E, 0x36, 0xCC, 0x88, 0xBE, 0x0F, 0x1D, 0x45, 0xB7,
    311    0xFF, 0x58, 0x5A, 0xC5, 0x4B, 0xD4, 0x07, 0xB2, 0x2B, 0x41, 0x54, 0xAA,
    312    0xCC, 0x8F, 0x6D, 0x7E, 0xBF, 0x48, 0xE1, 0xD8, 0x14, 0xCC, 0x5E, 0xD2,
    313    0x0F, 0x80, 0x37, 0xE0, 0xA7, 0x97, 0x15, 0xEE, 0xF2, 0x9B, 0xE3, 0x28,
    314    0x06, 0xA1, 0xD5, 0x8B, 0xB7, 0xC5, 0xDA, 0x76, 0xF5, 0x50, 0xAA, 0x3D,
    315    0x8A, 0x1F, 0xBF, 0xF0, 0xEB, 0x19, 0xCC, 0xB1, 0xA3, 0x13, 0xD5, 0x5C,
    316    0xDA, 0x56, 0xC9, 0xEC, 0x2E, 0xF2, 0x96, 0x32, 0x38, 0x7F, 0xE8, 0xD7,
    317    0x6E, 0x3C, 0x04, 0x68, 0x04, 0x3E, 0x8F, 0x66, 0x3F, 0x48, 0x60, 0xEE,
    318    0x12, 0xBF, 0x2D, 0x5B, 0x0B, 0x74, 0x74, 0xD6, 0xE6, 0x94, 0xF9, 0x1E,
    319    0x6D, 0xCC, 0x40, 0x24, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
    320 };
    321 
    322 /* TLS 6144 prime is: 2^6144 - 2^6080 + {[2^6014 * e] + 15705020} * 2^64 - 1 */
    323 static const unsigned char prime_tls_6144[] = {
    324    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xAD, 0xF8, 0x54, 0x58,
    325    0xA2, 0xBB, 0x4A, 0x9A, 0xAF, 0xDC, 0x56, 0x20, 0x27, 0x3D, 0x3C, 0xF1,
    326    0xD8, 0xB9, 0xC5, 0x83, 0xCE, 0x2D, 0x36, 0x95, 0xA9, 0xE1, 0x36, 0x41,
    327    0x14, 0x64, 0x33, 0xFB, 0xCC, 0x93, 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9,
    328    0x7D, 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8, 0xF6, 0x81, 0xB2, 0x02,
    329    0xAE, 0xC4, 0x61, 0x7A, 0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD, 0x65, 0x61,
    330    0x24, 0x33, 0xF5, 0x1F, 0x5F, 0x06, 0x6E, 0xD0, 0x85, 0x63, 0x65, 0x55,
    331    0x3D, 0xED, 0x1A, 0xF3, 0xB5, 0x57, 0x13, 0x5E, 0x7F, 0x57, 0xC9, 0x35,
    332    0x98, 0x4F, 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, 0xE2, 0xA6, 0x89, 0xDA,
    333    0xF3, 0xEF, 0xE8, 0x72, 0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7, 0x35,
    334    0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A, 0x79, 0x7A, 0xBC, 0x0A, 0xB1, 0x82,
    335    0xB3, 0x24, 0xFB, 0x61, 0xD1, 0x08, 0xA9, 0x4B, 0xB2, 0xC8, 0xE3, 0xFB,
    336    0xB9, 0x6A, 0xDA, 0xB7, 0x60, 0xD7, 0xF4, 0x68, 0x1D, 0x4F, 0x42, 0xA3,
    337    0xDE, 0x39, 0x4D, 0xF4, 0xAE, 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19,
    338    0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D, 0x70, 0x9E, 0x02, 0xFC, 0xE1,
    339    0xCD, 0xF7, 0xE2, 0xEC, 0xC0, 0x34, 0x04, 0xCD, 0x28, 0x34, 0x2F, 0x61,
    340    0x91, 0x72, 0xFE, 0x9C, 0xE9, 0x85, 0x83, 0xFF, 0x8E, 0x4F, 0x12, 0x32,
    341    0xEE, 0xF2, 0x81, 0x83, 0xC3, 0xFE, 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73,
    342    0x3B, 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05, 0xC5, 0x8E, 0xF1, 0x83,
    343    0x7D, 0x16, 0x83, 0xB2, 0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2, 0xEF, 0xFA,
    344    0x88, 0x6B, 0x42, 0x38, 0x61, 0x1F, 0xCF, 0xDC, 0xDE, 0x35, 0x5B, 0x3B,
    345    0x65, 0x19, 0x03, 0x5B, 0xBC, 0x34, 0xF4, 0xDE, 0xF9, 0x9C, 0x02, 0x38,
    346    0x61, 0xB4, 0x6F, 0xC9, 0xD6, 0xE6, 0xC9, 0x07, 0x7A, 0xD9, 0x1D, 0x26,
    347    0x91, 0xF7, 0xF7, 0xEE, 0x59, 0x8C, 0xB0, 0xFA, 0xC1, 0x86, 0xD9, 0x1C,
    348    0xAE, 0xFE, 0x13, 0x09, 0x85, 0x13, 0x92, 0x70, 0xB4, 0x13, 0x0C, 0x93,
    349    0xBC, 0x43, 0x79, 0x44, 0xF4, 0xFD, 0x44, 0x52, 0xE2, 0xD7, 0x4D, 0xD3,
    350    0x64, 0xF2, 0xE2, 0x1E, 0x71, 0xF5, 0x4B, 0xFF, 0x5C, 0xAE, 0x82, 0xAB,
    351    0x9C, 0x9D, 0xF6, 0x9E, 0xE8, 0x6D, 0x2B, 0xC5, 0x22, 0x36, 0x3A, 0x0D,
    352    0xAB, 0xC5, 0x21, 0x97, 0x9B, 0x0D, 0xEA, 0xDA, 0x1D, 0xBF, 0x9A, 0x42,
    353    0xD5, 0xC4, 0x48, 0x4E, 0x0A, 0xBC, 0xD0, 0x6B, 0xFA, 0x53, 0xDD, 0xEF,
    354    0x3C, 0x1B, 0x20, 0xEE, 0x3F, 0xD5, 0x9D, 0x7C, 0x25, 0xE4, 0x1D, 0x2B,
    355    0x66, 0x9E, 0x1E, 0xF1, 0x6E, 0x6F, 0x52, 0xC3, 0x16, 0x4D, 0xF4, 0xFB,
    356    0x79, 0x30, 0xE9, 0xE4, 0xE5, 0x88, 0x57, 0xB6, 0xAC, 0x7D, 0x5F, 0x42,
    357    0xD6, 0x9F, 0x6D, 0x18, 0x77, 0x63, 0xCF, 0x1D, 0x55, 0x03, 0x40, 0x04,
    358    0x87, 0xF5, 0x5B, 0xA5, 0x7E, 0x31, 0xCC, 0x7A, 0x71, 0x35, 0xC8, 0x86,
    359    0xEF, 0xB4, 0x31, 0x8A, 0xED, 0x6A, 0x1E, 0x01, 0x2D, 0x9E, 0x68, 0x32,
    360    0xA9, 0x07, 0x60, 0x0A, 0x91, 0x81, 0x30, 0xC4, 0x6D, 0xC7, 0x78, 0xF9,
    361    0x71, 0xAD, 0x00, 0x38, 0x09, 0x29, 0x99, 0xA3, 0x33, 0xCB, 0x8B, 0x7A,
    362    0x1A, 0x1D, 0xB9, 0x3D, 0x71, 0x40, 0x00, 0x3C, 0x2A, 0x4E, 0xCE, 0xA9,
    363    0xF9, 0x8D, 0x0A, 0xCC, 0x0A, 0x82, 0x91, 0xCD, 0xCE, 0xC9, 0x7D, 0xCF,
    364    0x8E, 0xC9, 0xB5, 0x5A, 0x7F, 0x88, 0xA4, 0x6B, 0x4D, 0xB5, 0xA8, 0x51,
    365    0xF4, 0x41, 0x82, 0xE1, 0xC6, 0x8A, 0x00, 0x7E, 0x5E, 0x0D, 0xD9, 0x02,
    366    0x0B, 0xFD, 0x64, 0xB6, 0x45, 0x03, 0x6C, 0x7A, 0x4E, 0x67, 0x7D, 0x2C,
    367    0x38, 0x53, 0x2A, 0x3A, 0x23, 0xBA, 0x44, 0x42, 0xCA, 0xF5, 0x3E, 0xA6,
    368    0x3B, 0xB4, 0x54, 0x32, 0x9B, 0x76, 0x24, 0xC8, 0x91, 0x7B, 0xDD, 0x64,
    369    0xB1, 0xC0, 0xFD, 0x4C, 0xB3, 0x8E, 0x8C, 0x33, 0x4C, 0x70, 0x1C, 0x3A,
    370    0xCD, 0xAD, 0x06, 0x57, 0xFC, 0xCF, 0xEC, 0x71, 0x9B, 0x1F, 0x5C, 0x3E,
    371    0x4E, 0x46, 0x04, 0x1F, 0x38, 0x81, 0x47, 0xFB, 0x4C, 0xFD, 0xB4, 0x77,
    372    0xA5, 0x24, 0x71, 0xF7, 0xA9, 0xA9, 0x69, 0x10, 0xB8, 0x55, 0x32, 0x2E,
    373    0xDB, 0x63, 0x40, 0xD8, 0xA0, 0x0E, 0xF0, 0x92, 0x35, 0x05, 0x11, 0xE3,
    374    0x0A, 0xBE, 0xC1, 0xFF, 0xF9, 0xE3, 0xA2, 0x6E, 0x7F, 0xB2, 0x9F, 0x8C,
    375    0x18, 0x30, 0x23, 0xC3, 0x58, 0x7E, 0x38, 0xDA, 0x00, 0x77, 0xD9, 0xB4,
    376    0x76, 0x3E, 0x4E, 0x4B, 0x94, 0xB2, 0xBB, 0xC1, 0x94, 0xC6, 0x65, 0x1E,
    377    0x77, 0xCA, 0xF9, 0x92, 0xEE, 0xAA, 0xC0, 0x23, 0x2A, 0x28, 0x1B, 0xF6,
    378    0xB3, 0xA7, 0x39, 0xC1, 0x22, 0x61, 0x16, 0x82, 0x0A, 0xE8, 0xDB, 0x58,
    379    0x47, 0xA6, 0x7C, 0xBE, 0xF9, 0xC9, 0x09, 0x1B, 0x46, 0x2D, 0x53, 0x8C,
    380    0xD7, 0x2B, 0x03, 0x74, 0x6A, 0xE7, 0x7F, 0x5E, 0x62, 0x29, 0x2C, 0x31,
    381    0x15, 0x62, 0xA8, 0x46, 0x50, 0x5D, 0xC8, 0x2D, 0xB8, 0x54, 0x33, 0x8A,
    382    0xE4, 0x9F, 0x52, 0x35, 0xC9, 0x5B, 0x91, 0x17, 0x8C, 0xCF, 0x2D, 0xD5,
    383    0xCA, 0xCE, 0xF4, 0x03, 0xEC, 0x9D, 0x18, 0x10, 0xC6, 0x27, 0x2B, 0x04,
    384    0x5B, 0x3B, 0x71, 0xF9, 0xDC, 0x6B, 0x80, 0xD6, 0x3F, 0xDD, 0x4A, 0x8E,
    385    0x9A, 0xDB, 0x1E, 0x69, 0x62, 0xA6, 0x95, 0x26, 0xD4, 0x31, 0x61, 0xC1,
    386    0xA4, 0x1D, 0x57, 0x0D, 0x79, 0x38, 0xDA, 0xD4, 0xA4, 0x0E, 0x32, 0x9C,
    387    0xD0, 0xE4, 0x0E, 0x65, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
    388 };
    389 
    390 /* IKE 8192 prime is: 2^8192 - 2^8128 - 1 + 2^64 * { [2^8062 pi] + 4743158 } */
    391 static const unsigned char prime_ike_8192[] = {
    392    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC9, 0x0F, 0xDA, 0xA2,
    393    0x21, 0x68, 0xC2, 0x34, 0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1,
    394    0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74, 0x02, 0x0B, 0xBE, 0xA6,
    395    0x3B, 0x13, 0x9B, 0x22, 0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD,
    396    0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B, 0x30, 0x2B, 0x0A, 0x6D,
    397    0xF2, 0x5F, 0x14, 0x37, 0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45,
    398    0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6, 0xF4, 0x4C, 0x42, 0xE9,
    399    0xA6, 0x37, 0xED, 0x6B, 0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED,
    400    0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5, 0xAE, 0x9F, 0x24, 0x11,
    401    0x7C, 0x4B, 0x1F, 0xE6, 0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B, 0x3D,
    402    0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63, 0xBF, 0x05, 0x98, 0xDA, 0x48, 0x36,
    403    0x1C, 0x55, 0xD3, 0x9A, 0x69, 0x16, 0x3F, 0xA8, 0xFD, 0x24, 0xCF, 0x5F,
    404    0x83, 0x65, 0x5D, 0x23, 0xDC, 0xA3, 0xAD, 0x96, 0x1C, 0x62, 0xF3, 0x56,
    405    0x20, 0x85, 0x52, 0xBB, 0x9E, 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D,
    406    0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98, 0x04, 0xF1, 0x74, 0x6C, 0x08,
    407    0xCA, 0x18, 0x21, 0x7C, 0x32, 0x90, 0x5E, 0x46, 0x2E, 0x36, 0xCE, 0x3B,
    408    0xE3, 0x9E, 0x77, 0x2C, 0x18, 0x0E, 0x86, 0x03, 0x9B, 0x27, 0x83, 0xA2,
    409    0xEC, 0x07, 0xA2, 0x8F, 0xB5, 0xC5, 0x5D, 0xF0, 0x6F, 0x4C, 0x52, 0xC9,
    410    0xDE, 0x2B, 0xCB, 0xF6, 0x95, 0x58, 0x17, 0x18, 0x39, 0x95, 0x49, 0x7C,
    411    0xEA, 0x95, 0x6A, 0xE5, 0x15, 0xD2, 0x26, 0x18, 0x98, 0xFA, 0x05, 0x10,
    412    0x15, 0x72, 0x8E, 0x5A, 0x8A, 0xAA, 0xC4, 0x2D, 0xAD, 0x33, 0x17, 0x0D,
    413    0x04, 0x50, 0x7A, 0x33, 0xA8, 0x55, 0x21, 0xAB, 0xDF, 0x1C, 0xBA, 0x64,
    414    0xEC, 0xFB, 0x85, 0x04, 0x58, 0xDB, 0xEF, 0x0A, 0x8A, 0xEA, 0x71, 0x57,
    415    0x5D, 0x06, 0x0C, 0x7D, 0xB3, 0x97, 0x0F, 0x85, 0xA6, 0xE1, 0xE4, 0xC7,
    416    0xAB, 0xF5, 0xAE, 0x8C, 0xDB, 0x09, 0x33, 0xD7, 0x1E, 0x8C, 0x94, 0xE0,
    417    0x4A, 0x25, 0x61, 0x9D, 0xCE, 0xE3, 0xD2, 0x26, 0x1A, 0xD2, 0xEE, 0x6B,
    418    0xF1, 0x2F, 0xFA, 0x06, 0xD9, 0x8A, 0x08, 0x64, 0xD8, 0x76, 0x02, 0x73,
    419    0x3E, 0xC8, 0x6A, 0x64, 0x52, 0x1F, 0x2B, 0x18, 0x17, 0x7B, 0x20, 0x0C,
    420    0xBB, 0xE1, 0x17, 0x57, 0x7A, 0x61, 0x5D, 0x6C, 0x77, 0x09, 0x88, 0xC0,
    421    0xBA, 0xD9, 0x46, 0xE2, 0x08, 0xE2, 0x4F, 0xA0, 0x74, 0xE5, 0xAB, 0x31,
    422    0x43, 0xDB, 0x5B, 0xFC, 0xE0, 0xFD, 0x10, 0x8E, 0x4B, 0x82, 0xD1, 0x20,
    423    0xA9, 0x21, 0x08, 0x01, 0x1A, 0x72, 0x3C, 0x12, 0xA7, 0x87, 0xE6, 0xD7,
    424    0x88, 0x71, 0x9A, 0x10, 0xBD, 0xBA, 0x5B, 0x26, 0x99, 0xC3, 0x27, 0x18,
    425    0x6A, 0xF4, 0xE2, 0x3C, 0x1A, 0x94, 0x68, 0x34, 0xB6, 0x15, 0x0B, 0xDA,
    426    0x25, 0x83, 0xE9, 0xCA, 0x2A, 0xD4, 0x4C, 0xE8, 0xDB, 0xBB, 0xC2, 0xDB,
    427    0x04, 0xDE, 0x8E, 0xF9, 0x2E, 0x8E, 0xFC, 0x14, 0x1F, 0xBE, 0xCA, 0xA6,
    428    0x28, 0x7C, 0x59, 0x47, 0x4E, 0x6B, 0xC0, 0x5D, 0x99, 0xB2, 0x96, 0x4F,
    429    0xA0, 0x90, 0xC3, 0xA2, 0x23, 0x3B, 0xA1, 0x86, 0x51, 0x5B, 0xE7, 0xED,
    430    0x1F, 0x61, 0x29, 0x70, 0xCE, 0xE2, 0xD7, 0xAF, 0xB8, 0x1B, 0xDD, 0x76,
    431    0x21, 0x70, 0x48, 0x1C, 0xD0, 0x06, 0x91, 0x27, 0xD5, 0xB0, 0x5A, 0xA9,
    432    0x93, 0xB4, 0xEA, 0x98, 0x8D, 0x8F, 0xDD, 0xC1, 0x86, 0xFF, 0xB7, 0xDC,
    433    0x90, 0xA6, 0xC0, 0x8F, 0x4D, 0xF4, 0x35, 0xC9, 0x34, 0x02, 0x84, 0x92,
    434    0x36, 0xC3, 0xFA, 0xB4, 0xD2, 0x7C, 0x70, 0x26, 0xC1, 0xD4, 0xDC, 0xB2,
    435    0x60, 0x26, 0x46, 0xDE, 0xC9, 0x75, 0x1E, 0x76, 0x3D, 0xBA, 0x37, 0xBD,
    436    0xF8, 0xFF, 0x94, 0x06, 0xAD, 0x9E, 0x53, 0x0E, 0xE5, 0xDB, 0x38, 0x2F,
    437    0x41, 0x30, 0x01, 0xAE, 0xB0, 0x6A, 0x53, 0xED, 0x90, 0x27, 0xD8, 0x31,
    438    0x17, 0x97, 0x27, 0xB0, 0x86, 0x5A, 0x89, 0x18, 0xDA, 0x3E, 0xDB, 0xEB,
    439    0xCF, 0x9B, 0x14, 0xED, 0x44, 0xCE, 0x6C, 0xBA, 0xCE, 0xD4, 0xBB, 0x1B,
    440    0xDB, 0x7F, 0x14, 0x47, 0xE6, 0xCC, 0x25, 0x4B, 0x33, 0x20, 0x51, 0x51,
    441    0x2B, 0xD7, 0xAF, 0x42, 0x6F, 0xB8, 0xF4, 0x01, 0x37, 0x8C, 0xD2, 0xBF,
    442    0x59, 0x83, 0xCA, 0x01, 0xC6, 0x4B, 0x92, 0xEC, 0xF0, 0x32, 0xEA, 0x15,
    443    0xD1, 0x72, 0x1D, 0x03, 0xF4, 0x82, 0xD7, 0xCE, 0x6E, 0x74, 0xFE, 0xF6,
    444    0xD5, 0x5E, 0x70, 0x2F, 0x46, 0x98, 0x0C, 0x82, 0xB5, 0xA8, 0x40, 0x31,
    445    0x90, 0x0B, 0x1C, 0x9E, 0x59, 0xE7, 0xC9, 0x7F, 0xBE, 0xC7, 0xE8, 0xF3,
    446    0x23, 0xA9, 0x7A, 0x7E, 0x36, 0xCC, 0x88, 0xBE, 0x0F, 0x1D, 0x45, 0xB7,
    447    0xFF, 0x58, 0x5A, 0xC5, 0x4B, 0xD4, 0x07, 0xB2, 0x2B, 0x41, 0x54, 0xAA,
    448    0xCC, 0x8F, 0x6D, 0x7E, 0xBF, 0x48, 0xE1, 0xD8, 0x14, 0xCC, 0x5E, 0xD2,
    449    0x0F, 0x80, 0x37, 0xE0, 0xA7, 0x97, 0x15, 0xEE, 0xF2, 0x9B, 0xE3, 0x28,
    450    0x06, 0xA1, 0xD5, 0x8B, 0xB7, 0xC5, 0xDA, 0x76, 0xF5, 0x50, 0xAA, 0x3D,
    451    0x8A, 0x1F, 0xBF, 0xF0, 0xEB, 0x19, 0xCC, 0xB1, 0xA3, 0x13, 0xD5, 0x5C,
    452    0xDA, 0x56, 0xC9, 0xEC, 0x2E, 0xF2, 0x96, 0x32, 0x38, 0x7F, 0xE8, 0xD7,
    453    0x6E, 0x3C, 0x04, 0x68, 0x04, 0x3E, 0x8F, 0x66, 0x3F, 0x48, 0x60, 0xEE,
    454    0x12, 0xBF, 0x2D, 0x5B, 0x0B, 0x74, 0x74, 0xD6, 0xE6, 0x94, 0xF9, 0x1E,
    455    0x6D, 0xBE, 0x11, 0x59, 0x74, 0xA3, 0x92, 0x6F, 0x12, 0xFE, 0xE5, 0xE4,
    456    0x38, 0x77, 0x7C, 0xB6, 0xA9, 0x32, 0xDF, 0x8C, 0xD8, 0xBE, 0xC4, 0xD0,
    457    0x73, 0xB9, 0x31, 0xBA, 0x3B, 0xC8, 0x32, 0xB6, 0x8D, 0x9D, 0xD3, 0x00,
    458    0x74, 0x1F, 0xA7, 0xBF, 0x8A, 0xFC, 0x47, 0xED, 0x25, 0x76, 0xF6, 0x93,
    459    0x6B, 0xA4, 0x24, 0x66, 0x3A, 0xAB, 0x63, 0x9C, 0x5A, 0xE4, 0xF5, 0x68,
    460    0x34, 0x23, 0xB4, 0x74, 0x2B, 0xF1, 0xC9, 0x78, 0x23, 0x8F, 0x16, 0xCB,
    461    0xE3, 0x9D, 0x65, 0x2D, 0xE3, 0xFD, 0xB8, 0xBE, 0xFC, 0x84, 0x8A, 0xD9,
    462    0x22, 0x22, 0x2E, 0x04, 0xA4, 0x03, 0x7C, 0x07, 0x13, 0xEB, 0x57, 0xA8,
    463    0x1A, 0x23, 0xF0, 0xC7, 0x34, 0x73, 0xFC, 0x64, 0x6C, 0xEA, 0x30, 0x6B,
    464    0x4B, 0xCB, 0xC8, 0x86, 0x2F, 0x83, 0x85, 0xDD, 0xFA, 0x9D, 0x4B, 0x7F,
    465    0xA2, 0xC0, 0x87, 0xE8, 0x79, 0x68, 0x33, 0x03, 0xED, 0x5B, 0xDD, 0x3A,
    466    0x06, 0x2B, 0x3C, 0xF5, 0xB3, 0xA2, 0x78, 0xA6, 0x6D, 0x2A, 0x13, 0xF8,
    467    0x3F, 0x44, 0xF8, 0x2D, 0xDF, 0x31, 0x0E, 0xE0, 0x74, 0xAB, 0x6A, 0x36,
    468    0x45, 0x97, 0xE8, 0x99, 0xA0, 0x25, 0x5D, 0xC1, 0x64, 0xF3, 0x1C, 0xC5,
    469    0x08, 0x46, 0x85, 0x1D, 0xF9, 0xAB, 0x48, 0x19, 0x5D, 0xED, 0x7E, 0xA1,
    470    0xB1, 0xD5, 0x10, 0xBD, 0x7E, 0xE7, 0x4D, 0x73, 0xFA, 0xF3, 0x6B, 0xC3,
    471    0x1E, 0xCF, 0xA2, 0x68, 0x35, 0x90, 0x46, 0xF4, 0xEB, 0x87, 0x9F, 0x92,
    472    0x40, 0x09, 0x43, 0x8B, 0x48, 0x1C, 0x6C, 0xD7, 0x88, 0x9A, 0x00, 0x2E,
    473    0xD5, 0xEE, 0x38, 0x2B, 0xC9, 0x19, 0x0D, 0xA6, 0xFC, 0x02, 0x6E, 0x47,
    474    0x95, 0x58, 0xE4, 0x47, 0x56, 0x77, 0xE9, 0xAA, 0x9E, 0x30, 0x50, 0xE2,
    475    0x76, 0x56, 0x94, 0xDF, 0xC8, 0x1F, 0x56, 0xE8, 0x80, 0xB9, 0x6E, 0x71,
    476    0x60, 0xC9, 0x80, 0xDD, 0x98, 0xED, 0xD3, 0xDF, 0xFF, 0xFF, 0xFF, 0xFF,
    477    0xFF, 0xFF, 0xFF, 0xFF
    478 };
    479 
    480 /* TLS 8192 prime is: 2^8192 - 2^8128 + {[2^8062 * e] + 10965728} * 2^64 - 1 */
    481 static const unsigned char prime_tls_8192[] = {
    482    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xAD, 0xF8, 0x54, 0x58,
    483    0xA2, 0xBB, 0x4A, 0x9A, 0xAF, 0xDC, 0x56, 0x20, 0x27, 0x3D, 0x3C, 0xF1,
    484    0xD8, 0xB9, 0xC5, 0x83, 0xCE, 0x2D, 0x36, 0x95, 0xA9, 0xE1, 0x36, 0x41,
    485    0x14, 0x64, 0x33, 0xFB, 0xCC, 0x93, 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9,
    486    0x7D, 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8, 0xF6, 0x81, 0xB2, 0x02,
    487    0xAE, 0xC4, 0x61, 0x7A, 0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD, 0x65, 0x61,
    488    0x24, 0x33, 0xF5, 0x1F, 0x5F, 0x06, 0x6E, 0xD0, 0x85, 0x63, 0x65, 0x55,
    489    0x3D, 0xED, 0x1A, 0xF3, 0xB5, 0x57, 0x13, 0x5E, 0x7F, 0x57, 0xC9, 0x35,
    490    0x98, 0x4F, 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, 0xE2, 0xA6, 0x89, 0xDA,
    491    0xF3, 0xEF, 0xE8, 0x72, 0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7, 0x35,
    492    0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A, 0x79, 0x7A, 0xBC, 0x0A, 0xB1, 0x82,
    493    0xB3, 0x24, 0xFB, 0x61, 0xD1, 0x08, 0xA9, 0x4B, 0xB2, 0xC8, 0xE3, 0xFB,
    494    0xB9, 0x6A, 0xDA, 0xB7, 0x60, 0xD7, 0xF4, 0x68, 0x1D, 0x4F, 0x42, 0xA3,
    495    0xDE, 0x39, 0x4D, 0xF4, 0xAE, 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19,
    496    0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D, 0x70, 0x9E, 0x02, 0xFC, 0xE1,
    497    0xCD, 0xF7, 0xE2, 0xEC, 0xC0, 0x34, 0x04, 0xCD, 0x28, 0x34, 0x2F, 0x61,
    498    0x91, 0x72, 0xFE, 0x9C, 0xE9, 0x85, 0x83, 0xFF, 0x8E, 0x4F, 0x12, 0x32,
    499    0xEE, 0xF2, 0x81, 0x83, 0xC3, 0xFE, 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73,
    500    0x3B, 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05, 0xC5, 0x8E, 0xF1, 0x83,
    501    0x7D, 0x16, 0x83, 0xB2, 0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2, 0xEF, 0xFA,
    502    0x88, 0x6B, 0x42, 0x38, 0x61, 0x1F, 0xCF, 0xDC, 0xDE, 0x35, 0x5B, 0x3B,
    503    0x65, 0x19, 0x03, 0x5B, 0xBC, 0x34, 0xF4, 0xDE, 0xF9, 0x9C, 0x02, 0x38,
    504    0x61, 0xB4, 0x6F, 0xC9, 0xD6, 0xE6, 0xC9, 0x07, 0x7A, 0xD9, 0x1D, 0x26,
    505    0x91, 0xF7, 0xF7, 0xEE, 0x59, 0x8C, 0xB0, 0xFA, 0xC1, 0x86, 0xD9, 0x1C,
    506    0xAE, 0xFE, 0x13, 0x09, 0x85, 0x13, 0x92, 0x70, 0xB4, 0x13, 0x0C, 0x93,
    507    0xBC, 0x43, 0x79, 0x44, 0xF4, 0xFD, 0x44, 0x52, 0xE2, 0xD7, 0x4D, 0xD3,
    508    0x64, 0xF2, 0xE2, 0x1E, 0x71, 0xF5, 0x4B, 0xFF, 0x5C, 0xAE, 0x82, 0xAB,
    509    0x9C, 0x9D, 0xF6, 0x9E, 0xE8, 0x6D, 0x2B, 0xC5, 0x22, 0x36, 0x3A, 0x0D,
    510    0xAB, 0xC5, 0x21, 0x97, 0x9B, 0x0D, 0xEA, 0xDA, 0x1D, 0xBF, 0x9A, 0x42,
    511    0xD5, 0xC4, 0x48, 0x4E, 0x0A, 0xBC, 0xD0, 0x6B, 0xFA, 0x53, 0xDD, 0xEF,
    512    0x3C, 0x1B, 0x20, 0xEE, 0x3F, 0xD5, 0x9D, 0x7C, 0x25, 0xE4, 0x1D, 0x2B,
    513    0x66, 0x9E, 0x1E, 0xF1, 0x6E, 0x6F, 0x52, 0xC3, 0x16, 0x4D, 0xF4, 0xFB,
    514    0x79, 0x30, 0xE9, 0xE4, 0xE5, 0x88, 0x57, 0xB6, 0xAC, 0x7D, 0x5F, 0x42,
    515    0xD6, 0x9F, 0x6D, 0x18, 0x77, 0x63, 0xCF, 0x1D, 0x55, 0x03, 0x40, 0x04,
    516    0x87, 0xF5, 0x5B, 0xA5, 0x7E, 0x31, 0xCC, 0x7A, 0x71, 0x35, 0xC8, 0x86,
    517    0xEF, 0xB4, 0x31, 0x8A, 0xED, 0x6A, 0x1E, 0x01, 0x2D, 0x9E, 0x68, 0x32,
    518    0xA9, 0x07, 0x60, 0x0A, 0x91, 0x81, 0x30, 0xC4, 0x6D, 0xC7, 0x78, 0xF9,
    519    0x71, 0xAD, 0x00, 0x38, 0x09, 0x29, 0x99, 0xA3, 0x33, 0xCB, 0x8B, 0x7A,
    520    0x1A, 0x1D, 0xB9, 0x3D, 0x71, 0x40, 0x00, 0x3C, 0x2A, 0x4E, 0xCE, 0xA9,
    521    0xF9, 0x8D, 0x0A, 0xCC, 0x0A, 0x82, 0x91, 0xCD, 0xCE, 0xC9, 0x7D, 0xCF,
    522    0x8E, 0xC9, 0xB5, 0x5A, 0x7F, 0x88, 0xA4, 0x6B, 0x4D, 0xB5, 0xA8, 0x51,
    523    0xF4, 0x41, 0x82, 0xE1, 0xC6, 0x8A, 0x00, 0x7E, 0x5E, 0x0D, 0xD9, 0x02,
    524    0x0B, 0xFD, 0x64, 0xB6, 0x45, 0x03, 0x6C, 0x7A, 0x4E, 0x67, 0x7D, 0x2C,
    525    0x38, 0x53, 0x2A, 0x3A, 0x23, 0xBA, 0x44, 0x42, 0xCA, 0xF5, 0x3E, 0xA6,
    526    0x3B, 0xB4, 0x54, 0x32, 0x9B, 0x76, 0x24, 0xC8, 0x91, 0x7B, 0xDD, 0x64,
    527    0xB1, 0xC0, 0xFD, 0x4C, 0xB3, 0x8E, 0x8C, 0x33, 0x4C, 0x70, 0x1C, 0x3A,
    528    0xCD, 0xAD, 0x06, 0x57, 0xFC, 0xCF, 0xEC, 0x71, 0x9B, 0x1F, 0x5C, 0x3E,
    529    0x4E, 0x46, 0x04, 0x1F, 0x38, 0x81, 0x47, 0xFB, 0x4C, 0xFD, 0xB4, 0x77,
    530    0xA5, 0x24, 0x71, 0xF7, 0xA9, 0xA9, 0x69, 0x10, 0xB8, 0x55, 0x32, 0x2E,
    531    0xDB, 0x63, 0x40, 0xD8, 0xA0, 0x0E, 0xF0, 0x92, 0x35, 0x05, 0x11, 0xE3,
    532    0x0A, 0xBE, 0xC1, 0xFF, 0xF9, 0xE3, 0xA2, 0x6E, 0x7F, 0xB2, 0x9F, 0x8C,
    533    0x18, 0x30, 0x23, 0xC3, 0x58, 0x7E, 0x38, 0xDA, 0x00, 0x77, 0xD9, 0xB4,
    534    0x76, 0x3E, 0x4E, 0x4B, 0x94, 0xB2, 0xBB, 0xC1, 0x94, 0xC6, 0x65, 0x1E,
    535    0x77, 0xCA, 0xF9, 0x92, 0xEE, 0xAA, 0xC0, 0x23, 0x2A, 0x28, 0x1B, 0xF6,
    536    0xB3, 0xA7, 0x39, 0xC1, 0x22, 0x61, 0x16, 0x82, 0x0A, 0xE8, 0xDB, 0x58,
    537    0x47, 0xA6, 0x7C, 0xBE, 0xF9, 0xC9, 0x09, 0x1B, 0x46, 0x2D, 0x53, 0x8C,
    538    0xD7, 0x2B, 0x03, 0x74, 0x6A, 0xE7, 0x7F, 0x5E, 0x62, 0x29, 0x2C, 0x31,
    539    0x15, 0x62, 0xA8, 0x46, 0x50, 0x5D, 0xC8, 0x2D, 0xB8, 0x54, 0x33, 0x8A,
    540    0xE4, 0x9F, 0x52, 0x35, 0xC9, 0x5B, 0x91, 0x17, 0x8C, 0xCF, 0x2D, 0xD5,
    541    0xCA, 0xCE, 0xF4, 0x03, 0xEC, 0x9D, 0x18, 0x10, 0xC6, 0x27, 0x2B, 0x04,
    542    0x5B, 0x3B, 0x71, 0xF9, 0xDC, 0x6B, 0x80, 0xD6, 0x3F, 0xDD, 0x4A, 0x8E,
    543    0x9A, 0xDB, 0x1E, 0x69, 0x62, 0xA6, 0x95, 0x26, 0xD4, 0x31, 0x61, 0xC1,
    544    0xA4, 0x1D, 0x57, 0x0D, 0x79, 0x38, 0xDA, 0xD4, 0xA4, 0x0E, 0x32, 0x9C,
    545    0xCF, 0xF4, 0x6A, 0xAA, 0x36, 0xAD, 0x00, 0x4C, 0xF6, 0x00, 0xC8, 0x38,
    546    0x1E, 0x42, 0x5A, 0x31, 0xD9, 0x51, 0xAE, 0x64, 0xFD, 0xB2, 0x3F, 0xCE,
    547    0xC9, 0x50, 0x9D, 0x43, 0x68, 0x7F, 0xEB, 0x69, 0xED, 0xD1, 0xCC, 0x5E,
    548    0x0B, 0x8C, 0xC3, 0xBD, 0xF6, 0x4B, 0x10, 0xEF, 0x86, 0xB6, 0x31, 0x42,
    549    0xA3, 0xAB, 0x88, 0x29, 0x55, 0x5B, 0x2F, 0x74, 0x7C, 0x93, 0x26, 0x65,
    550    0xCB, 0x2C, 0x0F, 0x1C, 0xC0, 0x1B, 0xD7, 0x02, 0x29, 0x38, 0x88, 0x39,
    551    0xD2, 0xAF, 0x05, 0xE4, 0x54, 0x50, 0x4A, 0xC7, 0x8B, 0x75, 0x82, 0x82,
    552    0x28, 0x46, 0xC0, 0xBA, 0x35, 0xC3, 0x5F, 0x5C, 0x59, 0x16, 0x0C, 0xC0,
    553    0x46, 0xFD, 0x82, 0x51, 0x54, 0x1F, 0xC6, 0x8C, 0x9C, 0x86, 0xB0, 0x22,
    554    0xBB, 0x70, 0x99, 0x87, 0x6A, 0x46, 0x0E, 0x74, 0x51, 0xA8, 0xA9, 0x31,
    555    0x09, 0x70, 0x3F, 0xEE, 0x1C, 0x21, 0x7E, 0x6C, 0x38, 0x26, 0xE5, 0x2C,
    556    0x51, 0xAA, 0x69, 0x1E, 0x0E, 0x42, 0x3C, 0xFC, 0x99, 0xE9, 0xE3, 0x16,
    557    0x50, 0xC1, 0x21, 0x7B, 0x62, 0x48, 0x16, 0xCD, 0xAD, 0x9A, 0x95, 0xF9,
    558    0xD5, 0xB8, 0x01, 0x94, 0x88, 0xD9, 0xC0, 0xA0, 0xA1, 0xFE, 0x30, 0x75,
    559    0xA5, 0x77, 0xE2, 0x31, 0x83, 0xF8, 0x1D, 0x4A, 0x3F, 0x2F, 0xA4, 0x57,
    560    0x1E, 0xFC, 0x8C, 0xE0, 0xBA, 0x8A, 0x4F, 0xE8, 0xB6, 0x85, 0x5D, 0xFE,
    561    0x72, 0xB0, 0xA6, 0x6E, 0xDE, 0xD2, 0xFB, 0xAB, 0xFB, 0xE5, 0x8A, 0x30,
    562    0xFA, 0xFA, 0xBE, 0x1C, 0x5D, 0x71, 0xA8, 0x7E, 0x2F, 0x74, 0x1E, 0xF8,
    563    0xC1, 0xFE, 0x86, 0xFE, 0xA6, 0xBB, 0xFD, 0xE5, 0x30, 0x67, 0x7F, 0x0D,
    564    0x97, 0xD1, 0x1D, 0x49, 0xF7, 0xA8, 0x44, 0x3D, 0x08, 0x22, 0xE5, 0x06,
    565    0xA9, 0xF4, 0x61, 0x4E, 0x01, 0x1E, 0x2A, 0x94, 0x83, 0x8F, 0xF8, 0x8C,
    566    0xD6, 0x8C, 0x8B, 0xB7, 0xC5, 0xC6, 0x42, 0x4C, 0xFF, 0xFF, 0xFF, 0xFF,
    567    0xFF, 0xFF, 0xFF, 0xFF
    568 };
    569 
    570 /* q=(p-1)/2 for prime prime_ike_1536 */
    571 static const unsigned char subprime_ike_1536_data[] = {
    572    0x7f,
    573    0xff,
    574    0xff,
    575    0xff,
    576    0xff,
    577    0xff,
    578    0xff,
    579    0xff,
    580    0xe4,
    581    0x87,
    582    0xed,
    583    0x51,
    584    0x10,
    585    0xb4,
    586    0x61,
    587    0x1a,
    588    0x62,
    589    0x63,
    590    0x31,
    591    0x45,
    592    0xc0,
    593    0x6e,
    594    0x0e,
    595    0x68,
    596    0x94,
    597    0x81,
    598    0x27,
    599    0x04,
    600    0x45,
    601    0x33,
    602    0xe6,
    603    0x3a,
    604    0x01,
    605    0x05,
    606    0xdf,
    607    0x53,
    608    0x1d,
    609    0x89,
    610    0xcd,
    611    0x91,
    612    0x28,
    613    0xa5,
    614    0x04,
    615    0x3c,
    616    0xc7,
    617    0x1a,
    618    0x02,
    619    0x6e,
    620    0xf7,
    621    0xca,
    622    0x8c,
    623    0xd9,
    624    0xe6,
    625    0x9d,
    626    0x21,
    627    0x8d,
    628    0x98,
    629    0x15,
    630    0x85,
    631    0x36,
    632    0xf9,
    633    0x2f,
    634    0x8a,
    635    0x1b,
    636    0xa7,
    637    0xf0,
    638    0x9a,
    639    0xb6,
    640    0xb6,
    641    0xa8,
    642    0xe1,
    643    0x22,
    644    0xf2,
    645    0x42,
    646    0xda,
    647    0xbb,
    648    0x31,
    649    0x2f,
    650    0x3f,
    651    0x63,
    652    0x7a,
    653    0x26,
    654    0x21,
    655    0x74,
    656    0xd3,
    657    0x1b,
    658    0xf6,
    659    0xb5,
    660    0x85,
    661    0xff,
    662    0xae,
    663    0x5b,
    664    0x7a,
    665    0x03,
    666    0x5b,
    667    0xf6,
    668    0xf7,
    669    0x1c,
    670    0x35,
    671    0xfd,
    672    0xad,
    673    0x44,
    674    0xcf,
    675    0xd2,
    676    0xd7,
    677    0x4f,
    678    0x92,
    679    0x08,
    680    0xbe,
    681    0x25,
    682    0x8f,
    683    0xf3,
    684    0x24,
    685    0x94,
    686    0x33,
    687    0x28,
    688    0xf6,
    689    0x72,
    690    0x2d,
    691    0x9e,
    692    0xe1,
    693    0x00,
    694    0x3e,
    695    0x5c,
    696    0x50,
    697    0xb1,
    698    0xdf,
    699    0x82,
    700    0xcc,
    701    0x6d,
    702    0x24,
    703    0x1b,
    704    0x0e,
    705    0x2a,
    706    0xe9,
    707    0xcd,
    708    0x34,
    709    0x8b,
    710    0x1f,
    711    0xd4,
    712    0x7e,
    713    0x92,
    714    0x67,
    715    0xaf,
    716    0xc1,
    717    0xb2,
    718    0xae,
    719    0x91,
    720    0xee,
    721    0x51,
    722    0xd6,
    723    0xcb,
    724    0x0e,
    725    0x31,
    726    0x79,
    727    0xab,
    728    0x10,
    729    0x42,
    730    0xa9,
    731    0x5d,
    732    0xcf,
    733    0x6a,
    734    0x94,
    735    0x83,
    736    0xb8,
    737    0x4b,
    738    0x4b,
    739    0x36,
    740    0xb3,
    741    0x86,
    742    0x1a,
    743    0xa7,
    744    0x25,
    745    0x5e,
    746    0x4c,
    747    0x02,
    748    0x78,
    749    0xba,
    750    0x36,
    751    0x04,
    752    0x65,
    753    0x11,
    754    0xb9,
    755    0x93,
    756    0xff,
    757    0xff,
    758    0xff,
    759    0xff,
    760    0xff,
    761    0xff,
    762    0xff,
    763    0xff,
    764 };
    765 
    766 /* q=(p-1)/2 for prime prime_ike_2048 */
    767 static const unsigned char subprime_ike_2048_data[] = {
    768    0x7f,
    769    0xff,
    770    0xff,
    771    0xff,
    772    0xff,
    773    0xff,
    774    0xff,
    775    0xff,
    776    0xe4,
    777    0x87,
    778    0xed,
    779    0x51,
    780    0x10,
    781    0xb4,
    782    0x61,
    783    0x1a,
    784    0x62,
    785    0x63,
    786    0x31,
    787    0x45,
    788    0xc0,
    789    0x6e,
    790    0x0e,
    791    0x68,
    792    0x94,
    793    0x81,
    794    0x27,
    795    0x04,
    796    0x45,
    797    0x33,
    798    0xe6,
    799    0x3a,
    800    0x01,
    801    0x05,
    802    0xdf,
    803    0x53,
    804    0x1d,
    805    0x89,
    806    0xcd,
    807    0x91,
    808    0x28,
    809    0xa5,
    810    0x04,
    811    0x3c,
    812    0xc7,
    813    0x1a,
    814    0x02,
    815    0x6e,
    816    0xf7,
    817    0xca,
    818    0x8c,
    819    0xd9,
    820    0xe6,
    821    0x9d,
    822    0x21,
    823    0x8d,
    824    0x98,
    825    0x15,
    826    0x85,
    827    0x36,
    828    0xf9,
    829    0x2f,
    830    0x8a,
    831    0x1b,
    832    0xa7,
    833    0xf0,
    834    0x9a,
    835    0xb6,
    836    0xb6,
    837    0xa8,
    838    0xe1,
    839    0x22,
    840    0xf2,
    841    0x42,
    842    0xda,
    843    0xbb,
    844    0x31,
    845    0x2f,
    846    0x3f,
    847    0x63,
    848    0x7a,
    849    0x26,
    850    0x21,
    851    0x74,
    852    0xd3,
    853    0x1b,
    854    0xf6,
    855    0xb5,
    856    0x85,
    857    0xff,
    858    0xae,
    859    0x5b,
    860    0x7a,
    861    0x03,
    862    0x5b,
    863    0xf6,
    864    0xf7,
    865    0x1c,
    866    0x35,
    867    0xfd,
    868    0xad,
    869    0x44,
    870    0xcf,
    871    0xd2,
    872    0xd7,
    873    0x4f,
    874    0x92,
    875    0x08,
    876    0xbe,
    877    0x25,
    878    0x8f,
    879    0xf3,
    880    0x24,
    881    0x94,
    882    0x33,
    883    0x28,
    884    0xf6,
    885    0x72,
    886    0x2d,
    887    0x9e,
    888    0xe1,
    889    0x00,
    890    0x3e,
    891    0x5c,
    892    0x50,
    893    0xb1,
    894    0xdf,
    895    0x82,
    896    0xcc,
    897    0x6d,
    898    0x24,
    899    0x1b,
    900    0x0e,
    901    0x2a,
    902    0xe9,
    903    0xcd,
    904    0x34,
    905    0x8b,
    906    0x1f,
    907    0xd4,
    908    0x7e,
    909    0x92,
    910    0x67,
    911    0xaf,
    912    0xc1,
    913    0xb2,
    914    0xae,
    915    0x91,
    916    0xee,
    917    0x51,
    918    0xd6,
    919    0xcb,
    920    0x0e,
    921    0x31,
    922    0x79,
    923    0xab,
    924    0x10,
    925    0x42,
    926    0xa9,
    927    0x5d,
    928    0xcf,
    929    0x6a,
    930    0x94,
    931    0x83,
    932    0xb8,
    933    0x4b,
    934    0x4b,
    935    0x36,
    936    0xb3,
    937    0x86,
    938    0x1a,
    939    0xa7,
    940    0x25,
    941    0x5e,
    942    0x4c,
    943    0x02,
    944    0x78,
    945    0xba,
    946    0x36,
    947    0x04,
    948    0x65,
    949    0x0c,
    950    0x10,
    951    0xbe,
    952    0x19,
    953    0x48,
    954    0x2f,
    955    0x23,
    956    0x17,
    957    0x1b,
    958    0x67,
    959    0x1d,
    960    0xf1,
    961    0xcf,
    962    0x3b,
    963    0x96,
    964    0x0c,
    965    0x07,
    966    0x43,
    967    0x01,
    968    0xcd,
    969    0x93,
    970    0xc1,
    971    0xd1,
    972    0x76,
    973    0x03,
    974    0xd1,
    975    0x47,
    976    0xda,
    977    0xe2,
    978    0xae,
    979    0xf8,
    980    0x37,
    981    0xa6,
    982    0x29,
    983    0x64,
    984    0xef,
    985    0x15,
    986    0xe5,
    987    0xfb,
    988    0x4a,
    989    0xac,
    990    0x0b,
    991    0x8c,
    992    0x1c,
    993    0xca,
    994    0xa4,
    995    0xbe,
    996    0x75,
    997    0x4a,
    998    0xb5,
    999    0x72,
   1000    0x8a,
   1001    0xe9,
   1002    0x13,
   1003    0x0c,
   1004    0x4c,
   1005    0x7d,
   1006    0x02,
   1007    0x88,
   1008    0x0a,
   1009    0xb9,
   1010    0x47,
   1011    0x2d,
   1012    0x45,
   1013    0x56,
   1014    0x55,
   1015    0x34,
   1016    0x7f,
   1017    0xff,
   1018    0xff,
   1019    0xff,
   1020    0xff,
   1021    0xff,
   1022    0xff,
   1023    0xff,
   1024 };
   1025 
   1026 /* q=(p-1)/2 for prime prime_tls_2048 */
   1027 static const unsigned char subprime_tls_2048_data[] = {
   1028    0x7f,
   1029    0xff,
   1030    0xff,
   1031    0xff,
   1032    0xff,
   1033    0xff,
   1034    0xff,
   1035    0xff,
   1036    0xd6,
   1037    0xfc,
   1038    0x2a,
   1039    0x2c,
   1040    0x51,
   1041    0x5d,
   1042    0xa5,
   1043    0x4d,
   1044    0x57,
   1045    0xee,
   1046    0x2b,
   1047    0x10,
   1048    0x13,
   1049    0x9e,
   1050    0x9e,
   1051    0x78,
   1052    0xec,
   1053    0x5c,
   1054    0xe2,
   1055    0xc1,
   1056    0xe7,
   1057    0x16,
   1058    0x9b,
   1059    0x4a,
   1060    0xd4,
   1061    0xf0,
   1062    0x9b,
   1063    0x20,
   1064    0x8a,
   1065    0x32,
   1066    0x19,
   1067    0xfd,
   1068    0xe6,
   1069    0x49,
   1070    0xce,
   1071    0xe7,
   1072    0x12,
   1073    0x4d,
   1074    0x9f,
   1075    0x7c,
   1076    0xbe,
   1077    0x97,
   1078    0xf1,
   1079    0xb1,
   1080    0xb1,
   1081    0x86,
   1082    0x3a,
   1083    0xec,
   1084    0x7b,
   1085    0x40,
   1086    0xd9,
   1087    0x01,
   1088    0x57,
   1089    0x62,
   1090    0x30,
   1091    0xbd,
   1092    0x69,
   1093    0xef,
   1094    0x8f,
   1095    0x6a,
   1096    0xea,
   1097    0xfe,
   1098    0xb2,
   1099    0xb0,
   1100    0x92,
   1101    0x19,
   1102    0xfa,
   1103    0x8f,
   1104    0xaf,
   1105    0x83,
   1106    0x37,
   1107    0x68,
   1108    0x42,
   1109    0xb1,
   1110    0xb2,
   1111    0xaa,
   1112    0x9e,
   1113    0xf6,
   1114    0x8d,
   1115    0x79,
   1116    0xda,
   1117    0xab,
   1118    0x89,
   1119    0xaf,
   1120    0x3f,
   1121    0xab,
   1122    0xe4,
   1123    0x9a,
   1124    0xcc,
   1125    0x27,
   1126    0x86,
   1127    0x38,
   1128    0x70,
   1129    0x73,
   1130    0x45,
   1131    0xbb,
   1132    0xf1,
   1133    0x53,
   1134    0x44,
   1135    0xed,
   1136    0x79,
   1137    0xf7,
   1138    0xf4,
   1139    0x39,
   1140    0x0e,
   1141    0xf8,
   1142    0xac,
   1143    0x50,
   1144    0x9b,
   1145    0x56,
   1146    0xf3,
   1147    0x9a,
   1148    0x98,
   1149    0x56,
   1150    0x65,
   1151    0x27,
   1152    0xa4,
   1153    0x1d,
   1154    0x3c,
   1155    0xbd,
   1156    0x5e,
   1157    0x05,
   1158    0x58,
   1159    0xc1,
   1160    0x59,
   1161    0x92,
   1162    0x7d,
   1163    0xb0,
   1164    0xe8,
   1165    0x84,
   1166    0x54,
   1167    0xa5,
   1168    0xd9,
   1169    0x64,
   1170    0x71,
   1171    0xfd,
   1172    0xdc,
   1173    0xb5,
   1174    0x6d,
   1175    0x5b,
   1176    0xb0,
   1177    0x6b,
   1178    0xfa,
   1179    0x34,
   1180    0x0e,
   1181    0xa7,
   1182    0xa1,
   1183    0x51,
   1184    0xef,
   1185    0x1c,
   1186    0xa6,
   1187    0xfa,
   1188    0x57,
   1189    0x2b,
   1190    0x76,
   1191    0xf3,
   1192    0xb1,
   1193    0xb9,
   1194    0x5d,
   1195    0x8c,
   1196    0x85,
   1197    0x83,
   1198    0xd3,
   1199    0xe4,
   1200    0x77,
   1201    0x05,
   1202    0x36,
   1203    0xb8,
   1204    0x4f,
   1205    0x01,
   1206    0x7e,
   1207    0x70,
   1208    0xe6,
   1209    0xfb,
   1210    0xf1,
   1211    0x76,
   1212    0x60,
   1213    0x1a,
   1214    0x02,
   1215    0x66,
   1216    0x94,
   1217    0x1a,
   1218    0x17,
   1219    0xb0,
   1220    0xc8,
   1221    0xb9,
   1222    0x7f,
   1223    0x4e,
   1224    0x74,
   1225    0xc2,
   1226    0xc1,
   1227    0xff,
   1228    0xc7,
   1229    0x27,
   1230    0x89,
   1231    0x19,
   1232    0x77,
   1233    0x79,
   1234    0x40,
   1235    0xc1,
   1236    0xe1,
   1237    0xff,
   1238    0x1d,
   1239    0x8d,
   1240    0xa6,
   1241    0x37,
   1242    0xd6,
   1243    0xb9,
   1244    0x9d,
   1245    0xda,
   1246    0xfe,
   1247    0x5e,
   1248    0x17,
   1249    0x61,
   1250    0x10,
   1251    0x02,
   1252    0xe2,
   1253    0xc7,
   1254    0x78,
   1255    0xc1,
   1256    0xbe,
   1257    0x8b,
   1258    0x41,
   1259    0xd9,
   1260    0x63,
   1261    0x79,
   1262    0xa5,
   1263    0x13,
   1264    0x60,
   1265    0xd9,
   1266    0x77,
   1267    0xfd,
   1268    0x44,
   1269    0x35,
   1270    0xa1,
   1271    0x1c,
   1272    0x30,
   1273    0x94,
   1274    0x2e,
   1275    0x4b,
   1276    0xff,
   1277    0xff,
   1278    0xff,
   1279    0xff,
   1280    0xff,
   1281    0xff,
   1282    0xff,
   1283    0xff,
   1284 };
   1285 
   1286 /* q=(p-1)/2 for prime prime_ike_3072 */
   1287 static const unsigned char subprime_ike_3072_data[] = {
   1288    0x7f,
   1289    0xff,
   1290    0xff,
   1291    0xff,
   1292    0xff,
   1293    0xff,
   1294    0xff,
   1295    0xff,
   1296    0xe4,
   1297    0x87,
   1298    0xed,
   1299    0x51,
   1300    0x10,
   1301    0xb4,
   1302    0x61,
   1303    0x1a,
   1304    0x62,
   1305    0x63,
   1306    0x31,
   1307    0x45,
   1308    0xc0,
   1309    0x6e,
   1310    0x0e,
   1311    0x68,
   1312    0x94,
   1313    0x81,
   1314    0x27,
   1315    0x04,
   1316    0x45,
   1317    0x33,
   1318    0xe6,
   1319    0x3a,
   1320    0x01,
   1321    0x05,
   1322    0xdf,
   1323    0x53,
   1324    0x1d,
   1325    0x89,
   1326    0xcd,
   1327    0x91,
   1328    0x28,
   1329    0xa5,
   1330    0x04,
   1331    0x3c,
   1332    0xc7,
   1333    0x1a,
   1334    0x02,
   1335    0x6e,
   1336    0xf7,
   1337    0xca,
   1338    0x8c,
   1339    0xd9,
   1340    0xe6,
   1341    0x9d,
   1342    0x21,
   1343    0x8d,
   1344    0x98,
   1345    0x15,
   1346    0x85,
   1347    0x36,
   1348    0xf9,
   1349    0x2f,
   1350    0x8a,
   1351    0x1b,
   1352    0xa7,
   1353    0xf0,
   1354    0x9a,
   1355    0xb6,
   1356    0xb6,
   1357    0xa8,
   1358    0xe1,
   1359    0x22,
   1360    0xf2,
   1361    0x42,
   1362    0xda,
   1363    0xbb,
   1364    0x31,
   1365    0x2f,
   1366    0x3f,
   1367    0x63,
   1368    0x7a,
   1369    0x26,
   1370    0x21,
   1371    0x74,
   1372    0xd3,
   1373    0x1b,
   1374    0xf6,
   1375    0xb5,
   1376    0x85,
   1377    0xff,
   1378    0xae,
   1379    0x5b,
   1380    0x7a,
   1381    0x03,
   1382    0x5b,
   1383    0xf6,
   1384    0xf7,
   1385    0x1c,
   1386    0x35,
   1387    0xfd,
   1388    0xad,
   1389    0x44,
   1390    0xcf,
   1391    0xd2,
   1392    0xd7,
   1393    0x4f,
   1394    0x92,
   1395    0x08,
   1396    0xbe,
   1397    0x25,
   1398    0x8f,
   1399    0xf3,
   1400    0x24,
   1401    0x94,
   1402    0x33,
   1403    0x28,
   1404    0xf6,
   1405    0x72,
   1406    0x2d,
   1407    0x9e,
   1408    0xe1,
   1409    0x00,
   1410    0x3e,
   1411    0x5c,
   1412    0x50,
   1413    0xb1,
   1414    0xdf,
   1415    0x82,
   1416    0xcc,
   1417    0x6d,
   1418    0x24,
   1419    0x1b,
   1420    0x0e,
   1421    0x2a,
   1422    0xe9,
   1423    0xcd,
   1424    0x34,
   1425    0x8b,
   1426    0x1f,
   1427    0xd4,
   1428    0x7e,
   1429    0x92,
   1430    0x67,
   1431    0xaf,
   1432    0xc1,
   1433    0xb2,
   1434    0xae,
   1435    0x91,
   1436    0xee,
   1437    0x51,
   1438    0xd6,
   1439    0xcb,
   1440    0x0e,
   1441    0x31,
   1442    0x79,
   1443    0xab,
   1444    0x10,
   1445    0x42,
   1446    0xa9,
   1447    0x5d,
   1448    0xcf,
   1449    0x6a,
   1450    0x94,
   1451    0x83,
   1452    0xb8,
   1453    0x4b,
   1454    0x4b,
   1455    0x36,
   1456    0xb3,
   1457    0x86,
   1458    0x1a,
   1459    0xa7,
   1460    0x25,
   1461    0x5e,
   1462    0x4c,
   1463    0x02,
   1464    0x78,
   1465    0xba,
   1466    0x36,
   1467    0x04,
   1468    0x65,
   1469    0x0c,
   1470    0x10,
   1471    0xbe,
   1472    0x19,
   1473    0x48,
   1474    0x2f,
   1475    0x23,
   1476    0x17,
   1477    0x1b,
   1478    0x67,
   1479    0x1d,
   1480    0xf1,
   1481    0xcf,
   1482    0x3b,
   1483    0x96,
   1484    0x0c,
   1485    0x07,
   1486    0x43,
   1487    0x01,
   1488    0xcd,
   1489    0x93,
   1490    0xc1,
   1491    0xd1,
   1492    0x76,
   1493    0x03,
   1494    0xd1,
   1495    0x47,
   1496    0xda,
   1497    0xe2,
   1498    0xae,
   1499    0xf8,
   1500    0x37,
   1501    0xa6,
   1502    0x29,
   1503    0x64,
   1504    0xef,
   1505    0x15,
   1506    0xe5,
   1507    0xfb,
   1508    0x4a,
   1509    0xac,
   1510    0x0b,
   1511    0x8c,
   1512    0x1c,
   1513    0xca,
   1514    0xa4,
   1515    0xbe,
   1516    0x75,
   1517    0x4a,
   1518    0xb5,
   1519    0x72,
   1520    0x8a,
   1521    0xe9,
   1522    0x13,
   1523    0x0c,
   1524    0x4c,
   1525    0x7d,
   1526    0x02,
   1527    0x88,
   1528    0x0a,
   1529    0xb9,
   1530    0x47,
   1531    0x2d,
   1532    0x45,
   1533    0x55,
   1534    0x62,
   1535    0x16,
   1536    0xd6,
   1537    0x99,
   1538    0x8b,
   1539    0x86,
   1540    0x82,
   1541    0x28,
   1542    0x3d,
   1543    0x19,
   1544    0xd4,
   1545    0x2a,
   1546    0x90,
   1547    0xd5,
   1548    0xef,
   1549    0x8e,
   1550    0x5d,
   1551    0x32,
   1552    0x76,
   1553    0x7d,
   1554    0xc2,
   1555    0x82,
   1556    0x2c,
   1557    0x6d,
   1558    0xf7,
   1559    0x85,
   1560    0x45,
   1561    0x75,
   1562    0x38,
   1563    0xab,
   1564    0xae,
   1565    0x83,
   1566    0x06,
   1567    0x3e,
   1568    0xd9,
   1569    0xcb,
   1570    0x87,
   1571    0xc2,
   1572    0xd3,
   1573    0x70,
   1574    0xf2,
   1575    0x63,
   1576    0xd5,
   1577    0xfa,
   1578    0xd7,
   1579    0x46,
   1580    0x6d,
   1581    0x84,
   1582    0x99,
   1583    0xeb,
   1584    0x8f,
   1585    0x46,
   1586    0x4a,
   1587    0x70,
   1588    0x25,
   1589    0x12,
   1590    0xb0,
   1591    0xce,
   1592    0xe7,
   1593    0x71,
   1594    0xe9,
   1595    0x13,
   1596    0x0d,
   1597    0x69,
   1598    0x77,
   1599    0x35,
   1600    0xf8,
   1601    0x97,
   1602    0xfd,
   1603    0x03,
   1604    0x6c,
   1605    0xc5,
   1606    0x04,
   1607    0x32,
   1608    0x6c,
   1609    0x3b,
   1610    0x01,
   1611    0x39,
   1612    0x9f,
   1613    0x64,
   1614    0x35,
   1615    0x32,
   1616    0x29,
   1617    0x0f,
   1618    0x95,
   1619    0x8c,
   1620    0x0b,
   1621    0xbd,
   1622    0x90,
   1623    0x06,
   1624    0x5d,
   1625    0xf0,
   1626    0x8b,
   1627    0xab,
   1628    0xbd,
   1629    0x30,
   1630    0xae,
   1631    0xb6,
   1632    0x3b,
   1633    0x84,
   1634    0xc4,
   1635    0x60,
   1636    0x5d,
   1637    0x6c,
   1638    0xa3,
   1639    0x71,
   1640    0x04,
   1641    0x71,
   1642    0x27,
   1643    0xd0,
   1644    0x3a,
   1645    0x72,
   1646    0xd5,
   1647    0x98,
   1648    0xa1,
   1649    0xed,
   1650    0xad,
   1651    0xfe,
   1652    0x70,
   1653    0x7e,
   1654    0x88,
   1655    0x47,
   1656    0x25,
   1657    0xc1,
   1658    0x68,
   1659    0x90,
   1660    0x54,
   1661    0x9d,
   1662    0x69,
   1663    0x65,
   1664    0x7f,
   1665    0xff,
   1666    0xff,
   1667    0xff,
   1668    0xff,
   1669    0xff,
   1670    0xff,
   1671    0xff,
   1672 };
   1673 
   1674 /* q=(p-1)/2 for prime prime_tls_3072 */
   1675 static const unsigned char subprime_tls_3072_data[] = {
   1676    0x7f,
   1677    0xff,
   1678    0xff,
   1679    0xff,
   1680    0xff,
   1681    0xff,
   1682    0xff,
   1683    0xff,
   1684    0xd6,
   1685    0xfc,
   1686    0x2a,
   1687    0x2c,
   1688    0x51,
   1689    0x5d,
   1690    0xa5,
   1691    0x4d,
   1692    0x57,
   1693    0xee,
   1694    0x2b,
   1695    0x10,
   1696    0x13,
   1697    0x9e,
   1698    0x9e,
   1699    0x78,
   1700    0xec,
   1701    0x5c,
   1702    0xe2,
   1703    0xc1,
   1704    0xe7,
   1705    0x16,
   1706    0x9b,
   1707    0x4a,
   1708    0xd4,
   1709    0xf0,
   1710    0x9b,
   1711    0x20,
   1712    0x8a,
   1713    0x32,
   1714    0x19,
   1715    0xfd,
   1716    0xe6,
   1717    0x49,
   1718    0xce,
   1719    0xe7,
   1720    0x12,
   1721    0x4d,
   1722    0x9f,
   1723    0x7c,
   1724    0xbe,
   1725    0x97,
   1726    0xf1,
   1727    0xb1,
   1728    0xb1,
   1729    0x86,
   1730    0x3a,
   1731    0xec,
   1732    0x7b,
   1733    0x40,
   1734    0xd9,
   1735    0x01,
   1736    0x57,
   1737    0x62,
   1738    0x30,
   1739    0xbd,
   1740    0x69,
   1741    0xef,
   1742    0x8f,
   1743    0x6a,
   1744    0xea,
   1745    0xfe,
   1746    0xb2,
   1747    0xb0,
   1748    0x92,
   1749    0x19,
   1750    0xfa,
   1751    0x8f,
   1752    0xaf,
   1753    0x83,
   1754    0x37,
   1755    0x68,
   1756    0x42,
   1757    0xb1,
   1758    0xb2,
   1759    0xaa,
   1760    0x9e,
   1761    0xf6,
   1762    0x8d,
   1763    0x79,
   1764    0xda,
   1765    0xab,
   1766    0x89,
   1767    0xaf,
   1768    0x3f,
   1769    0xab,
   1770    0xe4,
   1771    0x9a,
   1772    0xcc,
   1773    0x27,
   1774    0x86,
   1775    0x38,
   1776    0x70,
   1777    0x73,
   1778    0x45,
   1779    0xbb,
   1780    0xf1,
   1781    0x53,
   1782    0x44,
   1783    0xed,
   1784    0x79,
   1785    0xf7,
   1786    0xf4,
   1787    0x39,
   1788    0x0e,
   1789    0xf8,
   1790    0xac,
   1791    0x50,
   1792    0x9b,
   1793    0x56,
   1794    0xf3,
   1795    0x9a,
   1796    0x98,
   1797    0x56,
   1798    0x65,
   1799    0x27,
   1800    0xa4,
   1801    0x1d,
   1802    0x3c,
   1803    0xbd,
   1804    0x5e,
   1805    0x05,
   1806    0x58,
   1807    0xc1,
   1808    0x59,
   1809    0x92,
   1810    0x7d,
   1811    0xb0,
   1812    0xe8,
   1813    0x84,
   1814    0x54,
   1815    0xa5,
   1816    0xd9,
   1817    0x64,
   1818    0x71,
   1819    0xfd,
   1820    0xdc,
   1821    0xb5,
   1822    0x6d,
   1823    0x5b,
   1824    0xb0,
   1825    0x6b,
   1826    0xfa,
   1827    0x34,
   1828    0x0e,
   1829    0xa7,
   1830    0xa1,
   1831    0x51,
   1832    0xef,
   1833    0x1c,
   1834    0xa6,
   1835    0xfa,
   1836    0x57,
   1837    0x2b,
   1838    0x76,
   1839    0xf3,
   1840    0xb1,
   1841    0xb9,
   1842    0x5d,
   1843    0x8c,
   1844    0x85,
   1845    0x83,
   1846    0xd3,
   1847    0xe4,
   1848    0x77,
   1849    0x05,
   1850    0x36,
   1851    0xb8,
   1852    0x4f,
   1853    0x01,
   1854    0x7e,
   1855    0x70,
   1856    0xe6,
   1857    0xfb,
   1858    0xf1,
   1859    0x76,
   1860    0x60,
   1861    0x1a,
   1862    0x02,
   1863    0x66,
   1864    0x94,
   1865    0x1a,
   1866    0x17,
   1867    0xb0,
   1868    0xc8,
   1869    0xb9,
   1870    0x7f,
   1871    0x4e,
   1872    0x74,
   1873    0xc2,
   1874    0xc1,
   1875    0xff,
   1876    0xc7,
   1877    0x27,
   1878    0x89,
   1879    0x19,
   1880    0x77,
   1881    0x79,
   1882    0x40,
   1883    0xc1,
   1884    0xe1,
   1885    0xff,
   1886    0x1d,
   1887    0x8d,
   1888    0xa6,
   1889    0x37,
   1890    0xd6,
   1891    0xb9,
   1892    0x9d,
   1893    0xda,
   1894    0xfe,
   1895    0x5e,
   1896    0x17,
   1897    0x61,
   1898    0x10,
   1899    0x02,
   1900    0xe2,
   1901    0xc7,
   1902    0x78,
   1903    0xc1,
   1904    0xbe,
   1905    0x8b,
   1906    0x41,
   1907    0xd9,
   1908    0x63,
   1909    0x79,
   1910    0xa5,
   1911    0x13,
   1912    0x60,
   1913    0xd9,
   1914    0x77,
   1915    0xfd,
   1916    0x44,
   1917    0x35,
   1918    0xa1,
   1919    0x1c,
   1920    0x30,
   1921    0x8f,
   1922    0xe7,
   1923    0xee,
   1924    0x6f,
   1925    0x1a,
   1926    0xad,
   1927    0x9d,
   1928    0xb2,
   1929    0x8c,
   1930    0x81,
   1931    0xad,
   1932    0xde,
   1933    0x1a,
   1934    0x7a,
   1935    0x6f,
   1936    0x7c,
   1937    0xce,
   1938    0x01,
   1939    0x1c,
   1940    0x30,
   1941    0xda,
   1942    0x37,
   1943    0xe4,
   1944    0xeb,
   1945    0x73,
   1946    0x64,
   1947    0x83,
   1948    0xbd,
   1949    0x6c,
   1950    0x8e,
   1951    0x93,
   1952    0x48,
   1953    0xfb,
   1954    0xfb,
   1955    0xf7,
   1956    0x2c,
   1957    0xc6,
   1958    0x58,
   1959    0x7d,
   1960    0x60,
   1961    0xc3,
   1962    0x6c,
   1963    0x8e,
   1964    0x57,
   1965    0x7f,
   1966    0x09,
   1967    0x84,
   1968    0xc2,
   1969    0x89,
   1970    0xc9,
   1971    0x38,
   1972    0x5a,
   1973    0x09,
   1974    0x86,
   1975    0x49,
   1976    0xde,
   1977    0x21,
   1978    0xbc,
   1979    0xa2,
   1980    0x7a,
   1981    0x7e,
   1982    0xa2,
   1983    0x29,
   1984    0x71,
   1985    0x6b,
   1986    0xa6,
   1987    0xe9,
   1988    0xb2,
   1989    0x79,
   1990    0x71,
   1991    0x0f,
   1992    0x38,
   1993    0xfa,
   1994    0xa5,
   1995    0xff,
   1996    0xae,
   1997    0x57,
   1998    0x41,
   1999    0x55,
   2000    0xce,
   2001    0x4e,
   2002    0xfb,
   2003    0x4f,
   2004    0x74,
   2005    0x36,
   2006    0x95,
   2007    0xe2,
   2008    0x91,
   2009    0x1b,
   2010    0x1d,
   2011    0x06,
   2012    0xd5,
   2013    0xe2,
   2014    0x90,
   2015    0xcb,
   2016    0xcd,
   2017    0x86,
   2018    0xf5,
   2019    0x6d,
   2020    0x0e,
   2021    0xdf,
   2022    0xcd,
   2023    0x21,
   2024    0x6a,
   2025    0xe2,
   2026    0x24,
   2027    0x27,
   2028    0x05,
   2029    0x5e,
   2030    0x68,
   2031    0x35,
   2032    0xfd,
   2033    0x29,
   2034    0xee,
   2035    0xf7,
   2036    0x9e,
   2037    0x0d,
   2038    0x90,
   2039    0x77,
   2040    0x1f,
   2041    0xea,
   2042    0xce,
   2043    0xbe,
   2044    0x12,
   2045    0xf2,
   2046    0x0e,
   2047    0x95,
   2048    0xb3,
   2049    0x63,
   2050    0x17,
   2051    0x1b,
   2052    0xff,
   2053    0xff,
   2054    0xff,
   2055    0xff,
   2056    0xff,
   2057    0xff,
   2058    0xff,
   2059    0xff,
   2060 };
   2061 
   2062 /* q=(p-1)/2 for prime prime_ike_4096 */
   2063 static const unsigned char subprime_ike_4096_data[] = {
   2064    0x7f,
   2065    0xff,
   2066    0xff,
   2067    0xff,
   2068    0xff,
   2069    0xff,
   2070    0xff,
   2071    0xff,
   2072    0xe4,
   2073    0x87,
   2074    0xed,
   2075    0x51,
   2076    0x10,
   2077    0xb4,
   2078    0x61,
   2079    0x1a,
   2080    0x62,
   2081    0x63,
   2082    0x31,
   2083    0x45,
   2084    0xc0,
   2085    0x6e,
   2086    0x0e,
   2087    0x68,
   2088    0x94,
   2089    0x81,
   2090    0x27,
   2091    0x04,
   2092    0x45,
   2093    0x33,
   2094    0xe6,
   2095    0x3a,
   2096    0x01,
   2097    0x05,
   2098    0xdf,
   2099    0x53,
   2100    0x1d,
   2101    0x89,
   2102    0xcd,
   2103    0x91,
   2104    0x28,
   2105    0xa5,
   2106    0x04,
   2107    0x3c,
   2108    0xc7,
   2109    0x1a,
   2110    0x02,
   2111    0x6e,
   2112    0xf7,
   2113    0xca,
   2114    0x8c,
   2115    0xd9,
   2116    0xe6,
   2117    0x9d,
   2118    0x21,
   2119    0x8d,
   2120    0x98,
   2121    0x15,
   2122    0x85,
   2123    0x36,
   2124    0xf9,
   2125    0x2f,
   2126    0x8a,
   2127    0x1b,
   2128    0xa7,
   2129    0xf0,
   2130    0x9a,
   2131    0xb6,
   2132    0xb6,
   2133    0xa8,
   2134    0xe1,
   2135    0x22,
   2136    0xf2,
   2137    0x42,
   2138    0xda,
   2139    0xbb,
   2140    0x31,
   2141    0x2f,
   2142    0x3f,
   2143    0x63,
   2144    0x7a,
   2145    0x26,
   2146    0x21,
   2147    0x74,
   2148    0xd3,
   2149    0x1b,
   2150    0xf6,
   2151    0xb5,
   2152    0x85,
   2153    0xff,
   2154    0xae,
   2155    0x5b,
   2156    0x7a,
   2157    0x03,
   2158    0x5b,
   2159    0xf6,
   2160    0xf7,
   2161    0x1c,
   2162    0x35,
   2163    0xfd,
   2164    0xad,
   2165    0x44,
   2166    0xcf,
   2167    0xd2,
   2168    0xd7,
   2169    0x4f,
   2170    0x92,
   2171    0x08,
   2172    0xbe,
   2173    0x25,
   2174    0x8f,
   2175    0xf3,
   2176    0x24,
   2177    0x94,
   2178    0x33,
   2179    0x28,
   2180    0xf6,
   2181    0x72,
   2182    0x2d,
   2183    0x9e,
   2184    0xe1,
   2185    0x00,
   2186    0x3e,
   2187    0x5c,
   2188    0x50,
   2189    0xb1,
   2190    0xdf,
   2191    0x82,
   2192    0xcc,
   2193    0x6d,
   2194    0x24,
   2195    0x1b,
   2196    0x0e,
   2197    0x2a,
   2198    0xe9,
   2199    0xcd,
   2200    0x34,
   2201    0x8b,
   2202    0x1f,
   2203    0xd4,
   2204    0x7e,
   2205    0x92,
   2206    0x67,
   2207    0xaf,
   2208    0xc1,
   2209    0xb2,
   2210    0xae,
   2211    0x91,
   2212    0xee,
   2213    0x51,
   2214    0xd6,
   2215    0xcb,
   2216    0x0e,
   2217    0x31,
   2218    0x79,
   2219    0xab,
   2220    0x10,
   2221    0x42,
   2222    0xa9,
   2223    0x5d,
   2224    0xcf,
   2225    0x6a,
   2226    0x94,
   2227    0x83,
   2228    0xb8,
   2229    0x4b,
   2230    0x4b,
   2231    0x36,
   2232    0xb3,
   2233    0x86,
   2234    0x1a,
   2235    0xa7,
   2236    0x25,
   2237    0x5e,
   2238    0x4c,
   2239    0x02,
   2240    0x78,
   2241    0xba,
   2242    0x36,
   2243    0x04,
   2244    0x65,
   2245    0x0c,
   2246    0x10,
   2247    0xbe,
   2248    0x19,
   2249    0x48,
   2250    0x2f,
   2251    0x23,
   2252    0x17,
   2253    0x1b,
   2254    0x67,
   2255    0x1d,
   2256    0xf1,
   2257    0xcf,
   2258    0x3b,
   2259    0x96,
   2260    0x0c,
   2261    0x07,
   2262    0x43,
   2263    0x01,
   2264    0xcd,
   2265    0x93,
   2266    0xc1,
   2267    0xd1,
   2268    0x76,
   2269    0x03,
   2270    0xd1,
   2271    0x47,
   2272    0xda,
   2273    0xe2,
   2274    0xae,
   2275    0xf8,
   2276    0x37,
   2277    0xa6,
   2278    0x29,
   2279    0x64,
   2280    0xef,
   2281    0x15,
   2282    0xe5,
   2283    0xfb,
   2284    0x4a,
   2285    0xac,
   2286    0x0b,
   2287    0x8c,
   2288    0x1c,
   2289    0xca,
   2290    0xa4,
   2291    0xbe,
   2292    0x75,
   2293    0x4a,
   2294    0xb5,
   2295    0x72,
   2296    0x8a,
   2297    0xe9,
   2298    0x13,
   2299    0x0c,
   2300    0x4c,
   2301    0x7d,
   2302    0x02,
   2303    0x88,
   2304    0x0a,
   2305    0xb9,
   2306    0x47,
   2307    0x2d,
   2308    0x45,
   2309    0x55,
   2310    0x62,
   2311    0x16,
   2312    0xd6,
   2313    0x99,
   2314    0x8b,
   2315    0x86,
   2316    0x82,
   2317    0x28,
   2318    0x3d,
   2319    0x19,
   2320    0xd4,
   2321    0x2a,
   2322    0x90,
   2323    0xd5,
   2324    0xef,
   2325    0x8e,
   2326    0x5d,
   2327    0x32,
   2328    0x76,
   2329    0x7d,
   2330    0xc2,
   2331    0x82,
   2332    0x2c,
   2333    0x6d,
   2334    0xf7,
   2335    0x85,
   2336    0x45,
   2337    0x75,
   2338    0x38,
   2339    0xab,
   2340    0xae,
   2341    0x83,
   2342    0x06,
   2343    0x3e,
   2344    0xd9,
   2345    0xcb,
   2346    0x87,
   2347    0xc2,
   2348    0xd3,
   2349    0x70,
   2350    0xf2,
   2351    0x63,
   2352    0xd5,
   2353    0xfa,
   2354    0xd7,
   2355    0x46,
   2356    0x6d,
   2357    0x84,
   2358    0x99,
   2359    0xeb,
   2360    0x8f,
   2361    0x46,
   2362    0x4a,
   2363    0x70,
   2364    0x25,
   2365    0x12,
   2366    0xb0,
   2367    0xce,
   2368    0xe7,
   2369    0x71,
   2370    0xe9,
   2371    0x13,
   2372    0x0d,
   2373    0x69,
   2374    0x77,
   2375    0x35,
   2376    0xf8,
   2377    0x97,
   2378    0xfd,
   2379    0x03,
   2380    0x6c,
   2381    0xc5,
   2382    0x04,
   2383    0x32,
   2384    0x6c,
   2385    0x3b,
   2386    0x01,
   2387    0x39,
   2388    0x9f,
   2389    0x64,
   2390    0x35,
   2391    0x32,
   2392    0x29,
   2393    0x0f,
   2394    0x95,
   2395    0x8c,
   2396    0x0b,
   2397    0xbd,
   2398    0x90,
   2399    0x06,
   2400    0x5d,
   2401    0xf0,
   2402    0x8b,
   2403    0xab,
   2404    0xbd,
   2405    0x30,
   2406    0xae,
   2407    0xb6,
   2408    0x3b,
   2409    0x84,
   2410    0xc4,
   2411    0x60,
   2412    0x5d,
   2413    0x6c,
   2414    0xa3,
   2415    0x71,
   2416    0x04,
   2417    0x71,
   2418    0x27,
   2419    0xd0,
   2420    0x3a,
   2421    0x72,
   2422    0xd5,
   2423    0x98,
   2424    0xa1,
   2425    0xed,
   2426    0xad,
   2427    0xfe,
   2428    0x70,
   2429    0x7e,
   2430    0x88,
   2431    0x47,
   2432    0x25,
   2433    0xc1,
   2434    0x68,
   2435    0x90,
   2436    0x54,
   2437    0x90,
   2438    0x84,
   2439    0x00,
   2440    0x8d,
   2441    0x39,
   2442    0x1e,
   2443    0x09,
   2444    0x53,
   2445    0xc3,
   2446    0xf3,
   2447    0x6b,
   2448    0xc4,
   2449    0x38,
   2450    0xcd,
   2451    0x08,
   2452    0x5e,
   2453    0xdd,
   2454    0x2d,
   2455    0x93,
   2456    0x4c,
   2457    0xe1,
   2458    0x93,
   2459    0x8c,
   2460    0x35,
   2461    0x7a,
   2462    0x71,
   2463    0x1e,
   2464    0x0d,
   2465    0x4a,
   2466    0x34,
   2467    0x1a,
   2468    0x5b,
   2469    0x0a,
   2470    0x85,
   2471    0xed,
   2472    0x12,
   2473    0xc1,
   2474    0xf4,
   2475    0xe5,
   2476    0x15,
   2477    0x6a,
   2478    0x26,
   2479    0x74,
   2480    0x6d,
   2481    0xdd,
   2482    0xe1,
   2483    0x6d,
   2484    0x82,
   2485    0x6f,
   2486    0x47,
   2487    0x7c,
   2488    0x97,
   2489    0x47,
   2490    0x7e,
   2491    0x0a,
   2492    0x0f,
   2493    0xdf,
   2494    0x65,
   2495    0x53,
   2496    0x14,
   2497    0x3e,
   2498    0x2c,
   2499    0xa3,
   2500    0xa7,
   2501    0x35,
   2502    0xe0,
   2503    0x2e,
   2504    0xcc,
   2505    0xd9,
   2506    0x4b,
   2507    0x27,
   2508    0xd0,
   2509    0x48,
   2510    0x61,
   2511    0xd1,
   2512    0x11,
   2513    0x9d,
   2514    0xd0,
   2515    0xc3,
   2516    0x28,
   2517    0xad,
   2518    0xf3,
   2519    0xf6,
   2520    0x8f,
   2521    0xb0,
   2522    0x94,
   2523    0xb8,
   2524    0x67,
   2525    0x71,
   2526    0x6b,
   2527    0xd7,
   2528    0xdc,
   2529    0x0d,
   2530    0xee,
   2531    0xbb,
   2532    0x10,
   2533    0xb8,
   2534    0x24,
   2535    0x0e,
   2536    0x68,
   2537    0x03,
   2538    0x48,
   2539    0x93,
   2540    0xea,
   2541    0xd8,
   2542    0x2d,
   2543    0x54,
   2544    0xc9,
   2545    0xda,
   2546    0x75,
   2547    0x4c,
   2548    0x46,
   2549    0xc7,
   2550    0xee,
   2551    0xe0,
   2552    0xc3,
   2553    0x7f,
   2554    0xdb,
   2555    0xee,
   2556    0x48,
   2557    0x53,
   2558    0x60,
   2559    0x47,
   2560    0xa6,
   2561    0xfa,
   2562    0x1a,
   2563    0xe4,
   2564    0x9a,
   2565    0x03,
   2566    0x18,
   2567    0xcc,
   2568    0xff,
   2569    0xff,
   2570    0xff,
   2571    0xff,
   2572    0xff,
   2573    0xff,
   2574    0xff,
   2575    0xff,
   2576 };
   2577 
   2578 /* q=(p-1)/2 for prime prime_tls_4096 */
   2579 static const unsigned char subprime_tls_4096_data[] = {
   2580    0x7f,
   2581    0xff,
   2582    0xff,
   2583    0xff,
   2584    0xff,
   2585    0xff,
   2586    0xff,
   2587    0xff,
   2588    0xd6,
   2589    0xfc,
   2590    0x2a,
   2591    0x2c,
   2592    0x51,
   2593    0x5d,
   2594    0xa5,
   2595    0x4d,
   2596    0x57,
   2597    0xee,
   2598    0x2b,
   2599    0x10,
   2600    0x13,
   2601    0x9e,
   2602    0x9e,
   2603    0x78,
   2604    0xec,
   2605    0x5c,
   2606    0xe2,
   2607    0xc1,
   2608    0xe7,
   2609    0x16,
   2610    0x9b,
   2611    0x4a,
   2612    0xd4,
   2613    0xf0,
   2614    0x9b,
   2615    0x20,
   2616    0x8a,
   2617    0x32,
   2618    0x19,
   2619    0xfd,
   2620    0xe6,
   2621    0x49,
   2622    0xce,
   2623    0xe7,
   2624    0x12,
   2625    0x4d,
   2626    0x9f,
   2627    0x7c,
   2628    0xbe,
   2629    0x97,
   2630    0xf1,
   2631    0xb1,
   2632    0xb1,
   2633    0x86,
   2634    0x3a,
   2635    0xec,
   2636    0x7b,
   2637    0x40,
   2638    0xd9,
   2639    0x01,
   2640    0x57,
   2641    0x62,
   2642    0x30,
   2643    0xbd,
   2644    0x69,
   2645    0xef,
   2646    0x8f,
   2647    0x6a,
   2648    0xea,
   2649    0xfe,
   2650    0xb2,
   2651    0xb0,
   2652    0x92,
   2653    0x19,
   2654    0xfa,
   2655    0x8f,
   2656    0xaf,
   2657    0x83,
   2658    0x37,
   2659    0x68,
   2660    0x42,
   2661    0xb1,
   2662    0xb2,
   2663    0xaa,
   2664    0x9e,
   2665    0xf6,
   2666    0x8d,
   2667    0x79,
   2668    0xda,
   2669    0xab,
   2670    0x89,
   2671    0xaf,
   2672    0x3f,
   2673    0xab,
   2674    0xe4,
   2675    0x9a,
   2676    0xcc,
   2677    0x27,
   2678    0x86,
   2679    0x38,
   2680    0x70,
   2681    0x73,
   2682    0x45,
   2683    0xbb,
   2684    0xf1,
   2685    0x53,
   2686    0x44,
   2687    0xed,
   2688    0x79,
   2689    0xf7,
   2690    0xf4,
   2691    0x39,
   2692    0x0e,
   2693    0xf8,
   2694    0xac,
   2695    0x50,
   2696    0x9b,
   2697    0x56,
   2698    0xf3,
   2699    0x9a,
   2700    0x98,
   2701    0x56,
   2702    0x65,
   2703    0x27,
   2704    0xa4,
   2705    0x1d,
   2706    0x3c,
   2707    0xbd,
   2708    0x5e,
   2709    0x05,
   2710    0x58,
   2711    0xc1,
   2712    0x59,
   2713    0x92,
   2714    0x7d,
   2715    0xb0,
   2716    0xe8,
   2717    0x84,
   2718    0x54,
   2719    0xa5,
   2720    0xd9,
   2721    0x64,
   2722    0x71,
   2723    0xfd,
   2724    0xdc,
   2725    0xb5,
   2726    0x6d,
   2727    0x5b,
   2728    0xb0,
   2729    0x6b,
   2730    0xfa,
   2731    0x34,
   2732    0x0e,
   2733    0xa7,
   2734    0xa1,
   2735    0x51,
   2736    0xef,
   2737    0x1c,
   2738    0xa6,
   2739    0xfa,
   2740    0x57,
   2741    0x2b,
   2742    0x76,
   2743    0xf3,
   2744    0xb1,
   2745    0xb9,
   2746    0x5d,
   2747    0x8c,
   2748    0x85,
   2749    0x83,
   2750    0xd3,
   2751    0xe4,
   2752    0x77,
   2753    0x05,
   2754    0x36,
   2755    0xb8,
   2756    0x4f,
   2757    0x01,
   2758    0x7e,
   2759    0x70,
   2760    0xe6,
   2761    0xfb,
   2762    0xf1,
   2763    0x76,
   2764    0x60,
   2765    0x1a,
   2766    0x02,
   2767    0x66,
   2768    0x94,
   2769    0x1a,
   2770    0x17,
   2771    0xb0,
   2772    0xc8,
   2773    0xb9,
   2774    0x7f,
   2775    0x4e,
   2776    0x74,
   2777    0xc2,
   2778    0xc1,
   2779    0xff,
   2780    0xc7,
   2781    0x27,
   2782    0x89,
   2783    0x19,
   2784    0x77,
   2785    0x79,
   2786    0x40,
   2787    0xc1,
   2788    0xe1,
   2789    0xff,
   2790    0x1d,
   2791    0x8d,
   2792    0xa6,
   2793    0x37,
   2794    0xd6,
   2795    0xb9,
   2796    0x9d,
   2797    0xda,
   2798    0xfe,
   2799    0x5e,
   2800    0x17,
   2801    0x61,
   2802    0x10,
   2803    0x02,
   2804    0xe2,
   2805    0xc7,
   2806    0x78,
   2807    0xc1,
   2808    0xbe,
   2809    0x8b,
   2810    0x41,
   2811    0xd9,
   2812    0x63,
   2813    0x79,
   2814    0xa5,
   2815    0x13,
   2816    0x60,
   2817    0xd9,
   2818    0x77,
   2819    0xfd,
   2820    0x44,
   2821    0x35,
   2822    0xa1,
   2823    0x1c,
   2824    0x30,
   2825    0x8f,
   2826    0xe7,
   2827    0xee,
   2828    0x6f,
   2829    0x1a,
   2830    0xad,
   2831    0x9d,
   2832    0xb2,
   2833    0x8c,
   2834    0x81,
   2835    0xad,
   2836    0xde,
   2837    0x1a,
   2838    0x7a,
   2839    0x6f,
   2840    0x7c,
   2841    0xce,
   2842    0x01,
   2843    0x1c,
   2844    0x30,
   2845    0xda,
   2846    0x37,
   2847    0xe4,
   2848    0xeb,
   2849    0x73,
   2850    0x64,
   2851    0x83,
   2852    0xbd,
   2853    0x6c,
   2854    0x8e,
   2855    0x93,
   2856    0x48,
   2857    0xfb,
   2858    0xfb,
   2859    0xf7,
   2860    0x2c,
   2861    0xc6,
   2862    0x58,
   2863    0x7d,
   2864    0x60,
   2865    0xc3,
   2866    0x6c,
   2867    0x8e,
   2868    0x57,
   2869    0x7f,
   2870    0x09,
   2871    0x84,
   2872    0xc2,
   2873    0x89,
   2874    0xc9,
   2875    0x38,
   2876    0x5a,
   2877    0x09,
   2878    0x86,
   2879    0x49,
   2880    0xde,
   2881    0x21,
   2882    0xbc,
   2883    0xa2,
   2884    0x7a,
   2885    0x7e,
   2886    0xa2,
   2887    0x29,
   2888    0x71,
   2889    0x6b,
   2890    0xa6,
   2891    0xe9,
   2892    0xb2,
   2893    0x79,
   2894    0x71,
   2895    0x0f,
   2896    0x38,
   2897    0xfa,
   2898    0xa5,
   2899    0xff,
   2900    0xae,
   2901    0x57,
   2902    0x41,
   2903    0x55,
   2904    0xce,
   2905    0x4e,
   2906    0xfb,
   2907    0x4f,
   2908    0x74,
   2909    0x36,
   2910    0x95,
   2911    0xe2,
   2912    0x91,
   2913    0x1b,
   2914    0x1d,
   2915    0x06,
   2916    0xd5,
   2917    0xe2,
   2918    0x90,
   2919    0xcb,
   2920    0xcd,
   2921    0x86,
   2922    0xf5,
   2923    0x6d,
   2924    0x0e,
   2925    0xdf,
   2926    0xcd,
   2927    0x21,
   2928    0x6a,
   2929    0xe2,
   2930    0x24,
   2931    0x27,
   2932    0x05,
   2933    0x5e,
   2934    0x68,
   2935    0x35,
   2936    0xfd,
   2937    0x29,
   2938    0xee,
   2939    0xf7,
   2940    0x9e,
   2941    0x0d,
   2942    0x90,
   2943    0x77,
   2944    0x1f,
   2945    0xea,
   2946    0xce,
   2947    0xbe,
   2948    0x12,
   2949    0xf2,
   2950    0x0e,
   2951    0x95,
   2952    0xb3,
   2953    0x4f,
   2954    0x0f,
   2955    0x78,
   2956    0xb7,
   2957    0x37,
   2958    0xa9,
   2959    0x61,
   2960    0x8b,
   2961    0x26,
   2962    0xfa,
   2963    0x7d,
   2964    0xbc,
   2965    0x98,
   2966    0x74,
   2967    0xf2,
   2968    0x72,
   2969    0xc4,
   2970    0x2b,
   2971    0xdb,
   2972    0x56,
   2973    0x3e,
   2974    0xaf,
   2975    0xa1,
   2976    0x6b,
   2977    0x4f,
   2978    0xb6,
   2979    0x8c,
   2980    0x3b,
   2981    0xb1,
   2982    0xe7,
   2983    0x8e,
   2984    0xaa,
   2985    0x81,
   2986    0xa0,
   2987    0x02,
   2988    0x43,
   2989    0xfa,
   2990    0xad,
   2991    0xd2,
   2992    0xbf,
   2993    0x18,
   2994    0xe6,
   2995    0x3d,
   2996    0x38,
   2997    0x9a,
   2998    0xe4,
   2999    0x43,
   3000    0x77,
   3001    0xda,
   3002    0x18,
   3003    0xc5,
   3004    0x76,
   3005    0xb5,
   3006    0x0f,
   3007    0x00,
   3008    0x96,
   3009    0xcf,
   3010    0x34,
   3011    0x19,
   3012    0x54,
   3013    0x83,
   3014    0xb0,
   3015    0x05,
   3016    0x48,
   3017    0xc0,
   3018    0x98,
   3019    0x62,
   3020    0x36,
   3021    0xe3,
   3022    0xbc,
   3023    0x7c,
   3024    0xb8,
   3025    0xd6,
   3026    0x80,
   3027    0x1c,
   3028    0x04,
   3029    0x94,
   3030    0xcc,
   3031    0xd1,
   3032    0x99,
   3033    0xe5,
   3034    0xc5,
   3035    0xbd,
   3036    0x0d,
   3037    0x0e,
   3038    0xdc,
   3039    0x9e,
   3040    0xb8,
   3041    0xa0,
   3042    0x00,
   3043    0x1e,
   3044    0x15,
   3045    0x27,
   3046    0x67,
   3047    0x54,
   3048    0xfc,
   3049    0xc6,
   3050    0x85,
   3051    0x66,
   3052    0x05,
   3053    0x41,
   3054    0x48,
   3055    0xe6,
   3056    0xe7,
   3057    0x64,
   3058    0xbe,
   3059    0xe7,
   3060    0xc7,
   3061    0x64,
   3062    0xda,
   3063    0xad,
   3064    0x3f,
   3065    0xc4,
   3066    0x52,
   3067    0x35,
   3068    0xa6,
   3069    0xda,
   3070    0xd4,
   3071    0x28,
   3072    0xfa,
   3073    0x20,
   3074    0xc1,
   3075    0x70,
   3076    0xe3,
   3077    0x45,
   3078    0x00,
   3079    0x3f,
   3080    0x2f,
   3081    0x32,
   3082    0xaf,
   3083    0xb5,
   3084    0x7f,
   3085    0xff,
   3086    0xff,
   3087    0xff,
   3088    0xff,
   3089    0xff,
   3090    0xff,
   3091    0xff,
   3092 };
   3093 
   3094 /* q=(p-1)/2 for prime prime_ike_6144 */
   3095 static const unsigned char subprime_ike_6144_data[] = {
   3096    0x7f,
   3097    0xff,
   3098    0xff,
   3099    0xff,
   3100    0xff,
   3101    0xff,
   3102    0xff,
   3103    0xff,
   3104    0xe4,
   3105    0x87,
   3106    0xed,
   3107    0x51,
   3108    0x10,
   3109    0xb4,
   3110    0x61,
   3111    0x1a,
   3112    0x62,
   3113    0x63,
   3114    0x31,
   3115    0x45,
   3116    0xc0,
   3117    0x6e,
   3118    0x0e,
   3119    0x68,
   3120    0x94,
   3121    0x81,
   3122    0x27,
   3123    0x04,
   3124    0x45,
   3125    0x33,
   3126    0xe6,
   3127    0x3a,
   3128    0x01,
   3129    0x05,
   3130    0xdf,
   3131    0x53,
   3132    0x1d,
   3133    0x89,
   3134    0xcd,
   3135    0x91,
   3136    0x28,
   3137    0xa5,
   3138    0x04,
   3139    0x3c,
   3140    0xc7,
   3141    0x1a,
   3142    0x02,
   3143    0x6e,
   3144    0xf7,
   3145    0xca,
   3146    0x8c,
   3147    0xd9,
   3148    0xe6,
   3149    0x9d,
   3150    0x21,
   3151    0x8d,
   3152    0x98,
   3153    0x15,
   3154    0x85,
   3155    0x36,
   3156    0xf9,
   3157    0x2f,
   3158    0x8a,
   3159    0x1b,
   3160    0xa7,
   3161    0xf0,
   3162    0x9a,
   3163    0xb6,
   3164    0xb6,
   3165    0xa8,
   3166    0xe1,
   3167    0x22,
   3168    0xf2,
   3169    0x42,
   3170    0xda,
   3171    0xbb,
   3172    0x31,
   3173    0x2f,
   3174    0x3f,
   3175    0x63,
   3176    0x7a,
   3177    0x26,
   3178    0x21,
   3179    0x74,
   3180    0xd3,
   3181    0x1b,
   3182    0xf6,
   3183    0xb5,
   3184    0x85,
   3185    0xff,
   3186    0xae,
   3187    0x5b,
   3188    0x7a,
   3189    0x03,
   3190    0x5b,
   3191    0xf6,
   3192    0xf7,
   3193    0x1c,
   3194    0x35,
   3195    0xfd,
   3196    0xad,
   3197    0x44,
   3198    0xcf,
   3199    0xd2,
   3200    0xd7,
   3201    0x4f,
   3202    0x92,
   3203    0x08,
   3204    0xbe,
   3205    0x25,
   3206    0x8f,
   3207    0xf3,
   3208    0x24,
   3209    0x94,
   3210    0x33,
   3211    0x28,
   3212    0xf6,
   3213    0x72,
   3214    0x2d,
   3215    0x9e,
   3216    0xe1,
   3217    0x00,
   3218    0x3e,
   3219    0x5c,
   3220    0x50,
   3221    0xb1,
   3222    0xdf,
   3223    0x82,
   3224    0xcc,
   3225    0x6d,
   3226    0x24,
   3227    0x1b,
   3228    0x0e,
   3229    0x2a,
   3230    0xe9,
   3231    0xcd,
   3232    0x34,
   3233    0x8b,
   3234    0x1f,
   3235    0xd4,
   3236    0x7e,
   3237    0x92,
   3238    0x67,
   3239    0xaf,
   3240    0xc1,
   3241    0xb2,
   3242    0xae,
   3243    0x91,
   3244    0xee,
   3245    0x51,
   3246    0xd6,
   3247    0xcb,
   3248    0x0e,
   3249    0x31,
   3250    0x79,
   3251    0xab,
   3252    0x10,
   3253    0x42,
   3254    0xa9,
   3255    0x5d,
   3256    0xcf,
   3257    0x6a,
   3258    0x94,
   3259    0x83,
   3260    0xb8,
   3261    0x4b,
   3262    0x4b,
   3263    0x36,
   3264    0xb3,
   3265    0x86,
   3266    0x1a,
   3267    0xa7,
   3268    0x25,
   3269    0x5e,
   3270    0x4c,
   3271    0x02,
   3272    0x78,
   3273    0xba,
   3274    0x36,
   3275    0x04,
   3276    0x65,
   3277    0x0c,
   3278    0x10,
   3279    0xbe,
   3280    0x19,
   3281    0x48,
   3282    0x2f,
   3283    0x23,
   3284    0x17,
   3285    0x1b,
   3286    0x67,
   3287    0x1d,
   3288    0xf1,
   3289    0xcf,
   3290    0x3b,
   3291    0x96,
   3292    0x0c,
   3293    0x07,
   3294    0x43,
   3295    0x01,
   3296    0xcd,
   3297    0x93,
   3298    0xc1,
   3299    0xd1,
   3300    0x76,
   3301    0x03,
   3302    0xd1,
   3303    0x47,
   3304    0xda,
   3305    0xe2,
   3306    0xae,
   3307    0xf8,
   3308    0x37,
   3309    0xa6,
   3310    0x29,
   3311    0x64,
   3312    0xef,
   3313    0x15,
   3314    0xe5,
   3315    0xfb,
   3316    0x4a,
   3317    0xac,
   3318    0x0b,
   3319    0x8c,
   3320    0x1c,
   3321    0xca,
   3322    0xa4,
   3323    0xbe,
   3324    0x75,
   3325    0x4a,
   3326    0xb5,
   3327    0x72,
   3328    0x8a,
   3329    0xe9,
   3330    0x13,
   3331    0x0c,
   3332    0x4c,
   3333    0x7d,
   3334    0x02,
   3335    0x88,
   3336    0x0a,
   3337    0xb9,
   3338    0x47,
   3339    0x2d,
   3340    0x45,
   3341    0x55,
   3342    0x62,
   3343    0x16,
   3344    0xd6,
   3345    0x99,
   3346    0x8b,
   3347    0x86,
   3348    0x82,
   3349    0x28,
   3350    0x3d,
   3351    0x19,
   3352    0xd4,
   3353    0x2a,
   3354    0x90,
   3355    0xd5,
   3356    0xef,
   3357    0x8e,
   3358    0x5d,
   3359    0x32,
   3360    0x76,
   3361    0x7d,
   3362    0xc2,
   3363    0x82,
   3364    0x2c,
   3365    0x6d,
   3366    0xf7,
   3367    0x85,
   3368    0x45,
   3369    0x75,
   3370    0x38,
   3371    0xab,
   3372    0xae,
   3373    0x83,
   3374    0x06,
   3375    0x3e,
   3376    0xd9,
   3377    0xcb,
   3378    0x87,
   3379    0xc2,
   3380    0xd3,
   3381    0x70,
   3382    0xf2,
   3383    0x63,
   3384    0xd5,
   3385    0xfa,
   3386    0xd7,
   3387    0x46,
   3388    0x6d,
   3389    0x84,
   3390    0x99,
   3391    0xeb,
   3392    0x8f,
   3393    0x46,
   3394    0x4a,
   3395    0x70,
   3396    0x25,
   3397    0x12,
   3398    0xb0,
   3399    0xce,
   3400    0xe7,
   3401    0x71,
   3402    0xe9,
   3403    0x13,
   3404    0x0d,
   3405    0x69,
   3406    0x77,
   3407    0x35,
   3408    0xf8,
   3409    0x97,
   3410    0xfd,
   3411    0x03,
   3412    0x6c,
   3413    0xc5,
   3414    0x04,
   3415    0x32,
   3416    0x6c,
   3417    0x3b,
   3418    0x01,
   3419    0x39,
   3420    0x9f,
   3421    0x64,
   3422    0x35,
   3423    0x32,
   3424    0x29,
   3425    0x0f,
   3426    0x95,
   3427    0x8c,
   3428    0x0b,
   3429    0xbd,
   3430    0x90,
   3431    0x06,
   3432    0x5d,
   3433    0xf0,
   3434    0x8b,
   3435    0xab,
   3436    0xbd,
   3437    0x30,
   3438    0xae,
   3439    0xb6,
   3440    0x3b,
   3441    0x84,
   3442    0xc4,
   3443    0x60,
   3444    0x5d,
   3445    0x6c,
   3446    0xa3,
   3447    0x71,
   3448    0x04,
   3449    0x71,
   3450    0x27,
   3451    0xd0,
   3452    0x3a,
   3453    0x72,
   3454    0xd5,
   3455    0x98,
   3456    0xa1,
   3457    0xed,
   3458    0xad,
   3459    0xfe,
   3460    0x70,
   3461    0x7e,
   3462    0x88,
   3463    0x47,
   3464    0x25,
   3465    0xc1,
   3466    0x68,
   3467    0x90,
   3468    0x54,
   3469    0x90,
   3470    0x84,
   3471    0x00,
   3472    0x8d,
   3473    0x39,
   3474    0x1e,
   3475    0x09,
   3476    0x53,
   3477    0xc3,
   3478    0xf3,
   3479    0x6b,
   3480    0xc4,
   3481    0x38,
   3482    0xcd,
   3483    0x08,
   3484    0x5e,
   3485    0xdd,
   3486    0x2d,
   3487    0x93,
   3488    0x4c,
   3489    0xe1,
   3490    0x93,
   3491    0x8c,
   3492    0x35,
   3493    0x7a,
   3494    0x71,
   3495    0x1e,
   3496    0x0d,
   3497    0x4a,
   3498    0x34,
   3499    0x1a,
   3500    0x5b,
   3501    0x0a,
   3502    0x85,
   3503    0xed,
   3504    0x12,
   3505    0xc1,
   3506    0xf4,
   3507    0xe5,
   3508    0x15,
   3509    0x6a,
   3510    0x26,
   3511    0x74,
   3512    0x6d,
   3513    0xdd,
   3514    0xe1,
   3515    0x6d,
   3516    0x82,
   3517    0x6f,
   3518    0x47,
   3519    0x7c,
   3520    0x97,
   3521    0x47,
   3522    0x7e,
   3523    0x0a,
   3524    0x0f,
   3525    0xdf,
   3526    0x65,
   3527    0x53,
   3528    0x14,
   3529    0x3e,
   3530    0x2c,
   3531    0xa3,
   3532    0xa7,
   3533    0x35,
   3534    0xe0,
   3535    0x2e,
   3536    0xcc,
   3537    0xd9,
   3538    0x4b,
   3539    0x27,
   3540    0xd0,
   3541    0x48,
   3542    0x61,
   3543    0xd1,
   3544    0x11,
   3545    0x9d,
   3546    0xd0,
   3547    0xc3,
   3548    0x28,
   3549    0xad,
   3550    0xf3,
   3551    0xf6,
   3552    0x8f,
   3553    0xb0,
   3554    0x94,
   3555    0xb8,
   3556    0x67,
   3557    0x71,
   3558    0x6b,
   3559    0xd7,
   3560    0xdc,
   3561    0x0d,
   3562    0xee,
   3563    0xbb,
   3564    0x10,
   3565    0xb8,
   3566    0x24,
   3567    0x0e,
   3568    0x68,
   3569    0x03,
   3570    0x48,
   3571    0x93,
   3572    0xea,
   3573    0xd8,
   3574    0x2d,
   3575    0x54,
   3576    0xc9,
   3577    0xda,
   3578    0x75,
   3579    0x4c,
   3580    0x46,
   3581    0xc7,
   3582    0xee,
   3583    0xe0,
   3584    0xc3,
   3585    0x7f,
   3586    0xdb,
   3587    0xee,
   3588    0x48,
   3589    0x53,
   3590    0x60,
   3591    0x47,
   3592    0xa6,
   3593    0xfa,
   3594    0x1a,
   3595    0xe4,
   3596    0x9a,
   3597    0x01,
   3598    0x42,
   3599    0x49,
   3600    0x1b,
   3601    0x61,
   3602    0xfd,
   3603    0x5a,
   3604    0x69,
   3605    0x3e,
   3606    0x38,
   3607    0x13,
   3608    0x60,
   3609    0xea,
   3610    0x6e,
   3611    0x59,
   3612    0x30,
   3613    0x13,
   3614    0x23,
   3615    0x6f,
   3616    0x64,
   3617    0xba,
   3618    0x8f,
   3619    0x3b,
   3620    0x1e,
   3621    0xdd,
   3622    0x1b,
   3623    0xde,
   3624    0xfc,
   3625    0x7f,
   3626    0xca,
   3627    0x03,
   3628    0x56,
   3629    0xcf,
   3630    0x29,
   3631    0x87,
   3632    0x72,
   3633    0xed,
   3634    0x9c,
   3635    0x17,
   3636    0xa0,
   3637    0x98,
   3638    0x00,
   3639    0xd7,
   3640    0x58,
   3641    0x35,
   3642    0x29,
   3643    0xf6,
   3644    0xc8,
   3645    0x13,
   3646    0xec,
   3647    0x18,
   3648    0x8b,
   3649    0xcb,
   3650    0x93,
   3651    0xd8,
   3652    0x43,
   3653    0x2d,
   3654    0x44,
   3655    0x8c,
   3656    0x6d,
   3657    0x1f,
   3658    0x6d,
   3659    0xf5,
   3660    0xe7,
   3661    0xcd,
   3662    0x8a,
   3663    0x76,
   3664    0xa2,
   3665    0x67,
   3666    0x36,
   3667    0x5d,
   3668    0x67,
   3669    0x6a,
   3670    0x5d,
   3671    0x8d,
   3672    0xed,
   3673    0xbf,
   3674    0x8a,
   3675    0x23,
   3676    0xf3,
   3677    0x66,
   3678    0x12,
   3679    0xa5,
   3680    0x99,
   3681    0x90,
   3682    0x28,
   3683    0xa8,
   3684    0x95,
   3685    0xeb,
   3686    0xd7,
   3687    0xa1,
   3688    0x37,
   3689    0xdc,
   3690    0x7a,
   3691    0x00,
   3692    0x9b,
   3693    0xc6,
   3694    0x69,
   3695    0x5f,
   3696    0xac,
   3697    0xc1,
   3698    0xe5,
   3699    0x00,
   3700    0xe3,
   3701    0x25,
   3702    0xc9,
   3703    0x76,
   3704    0x78,
   3705    0x19,
   3706    0x75,
   3707    0x0a,
   3708    0xe8,
   3709    0xb9,
   3710    0x0e,
   3711    0x81,
   3712    0xfa,
   3713    0x41,
   3714    0x6b,
   3715    0xe7,
   3716    0x37,
   3717    0x3a,
   3718    0x7f,
   3719    0x7b,
   3720    0x6a,
   3721    0xaf,
   3722    0x38,
   3723    0x17,
   3724    0xa3,
   3725    0x4c,
   3726    0x06,
   3727    0x41,
   3728    0x5a,
   3729    0xd4,
   3730    0x20,
   3731    0x18,
   3732    0xc8,
   3733    0x05,
   3734    0x8e,
   3735    0x4f,
   3736    0x2c,
   3737    0xf3,
   3738    0xe4,
   3739    0xbf,
   3740    0xdf,
   3741    0x63,
   3742    0xf4,
   3743    0x79,
   3744    0x91,
   3745    0xd4,
   3746    0xbd,
   3747    0x3f,
   3748    0x1b,
   3749    0x66,
   3750    0x44,
   3751    0x5f,
   3752    0x07,
   3753    0x8e,
   3754    0xa2,
   3755    0xdb,
   3756    0xff,
   3757    0xac,
   3758    0x2d,
   3759    0x62,
   3760    0xa5,
   3761    0xea,
   3762    0x03,
   3763    0xd9,
   3764    0x15,
   3765    0xa0,
   3766    0xaa,
   3767    0x55,
   3768    0x66,
   3769    0x47,
   3770    0xb6,
   3771    0xbf,
   3772    0x5f,
   3773    0xa4,
   3774    0x70,
   3775    0xec,
   3776    0x0a,
   3777    0x66,
   3778    0x2f,
   3779    0x69,
   3780    0x07,
   3781    0xc0,
   3782    0x1b,
   3783    0xf0,
   3784    0x53,
   3785    0xcb,
   3786    0x8a,
   3787    0xf7,
   3788    0x79,
   3789    0x4d,
   3790    0xf1,
   3791    0x94,
   3792    0x03,
   3793    0x50,
   3794    0xea,
   3795    0xc5,
   3796    0xdb,
   3797    0xe2,
   3798    0xed,
   3799    0x3b,
   3800    0x7a,
   3801    0xa8,
   3802    0x55,
   3803    0x1e,
   3804    0xc5,
   3805    0x0f,
   3806    0xdf,
   3807    0xf8,
   3808    0x75,
   3809    0x8c,
   3810    0xe6,
   3811    0x58,
   3812    0xd1,
   3813    0x89,
   3814    0xea,
   3815    0xae,
   3816    0x6d,
   3817    0x2b,
   3818    0x64,
   3819    0xf6,
   3820    0x17,
   3821    0x79,
   3822    0x4b,
   3823    0x19,
   3824    0x1c,
   3825    0x3f,
   3826    0xf4,
   3827    0x6b,
   3828    0xb7,
   3829    0x1e,
   3830    0x02,
   3831    0x34,
   3832    0x02,
   3833    0x1f,
   3834    0x47,
   3835    0xb3,
   3836    0x1f,
   3837    0xa4,
   3838    0x30,
   3839    0x77,
   3840    0x09,
   3841    0x5f,
   3842    0x96,
   3843    0xad,
   3844    0x85,
   3845    0xba,
   3846    0x3a,
   3847    0x6b,
   3848    0x73,
   3849    0x4a,
   3850    0x7c,
   3851    0x8f,
   3852    0x36,
   3853    0xe6,
   3854    0x20,
   3855    0x12,
   3856    0x7f,
   3857    0xff,
   3858    0xff,
   3859    0xff,
   3860    0xff,
   3861    0xff,
   3862    0xff,
   3863    0xff,
   3864 };
   3865 
   3866 /* q=(p-1)/2 for prime prime_tls_6144 */
   3867 static const unsigned char subprime_tls_6144_data[] = {
   3868    0x7f,
   3869    0xff,
   3870    0xff,
   3871    0xff,
   3872    0xff,
   3873    0xff,
   3874    0xff,
   3875    0xff,
   3876    0xd6,
   3877    0xfc,
   3878    0x2a,
   3879    0x2c,
   3880    0x51,
   3881    0x5d,
   3882    0xa5,
   3883    0x4d,
   3884    0x57,
   3885    0xee,
   3886    0x2b,
   3887    0x10,
   3888    0x13,
   3889    0x9e,
   3890    0x9e,
   3891    0x78,
   3892    0xec,
   3893    0x5c,
   3894    0xe2,
   3895    0xc1,
   3896    0xe7,
   3897    0x16,
   3898    0x9b,
   3899    0x4a,
   3900    0xd4,
   3901    0xf0,
   3902    0x9b,
   3903    0x20,
   3904    0x8a,
   3905    0x32,
   3906    0x19,
   3907    0xfd,
   3908    0xe6,
   3909    0x49,
   3910    0xce,
   3911    0xe7,
   3912    0x12,
   3913    0x4d,
   3914    0x9f,
   3915    0x7c,
   3916    0xbe,
   3917    0x97,
   3918    0xf1,
   3919    0xb1,
   3920    0xb1,
   3921    0x86,
   3922    0x3a,
   3923    0xec,
   3924    0x7b,
   3925    0x40,
   3926    0xd9,
   3927    0x01,
   3928    0x57,
   3929    0x62,
   3930    0x30,
   3931    0xbd,
   3932    0x69,
   3933    0xef,
   3934    0x8f,
   3935    0x6a,
   3936    0xea,
   3937    0xfe,
   3938    0xb2,
   3939    0xb0,
   3940    0x92,
   3941    0x19,
   3942    0xfa,
   3943    0x8f,
   3944    0xaf,
   3945    0x83,
   3946    0x37,
   3947    0x68,
   3948    0x42,
   3949    0xb1,
   3950    0xb2,
   3951    0xaa,
   3952    0x9e,
   3953    0xf6,
   3954    0x8d,
   3955    0x79,
   3956    0xda,
   3957    0xab,
   3958    0x89,
   3959    0xaf,
   3960    0x3f,
   3961    0xab,
   3962    0xe4,
   3963    0x9a,
   3964    0xcc,
   3965    0x27,
   3966    0x86,
   3967    0x38,
   3968    0x70,
   3969    0x73,
   3970    0x45,
   3971    0xbb,
   3972    0xf1,
   3973    0x53,
   3974    0x44,
   3975    0xed,
   3976    0x79,
   3977    0xf7,
   3978    0xf4,
   3979    0x39,
   3980    0x0e,
   3981    0xf8,
   3982    0xac,
   3983    0x50,
   3984    0x9b,
   3985    0x56,
   3986    0xf3,
   3987    0x9a,
   3988    0x98,
   3989    0x56,
   3990    0x65,
   3991    0x27,
   3992    0xa4,
   3993    0x1d,
   3994    0x3c,
   3995    0xbd,
   3996    0x5e,
   3997    0x05,
   3998    0x58,
   3999    0xc1,
   4000    0x59,
   4001    0x92,
   4002    0x7d,
   4003    0xb0,
   4004    0xe8,
   4005    0x84,
   4006    0x54,
   4007    0xa5,
   4008    0xd9,
   4009    0x64,
   4010    0x71,
   4011    0xfd,
   4012    0xdc,
   4013    0xb5,
   4014    0x6d,
   4015    0x5b,
   4016    0xb0,
   4017    0x6b,
   4018    0xfa,
   4019    0x34,
   4020    0x0e,
   4021    0xa7,
   4022    0xa1,
   4023    0x51,
   4024    0xef,
   4025    0x1c,
   4026    0xa6,
   4027    0xfa,
   4028    0x57,
   4029    0x2b,
   4030    0x76,
   4031    0xf3,
   4032    0xb1,
   4033    0xb9,
   4034    0x5d,
   4035    0x8c,
   4036    0x85,
   4037    0x83,
   4038    0xd3,
   4039    0xe4,
   4040    0x77,
   4041    0x05,
   4042    0x36,
   4043    0xb8,
   4044    0x4f,
   4045    0x01,
   4046    0x7e,
   4047    0x70,
   4048    0xe6,
   4049    0xfb,
   4050    0xf1,
   4051    0x76,
   4052    0x60,
   4053    0x1a,
   4054    0x02,
   4055    0x66,
   4056    0x94,
   4057    0x1a,
   4058    0x17,
   4059    0xb0,
   4060    0xc8,
   4061    0xb9,
   4062    0x7f,
   4063    0x4e,
   4064    0x74,
   4065    0xc2,
   4066    0xc1,
   4067    0xff,
   4068    0xc7,
   4069    0x27,
   4070    0x89,
   4071    0x19,
   4072    0x77,
   4073    0x79,
   4074    0x40,
   4075    0xc1,
   4076    0xe1,
   4077    0xff,
   4078    0x1d,
   4079    0x8d,
   4080    0xa6,
   4081    0x37,
   4082    0xd6,
   4083    0xb9,
   4084    0x9d,
   4085    0xda,
   4086    0xfe,
   4087    0x5e,
   4088    0x17,
   4089    0x61,
   4090    0x10,
   4091    0x02,
   4092    0xe2,
   4093    0xc7,
   4094    0x78,
   4095    0xc1,
   4096    0xbe,
   4097    0x8b,
   4098    0x41,
   4099    0xd9,
   4100    0x63,
   4101    0x79,
   4102    0xa5,
   4103    0x13,
   4104    0x60,
   4105    0xd9,
   4106    0x77,
   4107    0xfd,
   4108    0x44,
   4109    0x35,
   4110    0xa1,
   4111    0x1c,
   4112    0x30,
   4113    0x8f,
   4114    0xe7,
   4115    0xee,
   4116    0x6f,
   4117    0x1a,
   4118    0xad,
   4119    0x9d,
   4120    0xb2,
   4121    0x8c,
   4122    0x81,
   4123    0xad,
   4124    0xde,
   4125    0x1a,
   4126    0x7a,
   4127    0x6f,
   4128    0x7c,
   4129    0xce,
   4130    0x01,
   4131    0x1c,
   4132    0x30,
   4133    0xda,
   4134    0x37,
   4135    0xe4,
   4136    0xeb,
   4137    0x73,
   4138    0x64,
   4139    0x83,
   4140    0xbd,
   4141    0x6c,
   4142    0x8e,
   4143    0x93,
   4144    0x48,
   4145    0xfb,
   4146    0xfb,
   4147    0xf7,
   4148    0x2c,
   4149    0xc6,
   4150    0x58,
   4151    0x7d,
   4152    0x60,
   4153    0xc3,
   4154    0x6c,
   4155    0x8e,
   4156    0x57,
   4157    0x7f,
   4158    0x09,
   4159    0x84,
   4160    0xc2,
   4161    0x89,
   4162    0xc9,
   4163    0x38,
   4164    0x5a,
   4165    0x09,
   4166    0x86,
   4167    0x49,
   4168    0xde,
   4169    0x21,
   4170    0xbc,
   4171    0xa2,
   4172    0x7a,
   4173    0x7e,
   4174    0xa2,
   4175    0x29,
   4176    0x71,
   4177    0x6b,
   4178    0xa6,
   4179    0xe9,
   4180    0xb2,
   4181    0x79,
   4182    0x71,
   4183    0x0f,
   4184    0x38,
   4185    0xfa,
   4186    0xa5,
   4187    0xff,
   4188    0xae,
   4189    0x57,
   4190    0x41,
   4191    0x55,
   4192    0xce,
   4193    0x4e,
   4194    0xfb,
   4195    0x4f,
   4196    0x74,
   4197    0x36,
   4198    0x95,
   4199    0xe2,
   4200    0x91,
   4201    0x1b,
   4202    0x1d,
   4203    0x06,
   4204    0xd5,
   4205    0xe2,
   4206    0x90,
   4207    0xcb,
   4208    0xcd,
   4209    0x86,
   4210    0xf5,
   4211    0x6d,
   4212    0x0e,
   4213    0xdf,
   4214    0xcd,
   4215    0x21,
   4216    0x6a,
   4217    0xe2,
   4218    0x24,
   4219    0x27,
   4220    0x05,
   4221    0x5e,
   4222    0x68,
   4223    0x35,
   4224    0xfd,
   4225    0x29,
   4226    0xee,
   4227    0xf7,
   4228    0x9e,
   4229    0x0d,
   4230    0x90,
   4231    0x77,
   4232    0x1f,
   4233    0xea,
   4234    0xce,
   4235    0xbe,
   4236    0x12,
   4237    0xf2,
   4238    0x0e,
   4239    0x95,
   4240    0xb3,
   4241    0x4f,
   4242    0x0f,
   4243    0x78,
   4244    0xb7,
   4245    0x37,
   4246    0xa9,
   4247    0x61,
   4248    0x8b,
   4249    0x26,
   4250    0xfa,
   4251    0x7d,
   4252    0xbc,
   4253    0x98,
   4254    0x74,
   4255    0xf2,
   4256    0x72,
   4257    0xc4,
   4258    0x2b,
   4259    0xdb,
   4260    0x56,
   4261    0x3e,
   4262    0xaf,
   4263    0xa1,
   4264    0x6b,
   4265    0x4f,
   4266    0xb6,
   4267    0x8c,
   4268    0x3b,
   4269    0xb1,
   4270    0xe7,
   4271    0x8e,
   4272    0xaa,
   4273    0x81,
   4274    0xa0,
   4275    0x02,
   4276    0x43,
   4277    0xfa,
   4278    0xad,
   4279    0xd2,
   4280    0xbf,
   4281    0x18,
   4282    0xe6,
   4283    0x3d,
   4284    0x38,
   4285    0x9a,
   4286    0xe4,
   4287    0x43,
   4288    0x77,
   4289    0xda,
   4290    0x18,
   4291    0xc5,
   4292    0x76,
   4293    0xb5,
   4294    0x0f,
   4295    0x00,
   4296    0x96,
   4297    0xcf,
   4298    0x34,
   4299    0x19,
   4300    0x54,
   4301    0x83,
   4302    0xb0,
   4303    0x05,
   4304    0x48,
   4305    0xc0,
   4306    0x98,
   4307    0x62,
   4308    0x36,
   4309    0xe3,
   4310    0xbc,
   4311    0x7c,
   4312    0xb8,
   4313    0xd6,
   4314    0x80,
   4315    0x1c,
   4316    0x04,
   4317    0x94,
   4318    0xcc,
   4319    0xd1,
   4320    0x99,
   4321    0xe5,
   4322    0xc5,
   4323    0xbd,
   4324    0x0d,
   4325    0x0e,
   4326    0xdc,
   4327    0x9e,
   4328    0xb8,
   4329    0xa0,
   4330    0x00,
   4331    0x1e,
   4332    0x15,
   4333    0x27,
   4334    0x67,
   4335    0x54,
   4336    0xfc,
   4337    0xc6,
   4338    0x85,
   4339    0x66,
   4340    0x05,
   4341    0x41,
   4342    0x48,
   4343    0xe6,
   4344    0xe7,
   4345    0x64,
   4346    0xbe,
   4347    0xe7,
   4348    0xc7,
   4349    0x64,
   4350    0xda,
   4351    0xad,
   4352    0x3f,
   4353    0xc4,
   4354    0x52,
   4355    0x35,
   4356    0xa6,
   4357    0xda,
   4358    0xd4,
   4359    0x28,
   4360    0xfa,
   4361    0x20,
   4362    0xc1,
   4363    0x70,
   4364    0xe3,
   4365    0x45,
   4366    0x00,
   4367    0x3f,
   4368    0x2f,
   4369    0x06,
   4370    0xec,
   4371    0x81,
   4372    0x05,
   4373    0xfe,
   4374    0xb2,
   4375    0x5b,
   4376    0x22,
   4377    0x81,
   4378    0xb6,
   4379    0x3d,
   4380    0x27,
   4381    0x33,
   4382    0xbe,
   4383    0x96,
   4384    0x1c,
   4385    0x29,
   4386    0x95,
   4387    0x1d,
   4388    0x11,
   4389    0xdd,
   4390    0x22,
   4391    0x21,
   4392    0x65,
   4393    0x7a,
   4394    0x9f,
   4395    0x53,
   4396    0x1d,
   4397    0xda,
   4398    0x2a,
   4399    0x19,
   4400    0x4d,
   4401    0xbb,
   4402    0x12,
   4403    0x64,
   4404    0x48,
   4405    0xbd,
   4406    0xee,
   4407    0xb2,
   4408    0x58,
   4409    0xe0,
   4410    0x7e,
   4411    0xa6,
   4412    0x59,
   4413    0xc7,
   4414    0x46,
   4415    0x19,
   4416    0xa6,
   4417    0x38,
   4418    0x0e,
   4419    0x1d,
   4420    0x66,
   4421    0xd6,
   4422    0x83,
   4423    0x2b,
   4424    0xfe,
   4425    0x67,
   4426    0xf6,
   4427    0x38,
   4428    0xcd,
   4429    0x8f,
   4430    0xae,
   4431    0x1f,
   4432    0x27,
   4433    0x23,
   4434    0x02,
   4435    0x0f,
   4436    0x9c,
   4437    0x40,
   4438    0xa3,
   4439    0xfd,
   4440    0xa6,
   4441    0x7e,
   4442    0xda,
   4443    0x3b,
   4444    0xd2,
   4445    0x92,
   4446    0x38,
   4447    0xfb,
   4448    0xd4,
   4449    0xd4,
   4450    0xb4,
   4451    0x88,
   4452    0x5c,
   4453    0x2a,
   4454    0x99,
   4455    0x17,
   4456    0x6d,
   4457    0xb1,
   4458    0xa0,
   4459    0x6c,
   4460    0x50,
   4461    0x07,
   4462    0x78,
   4463    0x49,
   4464    0x1a,
   4465    0x82,
   4466    0x88,
   4467    0xf1,
   4468    0x85,
   4469    0x5f,
   4470    0x60,
   4471    0xff,
   4472    0xfc,
   4473    0xf1,
   4474    0xd1,
   4475    0x37,
   4476    0x3f,
   4477    0xd9,
   4478    0x4f,
   4479    0xc6,
   4480    0x0c,
   4481    0x18,
   4482    0x11,
   4483    0xe1,
   4484    0xac,
   4485    0x3f,
   4486    0x1c,
   4487    0x6d,
   4488    0x00,
   4489    0x3b,
   4490    0xec,
   4491    0xda,
   4492    0x3b,
   4493    0x1f,
   4494    0x27,
   4495    0x25,
   4496    0xca,
   4497    0x59,
   4498    0x5d,
   4499    0xe0,
   4500    0xca,
   4501    0x63,
   4502    0x32,
   4503    0x8f,
   4504    0x3b,
   4505    0xe5,
   4506    0x7c,
   4507    0xc9,
   4508    0x77,
   4509    0x55,
   4510    0x60,
   4511    0x11,
   4512    0x95,
   4513    0x14,
   4514    0x0d,
   4515    0xfb,
   4516    0x59,
   4517    0xd3,
   4518    0x9c,
   4519    0xe0,
   4520    0x91,
   4521    0x30,
   4522    0x8b,
   4523    0x41,
   4524    0x05,
   4525    0x74,
   4526    0x6d,
   4527    0xac,
   4528    0x23,
   4529    0xd3,
   4530    0x3e,
   4531    0x5f,
   4532    0x7c,
   4533    0xe4,
   4534    0x84,
   4535    0x8d,
   4536    0xa3,
   4537    0x16,
   4538    0xa9,
   4539    0xc6,
   4540    0x6b,
   4541    0x95,
   4542    0x81,
   4543    0xba,
   4544    0x35,
   4545    0x73,
   4546    0xbf,
   4547    0xaf,
   4548    0x31,
   4549    0x14,
   4550    0x96,
   4551    0x18,
   4552    0x8a,
   4553    0xb1,
   4554    0x54,
   4555    0x23,
   4556    0x28,
   4557    0x2e,
   4558    0xe4,
   4559    0x16,
   4560    0xdc,
   4561    0x2a,
   4562    0x19,
   4563    0xc5,
   4564    0x72,
   4565    0x4f,
   4566    0xa9,
   4567    0x1a,
   4568    0xe4,
   4569    0xad,
   4570    0xc8,
   4571    0x8b,
   4572    0xc6,
   4573    0x67,
   4574    0x96,
   4575    0xea,
   4576    0xe5,
   4577    0x67,
   4578    0x7a,
   4579    0x01,
   4580    0xf6,
   4581    0x4e,
   4582    0x8c,
   4583    0x08,
   4584    0x63,
   4585    0x13,
   4586    0x95,
   4587    0x82,
   4588    0x2d,
   4589    0x9d,
   4590    0xb8,
   4591    0xfc,
   4592    0xee,
   4593    0x35,
   4594    0xc0,
   4595    0x6b,
   4596    0x1f,
   4597    0xee,
   4598    0xa5,
   4599    0x47,
   4600    0x4d,
   4601    0x6d,
   4602    0x8f,
   4603    0x34,
   4604    0xb1,
   4605    0x53,
   4606    0x4a,
   4607    0x93,
   4608    0x6a,
   4609    0x18,
   4610    0xb0,
   4611    0xe0,
   4612    0xd2,
   4613    0x0e,
   4614    0xab,
   4615    0x86,
   4616    0xbc,
   4617    0x9c,
   4618    0x6d,
   4619    0x6a,
   4620    0x52,
   4621    0x07,
   4622    0x19,
   4623    0x4e,
   4624    0x68,
   4625    0x72,
   4626    0x07,
   4627    0x32,
   4628    0xff,
   4629    0xff,
   4630    0xff,
   4631    0xff,
   4632    0xff,
   4633    0xff,
   4634    0xff,
   4635    0xff,
   4636 };
   4637 
   4638 /* q=(p-1)/2 for prime prime_ike_8192 */
   4639 static const unsigned char subprime_ike_8192_data[] = {
   4640    0x7f,
   4641    0xff,
   4642    0xff,
   4643    0xff,
   4644    0xff,
   4645    0xff,
   4646    0xff,
   4647    0xff,
   4648    0xe4,
   4649    0x87,
   4650    0xed,
   4651    0x51,
   4652    0x10,
   4653    0xb4,
   4654    0x61,
   4655    0x1a,
   4656    0x62,
   4657    0x63,
   4658    0x31,
   4659    0x45,
   4660    0xc0,
   4661    0x6e,
   4662    0x0e,
   4663    0x68,
   4664    0x94,
   4665    0x81,
   4666    0x27,
   4667    0x04,
   4668    0x45,
   4669    0x33,
   4670    0xe6,
   4671    0x3a,
   4672    0x01,
   4673    0x05,
   4674    0xdf,
   4675    0x53,
   4676    0x1d,
   4677    0x89,
   4678    0xcd,
   4679    0x91,
   4680    0x28,
   4681    0xa5,
   4682    0x04,
   4683    0x3c,
   4684    0xc7,
   4685    0x1a,
   4686    0x02,
   4687    0x6e,
   4688    0xf7,
   4689    0xca,
   4690    0x8c,
   4691    0xd9,
   4692    0xe6,
   4693    0x9d,
   4694    0x21,
   4695    0x8d,
   4696    0x98,
   4697    0x15,
   4698    0x85,
   4699    0x36,
   4700    0xf9,
   4701    0x2f,
   4702    0x8a,
   4703    0x1b,
   4704    0xa7,
   4705    0xf0,
   4706    0x9a,
   4707    0xb6,
   4708    0xb6,
   4709    0xa8,
   4710    0xe1,
   4711    0x22,
   4712    0xf2,
   4713    0x42,
   4714    0xda,
   4715    0xbb,
   4716    0x31,
   4717    0x2f,
   4718    0x3f,
   4719    0x63,
   4720    0x7a,
   4721    0x26,
   4722    0x21,
   4723    0x74,
   4724    0xd3,
   4725    0x1b,
   4726    0xf6,
   4727    0xb5,
   4728    0x85,
   4729    0xff,
   4730    0xae,
   4731    0x5b,
   4732    0x7a,
   4733    0x03,
   4734    0x5b,
   4735    0xf6,
   4736    0xf7,
   4737    0x1c,
   4738    0x35,
   4739    0xfd,
   4740    0xad,
   4741    0x44,
   4742    0xcf,
   4743    0xd2,
   4744    0xd7,
   4745    0x4f,
   4746    0x92,
   4747    0x08,
   4748    0xbe,
   4749    0x25,
   4750    0x8f,
   4751    0xf3,
   4752    0x24,
   4753    0x94,
   4754    0x33,
   4755    0x28,
   4756    0xf6,
   4757    0x72,
   4758    0x2d,
   4759    0x9e,
   4760    0xe1,
   4761    0x00,
   4762    0x3e,
   4763    0x5c,
   4764    0x50,
   4765    0xb1,
   4766    0xdf,
   4767    0x82,
   4768    0xcc,
   4769    0x6d,
   4770    0x24,
   4771    0x1b,
   4772    0x0e,
   4773    0x2a,
   4774    0xe9,
   4775    0xcd,
   4776    0x34,
   4777    0x8b,
   4778    0x1f,
   4779    0xd4,
   4780    0x7e,
   4781    0x92,
   4782    0x67,
   4783    0xaf,
   4784    0xc1,
   4785    0xb2,
   4786    0xae,
   4787    0x91,
   4788    0xee,
   4789    0x51,
   4790    0xd6,
   4791    0xcb,
   4792    0x0e,
   4793    0x31,
   4794    0x79,
   4795    0xab,
   4796    0x10,
   4797    0x42,
   4798    0xa9,
   4799    0x5d,
   4800    0xcf,
   4801    0x6a,
   4802    0x94,
   4803    0x83,
   4804    0xb8,
   4805    0x4b,
   4806    0x4b,
   4807    0x36,
   4808    0xb3,
   4809    0x86,
   4810    0x1a,
   4811    0xa7,
   4812    0x25,
   4813    0x5e,
   4814    0x4c,
   4815    0x02,
   4816    0x78,
   4817    0xba,
   4818    0x36,
   4819    0x04,
   4820    0x65,
   4821    0x0c,
   4822    0x10,
   4823    0xbe,
   4824    0x19,
   4825    0x48,
   4826    0x2f,
   4827    0x23,
   4828    0x17,
   4829    0x1b,
   4830    0x67,
   4831    0x1d,
   4832    0xf1,
   4833    0xcf,
   4834    0x3b,
   4835    0x96,
   4836    0x0c,
   4837    0x07,
   4838    0x43,
   4839    0x01,
   4840    0xcd,
   4841    0x93,
   4842    0xc1,
   4843    0xd1,
   4844    0x76,
   4845    0x03,
   4846    0xd1,
   4847    0x47,
   4848    0xda,
   4849    0xe2,
   4850    0xae,
   4851    0xf8,
   4852    0x37,
   4853    0xa6,
   4854    0x29,
   4855    0x64,
   4856    0xef,
   4857    0x15,
   4858    0xe5,
   4859    0xfb,
   4860    0x4a,
   4861    0xac,
   4862    0x0b,
   4863    0x8c,
   4864    0x1c,
   4865    0xca,
   4866    0xa4,
   4867    0xbe,
   4868    0x75,
   4869    0x4a,
   4870    0xb5,
   4871    0x72,
   4872    0x8a,
   4873    0xe9,
   4874    0x13,
   4875    0x0c,
   4876    0x4c,
   4877    0x7d,
   4878    0x02,
   4879    0x88,
   4880    0x0a,
   4881    0xb9,
   4882    0x47,
   4883    0x2d,
   4884    0x45,
   4885    0x55,
   4886    0x62,
   4887    0x16,
   4888    0xd6,
   4889    0x99,
   4890    0x8b,
   4891    0x86,
   4892    0x82,
   4893    0x28,
   4894    0x3d,
   4895    0x19,
   4896    0xd4,
   4897    0x2a,
   4898    0x90,
   4899    0xd5,
   4900    0xef,
   4901    0x8e,
   4902    0x5d,
   4903    0x32,
   4904    0x76,
   4905    0x7d,
   4906    0xc2,
   4907    0x82,
   4908    0x2c,
   4909    0x6d,
   4910    0xf7,
   4911    0x85,
   4912    0x45,
   4913    0x75,
   4914    0x38,
   4915    0xab,
   4916    0xae,
   4917    0x83,
   4918    0x06,
   4919    0x3e,
   4920    0xd9,
   4921    0xcb,
   4922    0x87,
   4923    0xc2,
   4924    0xd3,
   4925    0x70,
   4926    0xf2,
   4927    0x63,
   4928    0xd5,
   4929    0xfa,
   4930    0xd7,
   4931    0x46,
   4932    0x6d,
   4933    0x84,
   4934    0x99,
   4935    0xeb,
   4936    0x8f,
   4937    0x46,
   4938    0x4a,
   4939    0x70,
   4940    0x25,
   4941    0x12,
   4942    0xb0,
   4943    0xce,
   4944    0xe7,
   4945    0x71,
   4946    0xe9,
   4947    0x13,
   4948    0x0d,
   4949    0x69,
   4950    0x77,
   4951    0x35,
   4952    0xf8,
   4953    0x97,
   4954    0xfd,
   4955    0x03,
   4956    0x6c,
   4957    0xc5,
   4958    0x04,
   4959    0x32,
   4960    0x6c,
   4961    0x3b,
   4962    0x01,
   4963    0x39,
   4964    0x9f,
   4965    0x64,
   4966    0x35,
   4967    0x32,
   4968    0x29,
   4969    0x0f,
   4970    0x95,
   4971    0x8c,
   4972    0x0b,
   4973    0xbd,
   4974    0x90,
   4975    0x06,
   4976    0x5d,
   4977    0xf0,
   4978    0x8b,
   4979    0xab,
   4980    0xbd,
   4981    0x30,
   4982    0xae,
   4983    0xb6,
   4984    0x3b,
   4985    0x84,
   4986    0xc4,
   4987    0x60,
   4988    0x5d,
   4989    0x6c,
   4990    0xa3,
   4991    0x71,
   4992    0x04,
   4993    0x71,
   4994    0x27,
   4995    0xd0,
   4996    0x3a,
   4997    0x72,
   4998    0xd5,
   4999    0x98,
   5000    0xa1,
   5001    0xed,
   5002    0xad,
   5003    0xfe,
   5004    0x70,
   5005    0x7e,
   5006    0x88,
   5007    0x47,
   5008    0x25,
   5009    0xc1,
   5010    0x68,
   5011    0x90,
   5012    0x54,
   5013    0x90,
   5014    0x84,
   5015    0x00,
   5016    0x8d,
   5017    0x39,
   5018    0x1e,
   5019    0x09,
   5020    0x53,
   5021    0xc3,
   5022    0xf3,
   5023    0x6b,
   5024    0xc4,
   5025    0x38,
   5026    0xcd,
   5027    0x08,
   5028    0x5e,
   5029    0xdd,
   5030    0x2d,
   5031    0x93,
   5032    0x4c,
   5033    0xe1,
   5034    0x93,
   5035    0x8c,
   5036    0x35,
   5037    0x7a,
   5038    0x71,
   5039    0x1e,
   5040    0x0d,
   5041    0x4a,
   5042    0x34,
   5043    0x1a,
   5044    0x5b,
   5045    0x0a,
   5046    0x85,
   5047    0xed,
   5048    0x12,
   5049    0xc1,
   5050    0xf4,
   5051    0xe5,
   5052    0x15,
   5053    0x6a,
   5054    0x26,
   5055    0x74,
   5056    0x6d,
   5057    0xdd,
   5058    0xe1,
   5059    0x6d,
   5060    0x82,
   5061    0x6f,
   5062    0x47,
   5063    0x7c,
   5064    0x97,
   5065    0x47,
   5066    0x7e,
   5067    0x0a,
   5068    0x0f,
   5069    0xdf,
   5070    0x65,
   5071    0x53,
   5072    0x14,
   5073    0x3e,
   5074    0x2c,
   5075    0xa3,
   5076    0xa7,
   5077    0x35,
   5078    0xe0,
   5079    0x2e,
   5080    0xcc,
   5081    0xd9,
   5082    0x4b,
   5083    0x27,
   5084    0xd0,
   5085    0x48,
   5086    0x61,
   5087    0xd1,
   5088    0x11,
   5089    0x9d,
   5090    0xd0,
   5091    0xc3,
   5092    0x28,
   5093    0xad,
   5094    0xf3,
   5095    0xf6,
   5096    0x8f,
   5097    0xb0,
   5098    0x94,
   5099    0xb8,
   5100    0x67,
   5101    0x71,
   5102    0x6b,
   5103    0xd7,
   5104    0xdc,
   5105    0x0d,
   5106    0xee,
   5107    0xbb,
   5108    0x10,
   5109    0xb8,
   5110    0x24,
   5111    0x0e,
   5112    0x68,
   5113    0x03,
   5114    0x48,
   5115    0x93,
   5116    0xea,
   5117    0xd8,
   5118    0x2d,
   5119    0x54,
   5120    0xc9,
   5121    0xda,
   5122    0x75,
   5123    0x4c,
   5124    0x46,
   5125    0xc7,
   5126    0xee,
   5127    0xe0,
   5128    0xc3,
   5129    0x7f,
   5130    0xdb,
   5131    0xee,
   5132    0x48,
   5133    0x53,
   5134    0x60,
   5135    0x47,
   5136    0xa6,
   5137    0xfa,
   5138    0x1a,
   5139    0xe4,
   5140    0x9a,
   5141    0x01,
   5142    0x42,
   5143    0x49,
   5144    0x1b,
   5145    0x61,
   5146    0xfd,
   5147    0x5a,
   5148    0x69,
   5149    0x3e,
   5150    0x38,
   5151    0x13,
   5152    0x60,
   5153    0xea,
   5154    0x6e,
   5155    0x59,
   5156    0x30,
   5157    0x13,
   5158    0x23,
   5159    0x6f,
   5160    0x64,
   5161    0xba,
   5162    0x8f,
   5163    0x3b,
   5164    0x1e,
   5165    0xdd,
   5166    0x1b,
   5167    0xde,
   5168    0xfc,
   5169    0x7f,
   5170    0xca,
   5171    0x03,
   5172    0x56,
   5173    0xcf,
   5174    0x29,
   5175    0x87,
   5176    0x72,
   5177    0xed,
   5178    0x9c,
   5179    0x17,
   5180    0xa0,
   5181    0x98,
   5182    0x00,
   5183    0xd7,
   5184    0x58,
   5185    0x35,
   5186    0x29,
   5187    0xf6,
   5188    0xc8,
   5189    0x13,
   5190    0xec,
   5191    0x18,
   5192    0x8b,
   5193    0xcb,
   5194    0x93,
   5195    0xd8,
   5196    0x43,
   5197    0x2d,
   5198    0x44,
   5199    0x8c,
   5200    0x6d,
   5201    0x1f,
   5202    0x6d,
   5203    0xf5,
   5204    0xe7,
   5205    0xcd,
   5206    0x8a,
   5207    0x76,
   5208    0xa2,
   5209    0x67,
   5210    0x36,
   5211    0x5d,
   5212    0x67,
   5213    0x6a,
   5214    0x5d,
   5215    0x8d,
   5216    0xed,
   5217    0xbf,
   5218    0x8a,
   5219    0x23,
   5220    0xf3,
   5221    0x66,
   5222    0x12,
   5223    0xa5,
   5224    0x99,
   5225    0x90,
   5226    0x28,
   5227    0xa8,
   5228    0x95,
   5229    0xeb,
   5230    0xd7,
   5231    0xa1,
   5232    0x37,
   5233    0xdc,
   5234    0x7a,
   5235    0x00,
   5236    0x9b,
   5237    0xc6,
   5238    0x69,
   5239    0x5f,
   5240    0xac,
   5241    0xc1,
   5242    0xe5,
   5243    0x00,
   5244    0xe3,
   5245    0x25,
   5246    0xc9,
   5247    0x76,
   5248    0x78,
   5249    0x19,
   5250    0x75,
   5251    0x0a,
   5252    0xe8,
   5253    0xb9,
   5254    0x0e,
   5255    0x81,
   5256    0xfa,
   5257    0x41,
   5258    0x6b,
   5259    0xe7,
   5260    0x37,
   5261    0x3a,
   5262    0x7f,
   5263    0x7b,
   5264    0x6a,
   5265    0xaf,
   5266    0x38,
   5267    0x17,
   5268    0xa3,
   5269    0x4c,
   5270    0x06,
   5271    0x41,
   5272    0x5a,
   5273    0xd4,
   5274    0x20,
   5275    0x18,
   5276    0xc8,
   5277    0x05,
   5278    0x8e,
   5279    0x4f,
   5280    0x2c,
   5281    0xf3,
   5282    0xe4,
   5283    0xbf,
   5284    0xdf,
   5285    0x63,
   5286    0xf4,
   5287    0x79,
   5288    0x91,
   5289    0xd4,
   5290    0xbd,
   5291    0x3f,
   5292    0x1b,
   5293    0x66,
   5294    0x44,
   5295    0x5f,
   5296    0x07,
   5297    0x8e,
   5298    0xa2,
   5299    0xdb,
   5300    0xff,
   5301    0xac,
   5302    0x2d,
   5303    0x62,
   5304    0xa5,
   5305    0xea,
   5306    0x03,
   5307    0xd9,
   5308    0x15,
   5309    0xa0,
   5310    0xaa,
   5311    0x55,
   5312    0x66,
   5313    0x47,
   5314    0xb6,
   5315    0xbf,
   5316    0x5f,
   5317    0xa4,
   5318    0x70,
   5319    0xec,
   5320    0x0a,
   5321    0x66,
   5322    0x2f,
   5323    0x69,
   5324    0x07,
   5325    0xc0,
   5326    0x1b,
   5327    0xf0,
   5328    0x53,
   5329    0xcb,
   5330    0x8a,
   5331    0xf7,
   5332    0x79,
   5333    0x4d,
   5334    0xf1,
   5335    0x94,
   5336    0x03,
   5337    0x50,
   5338    0xea,
   5339    0xc5,
   5340    0xdb,
   5341    0xe2,
   5342    0xed,
   5343    0x3b,
   5344    0x7a,
   5345    0xa8,
   5346    0x55,
   5347    0x1e,
   5348    0xc5,
   5349    0x0f,
   5350    0xdf,
   5351    0xf8,
   5352    0x75,
   5353    0x8c,
   5354    0xe6,
   5355    0x58,
   5356    0xd1,
   5357    0x89,
   5358    0xea,
   5359    0xae,
   5360    0x6d,
   5361    0x2b,
   5362    0x64,
   5363    0xf6,
   5364    0x17,
   5365    0x79,
   5366    0x4b,
   5367    0x19,
   5368    0x1c,
   5369    0x3f,
   5370    0xf4,
   5371    0x6b,
   5372    0xb7,
   5373    0x1e,
   5374    0x02,
   5375    0x34,
   5376    0x02,
   5377    0x1f,
   5378    0x47,
   5379    0xb3,
   5380    0x1f,
   5381    0xa4,
   5382    0x30,
   5383    0x77,
   5384    0x09,
   5385    0x5f,
   5386    0x96,
   5387    0xad,
   5388    0x85,
   5389    0xba,
   5390    0x3a,
   5391    0x6b,
   5392    0x73,
   5393    0x4a,
   5394    0x7c,
   5395    0x8f,
   5396    0x36,
   5397    0xdf,
   5398    0x08,
   5399    0xac,
   5400    0xba,
   5401    0x51,
   5402    0xc9,
   5403    0x37,
   5404    0x89,
   5405    0x7f,
   5406    0x72,
   5407    0xf2,
   5408    0x1c,
   5409    0x3b,
   5410    0xbe,
   5411    0x5b,
   5412    0x54,
   5413    0x99,
   5414    0x6f,
   5415    0xc6,
   5416    0x6c,
   5417    0x5f,
   5418    0x62,
   5419    0x68,
   5420    0x39,
   5421    0xdc,
   5422    0x98,
   5423    0xdd,
   5424    0x1d,
   5425    0xe4,
   5426    0x19,
   5427    0x5b,
   5428    0x46,
   5429    0xce,
   5430    0xe9,
   5431    0x80,
   5432    0x3a,
   5433    0x0f,
   5434    0xd3,
   5435    0xdf,
   5436    0xc5,
   5437    0x7e,
   5438    0x23,
   5439    0xf6,
   5440    0x92,
   5441    0xbb,
   5442    0x7b,
   5443    0x49,
   5444    0xb5,
   5445    0xd2,
   5446    0x12,
   5447    0x33,
   5448    0x1d,
   5449    0x55,
   5450    0xb1,
   5451    0xce,
   5452    0x2d,
   5453    0x72,
   5454    0x7a,
   5455    0xb4,
   5456    0x1a,
   5457    0x11,
   5458    0xda,
   5459    0x3a,
   5460    0x15,
   5461    0xf8,
   5462    0xe4,
   5463    0xbc,
   5464    0x11,
   5465    0xc7,
   5466    0x8b,
   5467    0x65,
   5468    0xf1,
   5469    0xce,
   5470    0xb2,
   5471    0x96,
   5472    0xf1,
   5473    0xfe,
   5474    0xdc,
   5475    0x5f,
   5476    0x7e,
   5477    0x42,
   5478    0x45,
   5479    0x6c,
   5480    0x91,
   5481    0x11,
   5482    0x17,
   5483    0x02,
   5484    0x52,
   5485    0x01,
   5486    0xbe,
   5487    0x03,
   5488    0x89,
   5489    0xf5,
   5490    0xab,
   5491    0xd4,
   5492    0x0d,
   5493    0x11,
   5494    0xf8,
   5495    0x63,
   5496    0x9a,
   5497    0x39,
   5498    0xfe,
   5499    0x32,
   5500    0x36,
   5501    0x75,
   5502    0x18,
   5503    0x35,
   5504    0xa5,
   5505    0xe5,
   5506    0xe4,
   5507    0x43,
   5508    0x17,
   5509    0xc1,
   5510    0xc2,
   5511    0xee,
   5512    0xfd,
   5513    0x4e,
   5514    0xa5,
   5515    0xbf,
   5516    0xd1,
   5517    0x60,
   5518    0x43,
   5519    0xf4,
   5520    0x3c,
   5521    0xb4,
   5522    0x19,
   5523    0x81,
   5524    0xf6,
   5525    0xad,
   5526    0xee,
   5527    0x9d,
   5528    0x03,
   5529    0x15,
   5530    0x9e,
   5531    0x7a,
   5532    0xd9,
   5533    0xd1,
   5534    0x3c,
   5535    0x53,
   5536    0x36,
   5537    0x95,
   5538    0x09,
   5539    0xfc,
   5540    0x1f,
   5541    0xa2,
   5542    0x7c,
   5543    0x16,
   5544    0xef,
   5545    0x98,
   5546    0x87,
   5547    0x70,
   5548    0x3a,
   5549    0x55,
   5550    0xb5,
   5551    0x1b,
   5552    0x22,
   5553    0xcb,
   5554    0xf4,
   5555    0x4c,
   5556    0xd0,
   5557    0x12,
   5558    0xae,
   5559    0xe0,
   5560    0xb2,
   5561    0x79,
   5562    0x8e,
   5563    0x62,
   5564    0x84,
   5565    0x23,
   5566    0x42,
   5567    0x8e,
   5568    0xfc,
   5569    0xd5,
   5570    0xa4,
   5571    0x0c,
   5572    0xae,
   5573    0xf6,
   5574    0xbf,
   5575    0x50,
   5576    0xd8,
   5577    0xea,
   5578    0x88,
   5579    0x5e,
   5580    0xbf,
   5581    0x73,
   5582    0xa6,
   5583    0xb9,
   5584    0xfd,
   5585    0x79,
   5586    0xb5,
   5587    0xe1,
   5588    0x8f,
   5589    0x67,
   5590    0xd1,
   5591    0x34,
   5592    0x1a,
   5593    0xc8,
   5594    0x23,
   5595    0x7a,
   5596    0x75,
   5597    0xc3,
   5598    0xcf,
   5599    0xc9,
   5600    0x20,
   5601    0x04,
   5602    0xa1,
   5603    0xc5,
   5604    0xa4,
   5605    0x0e,
   5606    0x36,
   5607    0x6b,
   5608    0xc4,
   5609    0x4d,
   5610    0x00,
   5611    0x17,
   5612    0x6a,
   5613    0xf7,
   5614    0x1c,
   5615    0x15,
   5616    0xe4,
   5617    0x8c,
   5618    0x86,
   5619    0xd3,
   5620    0x7e,
   5621    0x01,
   5622    0x37,
   5623    0x23,
   5624    0xca,
   5625    0xac,
   5626    0x72,
   5627    0x23,
   5628    0xab,
   5629    0x3b,
   5630    0xf4,
   5631    0xd5,
   5632    0x4f,
   5633    0x18,
   5634    0x28,
   5635    0x71,
   5636    0x3b,
   5637    0x2b,
   5638    0x4a,
   5639    0x6f,
   5640    0xe4,
   5641    0x0f,
   5642    0xab,
   5643    0x74,
   5644    0x40,
   5645    0x5c,
   5646    0xb7,
   5647    0x38,
   5648    0xb0,
   5649    0x64,
   5650    0xc0,
   5651    0x6e,
   5652    0xcc,
   5653    0x76,
   5654    0xe9,
   5655    0xef,
   5656    0xff,
   5657    0xff,
   5658    0xff,
   5659    0xff,
   5660    0xff,
   5661    0xff,
   5662    0xff,
   5663    0xff,
   5664 };
   5665 
   5666 /* q=(p-1)/2 for prime prime_tls_8192 */
   5667 static const unsigned char subprime_tls_8192_data[] = {
   5668    0x7f,
   5669    0xff,
   5670    0xff,
   5671    0xff,
   5672    0xff,
   5673    0xff,
   5674    0xff,
   5675    0xff,
   5676    0xd6,
   5677    0xfc,
   5678    0x2a,
   5679    0x2c,
   5680    0x51,
   5681    0x5d,
   5682    0xa5,
   5683    0x4d,
   5684    0x57,
   5685    0xee,
   5686    0x2b,
   5687    0x10,
   5688    0x13,
   5689    0x9e,
   5690    0x9e,
   5691    0x78,
   5692    0xec,
   5693    0x5c,
   5694    0xe2,
   5695    0xc1,
   5696    0xe7,
   5697    0x16,
   5698    0x9b,
   5699    0x4a,
   5700    0xd4,
   5701    0xf0,
   5702    0x9b,
   5703    0x20,
   5704    0x8a,
   5705    0x32,
   5706    0x19,
   5707    0xfd,
   5708    0xe6,
   5709    0x49,
   5710    0xce,
   5711    0xe7,
   5712    0x12,
   5713    0x4d,
   5714    0x9f,
   5715    0x7c,
   5716    0xbe,
   5717    0x97,
   5718    0xf1,
   5719    0xb1,
   5720    0xb1,
   5721    0x86,
   5722    0x3a,
   5723    0xec,
   5724    0x7b,
   5725    0x40,
   5726    0xd9,
   5727    0x01,
   5728    0x57,
   5729    0x62,
   5730    0x30,
   5731    0xbd,
   5732    0x69,
   5733    0xef,
   5734    0x8f,
   5735    0x6a,
   5736    0xea,
   5737    0xfe,
   5738    0xb2,
   5739    0xb0,
   5740    0x92,
   5741    0x19,
   5742    0xfa,
   5743    0x8f,
   5744    0xaf,
   5745    0x83,
   5746    0x37,
   5747    0x68,
   5748    0x42,
   5749    0xb1,
   5750    0xb2,
   5751    0xaa,
   5752    0x9e,
   5753    0xf6,
   5754    0x8d,
   5755    0x79,
   5756    0xda,
   5757    0xab,
   5758    0x89,
   5759    0xaf,
   5760    0x3f,
   5761    0xab,
   5762    0xe4,
   5763    0x9a,
   5764    0xcc,
   5765    0x27,
   5766    0x86,
   5767    0x38,
   5768    0x70,
   5769    0x73,
   5770    0x45,
   5771    0xbb,
   5772    0xf1,
   5773    0x53,
   5774    0x44,
   5775    0xed,
   5776    0x79,
   5777    0xf7,
   5778    0xf4,
   5779    0x39,
   5780    0x0e,
   5781    0xf8,
   5782    0xac,
   5783    0x50,
   5784    0x9b,
   5785    0x56,
   5786    0xf3,
   5787    0x9a,
   5788    0x98,
   5789    0x56,
   5790    0x65,
   5791    0x27,
   5792    0xa4,
   5793    0x1d,
   5794    0x3c,
   5795    0xbd,
   5796    0x5e,
   5797    0x05,
   5798    0x58,
   5799    0xc1,
   5800    0x59,
   5801    0x92,
   5802    0x7d,
   5803    0xb0,
   5804    0xe8,
   5805    0x84,
   5806    0x54,
   5807    0xa5,
   5808    0xd9,
   5809    0x64,
   5810    0x71,
   5811    0xfd,
   5812    0xdc,
   5813    0xb5,
   5814    0x6d,
   5815    0x5b,
   5816    0xb0,
   5817    0x6b,
   5818    0xfa,
   5819    0x34,
   5820    0x0e,
   5821    0xa7,
   5822    0xa1,
   5823    0x51,
   5824    0xef,
   5825    0x1c,
   5826    0xa6,
   5827    0xfa,
   5828    0x57,
   5829    0x2b,
   5830    0x76,
   5831    0xf3,
   5832    0xb1,
   5833    0xb9,
   5834    0x5d,
   5835    0x8c,
   5836    0x85,
   5837    0x83,
   5838    0xd3,
   5839    0xe4,
   5840    0x77,
   5841    0x05,
   5842    0x36,
   5843    0xb8,
   5844    0x4f,
   5845    0x01,
   5846    0x7e,
   5847    0x70,
   5848    0xe6,
   5849    0xfb,
   5850    0xf1,
   5851    0x76,
   5852    0x60,
   5853    0x1a,
   5854    0x02,
   5855    0x66,
   5856    0x94,
   5857    0x1a,
   5858    0x17,
   5859    0xb0,
   5860    0xc8,
   5861    0xb9,
   5862    0x7f,
   5863    0x4e,
   5864    0x74,
   5865    0xc2,
   5866    0xc1,
   5867    0xff,
   5868    0xc7,
   5869    0x27,
   5870    0x89,
   5871    0x19,
   5872    0x77,
   5873    0x79,
   5874    0x40,
   5875    0xc1,
   5876    0xe1,
   5877    0xff,
   5878    0x1d,
   5879    0x8d,
   5880    0xa6,
   5881    0x37,
   5882    0xd6,
   5883    0xb9,
   5884    0x9d,
   5885    0xda,
   5886    0xfe,
   5887    0x5e,
   5888    0x17,
   5889    0x61,
   5890    0x10,
   5891    0x02,
   5892    0xe2,
   5893    0xc7,
   5894    0x78,
   5895    0xc1,
   5896    0xbe,
   5897    0x8b,
   5898    0x41,
   5899    0xd9,
   5900    0x63,
   5901    0x79,
   5902    0xa5,
   5903    0x13,
   5904    0x60,
   5905    0xd9,
   5906    0x77,
   5907    0xfd,
   5908    0x44,
   5909    0x35,
   5910    0xa1,
   5911    0x1c,
   5912    0x30,
   5913    0x8f,
   5914    0xe7,
   5915    0xee,
   5916    0x6f,
   5917    0x1a,
   5918    0xad,
   5919    0x9d,
   5920    0xb2,
   5921    0x8c,
   5922    0x81,
   5923    0xad,
   5924    0xde,
   5925    0x1a,
   5926    0x7a,
   5927    0x6f,
   5928    0x7c,
   5929    0xce,
   5930    0x01,
   5931    0x1c,
   5932    0x30,
   5933    0xda,
   5934    0x37,
   5935    0xe4,
   5936    0xeb,
   5937    0x73,
   5938    0x64,
   5939    0x83,
   5940    0xbd,
   5941    0x6c,
   5942    0x8e,
   5943    0x93,
   5944    0x48,
   5945    0xfb,
   5946    0xfb,
   5947    0xf7,
   5948    0x2c,
   5949    0xc6,
   5950    0x58,
   5951    0x7d,
   5952    0x60,
   5953    0xc3,
   5954    0x6c,
   5955    0x8e,
   5956    0x57,
   5957    0x7f,
   5958    0x09,
   5959    0x84,
   5960    0xc2,
   5961    0x89,
   5962    0xc9,
   5963    0x38,
   5964    0x5a,
   5965    0x09,
   5966    0x86,
   5967    0x49,
   5968    0xde,
   5969    0x21,
   5970    0xbc,
   5971    0xa2,
   5972    0x7a,
   5973    0x7e,
   5974    0xa2,
   5975    0x29,
   5976    0x71,
   5977    0x6b,
   5978    0xa6,
   5979    0xe9,
   5980    0xb2,
   5981    0x79,
   5982    0x71,
   5983    0x0f,
   5984    0x38,
   5985    0xfa,
   5986    0xa5,
   5987    0xff,
   5988    0xae,
   5989    0x57,
   5990    0x41,
   5991    0x55,
   5992    0xce,
   5993    0x4e,
   5994    0xfb,
   5995    0x4f,
   5996    0x74,
   5997    0x36,
   5998    0x95,
   5999    0xe2,
   6000    0x91,
   6001    0x1b,
   6002    0x1d,
   6003    0x06,
   6004    0xd5,
   6005    0xe2,
   6006    0x90,
   6007    0xcb,
   6008    0xcd,
   6009    0x86,
   6010    0xf5,
   6011    0x6d,
   6012    0x0e,
   6013    0xdf,
   6014    0xcd,
   6015    0x21,
   6016    0x6a,
   6017    0xe2,
   6018    0x24,
   6019    0x27,
   6020    0x05,
   6021    0x5e,
   6022    0x68,
   6023    0x35,
   6024    0xfd,
   6025    0x29,
   6026    0xee,
   6027    0xf7,
   6028    0x9e,
   6029    0x0d,
   6030    0x90,
   6031    0x77,
   6032    0x1f,
   6033    0xea,
   6034    0xce,
   6035    0xbe,
   6036    0x12,
   6037    0xf2,
   6038    0x0e,
   6039    0x95,
   6040    0xb3,
   6041    0x4f,
   6042    0x0f,
   6043    0x78,
   6044    0xb7,
   6045    0x37,
   6046    0xa9,
   6047    0x61,
   6048    0x8b,
   6049    0x26,
   6050    0xfa,
   6051    0x7d,
   6052    0xbc,
   6053    0x98,
   6054    0x74,
   6055    0xf2,
   6056    0x72,
   6057    0xc4,
   6058    0x2b,
   6059    0xdb,
   6060    0x56,
   6061    0x3e,
   6062    0xaf,
   6063    0xa1,
   6064    0x6b,
   6065    0x4f,
   6066    0xb6,
   6067    0x8c,
   6068    0x3b,
   6069    0xb1,
   6070    0xe7,
   6071    0x8e,
   6072    0xaa,
   6073    0x81,
   6074    0xa0,
   6075    0x02,
   6076    0x43,
   6077    0xfa,
   6078    0xad,
   6079    0xd2,
   6080    0xbf,
   6081    0x18,
   6082    0xe6,
   6083    0x3d,
   6084    0x38,
   6085    0x9a,
   6086    0xe4,
   6087    0x43,
   6088    0x77,
   6089    0xda,
   6090    0x18,
   6091    0xc5,
   6092    0x76,
   6093    0xb5,
   6094    0x0f,
   6095    0x00,
   6096    0x96,
   6097    0xcf,
   6098    0x34,
   6099    0x19,
   6100    0x54,
   6101    0x83,
   6102    0xb0,
   6103    0x05,
   6104    0x48,
   6105    0xc0,
   6106    0x98,
   6107    0x62,
   6108    0x36,
   6109    0xe3,
   6110    0xbc,
   6111    0x7c,
   6112    0xb8,
   6113    0xd6,
   6114    0x80,
   6115    0x1c,
   6116    0x04,
   6117    0x94,
   6118    0xcc,
   6119    0xd1,
   6120    0x99,
   6121    0xe5,
   6122    0xc5,
   6123    0xbd,
   6124    0x0d,
   6125    0x0e,
   6126    0xdc,
   6127    0x9e,
   6128    0xb8,
   6129    0xa0,
   6130    0x00,
   6131    0x1e,
   6132    0x15,
   6133    0x27,
   6134    0x67,
   6135    0x54,
   6136    0xfc,
   6137    0xc6,
   6138    0x85,
   6139    0x66,
   6140    0x05,
   6141    0x41,
   6142    0x48,
   6143    0xe6,
   6144    0xe7,
   6145    0x64,
   6146    0xbe,
   6147    0xe7,
   6148    0xc7,
   6149    0x64,
   6150    0xda,
   6151    0xad,
   6152    0x3f,
   6153    0xc4,
   6154    0x52,
   6155    0x35,
   6156    0xa6,
   6157    0xda,
   6158    0xd4,
   6159    0x28,
   6160    0xfa,
   6161    0x20,
   6162    0xc1,
   6163    0x70,
   6164    0xe3,
   6165    0x45,
   6166    0x00,
   6167    0x3f,
   6168    0x2f,
   6169    0x06,
   6170    0xec,
   6171    0x81,
   6172    0x05,
   6173    0xfe,
   6174    0xb2,
   6175    0x5b,
   6176    0x22,
   6177    0x81,
   6178    0xb6,
   6179    0x3d,
   6180    0x27,
   6181    0x33,
   6182    0xbe,
   6183    0x96,
   6184    0x1c,
   6185    0x29,
   6186    0x95,
   6187    0x1d,
   6188    0x11,
   6189    0xdd,
   6190    0x22,
   6191    0x21,
   6192    0x65,
   6193    0x7a,
   6194    0x9f,
   6195    0x53,
   6196    0x1d,
   6197    0xda,
   6198    0x2a,
   6199    0x19,
   6200    0x4d,
   6201    0xbb,
   6202    0x12,
   6203    0x64,
   6204    0x48,
   6205    0xbd,
   6206    0xee,
   6207    0xb2,
   6208    0x58,
   6209    0xe0,
   6210    0x7e,
   6211    0xa6,
   6212    0x59,
   6213    0xc7,
   6214    0x46,
   6215    0x19,
   6216    0xa6,
   6217    0x38,
   6218    0x0e,
   6219    0x1d,
   6220    0x66,
   6221    0xd6,
   6222    0x83,
   6223    0x2b,
   6224    0xfe,
   6225    0x67,
   6226    0xf6,
   6227    0x38,
   6228    0xcd,
   6229    0x8f,
   6230    0xae,
   6231    0x1f,
   6232    0x27,
   6233    0x23,
   6234    0x02,
   6235    0x0f,
   6236    0x9c,
   6237    0x40,
   6238    0xa3,
   6239    0xfd,
   6240    0xa6,
   6241    0x7e,
   6242    0xda,
   6243    0x3b,
   6244    0xd2,
   6245    0x92,
   6246    0x38,
   6247    0xfb,
   6248    0xd4,
   6249    0xd4,
   6250    0xb4,
   6251    0x88,
   6252    0x5c,
   6253    0x2a,
   6254    0x99,
   6255    0x17,
   6256    0x6d,
   6257    0xb1,
   6258    0xa0,
   6259    0x6c,
   6260    0x50,
   6261    0x07,
   6262    0x78,
   6263    0x49,
   6264    0x1a,
   6265    0x82,
   6266    0x88,
   6267    0xf1,
   6268    0x85,
   6269    0x5f,
   6270    0x60,
   6271    0xff,
   6272    0xfc,
   6273    0xf1,
   6274    0xd1,
   6275    0x37,
   6276    0x3f,
   6277    0xd9,
   6278    0x4f,
   6279    0xc6,
   6280    0x0c,
   6281    0x18,
   6282    0x11,
   6283    0xe1,
   6284    0xac,
   6285    0x3f,
   6286    0x1c,
   6287    0x6d,
   6288    0x00,
   6289    0x3b,
   6290    0xec,
   6291    0xda,
   6292    0x3b,
   6293    0x1f,
   6294    0x27,
   6295    0x25,
   6296    0xca,
   6297    0x59,
   6298    0x5d,
   6299    0xe0,
   6300    0xca,
   6301    0x63,
   6302    0x32,
   6303    0x8f,
   6304    0x3b,
   6305    0xe5,
   6306    0x7c,
   6307    0xc9,
   6308    0x77,
   6309    0x55,
   6310    0x60,
   6311    0x11,
   6312    0x95,
   6313    0x14,
   6314    0x0d,
   6315    0xfb,
   6316    0x59,
   6317    0xd3,
   6318    0x9c,
   6319    0xe0,
   6320    0x91,
   6321    0x30,
   6322    0x8b,
   6323    0x41,
   6324    0x05,
   6325    0x74,
   6326    0x6d,
   6327    0xac,
   6328    0x23,
   6329    0xd3,
   6330    0x3e,
   6331    0x5f,
   6332    0x7c,
   6333    0xe4,
   6334    0x84,
   6335    0x8d,
   6336    0xa3,
   6337    0x16,
   6338    0xa9,
   6339    0xc6,
   6340    0x6b,
   6341    0x95,
   6342    0x81,
   6343    0xba,
   6344    0x35,
   6345    0x73,
   6346    0xbf,
   6347    0xaf,
   6348    0x31,
   6349    0x14,
   6350    0x96,
   6351    0x18,
   6352    0x8a,
   6353    0xb1,
   6354    0x54,
   6355    0x23,
   6356    0x28,
   6357    0x2e,
   6358    0xe4,
   6359    0x16,
   6360    0xdc,
   6361    0x2a,
   6362    0x19,
   6363    0xc5,
   6364    0x72,
   6365    0x4f,
   6366    0xa9,
   6367    0x1a,
   6368    0xe4,
   6369    0xad,
   6370    0xc8,
   6371    0x8b,
   6372    0xc6,
   6373    0x67,
   6374    0x96,
   6375    0xea,
   6376    0xe5,
   6377    0x67,
   6378    0x7a,
   6379    0x01,
   6380    0xf6,
   6381    0x4e,
   6382    0x8c,
   6383    0x08,
   6384    0x63,
   6385    0x13,
   6386    0x95,
   6387    0x82,
   6388    0x2d,
   6389    0x9d,
   6390    0xb8,
   6391    0xfc,
   6392    0xee,
   6393    0x35,
   6394    0xc0,
   6395    0x6b,
   6396    0x1f,
   6397    0xee,
   6398    0xa5,
   6399    0x47,
   6400    0x4d,
   6401    0x6d,
   6402    0x8f,
   6403    0x34,
   6404    0xb1,
   6405    0x53,
   6406    0x4a,
   6407    0x93,
   6408    0x6a,
   6409    0x18,
   6410    0xb0,
   6411    0xe0,
   6412    0xd2,
   6413    0x0e,
   6414    0xab,
   6415    0x86,
   6416    0xbc,
   6417    0x9c,
   6418    0x6d,
   6419    0x6a,
   6420    0x52,
   6421    0x07,
   6422    0x19,
   6423    0x4e,
   6424    0x67,
   6425    0xfa,
   6426    0x35,
   6427    0x55,
   6428    0x1b,
   6429    0x56,
   6430    0x80,
   6431    0x26,
   6432    0x7b,
   6433    0x00,
   6434    0x64,
   6435    0x1c,
   6436    0x0f,
   6437    0x21,
   6438    0x2d,
   6439    0x18,
   6440    0xec,
   6441    0xa8,
   6442    0xd7,
   6443    0x32,
   6444    0x7e,
   6445    0xd9,
   6446    0x1f,
   6447    0xe7,
   6448    0x64,
   6449    0xa8,
   6450    0x4e,
   6451    0xa1,
   6452    0xb4,
   6453    0x3f,
   6454    0xf5,
   6455    0xb4,
   6456    0xf6,
   6457    0xe8,
   6458    0xe6,
   6459    0x2f,
   6460    0x05,
   6461    0xc6,
   6462    0x61,
   6463    0xde,
   6464    0xfb,
   6465    0x25,
   6466    0x88,
   6467    0x77,
   6468    0xc3,
   6469    0x5b,
   6470    0x18,
   6471    0xa1,
   6472    0x51,
   6473    0xd5,
   6474    0xc4,
   6475    0x14,
   6476    0xaa,
   6477    0xad,
   6478    0x97,
   6479    0xba,
   6480    0x3e,
   6481    0x49,
   6482    0x93,
   6483    0x32,
   6484    0xe5,
   6485    0x96,
   6486    0x07,
   6487    0x8e,
   6488    0x60,
   6489    0x0d,
   6490    0xeb,
   6491    0x81,
   6492    0x14,
   6493    0x9c,
   6494    0x44,
   6495    0x1c,
   6496    0xe9,
   6497    0x57,
   6498    0x82,
   6499    0xf2,
   6500    0x2a,
   6501    0x28,
   6502    0x25,
   6503    0x63,
   6504    0xc5,
   6505    0xba,
   6506    0xc1,
   6507    0x41,
   6508    0x14,
   6509    0x23,
   6510    0x60,
   6511    0x5d,
   6512    0x1a,
   6513    0xe1,
   6514    0xaf,
   6515    0xae,
   6516    0x2c,
   6517    0x8b,
   6518    0x06,
   6519    0x60,
   6520    0x23,
   6521    0x7e,
   6522    0xc1,
   6523    0x28,
   6524    0xaa,
   6525    0x0f,
   6526    0xe3,
   6527    0x46,
   6528    0x4e,
   6529    0x43,
   6530    0x58,
   6531    0x11,
   6532    0x5d,
   6533    0xb8,
   6534    0x4c,
   6535    0xc3,
   6536    0xb5,
   6537    0x23,
   6538    0x07,
   6539    0x3a,
   6540    0x28,
   6541    0xd4,
   6542    0x54,
   6543    0x98,
   6544    0x84,
   6545    0xb8,
   6546    0x1f,
   6547    0xf7,
   6548    0x0e,
   6549    0x10,
   6550    0xbf,
   6551    0x36,
   6552    0x1c,
   6553    0x13,
   6554    0x72,
   6555    0x96,
   6556    0x28,
   6557    0xd5,
   6558    0x34,
   6559    0x8f,
   6560    0x07,
   6561    0x21,
   6562    0x1e,
   6563    0x7e,
   6564    0x4c,
   6565    0xf4,
   6566    0xf1,
   6567    0x8b,
   6568    0x28,
   6569    0x60,
   6570    0x90,
   6571    0xbd,
   6572    0xb1,
   6573    0x24,
   6574    0x0b,
   6575    0x66,
   6576    0xd6,
   6577    0xcd,
   6578    0x4a,
   6579    0xfc,
   6580    0xea,
   6581    0xdc,
   6582    0x00,
   6583    0xca,
   6584    0x44,
   6585    0x6c,
   6586    0xe0,
   6587    0x50,
   6588    0x50,
   6589    0xff,
   6590    0x18,
   6591    0x3a,
   6592    0xd2,
   6593    0xbb,
   6594    0xf1,
   6595    0x18,
   6596    0xc1,
   6597    0xfc,
   6598    0x0e,
   6599    0xa5,
   6600    0x1f,
   6601    0x97,
   6602    0xd2,
   6603    0x2b,
   6604    0x8f,
   6605    0x7e,
   6606    0x46,
   6607    0x70,
   6608    0x5d,
   6609    0x45,
   6610    0x27,
   6611    0xf4,
   6612    0x5b,
   6613    0x42,
   6614    0xae,
   6615    0xff,
   6616    0x39,
   6617    0x58,
   6618    0x53,
   6619    0x37,
   6620    0x6f,
   6621    0x69,
   6622    0x7d,
   6623    0xd5,
   6624    0xfd,
   6625    0xf2,
   6626    0xc5,
   6627    0x18,
   6628    0x7d,
   6629    0x7d,
   6630    0x5f,
   6631    0x0e,
   6632    0x2e,
   6633    0xb8,
   6634    0xd4,
   6635    0x3f,
   6636    0x17,
   6637    0xba,
   6638    0x0f,
   6639    0x7c,
   6640    0x60,
   6641    0xff,
   6642    0x43,
   6643    0x7f,
   6644    0x53,
   6645    0x5d,
   6646    0xfe,
   6647    0xf2,
   6648    0x98,
   6649    0x33,
   6650    0xbf,
   6651    0x86,
   6652    0xcb,
   6653    0xe8,
   6654    0x8e,
   6655    0xa4,
   6656    0xfb,
   6657    0xd4,
   6658    0x22,
   6659    0x1e,
   6660    0x84,
   6661    0x11,
   6662    0x72,
   6663    0x83,
   6664    0x54,
   6665    0xfa,
   6666    0x30,
   6667    0xa7,
   6668    0x00,
   6669    0x8f,
   6670    0x15,
   6671    0x4a,
   6672    0x41,
   6673    0xc7,
   6674    0xfc,
   6675    0x46,
   6676    0x6b,
   6677    0x46,
   6678    0x45,
   6679    0xdb,
   6680    0xe2,
   6681    0xe3,
   6682    0x21,
   6683    0x26,
   6684    0x7f,
   6685    0xff,
   6686    0xff,
   6687    0xff,
   6688    0xff,
   6689    0xff,
   6690    0xff,
   6691    0xff,
   6692 };
   6693 
   6694 static const SECItem subprime_ike_1536 = { siBuffer,
   6695                                           (unsigned char *)subprime_ike_1536_data,
   6696                                           sizeof(subprime_ike_1536_data) };
   6697 static const SECItem subprime_ike_2048 = { siBuffer,
   6698                                           (unsigned char *)subprime_ike_2048_data,
   6699                                           sizeof(subprime_ike_2048_data) };
   6700 static const SECItem subprime_ike_3072 = { siBuffer,
   6701                                           (unsigned char *)subprime_ike_3072_data,
   6702                                           sizeof(subprime_ike_3072_data) };
   6703 static const SECItem subprime_ike_4096 = { siBuffer,
   6704                                           (unsigned char *)subprime_ike_4096_data,
   6705                                           sizeof(subprime_ike_4096_data) };
   6706 static const SECItem subprime_ike_6144 = { siBuffer,
   6707                                           (unsigned char *)subprime_ike_6144_data,
   6708                                           sizeof(subprime_ike_6144_data) };
   6709 static const SECItem subprime_ike_8192 = { siBuffer,
   6710                                           (unsigned char *)subprime_ike_8192_data,
   6711                                           sizeof(subprime_ike_8192_data) };
   6712 static const SECItem subprime_tls_2048 = { siBuffer,
   6713                                           (unsigned char *)subprime_tls_2048_data,
   6714                                           sizeof(subprime_tls_2048_data) };
   6715 static const SECItem subprime_tls_3072 = { siBuffer,
   6716                                           (unsigned char *)subprime_tls_3072_data,
   6717                                           sizeof(subprime_tls_3072_data) };
   6718 static const SECItem subprime_tls_4096 = { siBuffer,
   6719                                           (unsigned char *)subprime_tls_4096_data,
   6720                                           sizeof(subprime_tls_4096_data) };
   6721 static const SECItem subprime_tls_6144 = { siBuffer,
   6722                                           (unsigned char *)subprime_tls_6144_data,
   6723                                           sizeof(subprime_tls_6144_data) };
   6724 static const SECItem subprime_tls_8192 = { siBuffer,
   6725                                           (unsigned char *)subprime_tls_8192_data,
   6726                                           sizeof(subprime_tls_8192_data) };
   6727 
   6728 /* generator for all the groups is 2 */
   6729 static const unsigned char generator_2_data[] = { 2 };
   6730 
   6731 static const SECItem generator_2 = { siBuffer,
   6732                                     (unsigned char *)generator_2_data,
   6733                                     sizeof(generator_2_data) };
   6734 
   6735 /*
   6736 * verify that dhPrime matches one of our known primes
   6737 */
   6738 const SECItem *
   6739 sftk_VerifyDH_Prime(SECItem *dhPrime, SECItem *g, PRBool isFIPS)
   6740 {
   6741    /* use the length to decide which primes to check */
   6742    switch (dhPrime->len) {
   6743        case 1536 / PR_BITS_PER_BYTE:
   6744            /* don't accept 1536 bit primes in FIPS mode */
   6745            if (isFIPS) {
   6746                break;
   6747            }
   6748            if (PORT_Memcmp(dhPrime->data, prime_ike_1536,
   6749                            sizeof(prime_ike_1536)) == 0) {
   6750                if (g)
   6751                    *g = generator_2;
   6752                return &subprime_ike_1536;
   6753            }
   6754            break;
   6755        case 2048 / PR_BITS_PER_BYTE:
   6756            if (PORT_Memcmp(dhPrime->data, prime_tls_2048,
   6757                            sizeof(prime_tls_2048)) == 0) {
   6758                if (g)
   6759                    *g = generator_2;
   6760                return &subprime_tls_2048;
   6761            }
   6762            if (PORT_Memcmp(dhPrime->data, prime_ike_2048,
   6763                            sizeof(prime_ike_2048)) == 0) {
   6764                if (g)
   6765                    *g = generator_2;
   6766                return &subprime_ike_2048;
   6767            }
   6768            break;
   6769        case 3072 / PR_BITS_PER_BYTE:
   6770            if (PORT_Memcmp(dhPrime->data, prime_tls_3072,
   6771                            sizeof(prime_tls_3072)) == 0) {
   6772                if (g)
   6773                    *g = generator_2;
   6774                return &subprime_tls_3072;
   6775            }
   6776            if (PORT_Memcmp(dhPrime->data, prime_ike_3072,
   6777                            sizeof(prime_ike_3072)) == 0) {
   6778                if (g)
   6779                    *g = generator_2;
   6780                return &subprime_ike_3072;
   6781            }
   6782            break;
   6783        case 4096 / PR_BITS_PER_BYTE:
   6784            if (PORT_Memcmp(dhPrime->data, prime_tls_4096,
   6785                            sizeof(prime_tls_4096)) == 0) {
   6786                if (g)
   6787                    *g = generator_2;
   6788                return &subprime_tls_4096;
   6789            }
   6790            if (PORT_Memcmp(dhPrime->data, prime_ike_4096,
   6791                            sizeof(prime_ike_4096)) == 0) {
   6792                if (g)
   6793                    *g = generator_2;
   6794                return &subprime_ike_4096;
   6795            }
   6796            break;
   6797        case 6144 / PR_BITS_PER_BYTE:
   6798            if (PORT_Memcmp(dhPrime->data, prime_tls_6144,
   6799                            sizeof(prime_tls_6144)) == 0) {
   6800                if (g)
   6801                    *g = generator_2;
   6802                return &subprime_tls_6144;
   6803            }
   6804            if (PORT_Memcmp(dhPrime->data, prime_ike_6144,
   6805                            sizeof(prime_ike_6144)) == 0) {
   6806                if (g)
   6807                    *g = generator_2;
   6808                return &subprime_ike_6144;
   6809            }
   6810            break;
   6811        case 8192 / PR_BITS_PER_BYTE:
   6812            if (PORT_Memcmp(dhPrime->data, prime_tls_8192,
   6813                            sizeof(prime_tls_8192)) == 0) {
   6814                if (g)
   6815                    *g = generator_2;
   6816                return &subprime_tls_8192;
   6817            }
   6818            if (PORT_Memcmp(dhPrime->data, prime_ike_8192,
   6819                            sizeof(prime_ike_8192)) == 0) {
   6820                if (g)
   6821                    *g = generator_2;
   6822                return &subprime_ike_8192;
   6823            }
   6824            break;
   6825    }
   6826    /* no match found, return an error */
   6827    PORT_SetError(SEC_ERROR_INVALID_ARGS);
   6828    return NULL;
   6829 }
   6830 
   6831 /* Use the provided subPrime to see if dhPrime is a safe prime. We'll check
   6832 * primality of those values later. */
   6833 SECStatus
   6834 sftk_IsSafePrime(const SECItem *dhPrime, const SECItem *dhSubPrime, PRBool *isSafe)
   6835 {
   6836    int i;
   6837    unsigned char carry = 0;
   6838    int offset = 0, subPrimeLen = dhPrime->len;
   6839    *isSafe = PR_FALSE;
   6840 
   6841    /* Both dhPrime and dhSubPrime should be odd */
   6842    if (((dhPrime->data[dhPrime->len - 1] & 0x1) != 1) && ((dhSubPrime->data[dhSubPrime->len - 1] & 0x1) != 1)) {
   6843        PORT_SetError(SEC_ERROR_INVALID_ARGS);
   6844        return SECFailure;
   6845    }
   6846 
   6847    /* subPrime is p-1/2, which means subPrime is 1 bit shorter than p.
   6848     * It's length in bytes is the same unless the high byte of p == 1 or 0.
   6849     */
   6850    if (dhPrime->data[0] <= 1) {
   6851        subPrimeLen--;
   6852        offset++;
   6853        carry = (dhPrime->data[0]) << 7;
   6854    }
   6855 
   6856    /* if subprime len is not long enough it is not a strong prime */
   6857    if (dhSubPrime->len != subPrimeLen) {
   6858        return SECSuccess;
   6859    }
   6860 
   6861    /* does the subprime match q == (p-1)/2 */
   6862    for (i = 0; i < subPrimeLen; i++) {
   6863        if (dhSubPrime->data[i] !=
   6864            (carry | ((dhPrime->data[i + offset] >> 1) & 0x7f))) {
   6865            return SECSuccess;
   6866        }
   6867        carry = ((dhPrime->data[i + offset] & 1) << 7) & 0x80;
   6868    }
   6869    /* subPrime for p claims to be q=(p-1)/2. So the caller thinks p
   6870     * is a strong prime, just need to check primality of p and q to verify */
   6871    *isSafe = PR_TRUE;
   6872    return SECSuccess;
   6873 }