dpdk/app/test/test_cryptodev_mod_test_vectors.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: BSD-3-Clause
   2 * Copyright(c) 2018 Cavium Networks
   3 * Copyright (c) 2019 Intel Corporation
   4 */
   5
   6#ifndef TEST_CRYPTODEV_MOD_TEST_VECTORS_H_
   7#define TEST_CRYPTODEV_MOD_TEST_VECTORS_H_
   8
   9#define DATA_SIZE 512
  10
  11struct modex_test_data {
  12        enum rte_crypto_asym_xform_type xform_type;
  13        const char *description;
  14        struct {
  15                uint8_t data[DATA_SIZE];
  16                uint16_t len;
  17        } base;
  18        struct {
  19                uint8_t data[DATA_SIZE];
  20                uint16_t len;
  21        } exponent;
  22        struct {
  23                uint8_t data[DATA_SIZE];
  24                uint16_t len;
  25        } modulus;
  26        struct {
  27                uint8_t data[DATA_SIZE];
  28                uint16_t len;
  29        } reminder;
  30        uint16_t result_len;
  31};
  32struct modinv_test_data {
  33        enum rte_crypto_asym_xform_type xform_type;
  34        const char *description;
  35        struct {
  36                uint8_t data[DATA_SIZE];
  37                uint16_t len;
  38        } base;
  39        struct {
  40                uint8_t data[DATA_SIZE];
  41                uint16_t len;
  42        } modulus;
  43        struct {
  44                uint8_t data[DATA_SIZE];
  45                uint16_t len;
  46        } inverse;
  47        uint16_t result_len;
  48};
  49
  50static const struct
  51modex_test_data modex_test_case[] = {
  52{
  53        .description = "Modular Exponentiation "
  54                                   "(mod=128, base=20, exp=3, res=128)",
  55        .xform_type = RTE_CRYPTO_ASYM_XFORM_MODEX,
  56        .base = {
  57                .data = {
  58                        0xF8, 0xBA, 0x1A, 0x55, 0xD0, 0x2F, 0x85,
  59                        0xAE, 0x96, 0x7B, 0xB6, 0x2F, 0xB6, 0xCD,
  60                        0xA8, 0xEB, 0x7E, 0x78, 0xA0, 0x50
  61                },
  62                .len = 20
  63        },
  64        .exponent = {
  65                .data = {
  66                        0x01, 0x00, 0x01
  67                },
  68                .len = 3
  69        },
  70        .reminder = {
  71                .data = {
  72                        0x2C, 0x60, 0x75, 0x45, 0x98, 0x9D, 0xE0, 0x72,
  73                        0xA0, 0x9D, 0x3A, 0x9E, 0x03, 0x38, 0x73, 0x3C,
  74                        0x31, 0x83, 0x04, 0xFE, 0x75, 0x43, 0xE6, 0x17,
  75                        0x5C, 0x01, 0x29, 0x51, 0x69, 0x33, 0x62, 0x2D,
  76                        0x78, 0xBE, 0xAE, 0xC4, 0xBC, 0xDE, 0x7E, 0x2C,
  77                        0x77, 0x84, 0xF2, 0xC5, 0x14, 0xB5, 0x2F, 0xF7,
  78                        0xC5, 0x94, 0xEF, 0x86, 0x75, 0x75, 0xB5, 0x11,
  79                        0xE5, 0x0E, 0x0A, 0x29, 0x76, 0xE2, 0xEA, 0x32,
  80                        0x0E, 0x43, 0x77, 0x7E, 0x2C, 0x27, 0xAC, 0x3B,
  81                        0x86, 0xA5, 0xDB, 0xC9, 0x48, 0x40, 0xE8, 0x99,
  82                        0x9A, 0x0A, 0x3D, 0xD6, 0x74, 0xFA, 0x2E, 0x2E,
  83                        0x5B, 0xAF, 0x8C, 0x99, 0x44, 0x2A, 0x67, 0x38,
  84                        0x27, 0x41, 0x59, 0x9D, 0xB8, 0x51, 0xC9, 0xF7,
  85                        0x43, 0x61, 0x31, 0x6E, 0xF1, 0x25, 0x38, 0x7F,
  86                        0xAE, 0xC6, 0xD0, 0xBB, 0x29, 0x76, 0x3F, 0x46,
  87                        0x2E, 0x1B, 0xE4, 0x67, 0x71, 0xE3, 0x87, 0x5A
  88                },
  89                .len = 128
  90        },
  91        .modulus = {
  92                .data = {
  93                        0xb3, 0xa1, 0xaf, 0xb7, 0x13, 0x08, 0x00, 0x0a,
  94                        0x35, 0xdc, 0x2b, 0x20, 0x8d, 0xa1, 0xb5, 0xce,
  95                        0x47, 0x8a, 0xc3, 0x80, 0xf4, 0x7d, 0x4a, 0xa2,
  96                        0x62, 0xfd, 0x61, 0x7f, 0xb5, 0xa8, 0xde, 0x0a,
  97                        0x17, 0x97, 0xa0, 0xbf, 0xdf, 0x56, 0x5a, 0x3d,
  98                        0x51, 0x56, 0x4f, 0x70, 0x70, 0x3f, 0x63, 0x6a,
  99                        0x44, 0x5b, 0xad, 0x84, 0x0d, 0x3f, 0x27, 0x6e,
 100                        0x3b, 0x34, 0x91, 0x60, 0x14, 0xb9, 0xaa, 0x72,
 101                        0xfd, 0xa3, 0x64, 0xd2, 0x03, 0xa7, 0x53, 0x87,
 102                        0x9e, 0x88, 0x0b, 0xc1, 0x14, 0x93, 0x1a, 0x62,
 103                        0xff, 0xb1, 0x5d, 0x74, 0xcd, 0x59, 0x63, 0x18,
 104                        0x11, 0x3d, 0x4f, 0xba, 0x75, 0xd4, 0x33, 0x4e,
 105                        0x23, 0x6b, 0x7b, 0x57, 0x44, 0xe1, 0xd3, 0x03,
 106                        0x13, 0xa6, 0xf0, 0x8b, 0x60, 0xb0, 0x9e, 0xee,
 107                        0x75, 0x08, 0x9d, 0x71, 0x63, 0x13, 0xcb, 0xa6,
 108                        0x81, 0x92, 0x14, 0x03, 0x22, 0x2d, 0xde, 0x55
 109                },
 110                .len = 128
 111        },
 112        .result_len = 128
 113},
 114{
 115        .description = "Modular Exponentiation "
 116                                   "(mod=60, base=50, exp=40, res=60)",
 117        .xform_type = RTE_CRYPTO_ASYM_XFORM_MODEX,
 118        .base = {
 119                .data = {
 120                        0x4F, 0xD8, 0x5C, 0xDB, 0x6D, 0xA2, 0xFA, 0x35,
 121                        0x9D, 0xD7, 0x97, 0x10, 0x4B, 0x71, 0x5F, 0x53,
 122                        0xE1, 0xC7, 0x09, 0x74, 0x88, 0xC8, 0x9D, 0x03,
 123                        0xC0, 0x70, 0xE0, 0xBE, 0xE3, 0xF2, 0x2C, 0x01,
 124                        0x85, 0xA6, 0x4E, 0x28, 0x6E, 0xD3, 0xB5, 0x18,
 125                        0x58, 0x69, 0x07, 0xDA, 0x3A, 0x1B, 0x35, 0xCE,
 126                        0xE6, 0xFA
 127                },
 128                .len = 50
 129        },
 130        .exponent = {
 131                .data = {
 132                        0x30, 0xA5, 0xD5, 0xF0, 0x42, 0x03, 0xC3, 0x2D,
 133                        0x2F, 0x58, 0xA8, 0x5C, 0x21, 0x88, 0xDE, 0x82,
 134                        0x36, 0x44, 0xC1, 0x5A, 0x87, 0x2C, 0x33, 0x19,
 135                        0x4E, 0xCE, 0x3F, 0x87, 0xFF, 0x98, 0x4B, 0xFC,
 136                        0x15, 0xC0, 0xBE, 0x9E, 0x8F, 0xF0, 0x6A, 0x62
 137                },
 138                .len = 40
 139        },
 140        .reminder = {
 141                .data = {
 142                        0x59, 0x3D, 0x92, 0xE4, 0xE6, 0x9B, 0x5D, 0x97,
 143                        0x21, 0xE6, 0x06, 0x60, 0x8B, 0x66, 0x8F, 0xF3,
 144                        0x63, 0xAE, 0x3A, 0x64, 0x7F, 0xCA, 0xDE, 0x4A,
 145                        0xE5, 0x49, 0xA2, 0x90, 0x0F, 0xAE, 0x13, 0x10,
 146                        0xC2, 0x5B, 0x97, 0xED, 0x86, 0x97, 0x16, 0xE2,
 147                        0x01, 0xF6, 0x7A, 0xF1, 0x7B, 0x4B, 0xC7, 0x7D,
 148                        0x6B, 0xD7, 0x98, 0xE5, 0x9B, 0x75, 0x1A, 0x6B,
 149                        0xD6, 0x6E, 0xA3, 0x4E
 150                },
 151                .len = 60
 152        },
 153        .modulus = {
 154                .data = {
 155                        0xF8, 0x04, 0x0D, 0xD5, 0x09, 0x6C, 0x78, 0x06,
 156                        0x7D, 0x28, 0x77, 0xA4, 0x0E, 0xA5, 0x49, 0xE7,
 157                        0x6D, 0xC9, 0x97, 0xD3, 0xC0, 0x7F, 0x82, 0xC6,
 158                        0x75, 0x51, 0x72, 0xAF, 0x8C, 0x77, 0x97, 0xD0,
 159                        0xA1, 0x85, 0x54, 0xC0, 0x78, 0x86, 0xD6, 0x40,
 160                        0x7A, 0x6B, 0xB3, 0xD7, 0x07, 0xCA, 0x27, 0xA3,
 161                        0x66, 0xB9, 0x98, 0x22, 0xC4, 0x54, 0x18, 0x07,
 162                        0x65, 0x76, 0x0F, 0x5A
 163                },
 164                .len = 60
 165        },
 166        .result_len = 60
 167},
 168{
 169        .description = "Modular Exponentiation "
 170                                   "(mod=8, base=65, exp=17, res=8)",
 171        .xform_type = RTE_CRYPTO_ASYM_XFORM_MODEX,
 172        .base = {
 173                .data = {
 174                        0x25, 0x74, 0x41, 0xCE, 0xFA, 0x5C, 0x07, 0x2A,
 175                        0xD1, 0x74, 0xF3, 0x3D, 0xE1, 0xCC, 0xC3, 0x18,
 176                        0x7E, 0x4A, 0x21, 0x9F, 0x97, 0xA3, 0x26, 0x85,
 177                        0x85, 0xD9, 0x9B, 0xE3, 0xBA, 0xB3, 0x70, 0xC9,
 178                        0x26, 0x68, 0xE4, 0xB7, 0x4C, 0x88, 0x48, 0xC1,
 179                        0x6B, 0xC6, 0x3C, 0x00, 0x8C, 0x6B, 0xC6, 0x11,
 180                        0xD0, 0xD6, 0x61, 0x5D, 0xEC, 0xAA, 0xBA, 0x3B,
 181                        0x7D, 0xB3, 0x0D, 0x3F, 0xA5, 0x4D, 0xEE, 0xE4,
 182                        0xAC
 183                },
 184                .len = 65
 185        },
 186        .exponent = {
 187                .data = {
 188                        0x1C, 0x54, 0x2F, 0xCA, 0xDE, 0x4F, 0x17, 0x38,
 189                        0x69, 0x87, 0xB4, 0xFF, 0x3A, 0x6C, 0x82, 0x70,
 190                        0x53
 191                },
 192                .len = 17
 193        },
 194        .reminder = {
 195                .data = {
 196                        0x52, 0x06, 0x1A, 0x35, 0x70, 0x33, 0x78, 0x45
 197                },
 198                .len = 8
 199        },
 200        .modulus = {
 201                .data = {
 202                        0x6B, 0x6D, 0xFA, 0xCB, 0x09, 0x5D, 0x9C, 0xFD
 203                },
 204                .len = 8
 205        },
 206        .result_len = 8
 207},
 208{
 209        .description = "Modular Exponentiation "
 210                                   "(mod=100, base=150, exp=192, res=100)",
 211        .xform_type = RTE_CRYPTO_ASYM_XFORM_MODEX,
 212        .base = {
 213                .data = {
 214                        0xC1, 0xA1, 0x04, 0xE4, 0x4D, 0x4A, 0xD3, 0x5C,
 215                        0xB3, 0xD0, 0x16, 0x51, 0xA7, 0xF4, 0x82, 0x6C,
 216                        0x22, 0xDD, 0x4D, 0xAA, 0x70, 0x30, 0x25, 0xA7,
 217                        0xFA, 0xA9, 0xF2, 0x20, 0x55, 0x9B, 0xEA, 0x26,
 218                        0xF6, 0xB5, 0xF8, 0x9C, 0x46, 0x21, 0x85, 0x0E,
 219                        0x38, 0x73, 0x01, 0xC6, 0x72, 0x67, 0x9B, 0x49,
 220                        0xCE, 0x48, 0xB7, 0x4A, 0xEE, 0x08, 0x21, 0x26,
 221                        0xF3, 0x21, 0x77, 0xE7, 0x3C, 0x77, 0xF4, 0x0A,
 222                        0x82, 0xC8, 0x16, 0x94, 0x6C, 0xBF, 0xA8, 0xD8,
 223                        0x8B, 0x7D, 0x27, 0x60, 0xAC, 0x06, 0x69, 0x7E,
 224                        0x46, 0x2C, 0xE2, 0xD1, 0x13, 0x50, 0x7D, 0xCE,
 225                        0x4D, 0xC4, 0x5D, 0x81, 0xFB, 0x6B, 0x11, 0x4A,
 226                        0x2D, 0xA2, 0x03, 0x55, 0x77, 0x8C, 0x3D, 0xA1,
 227                        0xAD, 0xBE, 0x9C, 0x72, 0xE5, 0xA5, 0xFB, 0x49,
 228                        0x5F, 0x13, 0x48, 0xC7, 0xAC, 0xD1, 0x0F, 0x5E,
 229                        0xDF, 0x9C, 0xC7, 0xF5, 0x19, 0xFD, 0xC5, 0x77,
 230                        0x27, 0x8D, 0xC4, 0x1D, 0x90, 0x8C, 0x20, 0x96,
 231                        0xC8, 0x6A, 0x0D, 0x2F, 0xE2, 0x8B, 0xB0, 0x58,
 232                        0xF8, 0xC4, 0x31, 0x0A, 0x17, 0x11
 233                },
 234                .len = 150
 235        },
 236        .exponent = {
 237                .data = {
 238                        0xC6, 0x20, 0x99, 0xD9, 0xBC, 0xE2, 0xAD, 0x74,
 239                        0x11, 0x6F, 0x74, 0x14, 0x72, 0xB8, 0x09, 0xCB,
 240                        0x5C, 0x74, 0x11, 0x21, 0x17, 0x84, 0x02, 0xDC,
 241                        0x70, 0x59, 0x20, 0x79, 0x40, 0x7B, 0x0E, 0x52,
 242                        0xAD, 0x00, 0x38, 0x4F, 0x5A, 0xE5, 0x0D, 0x28,
 243                        0xB5, 0xF8, 0xDC, 0x54, 0x92, 0xB2, 0xB0, 0xA8,
 244                        0xE8, 0x35, 0x1B, 0x63, 0x0D, 0x6A, 0x50, 0x8D,
 245                        0xE1, 0x3E, 0x7A, 0xDD, 0x42, 0x7A, 0xD0, 0xB4,
 246                        0x9D, 0x63, 0x36, 0x03, 0xC0, 0x9B, 0xA0, 0x91,
 247                        0x8B, 0xBC, 0x45, 0x53, 0x93, 0x2C, 0xFC, 0xDD,
 248                        0x4F, 0xBD, 0x96, 0x0B, 0x63, 0xEB, 0xEF, 0x50,
 249                        0xAC, 0x99, 0x45, 0xA7, 0x0D, 0xC6, 0xEA, 0x98,
 250                        0xBC, 0xD7, 0x63, 0x56, 0x8C, 0x75, 0x68, 0xAE,
 251                        0xF0, 0xB4, 0x66, 0xA0, 0x4D, 0xC5, 0x71, 0xB9,
 252                        0x4E, 0xCB, 0xF6, 0xCA, 0xC9, 0x1B, 0x3B, 0x55,
 253                        0x91, 0x39, 0x25, 0xBD, 0x98, 0xAA, 0xDA, 0xF2,
 254                        0x8A, 0xCB, 0x8E, 0x56, 0x09, 0xBF, 0xC4, 0x1D,
 255                        0xFA, 0x23, 0x48, 0xF6, 0x9A, 0xD2, 0xD3, 0x2B,
 256                        0xED, 0x60, 0x9B, 0x4B, 0x63, 0xD8, 0x8C, 0x6A,
 257                        0x28, 0xA3, 0x4C, 0x85, 0x43, 0x4D, 0x5C, 0x4A,
 258                        0xA7, 0xA9, 0x9F, 0x7E, 0x13, 0x5B, 0x36, 0xED,
 259                        0xD9, 0x53, 0xBE, 0x12, 0xFF, 0x17, 0x9F, 0x70,
 260                        0xA4, 0xD2, 0x42, 0x72, 0x70, 0x51, 0x70, 0x3F,
 261                        0x5A, 0xBA, 0x33, 0x0E, 0xBB, 0x4C, 0xA0, 0x4A
 262                },
 263                .len = 192
 264        },
 265        .reminder = {
 266                .data = {
 267                        0x07, 0x5E, 0x28, 0x4F, 0xD1, 0xEA, 0x5C, 0x1D,
 268                        0xF8, 0xBF, 0x29, 0xF0, 0x63, 0xCC, 0xF7, 0x6D,
 269                        0x99, 0x67, 0xCE, 0xE3, 0x05, 0x16, 0x16, 0x8C,
 270                        0x3A, 0x07, 0xC0, 0x63, 0x70, 0xB9, 0x1A, 0x24,
 271                        0xED, 0xE9, 0xF0, 0xEE, 0xD9, 0xAB, 0x18, 0xD4,
 272                        0x59, 0xB4, 0xD2, 0x77, 0x44, 0x94, 0x72, 0xFE,
 273                        0x19, 0x26, 0x50, 0x47, 0x77, 0xAD, 0x0A, 0x45,
 274                        0x76, 0x4B, 0x22, 0xDB, 0x05, 0x13, 0x67, 0x40,
 275                        0x9A, 0x36, 0x6C, 0x5E, 0xE8, 0xED, 0x40, 0x60,
 276                        0x86, 0x40, 0x2F, 0x30, 0x9E, 0x4B, 0x61, 0x73,
 277                        0x2E, 0x76, 0x8A, 0xB0, 0x49, 0x04, 0x1A, 0x82,
 278                        0xB7, 0xEF, 0xB2, 0xB5, 0xB4, 0xE0, 0x87, 0xF0,
 279                        0xB4, 0x53, 0xB2, 0xBE
 280                },
 281                .len = 100
 282        },
 283        .modulus = {
 284                .data = {
 285                        0x54, 0x58, 0x5C, 0xBA, 0xAE, 0xC1, 0xB4, 0x46,
 286                        0x50, 0xAF, 0xD0, 0xA6, 0x03, 0x9D, 0x74, 0x84,
 287                        0x6F, 0x89, 0x07, 0xA6, 0x63, 0xE7, 0x34, 0xB2,
 288                        0x55, 0x0E, 0xD5, 0x42, 0xC9, 0xBF, 0xD1, 0x89,
 289                        0x54, 0x0B, 0x76, 0xF7, 0x0E, 0xA1, 0x42, 0x02,
 290                        0x72, 0xDC, 0x28, 0x5A, 0x68, 0x10, 0xA0, 0x84,
 291                        0xA4, 0x72, 0x4D, 0x40, 0x69, 0xBC, 0x18, 0xC9,
 292                        0x92, 0x69, 0xB8, 0x52, 0x2A, 0xB1, 0xA3, 0x43,
 293                        0x80, 0xA9, 0x55, 0x78, 0xEA, 0xD9, 0x54, 0xF4,
 294                        0x3A, 0xDD, 0x24, 0x4E, 0x22, 0x9D, 0x89, 0x40,
 295                        0x8F, 0x50, 0xA5, 0xF5, 0x0F, 0xFA, 0x38, 0xBB,
 296                        0xE8, 0xD7, 0x21, 0x6B, 0xEA, 0xB1, 0x28, 0x48,
 297                        0xEB, 0x75, 0xB1, 0xC7
 298                },
 299                .len = 100
 300        },
 301        .result_len = 100
 302},
 303{
 304        .description = "Modular Exponentiation "
 305                                   "(mod=255, base=20, exp=10, res=255)",
 306        .xform_type = RTE_CRYPTO_ASYM_XFORM_MODEX,
 307        .base = {
 308                .data = {
 309                        0xD8, 0x21, 0xD2, 0x76, 0xAE, 0x01, 0x62, 0xD8,
 310                        0x8C, 0x80, 0x01, 0x25, 0xC7, 0xE8, 0x4E, 0x0F,
 311                        0x7F, 0x23, 0xFE, 0xBB
 312                },
 313                .len = 20
 314        },
 315        .exponent = {
 316                .data = {
 317                        0xE5, 0xCE, 0x50, 0xE8, 0x97, 0x32, 0xFB, 0x5C,
 318                        0xFC, 0x62
 319                },
 320                .len = 10
 321        },
 322        .reminder = {
 323                .data = {
 324                        0x1F, 0xA8, 0xAC, 0x32, 0x6C, 0x20, 0xBE, 0x1D,
 325                        0x88, 0xE9, 0x94, 0x7E, 0xDE, 0xB5, 0x15, 0xA5,
 326                        0xF3, 0x45, 0x77, 0xB3, 0x3E, 0xDD, 0xDD, 0xAE,
 327                        0xEA, 0xAE, 0x32, 0x81, 0x37, 0xAE, 0x26, 0xC5,
 328                        0x6F, 0x3A, 0x75, 0x1F, 0x4F, 0xA2, 0xA3, 0x8B,
 329                        0xDC, 0x52, 0x3C, 0xD5, 0x42, 0x00, 0x58, 0x37,
 330                        0xB3, 0x5B, 0xC9, 0x78, 0xFA, 0x48, 0xFE, 0x4B,
 331                        0x81, 0xFB, 0x4C, 0x5D, 0x9F, 0x5E, 0x4F, 0x56,
 332                        0x30, 0x79, 0x71, 0x1E, 0xC5, 0x8E, 0xC2, 0x2E,
 333                        0x9D, 0x18, 0xD8, 0x34, 0x0E, 0xDB, 0xCB, 0x02,
 334                        0xA7, 0x37, 0x00, 0x44, 0x57, 0x2A, 0x11, 0x85,
 335                        0x81, 0x06, 0x28, 0xB4, 0x95, 0x79, 0xE2, 0x60,
 336                        0x39, 0x66, 0x34, 0x2F, 0x19, 0xD4, 0x42, 0x70,
 337                        0xA8, 0xE9, 0x51, 0xBC, 0xB4, 0x04, 0xD6, 0x4B,
 338                        0xE1, 0x4A, 0xEE, 0x6F, 0x69, 0xD7, 0x82, 0x07,
 339                        0x59, 0xD6, 0xB0, 0xAC, 0x22, 0x28, 0xB8, 0x70,
 340                        0x5F, 0xD2, 0x0D, 0x15, 0x6D, 0xED, 0xEB, 0x8A,
 341                        0xD5, 0x64, 0x16, 0x7C, 0x12, 0x25, 0x76, 0xFD,
 342                        0x8A, 0x8D, 0xC5, 0xEA, 0xF8, 0xA9, 0x04, 0x65,
 343                        0x58, 0x6D, 0x67, 0x2F, 0xA7, 0x3E, 0x2C, 0x96,
 344                        0x55, 0x11, 0xAA, 0x10, 0xE0, 0x1B, 0x0F, 0x1C,
 345                        0x89, 0x10, 0x7C, 0x63, 0xCB, 0x0B, 0xB8, 0x1C,
 346                        0x49, 0x16, 0xC1, 0xB3, 0xA5, 0x57, 0x87, 0x4F,
 347                        0x80, 0x8B, 0x18, 0xF0, 0x46, 0xCE, 0xE4, 0x95,
 348                        0x2F, 0x9C, 0xE7, 0xB7, 0x40, 0x1C, 0xB4, 0xA3,
 349                        0xD4, 0x30, 0x9C, 0xFD, 0x95, 0x35, 0x57, 0x10,
 350                        0x50, 0x40, 0xDA, 0x47, 0x8E, 0x21, 0xAE, 0x05,
 351                        0xF8, 0xA8, 0x72, 0xA5, 0x68, 0xE1, 0xA2, 0xAB,
 352                        0x36, 0x0D, 0x4B, 0xDB, 0x7B, 0xBF, 0x7F, 0x51,
 353                        0x51, 0xC9, 0xBB, 0x3F, 0xF7, 0x76, 0x45, 0x78,
 354                        0xAC, 0x3F, 0x56, 0xF4, 0x27, 0x7E, 0xEF, 0x02,
 355                        0xED, 0x41, 0x15, 0xDB, 0xE4, 0x81, 0x59
 356                },
 357                .len = 255
 358        },
 359        .modulus = {
 360                .data = {
 361                        0x71, 0x3C, 0x6C, 0x7A, 0x19, 0x31, 0xF8, 0x94,
 362                        0xC9, 0xAA, 0x25, 0x69, 0xA7, 0xF2, 0x28, 0x70,
 363                        0x84, 0x5D, 0xEC, 0x40, 0xC8, 0xF9, 0xC5, 0x79,
 364                        0xF9, 0x87, 0xD1, 0xA0, 0xC1, 0x5A, 0x06, 0xE4,
 365                        0x65, 0xB8, 0x29, 0x0B, 0x2B, 0xFE, 0x67, 0xF0,
 366                        0x91, 0x96, 0xE1, 0xCD, 0x5A, 0xCE, 0x44, 0xA3,
 367                        0x4F, 0xE8, 0xBE, 0xC6, 0xA3, 0x0A, 0xCB, 0xF5,
 368                        0x7D, 0x8B, 0x9B, 0x2F, 0x4E, 0xC9, 0x54, 0x48,
 369                        0xA4, 0xC2, 0x09, 0xCE, 0xA5, 0x93, 0x1F, 0x43,
 370                        0xC2, 0xCE, 0xFB, 0xBB, 0x69, 0x29, 0x03, 0x74,
 371                        0xD6, 0x25, 0x47, 0x6B, 0xAC, 0x4E, 0x44, 0x8C,
 372                        0x39, 0x2F, 0xB2, 0xDD, 0x15, 0x1B, 0xA3, 0x3D,
 373                        0xA4, 0x0C, 0xFF, 0xCB, 0x05, 0xC2, 0x81, 0x97,
 374                        0x16, 0xE2, 0xAC, 0x8A, 0xF3, 0xED, 0x80, 0xA4,
 375                        0xC5, 0xFC, 0xF5, 0x6C, 0x4B, 0xBB, 0x05, 0x91,
 376                        0xD4, 0x0F, 0xDA, 0x70, 0x7C, 0x9A, 0xA1, 0x63,
 377                        0x15, 0xEE, 0xBB, 0x17, 0xE6, 0x20, 0x50, 0x74,
 378                        0x36, 0x9C, 0xA1, 0x10, 0x29, 0x22, 0xFB, 0x7E,
 379                        0x2A, 0x08, 0xF3, 0x07, 0xEA, 0xCD, 0x2C, 0x50,
 380                        0x18, 0x15, 0x66, 0x87, 0x74, 0x19, 0x11, 0x2B,
 381                        0x77, 0x85, 0xA0, 0x57, 0xA7, 0xEB, 0x6E, 0x15,
 382                        0x15, 0x0D, 0xA4, 0x18, 0x5D, 0x54, 0x13, 0xE3,
 383                        0x33, 0x12, 0x8D, 0xA3, 0xEF, 0x54, 0xE6, 0x1E,
 384                        0xDB, 0x8F, 0x3D, 0x02, 0x3C, 0xCB, 0x34, 0x93,
 385                        0x31, 0x1D, 0x4D, 0x3E, 0x9C, 0x22, 0x04, 0xD1,
 386                        0x19, 0x53, 0x45, 0xE5, 0xBF, 0xF8, 0x70, 0x1A,
 387                        0xEA, 0x52, 0x93, 0x2A, 0x26, 0x8A, 0x1E, 0x47,
 388                        0xCE, 0x83, 0x5B, 0x35, 0x9A, 0xD2, 0x75, 0xC6,
 389                        0xC6, 0x20, 0x84, 0x9F, 0x74, 0x69, 0x69, 0xB8,
 390                        0x29, 0xD8, 0xA4, 0x70, 0x91, 0x42, 0x06, 0x25,
 391                        0x38, 0xCB, 0x42, 0x75, 0x52, 0xEF, 0xB8, 0x64,
 392                        0x4F, 0xC5, 0x7C, 0xC4, 0x09, 0xDB, 0x12
 393                },
 394                .len = 255
 395        },
 396        .result_len = 255
 397},
 398{
 399        .description = "Modular Exponentiation "
 400                                   "(mod=112, base=257, exp=43, res=112)",
 401        .xform_type = RTE_CRYPTO_ASYM_XFORM_MODEX,
 402        .base = {
 403                .data = {
 404                        0x53, 0x63, 0xB0, 0x3A, 0x30, 0xDE, 0x07, 0xBC,
 405                        0xE4, 0x4B, 0x52, 0x37, 0x9C, 0xD8, 0x5A, 0xCD,
 406                        0x03, 0xE1, 0xEA, 0x6D, 0xDE, 0x4C, 0x19, 0xE6,
 407                        0xA2, 0x0F, 0xAE, 0x56, 0xCD, 0xB2, 0xB6, 0x5B,
 408                        0x31, 0xF5, 0x41, 0x48, 0x8D, 0xA2, 0xC7, 0x0C,
 409                        0x19, 0x32, 0x6D, 0x58, 0x10, 0xD5, 0xF0, 0x64,
 410                        0xF9, 0xF5, 0xD7, 0xFE, 0x37, 0x4A, 0xD8, 0xE3,
 411                        0xBF, 0xDF, 0xCB, 0x45, 0xD5, 0xBF, 0xB9, 0x2A,
 412                        0x60, 0xF8, 0x52, 0xB0, 0xB5, 0x22, 0x76, 0xBD,
 413                        0xD3, 0x0D, 0xD4, 0xE1, 0x42, 0xC4, 0x8C, 0x47,
 414                        0x2D, 0x04, 0x25, 0x1B, 0xFB, 0x21, 0xFD, 0x80,
 415                        0xC0, 0xCE, 0x9D, 0x32, 0x76, 0x8E, 0x18, 0x28,
 416                        0xDC, 0x0F, 0x44, 0x37, 0xF8, 0x61, 0x45, 0x93,
 417                        0xD3, 0x62, 0x21, 0xEE, 0x8B, 0x89, 0x8B, 0xAF,
 418                        0x8B, 0xE9, 0xA5, 0xD2, 0x00, 0xF5, 0xFF, 0xE6,
 419                        0xE0, 0x56, 0x9D, 0x41, 0x13, 0xBC, 0xD6, 0x6E,
 420                        0xC9, 0xE8, 0xE8, 0xC7, 0x61, 0x00, 0x7D, 0x91,
 421                        0x59, 0xAC, 0x6A, 0x24, 0x86, 0x3C, 0x50, 0xFB,
 422                        0x49, 0xC4, 0xB9, 0x41, 0xCD, 0xF0, 0xD9, 0xE7,
 423                        0xE1, 0x54, 0x3F, 0x17, 0x3B, 0xC7, 0x12, 0x20,
 424                        0x6E, 0xC5, 0x80, 0x11, 0xA5, 0x78, 0x72, 0xCA,
 425                        0xBC, 0x90, 0xB7, 0xC5, 0xFF, 0x78, 0xE5, 0x71,
 426                        0x62, 0x4C, 0xCC, 0x6C, 0xEA, 0x76, 0xE3, 0xB6,
 427                        0x00, 0x54, 0x31, 0x72, 0x5A, 0xFE, 0x14, 0xC3,
 428                        0x60, 0x3A, 0x79, 0x97, 0x26, 0x87, 0x69, 0x8D,
 429                        0x44, 0x8E, 0x8B, 0xE0, 0xBC, 0x5C, 0x9F, 0xDE,
 430                        0xD0, 0x90, 0xA2, 0x85, 0xC8, 0x3E, 0x7E, 0xA0,
 431                        0x42, 0xE2, 0x3B, 0xEE, 0x0C, 0x59, 0x1E, 0x72,
 432                        0x62, 0xA5, 0xEE, 0x20, 0xE0, 0xFE, 0x0D, 0xD3,
 433                        0x9F, 0xA9, 0x84, 0xBC, 0xD0, 0x6E, 0x5E, 0xC2,
 434                        0x0B, 0xF2, 0xAE, 0xB6, 0xE6, 0xC6, 0x88, 0xF9,
 435                        0x51, 0xF8, 0x02, 0x08, 0xC6, 0x99, 0x73, 0xF2,
 436                        0x36
 437                },
 438                .len = 257
 439        },
 440        .exponent = {
 441                .data = {
 442                        0xCA, 0x5C, 0x73, 0xF7, 0x8B, 0x1F, 0x95, 0xE4,
 443                        0x0E, 0x9B, 0x47, 0xDC, 0x03, 0x96, 0x75, 0xB4,
 444                        0x48, 0x74, 0x73, 0xBE, 0xF8, 0x92, 0x80, 0xE4,
 445                        0x93, 0x5D, 0x87, 0x7D, 0x74, 0xF7, 0x45, 0xEF,
 446                        0x8E, 0x53, 0x9C, 0x03, 0xB0, 0xD6, 0xF3, 0xBF,
 447                        0x86, 0xB2, 0xCD
 448                },
 449                .len = 43
 450        },
 451        .reminder = {
 452                .data = {
 453                        0x01, 0x0E, 0x8C, 0x1B, 0x19, 0xF6, 0xB0, 0x0D,
 454                        0x8D, 0xFF, 0x12, 0x74, 0xF0, 0xD0, 0xB1, 0xA2,
 455                        0x49, 0xA4, 0xA3, 0x9C, 0x4D, 0xFA, 0xA7, 0xB7,
 456                        0x6E, 0x45, 0xCC, 0x0D, 0x75, 0xC7, 0xF7, 0x99,
 457                        0x1F, 0x01, 0x44, 0x7B, 0xF2, 0xF9, 0x73, 0x67,
 458                        0x75, 0xD9, 0x4C, 0x2F, 0xA9, 0xB4, 0x59, 0x9E,
 459                        0xF9, 0x2C, 0xB9, 0x14, 0x5D, 0x5C, 0x18, 0x72,
 460                        0xEC, 0x27, 0x1A, 0x2D, 0xFB, 0xDA, 0xEB, 0x2F,
 461                        0x98, 0xA9, 0xC2, 0x01, 0x75, 0x7A, 0x27, 0x07,
 462                        0x94, 0x71, 0x3F, 0x90, 0xDF, 0x56, 0x6F, 0x23,
 463                        0x47, 0x12, 0xAD, 0x32, 0x7A, 0xBC, 0x91, 0x36,
 464                        0x43, 0xD2, 0x88, 0x3D, 0x2C, 0x31, 0x85, 0xE6,
 465                        0x22, 0x2E, 0xCF, 0x53, 0x87, 0x0D, 0xAE, 0x72,
 466                        0x31, 0x21, 0x52, 0x0C, 0xDF, 0xAC, 0xEA, 0x57
 467                },
 468                .len = 112
 469        },
 470        .modulus = {
 471                .data = {
 472                        0x20, 0x7E, 0x78, 0xFC, 0x54, 0x40, 0x47, 0xED,
 473                        0x7B, 0x26, 0x21, 0x94, 0x6D, 0x9C, 0xDC, 0xB7,
 474                        0x7C, 0xB8, 0xDE, 0x57, 0x3C, 0x64, 0x47, 0x50,
 475                        0xDB, 0x92, 0x0A, 0x5A, 0x85, 0x77, 0x84, 0xE3,
 476                        0xC7, 0xEA, 0x33, 0xA2, 0x63, 0xDA, 0x63, 0xE3,
 477                        0xDF, 0x07, 0x32, 0x85, 0xDC, 0xC3, 0xF0, 0x7C,
 478                        0xD8, 0x44, 0xC4, 0xDE, 0x2C, 0xB7, 0x91, 0xAE,
 479                        0xCD, 0xA2, 0xB3, 0x6B, 0x43, 0x04, 0x88, 0xBE,
 480                        0x3B, 0x50, 0xE1, 0x88, 0xD0, 0x20, 0x04, 0x36,
 481                        0xA4, 0xA0, 0xB0, 0x3B, 0x61, 0x9B, 0x83, 0xDB,
 482                        0x05, 0x77, 0x5A, 0x5E, 0x87, 0xA6, 0xBE, 0x6A,
 483                        0x2A, 0xB4, 0x30, 0x10, 0x8D, 0x3B, 0xBC, 0x84,
 484                        0x9E, 0xB2, 0x21, 0x7E, 0xAC, 0x67, 0x94, 0x9F,
 485                        0xF1, 0x32, 0x3C, 0xF0, 0x94, 0x83, 0xF8, 0x19
 486                },
 487                .len = 112
 488        },
 489        .result_len = 112
 490},
 491{
 492        .description = "Modular Exponentiation "
 493                                   "(mod=299, base=240, exp=321, res=299)",
 494        .xform_type = RTE_CRYPTO_ASYM_XFORM_MODEX,
 495        .base = {
 496                .data = {
 497                        0xAF, 0xE4, 0xCF, 0x9F, 0x7C, 0x20, 0x72, 0xE9,
 498                        0x50, 0x2E, 0xE5, 0xE4, 0xEF, 0x80, 0x28, 0xB3,
 499                        0x3A, 0x92, 0xAC, 0xCD, 0xF1, 0x6B, 0x7D, 0x83,
 500                        0x78, 0x4E, 0x9B, 0x30, 0x1E, 0xF4, 0x11, 0x15,
 501                        0x49, 0xAC, 0x06, 0xA2, 0x92, 0xB9, 0x91, 0x1B,
 502                        0xE8, 0xC8, 0xBC, 0x8A, 0x6F, 0xB2, 0xB8, 0x7C,
 503                        0xC5, 0xD3, 0x68, 0x60, 0xA4, 0x37, 0x7A, 0x6E,
 504                        0x3A, 0x1C, 0xAE, 0xAC, 0x70, 0x7B, 0x03, 0xE0,
 505                        0xDC, 0x7D, 0x51, 0x2E, 0x04, 0xC1, 0xD4, 0xA8,
 506                        0x5A, 0xE1, 0xE8, 0xAD, 0x83, 0x0C, 0x0C, 0x2D,
 507                        0x93, 0x8A, 0x07, 0x25, 0xC6, 0xE1, 0xAB, 0xD7,
 508                        0x2F, 0xC4, 0x14, 0x2E, 0x68, 0x89, 0xA7, 0xEA,
 509                        0x4E, 0x7B, 0xC4, 0x05, 0xD4, 0xB7, 0xC1, 0x9B,
 510                        0x9D, 0x8D, 0x58, 0x33, 0xE3, 0xB0, 0x58, 0xD8,
 511                        0xCF, 0x6D, 0xA9, 0xC6, 0x96, 0xE3, 0x6E, 0xAA,
 512                        0x23, 0x17, 0x19, 0x74, 0xE0, 0x7B, 0x50, 0x7A,
 513                        0x57, 0x49, 0xFD, 0xFA, 0x3E, 0x7D, 0xF9, 0xB6,
 514                        0x30, 0x5F, 0x1C, 0xE4, 0x5F, 0xC7, 0x3D, 0x5B,
 515                        0x9E, 0xF5, 0xB6, 0x2F, 0xEA, 0xCF, 0x31, 0x35,
 516                        0xC0, 0x60, 0xDE, 0x18, 0xC5, 0x0D, 0xBB, 0xC5,
 517                        0xD1, 0x1D, 0x25, 0x7C, 0x8C, 0x35, 0x8A, 0x71,
 518                        0xA8, 0x01, 0x9E, 0xEA, 0x8F, 0xD4, 0x5D, 0x52,
 519                        0x86, 0xB7, 0x11, 0xC8, 0xF2, 0x97, 0xD0, 0x73,
 520                        0x7C, 0xAB, 0xBB, 0xF4, 0x38, 0x4E, 0x48, 0xB5,
 521                        0x70, 0x35, 0x2A, 0xC5, 0x14, 0x86, 0x2E, 0x64,
 522                        0x91, 0x32, 0x37, 0x5E, 0x1A, 0x00, 0xAC, 0xF1,
 523                        0xFC, 0x36, 0xEA, 0x7F, 0x50, 0xAF, 0x02, 0xEC,
 524                        0x06, 0xE8, 0x55, 0x68, 0x0D, 0x9A, 0x58, 0x4D,
 525                        0xBD, 0xB9, 0x62, 0x25, 0xAB, 0x94, 0xD7, 0x37,
 526                        0xAD, 0xB4, 0x9F, 0xB4, 0x3A, 0x07, 0x45, 0x4B
 527                },
 528                .len = 240
 529        },
 530        .exponent = {
 531                .data = {
 532                        0xB1, 0xC2, 0x86, 0xFA, 0xE2, 0xF1, 0x71, 0x9C,
 533                        0x61, 0x23, 0xAB, 0x37, 0xC6, 0x4F, 0x17, 0xFE,
 534                        0x4D, 0xAC, 0x11, 0xD4, 0x36, 0xEE, 0xCB, 0xAE,
 535                        0x46, 0x88, 0xA4, 0x92, 0x20, 0x6D, 0xDC, 0xF1,
 536                        0xE4, 0x94, 0x72, 0x07, 0x64, 0x84, 0xF4, 0x83,
 537                        0x31, 0x0C, 0x04, 0xF7, 0x5B, 0x68, 0xE6, 0x7A,
 538                        0x6C, 0xCD, 0x6C, 0xBF, 0x03, 0x07, 0x5A, 0x91,
 539                        0x37, 0x3A, 0x73, 0xFF, 0xB2, 0x11, 0x88, 0x39,
 540                        0x19, 0xEB, 0x1C, 0x0E, 0x45, 0x99, 0xE6, 0x4E,
 541                        0xE4, 0xB1, 0x57, 0xBE, 0xBE, 0x7A, 0xE8, 0x56,
 542                        0x19, 0x92, 0xAC, 0xBD, 0x78, 0xCC, 0x54, 0xDC,
 543                        0x2D, 0xE6, 0x7D, 0x61, 0xE1, 0x27, 0xA7, 0x43,
 544                        0x46, 0x25, 0x51, 0x95, 0x47, 0xF6, 0xB1, 0x68,
 545                        0x17, 0xE6, 0x21, 0xD4, 0x83, 0x1E, 0x32, 0xAF,
 546                        0x22, 0xA4, 0x7D, 0x3D, 0x1F, 0xE6, 0x43, 0x96,
 547                        0x64, 0xAB, 0xC5, 0x81, 0xBC, 0x79, 0x14, 0x54,
 548                        0x02, 0x78, 0x79, 0x71, 0x58, 0xC2, 0x2E, 0x56,
 549                        0x21, 0x6B, 0x40, 0xDB, 0x79, 0xD1, 0x80, 0x5D,
 550                        0x61, 0xF0, 0x9F, 0x4A, 0xC3, 0x8F, 0xAC, 0x98,
 551                        0x94, 0x88, 0x2C, 0xA5, 0xCB, 0x06, 0x47, 0x73,
 552                        0x27, 0x71, 0xA8, 0x0C, 0xBD, 0xFD, 0x83, 0xBF,
 553                        0xA2, 0xCC, 0x91, 0x63, 0x9D, 0xC5, 0x58, 0x50,
 554                        0x53, 0x98, 0xA0, 0x5F, 0x0B, 0xDE, 0x15, 0x65,
 555                        0xFB, 0x5D, 0xF1, 0x9C, 0xD0, 0xC3, 0x6B, 0x4D,
 556                        0x31, 0x20, 0x2F, 0x4D, 0x4F, 0x9D, 0xEB, 0xCB,
 557                        0xFC, 0xDA, 0x54, 0xC1, 0x57, 0x10, 0x0F, 0xFC,
 558                        0xD2, 0xA7, 0x44, 0x0E, 0x89, 0x0D, 0x89, 0x56,
 559                        0x1E, 0x40, 0x64, 0xFF, 0x9E, 0xB1, 0x5C, 0x9A,
 560                        0x6E, 0xE5, 0xE9, 0x48, 0xAB, 0x27, 0x91, 0x9A,
 561                        0x3B, 0x8D, 0xB6, 0xA0, 0xD6, 0xD8, 0x9B, 0xBD,
 562                        0x0D, 0x1D, 0x90, 0xED, 0x54, 0xE1, 0x75, 0x5B,
 563                        0x89, 0xE1, 0x0C, 0xC7, 0x42, 0xD7, 0x68, 0xCB,
 564                        0x41, 0x59, 0xC1, 0x96, 0xD9, 0x77, 0x88, 0xF1,
 565                        0x68, 0x90, 0xDA, 0xE0, 0xB7, 0x1E, 0x2C, 0xDB,
 566                        0x27, 0x78, 0xC0, 0x15, 0x68, 0x9E, 0xF7, 0x48,
 567                        0x45, 0xFC, 0x22, 0x5D, 0x2B, 0xFA, 0xC7, 0x81,
 568                        0x26, 0x60, 0xF7, 0x50, 0xEE, 0xF9, 0x61, 0xF8,
 569                        0x59, 0x28, 0x92, 0xEE, 0xD7, 0x92, 0x5F, 0x5E,
 570                        0xA5, 0x5A, 0x4C, 0xC7, 0x89, 0x9B, 0x9F, 0x8F,
 571                        0x01, 0x3B, 0x9D, 0x8D, 0xF8, 0x6B, 0xEE, 0x64,
 572                        0x54
 573                },
 574                .len = 321
 575        },
 576        .reminder = {
 577                .data = {
 578                        0x4A, 0x18, 0x9C, 0xCB, 0x90, 0x71, 0x8E, 0xD3,
 579                        0xCA, 0xEB, 0xF1, 0xE7, 0xE8, 0xB0, 0x19, 0x9C,
 580                        0x05, 0x51, 0x29, 0x8C, 0xB9, 0x6D, 0x1B, 0x05,
 581                        0xDC, 0x16, 0x91, 0x0E, 0x69, 0xF3, 0x76, 0x29,
 582                        0x9D, 0x91, 0x21, 0x98, 0x56, 0x9A, 0x22, 0x20,
 583                        0xDF, 0x75, 0x4D, 0x40, 0x51, 0x99, 0x6E, 0xEA,
 584                        0x37, 0x22, 0xF4, 0x27, 0x04, 0x6E, 0xDC, 0xB2,
 585                        0xF5, 0xF6, 0xF8, 0xD6, 0xA8, 0xB7, 0x2D, 0xB7,
 586                        0x18, 0x44, 0xF7, 0x62, 0x91, 0x44, 0x97, 0x91,
 587                        0x6C, 0x14, 0x7E, 0xEB, 0x00, 0xB0, 0x3F, 0x7D,
 588                        0x7B, 0x4A, 0xD0, 0x04, 0xD2, 0xCC, 0x5A, 0x22,
 589                        0xB5, 0x0E, 0xAB, 0x1A, 0xB0, 0xD7, 0x97, 0xDD,
 590                        0xE5, 0x78, 0xA9, 0x97, 0xF4, 0xC7, 0xE0, 0x28,
 591                        0x00, 0xF3, 0x48, 0xCA, 0x69, 0xD0, 0xE8, 0x43,
 592                        0x12, 0x82, 0x24, 0xBA, 0x28, 0xBD, 0x8E, 0xCB,
 593                        0xB1, 0x98, 0x08, 0xC5, 0x0F, 0xF2, 0xE9, 0xA2,
 594                        0x6C, 0xCC, 0xA9, 0x21, 0xA6, 0x38, 0xAE, 0x88,
 595                        0x35, 0x5E, 0xBB, 0xEF, 0x37, 0xAB, 0xDA, 0x07,
 596                        0x5F, 0x0A, 0xB4, 0x29, 0x65, 0x24, 0x22, 0x6C,
 597                        0x9E, 0xF5, 0x19, 0xA4, 0x8E, 0x5A, 0xFA, 0xFC,
 598                        0x97, 0x8A, 0xE8, 0x2B, 0x6D, 0x4B, 0xD0, 0xFB,
 599                        0x86, 0xB9, 0xE7, 0x2C, 0x08, 0x25, 0x17, 0x90,
 600                        0x77, 0x54, 0xE0, 0xBA, 0x0F, 0x59, 0x6C, 0x8C,
 601                        0x0E, 0xCF, 0x54, 0x55, 0x6C, 0xF1, 0x65, 0x48,
 602                        0xCC, 0xF4, 0xAB, 0xA1, 0x91, 0x07, 0x29, 0xFC,
 603                        0x46, 0xBC, 0x2C, 0x85, 0xA1, 0x0C, 0x8A, 0x77,
 604                        0x7A, 0xC6, 0x01, 0x34, 0xCE, 0x92, 0x1D, 0x88,
 605                        0x54, 0x23, 0x26, 0x9B, 0x6B, 0x80, 0x6D, 0x08,
 606                        0x99, 0xAE, 0xC0, 0xF6, 0x45, 0x97, 0xAF, 0xCD,
 607                        0x2F, 0x4A, 0x7E, 0xAB, 0xD8, 0x31, 0x48, 0xA1,
 608                        0xEB, 0x5E, 0xD1, 0xC0, 0xE7, 0xD5, 0x37, 0x3D,
 609                        0x03, 0xA3, 0x16, 0x09, 0xD4, 0xDE, 0xC3, 0x97,
 610                        0x13, 0xB6, 0x67, 0x55, 0x8A, 0x71, 0x51, 0x66,
 611                        0xF5, 0xA1, 0x3B, 0xE3, 0x49, 0x8D, 0x7C, 0x52,
 612                        0xCD, 0xA7, 0x11, 0xDD, 0xE0, 0xA0, 0x5C, 0xD8,
 613                        0xF8, 0xDF, 0x01, 0xC5, 0x61, 0x87, 0xB4, 0xDE,
 614                        0x3E, 0x39, 0xED, 0xC3, 0x3F, 0x84, 0x70, 0x37,
 615                        0xBA, 0xDB, 0x5B
 616                },
 617                .len = 299
 618        },
 619        .modulus = {
 620                .data = {
 621                        0x85, 0x04, 0x13, 0x7C, 0x4D, 0xBF, 0xC6, 0x25,
 622                        0xD9, 0xAA, 0x1F, 0xED, 0x00, 0x69, 0xD7, 0x6C,
 623                        0xB0, 0x46, 0x52, 0xA5, 0xF4, 0xF6, 0x55, 0x16,
 624                        0x67, 0x52, 0x09, 0xF0, 0x28, 0xA7, 0x30, 0x22,
 625                        0x34, 0xF1, 0xEA, 0xEB, 0x7C, 0x18, 0xEE, 0xAC,
 626                        0x1A, 0xC1, 0xF5, 0x31, 0x7E, 0xA4, 0x4A, 0x0C,
 627                        0xEA, 0xFE, 0x33, 0xDB, 0x49, 0x04, 0xFD, 0x33,
 628                        0x3F, 0xB1, 0x41, 0x1F, 0xBD, 0x43, 0x71, 0xDE,
 629                        0xB9, 0xA2, 0x4F, 0x20, 0x57, 0xAF, 0x27, 0x37,
 630                        0x58, 0xA8, 0x51, 0x5D, 0x4E, 0xAB, 0x17, 0x1C,
 631                        0x99, 0xD9, 0xB2, 0x0D, 0x21, 0xCA, 0x35, 0x52,
 632                        0xF2, 0x4C, 0x7C, 0x79, 0x83, 0x2C, 0xF2, 0x87,
 633                        0xC5, 0x58, 0x6E, 0x6E, 0x48, 0xFB, 0x32, 0x4D,
 634                        0x1C, 0xDC, 0xE9, 0xDA, 0x9B, 0x77, 0x19, 0xD9,
 635                        0x78, 0xE4, 0xF5, 0x3A, 0x49, 0x3D, 0x0D, 0x3D,
 636                        0x10, 0x77, 0x0B, 0xC2, 0xE6, 0x66, 0x68, 0xFA,
 637                        0x55, 0x99, 0x65, 0x5E, 0x55, 0x87, 0xCF, 0x3C,
 638                        0x9C, 0x6C, 0x08, 0x09, 0x1F, 0x9C, 0xCB, 0x5E,
 639                        0xE5, 0x19, 0x39, 0xA9, 0x2F, 0xF0, 0x49, 0x3D,
 640                        0x7C, 0xB6, 0x7B, 0xA2, 0x93, 0xF1, 0x52, 0xD8,
 641                        0x92, 0xDD, 0x56, 0x57, 0x8E, 0xE2, 0x5F, 0xA0,
 642                        0x64, 0xB2, 0xC5, 0x0F, 0xB9, 0x89, 0xA6, 0x3F,
 643                        0x54, 0x51, 0x2D, 0x01, 0x51, 0x78, 0x32, 0xE1,
 644                        0xA7, 0x4D, 0x45, 0xC0, 0xD0, 0x6C, 0xE7, 0xCA,
 645                        0xB2, 0x3F, 0x17, 0xD4, 0xB6, 0x58, 0x9B, 0xA8,
 646                        0xBA, 0x2F, 0x3D, 0x1D, 0x6A, 0x73, 0x82, 0x2B,
 647                        0x26, 0x2E, 0x7A, 0xEE, 0xEA, 0x41, 0x25, 0xFE,
 648                        0xF0, 0xA2, 0x9C, 0x60, 0x35, 0xAD, 0x34, 0x30,
 649                        0x55, 0x02, 0x6B, 0x06, 0xF4, 0xAD, 0x91, 0xA3,
 650                        0xA2, 0x9C, 0x12, 0x8D, 0xDF, 0x2B, 0x3F, 0x0C,
 651                        0x54, 0xCB, 0x98, 0xBA, 0xA1, 0x33, 0x70, 0xEF,
 652                        0xF1, 0xEE, 0x15, 0xB7, 0xC6, 0x27, 0x47, 0x83,
 653                        0x90, 0x58, 0x08, 0x16, 0x83, 0x94, 0xE9, 0x95,
 654                        0x8B, 0x03, 0xD0, 0x3C, 0x45, 0xF8, 0x90, 0xC9,
 655                        0xA7, 0x64, 0x76, 0xE8, 0x01, 0xA4, 0xA2, 0xAD,
 656                        0x6F, 0x19, 0xCF, 0x38, 0x9A, 0xAB, 0x6E, 0xBE,
 657                        0x79, 0xE4, 0x0F, 0xCE, 0x9C, 0x59, 0xF2, 0xF4,
 658                        0x26, 0xAB, 0x0F
 659                },
 660                .len = 299
 661        },
 662        .result_len = 299
 663},
 664{
 665        .description = "Modular Exponentiation "
 666                                   "(mod=448, base=50, exp=40, res=448)",
 667        .xform_type = RTE_CRYPTO_ASYM_XFORM_MODEX,
 668        .base = {
 669                .data = {
 670                        0x92, 0x45, 0x17, 0x7D, 0xD3, 0xF4, 0x2B, 0x93,
 671                        0x8E, 0x1A, 0xFB, 0x1D, 0x13, 0x55, 0x53, 0x84,
 672                        0x96, 0x3C, 0x39, 0xE0, 0xAF, 0x4A, 0xB4, 0xC9,
 673                        0x16, 0x1F, 0xF4, 0x24, 0x65, 0xDD, 0xC3, 0x62,
 674                        0x12, 0xAF, 0x86, 0x95, 0x0D, 0xDE, 0x28, 0x87,
 675                        0x90, 0x11, 0xAA, 0x6E, 0x60, 0xCD, 0x54, 0xB7,
 676                        0x48, 0x43
 677                },
 678                .len = 50
 679        },
 680        .exponent = {
 681                .data = {
 682                        0x22, 0xD9, 0x4D, 0x01, 0x2F, 0x50, 0x5D, 0xE1,
 683                        0x01, 0xAA, 0xC6, 0xC6, 0xCD, 0x5D, 0x7E, 0x61,
 684                        0x75, 0x0A, 0xDC, 0x06, 0x07, 0x4B, 0xBD, 0x29,
 685                        0x33, 0x09, 0x91, 0xD4, 0x29, 0xEB, 0x52, 0x24,
 686                        0x27, 0xC6, 0x83, 0x6D, 0x70, 0xA9, 0xC9, 0x11
 687                },
 688                .len = 40
 689        },
 690        .reminder = {
 691                .data = {
 692                        0x6B, 0x15, 0x66, 0xD3, 0x81, 0x3E, 0xCB, 0xA6,
 693                        0xD8, 0x88, 0x9C, 0xFF, 0x8D, 0xBC, 0x91, 0x9F,
 694                        0xDA, 0x09, 0x9E, 0x1B, 0xDB, 0x8A, 0x0F, 0xAC,
 695                        0x19, 0x8E, 0xFE, 0x25, 0xA0, 0x66, 0x9D, 0x19,
 696                        0x7C, 0xCB, 0x1D, 0xCF, 0x97, 0x41, 0xD2, 0x7A,
 697                        0x0E, 0xAE, 0x8A, 0xD4, 0x24, 0x6D, 0xDF, 0xF4,
 698                        0x0A, 0xCD, 0xE7, 0xF3, 0x21, 0x76, 0x22, 0xCA,
 699                        0x31, 0x67, 0x91, 0x1B, 0x3A, 0x38, 0xAF, 0x03,
 700                        0xA6, 0xFF, 0x34, 0xA2, 0x92, 0xC8, 0x70, 0xD4,
 701                        0x86, 0xA5, 0x32, 0x57, 0xDC, 0xE5, 0xEB, 0xA5,
 702                        0x33, 0xC2, 0x83, 0xC3, 0x33, 0xE8, 0x53, 0x8F,
 703                        0x8A, 0xFA, 0xAE, 0xCF, 0x35, 0x6E, 0xD0, 0x5D,
 704                        0xCF, 0xE4, 0x18, 0x2F, 0x6E, 0xEC, 0x9D, 0xE9,
 705                        0x60, 0x27, 0xF7, 0x7A, 0xFD, 0x1D, 0xC3, 0x2C,
 706                        0xE0, 0xDA, 0x7B, 0x18, 0xE0, 0x6A, 0x06, 0xE6,
 707                        0xEE, 0xA3, 0x0C, 0x02, 0x98, 0xA5, 0x30, 0xA1,
 708                        0x3F, 0x98, 0xCA, 0x06, 0xBD, 0x76, 0xDB, 0xCC,
 709                        0xDF, 0x0B, 0x38, 0x43, 0x86, 0x11, 0xB8, 0xB7,
 710                        0xC5, 0xC1, 0x74, 0x59, 0x63, 0xFF, 0x3C, 0xFC,
 711                        0x14, 0xDF, 0xAD, 0xDD, 0x99, 0xCC, 0x48, 0xEA,
 712                        0xCE, 0x75, 0x15, 0x1D, 0x8F, 0x63, 0x5B, 0x9D,
 713                        0x97, 0x2E, 0x98, 0x7B, 0x7A, 0x07, 0xBB, 0x99,
 714                        0x57, 0xF5, 0xC4, 0x4D, 0x11, 0x4C, 0x55, 0x08,
 715                        0x5F, 0x2C, 0x25, 0x37, 0x83, 0x76, 0xD5, 0xCA,
 716                        0x51, 0x5C, 0x86, 0xA4, 0xA1, 0x14, 0x2B, 0xBA,
 717                        0xBD, 0x59, 0xBF, 0xE0, 0x41, 0xA9, 0x66, 0xD1,
 718                        0x29, 0x4B, 0x04, 0xCA, 0xEE, 0x9A, 0x31, 0x5E,
 719                        0xD9, 0x11, 0xEE, 0x1B, 0xB6, 0x09, 0x11, 0xA4,
 720                        0xD8, 0x3A, 0x12, 0xF5, 0x9E, 0x79, 0x02, 0x64,
 721                        0x8F, 0x18, 0x38, 0x5D, 0x19, 0x4D, 0x56, 0xA6,
 722                        0x7A, 0xA6, 0xC0, 0x98, 0x13, 0x2F, 0x60, 0x73,
 723                        0xD2, 0x8F, 0x70, 0x3D, 0x09, 0x42, 0xE9, 0xCC,
 724                        0xFF, 0xA9, 0xF0, 0x82, 0xA2, 0x10, 0x1A, 0x26,
 725                        0x91, 0xD6, 0x84, 0x24, 0x0A, 0x3A, 0xC6, 0x67,
 726                        0x36, 0xCE, 0x9B, 0x4B, 0xF8, 0xF3, 0xCA, 0xB6,
 727                        0x6C, 0x5F, 0x04, 0xE5, 0x74, 0xD8, 0x56, 0x42,
 728                        0x7D, 0xD1, 0x5E, 0x8F, 0xA0, 0x9D, 0x66, 0x3B,
 729                        0x13, 0x86, 0x9D, 0x84, 0x40, 0x74, 0x76, 0x00,
 730                        0xCD, 0x40, 0x87, 0x58, 0x7C, 0x41, 0x8A, 0xE2,
 731                        0xF8, 0xCB, 0x06, 0xCF, 0xCB, 0x0C, 0x78, 0x5D,
 732                        0x6E, 0xAD, 0xE0, 0x1A, 0x54, 0xC3, 0x31, 0x5B,
 733                        0xCF, 0xD0, 0x2D, 0x22, 0xA5, 0x84, 0x97, 0x20,
 734                        0x4D, 0x13, 0x5F, 0xED, 0xFE, 0x01, 0xD8, 0x1A,
 735                        0x79, 0xB5, 0x99, 0x03, 0x18, 0x55, 0xFB, 0xDD,
 736                        0x5F, 0x6E, 0x85, 0xA2, 0x13, 0x28, 0x45, 0x29,
 737                        0x25, 0x71, 0xC8, 0x53, 0x9B, 0x45, 0xA5, 0xD9,
 738                        0x55, 0x8C, 0xC8, 0x93, 0x2B, 0xBC, 0x08, 0x8D,
 739                        0x47, 0x90, 0x8F, 0x5E, 0x4B, 0xBC, 0xCE, 0xD1,
 740                        0x51, 0x3B, 0xFB, 0x09, 0x4A, 0x72, 0x99, 0x0F,
 741                        0xE2, 0x5F, 0x80, 0xF4, 0xE7, 0x6F, 0xD6, 0x08,
 742                        0xD1, 0x79, 0xE8, 0x68, 0xFA, 0x29, 0x08, 0x4F,
 743                        0x8B, 0x11, 0x12, 0x27, 0x97, 0x04, 0xC8, 0x7D,
 744                        0xAB, 0x4D, 0xDA, 0x92, 0x29, 0x42, 0x7C, 0x3E,
 745                        0x7D, 0x05, 0xEC, 0x1F, 0x4A, 0xA1, 0xBB, 0x3F,
 746                        0x77, 0x3F, 0xEF, 0xC9, 0xAA, 0x63, 0xD5, 0x39,
 747                        0xD5, 0x33, 0x0D, 0x28, 0xD0, 0x3C, 0x85, 0xC0
 748                },
 749                .len = 448
 750        },
 751        .modulus = {
 752                .data = {
 753                        0xBB, 0x97, 0x8A, 0xB6, 0x26, 0xD4, 0x0E, 0x70,
 754                        0x21, 0xA6, 0x56, 0x71, 0xE5, 0xD8, 0x18, 0x21,
 755                        0x64, 0x9F, 0x1B, 0x6F, 0x7C, 0x27, 0x72, 0xB8,
 756                        0x39, 0xE5, 0x2A, 0x94, 0x76, 0x22, 0xB7, 0x68,
 757                        0x57, 0x3A, 0x01, 0x54, 0xA8, 0x50, 0x41, 0xA1,
 758                        0xAD, 0xD0, 0xC7, 0xDB, 0xAA, 0x76, 0x7F, 0x37,
 759                        0xA9, 0x27, 0x22, 0x8D, 0xF0, 0x5C, 0x5A, 0xAC,
 760                        0xFB, 0x82, 0x6A, 0x8E, 0x31, 0x51, 0x54, 0x7C,
 761                        0xDB, 0x55, 0x9C, 0xBC, 0x82, 0x27, 0xF4, 0x0B,
 762                        0x94, 0x74, 0xC8, 0x83, 0x80, 0x1C, 0xD8, 0xFF,
 763                        0x50, 0xA2, 0xC9, 0xED, 0x2B, 0x98, 0x77, 0xF3,
 764                        0x31, 0x81, 0x1C, 0x41, 0x8E, 0xAF, 0x87, 0xA2,
 765                        0x02, 0xAC, 0x8B, 0x55, 0x01, 0x5C, 0x16, 0x11,
 766                        0x63, 0x8C, 0xE2, 0x0D, 0x51, 0xD2, 0x4C, 0xD7,
 767                        0xD4, 0x3D, 0xE4, 0x79, 0x1A, 0xA7, 0xC4, 0xBF,
 768                        0x4E, 0x2A, 0xC9, 0x74, 0xD6, 0xD4, 0x90, 0x03,
 769                        0x65, 0x7F, 0x54, 0x0F, 0xAC, 0x5F, 0x98, 0x2C,
 770                        0x46, 0xC0, 0xD7, 0xE6, 0x75, 0x95, 0xC3, 0xEA,
 771                        0x05, 0x3A, 0x03, 0x55, 0x43, 0xC7, 0xC2, 0xD1,
 772                        0x11, 0xCD, 0x57, 0x37, 0x0D, 0x40, 0x87, 0xDF,
 773                        0x7D, 0xC3, 0x04, 0x54, 0xDE, 0x1D, 0xAF, 0xB8,
 774                        0x02, 0x50, 0x42, 0xFF, 0x9D, 0xFB, 0x13, 0xF7,
 775                        0x25, 0x5A, 0x8B, 0xE3, 0x31, 0xA2, 0x64, 0xF8,
 776                        0x94, 0x50, 0x18, 0xFB, 0xBB, 0xA2, 0xE9, 0x13,
 777                        0x77, 0x6E, 0xE1, 0x6F, 0x9F, 0x06, 0x03, 0xEE,
 778                        0x0D, 0x06, 0x6E, 0xF2, 0x9B, 0x15, 0x70, 0xDD,
 779                        0x26, 0x7C, 0xB4, 0x5D, 0xD0, 0xE7, 0x77, 0xC4,
 780                        0xB9, 0x88, 0x75, 0xB8, 0x73, 0xFC, 0xE9, 0xB7,
 781                        0x11, 0x26, 0xAC, 0xDB, 0x97, 0x27, 0x18, 0x21,
 782                        0x50, 0x7E, 0x46, 0xB2, 0xF1, 0x50, 0x40, 0xD9,
 783                        0x8B, 0x63, 0xDB, 0x1A, 0x8E, 0x29, 0xBE, 0x1F,
 784                        0x88, 0x35, 0xFD, 0x95, 0xC3, 0xA6, 0x80, 0xEB,
 785                        0x73, 0xF7, 0x02, 0x02, 0xB0, 0xCA, 0x97, 0x2C,
 786                        0x32, 0x44, 0xA9, 0xCA, 0x94, 0xC0, 0xB2, 0xD9,
 787                        0x7C, 0xD9, 0x10, 0x62, 0x31, 0xC9, 0xFA, 0x5B,
 788                        0x5C, 0x2C, 0xB6, 0x04, 0x5B, 0x7E, 0x86, 0xBB,
 789                        0x49, 0x02, 0x16, 0x9E, 0x1E, 0x53, 0xBD, 0xC2,
 790                        0xA9, 0xAA, 0x94, 0x39, 0xA1, 0xB2, 0x18, 0x17,
 791                        0xB6, 0x2C, 0xF6, 0xFF, 0xC0, 0xD0, 0x2D, 0x4D,
 792                        0xAA, 0x6C, 0xB5, 0xC8, 0x6A, 0xBE, 0x38, 0xE4,
 793                        0x9F, 0xDC, 0x5C, 0x56, 0x56, 0x04, 0x32, 0x49,
 794                        0x91, 0x17, 0x44, 0x6E, 0xB3, 0xF9, 0x8F, 0xDB,
 795                        0xEA, 0x04, 0x4C, 0x67, 0xE6, 0xDA, 0x96, 0x2F,
 796                        0x89, 0x2D, 0x54, 0xC3, 0xAD, 0x07, 0x6B, 0xA0,
 797                        0x87, 0xF0, 0xCF, 0x4B, 0x43, 0x46, 0xCA, 0x06,
 798                        0x48, 0x8D, 0x34, 0xC4, 0xD2, 0xD2, 0xA9, 0x16,
 799                        0x13, 0xF5, 0x49, 0x44, 0x8C, 0xD9, 0x0C, 0x1E,
 800                        0x79, 0x47, 0xFC, 0x4C, 0x37, 0x8E, 0xD1, 0xFD,
 801                        0xB9, 0xE8, 0x6E, 0x1B, 0x8D, 0x68, 0xCC, 0x49,
 802                        0x0D, 0x98, 0xB5, 0xD5, 0x22, 0x1C, 0xFC, 0xBA,
 803                        0x7A, 0x74, 0x3D, 0xBD, 0xD9, 0xB3, 0x80, 0x58,
 804                        0x4A, 0x05, 0x67, 0x9D, 0x59, 0xF4, 0xF7, 0x72,
 805                        0x11, 0x3C, 0x67, 0x96, 0xE7, 0x0D, 0x8E, 0x73,
 806                        0xD1, 0xEE, 0x00, 0x79, 0x98, 0x7A, 0x0E, 0xE0,
 807                        0xA8, 0xEA, 0x7D, 0xF3, 0xDB, 0x0E, 0x62, 0x3E,
 808                        0x66, 0x95, 0xED, 0xD5, 0x8C, 0x39, 0xF5, 0xAB
 809                },
 810                .len = 448
 811        },
 812        .result_len = 448
 813},
 814{
 815        .description = "Modular Exponentiation "
 816                                   "(mod=19, base=500, exp=35, res=19)",
 817        .xform_type = RTE_CRYPTO_ASYM_XFORM_MODEX,
 818        .base = {
 819                .data = {
 820                        0x42, 0xE5, 0x6F, 0xF7, 0xEF, 0x8F, 0xAB, 0x6F,
 821                        0xF5, 0xE2, 0xD2, 0x97, 0x68, 0x0D, 0x52, 0xDD,
 822                        0x3D, 0x62, 0xC4, 0xC4, 0xDE, 0xD2, 0x07, 0x50,
 823                        0x1B, 0xA9, 0x5F, 0xAE, 0x42, 0xCB, 0x5E, 0x0B,
 824                        0xC0, 0x41, 0xFE, 0xEF, 0x22, 0xA6, 0x4E, 0x35,
 825                        0x80, 0x61, 0x22, 0x92, 0x65, 0x77, 0x45, 0x84,
 826                        0x6C, 0x03, 0x7C, 0xEF, 0xC0, 0x49, 0x31, 0x87,
 827                        0x86, 0x9B, 0x2E, 0x28, 0xA1, 0x55, 0x2D, 0x3C,
 828                        0x68, 0x3D, 0x69, 0x0E, 0x98, 0xD6, 0x40, 0xFD,
 829                        0x0B, 0x4C, 0x5F, 0xC7, 0x95, 0xF1, 0x53, 0x7C,
 830                        0xCC, 0x12, 0x3F, 0x8C, 0x7A, 0x24, 0x73, 0xE7,
 831                        0x33, 0x20, 0xBD, 0x0C, 0xD2, 0x9C, 0x12, 0x20,
 832                        0xC0, 0xC0, 0xA9, 0x16, 0x7E, 0x6B, 0x1D, 0x1F,
 833                        0xFE, 0x63, 0x8A, 0x22, 0x75, 0xDC, 0xF0, 0x0F,
 834                        0x8E, 0xA4, 0x3C, 0xE3, 0x6B, 0xFA, 0x46, 0xBA,
 835                        0xEB, 0x91, 0x31, 0x9D, 0x34, 0xED, 0xA0, 0xA6,
 836                        0xA3, 0xAB, 0xA5, 0x2A, 0x10, 0x30, 0xF4, 0x6F,
 837                        0x80, 0x25, 0xB0, 0xF5, 0x56, 0x76, 0xD3, 0xC5,
 838                        0x10, 0x92, 0xCD, 0xEA, 0xC3, 0x9C, 0x52, 0x96,
 839                        0xF1, 0xBD, 0x42, 0x53, 0xF3, 0xA9, 0x1F, 0xCB,
 840                        0x53, 0x45, 0xF1, 0xF6, 0x5F, 0x98, 0xFC, 0x13,
 841                        0xC9, 0xA8, 0x44, 0xC6, 0xD0, 0x78, 0xB6, 0x39,
 842                        0x93, 0x02, 0xC6, 0xC9, 0x0F, 0xAF, 0xF9, 0x6D,
 843                        0x91, 0x35, 0xC9, 0x26, 0x73, 0x11, 0xEB, 0xEE,
 844                        0x52, 0x61, 0x6C, 0xC0, 0x7F, 0xFD, 0xD0, 0x77,
 845                        0x9F, 0xC6, 0x0A, 0x05, 0x1B, 0x90, 0x61, 0x54,
 846                        0x61, 0xFF, 0x1E, 0xBA, 0x1D, 0x2F, 0x25, 0xE9,
 847                        0x85, 0x4C, 0xBA, 0xEF, 0x99, 0x95, 0x3C, 0xBB,
 848                        0xA9, 0xCF, 0x0D, 0xBF, 0x2C, 0x86, 0xB0, 0x59,
 849                        0xAA, 0x83, 0x29, 0x32, 0x24, 0x28, 0xC8, 0x53,
 850                        0x28, 0x4C, 0xEB, 0x08, 0xFF, 0xC6, 0x25, 0xB7,
 851                        0xFF, 0x18, 0xB0, 0x2C, 0xDD, 0xAE, 0xFB, 0xDB,
 852                        0x54, 0xA2, 0x92, 0x27, 0x15, 0x0D, 0x6B, 0x50,
 853                        0xFB, 0xEA, 0x2C, 0x1C, 0x6F, 0x91, 0x3C, 0x50,
 854                        0x5A, 0xD8, 0x9B, 0x33, 0xED, 0x51, 0x5D, 0x7C,
 855                        0x37, 0x01, 0xEF, 0x09, 0xEA, 0x59, 0x56, 0x8A,
 856                        0x67, 0x21, 0x8C, 0x25, 0x00, 0x33, 0x24, 0x31,
 857                        0xCB, 0xAA, 0x5A, 0xA4, 0xB1, 0x84, 0xDD, 0x89,
 858                        0x3A, 0xFA, 0xD8, 0xAB, 0xEE, 0x3E, 0xC0, 0x0D,
 859                        0xDA, 0x2C, 0x2A, 0x75, 0x13, 0xD7, 0x49, 0x5E,
 860                        0x28, 0x2C, 0x24, 0xC6, 0x1E, 0xA0, 0xB3, 0x70,
 861                        0xAD, 0x45, 0x8A, 0xF2, 0xD9, 0x38, 0x69, 0xD5,
 862                        0x53, 0x30, 0xD8, 0x09, 0x09, 0xDE, 0x1F, 0x6C,
 863                        0x36, 0x82, 0xD5, 0xEC, 0xA7, 0x7E, 0x37, 0x5F,
 864                        0x7D, 0xF2, 0x85, 0x85, 0xF9, 0x0A, 0xC1, 0x13,
 865                        0x86, 0x3C, 0xCD, 0xFE, 0x44, 0x46, 0x57, 0x5E,
 866                        0x67, 0x39, 0x9D, 0x65, 0x74, 0xB9, 0x13, 0x5A,
 867                        0x05, 0xC1, 0xEA, 0xB5, 0x10, 0x1D, 0x66, 0xFF,
 868                        0xA0, 0x3D, 0x47, 0x27, 0x15, 0x66, 0x52, 0x19,
 869                        0xFA, 0x95, 0xD0, 0x03, 0x67, 0xA8, 0x89, 0xAA,
 870                        0x68, 0x04, 0x5F, 0xC4, 0x57, 0x1F, 0x6C, 0xF7,
 871                        0xD2, 0xE2, 0xA3, 0xF3, 0x96, 0x70, 0x86, 0xC6,
 872                        0xCB, 0x3D, 0x52, 0x66, 0x79, 0xED, 0xE6, 0x35,
 873                        0x0A, 0xE8, 0xA8, 0x5A, 0xED, 0x41, 0xB0, 0xF0,
 874                        0x89, 0xCC, 0x20, 0xDA, 0xB7, 0x48, 0x44, 0x64,
 875                        0x69, 0xC9, 0x43, 0xE2, 0xBD, 0xD1, 0x17, 0xCF,
 876                        0x25, 0x7C, 0x92, 0x0B, 0xFC, 0x71, 0x46, 0x67,
 877                        0x1F, 0xF4, 0xA7, 0xFF, 0xD8, 0xA4, 0x5F, 0x4A,
 878                        0x8A, 0x45, 0xBE, 0xDD, 0x89, 0xE2, 0x2A, 0xA7,
 879                        0xBC, 0xE9, 0x84, 0x53, 0x9D, 0xF4, 0x39, 0xB7,
 880                        0xDB, 0x3A, 0x17, 0xF7, 0x27, 0x39, 0xDF, 0x8A,
 881                        0xF0, 0x72, 0xD6, 0x23, 0x1B, 0x1C, 0xD9, 0x48,
 882                        0xF4, 0x2E, 0x54, 0xA3
 883                },
 884                .len = 500
 885        },
 886        .exponent = {
 887                .data = {
 888                        0xE7, 0xF1, 0x97, 0x29, 0x62, 0x0B, 0x99, 0x89,
 889                        0x99, 0xC1, 0x63, 0xA2, 0xB7, 0x29, 0xAD, 0x0E,
 890                        0x84, 0x3B, 0x86, 0x82, 0xC4, 0xDD, 0xC4, 0xE2,
 891                        0xA7, 0xD4, 0xBA, 0x91, 0x2C, 0xB5, 0xD6, 0xD4,
 892                        0x74, 0x1D, 0xE1
 893                },
 894                .len = 35
 895        },
 896        .reminder = {
 897                .data = {
 898                        0x67, 0x9F, 0xF7, 0x57, 0xD7, 0xF8, 0xF8, 0x90,
 899                        0x4E, 0xB5, 0x34, 0xE8, 0xAF, 0x14, 0xC6, 0x94,
 900                        0x5F, 0xA1, 0x03
 901                },
 902                .len = 19
 903        },
 904        .modulus = {
 905                .data = {
 906                        0x9C, 0xE7, 0xE7, 0x14, 0x6E, 0x07, 0x71, 0xD2,
 907                        0xD1, 0xB3, 0x59, 0x9B, 0x63, 0xDB, 0x58, 0x8D,
 908                        0x5E, 0x84, 0xA0
 909                },
 910                .len = 19
 911        },
 912        .result_len = 19
 913}
 914};
 915
 916static const struct
 917modinv_test_data modinv_test_case[] = {
 918{
 919        .description = "Modular Inverse (mod=128, base=20, exp=3, inv=128)",
 920        .xform_type = RTE_CRYPTO_ASYM_XFORM_MODINV,
 921        .base = {
 922                .data = {
 923                        0xF8, 0xBA, 0x1A, 0x55, 0xD0, 0x2F, 0x85,
 924                        0xAE, 0x96, 0x7B, 0xB6, 0x2F, 0xB6, 0xCD,
 925                        0xA8, 0xEB, 0x7E, 0x78, 0xA0, 0x50
 926                },
 927                .len = 20
 928        },
 929        .inverse = {
 930                .data = {
 931                        0x52, 0xb1, 0xa3, 0x8c, 0xc5, 0x8a, 0xb9, 0x1f,
 932                        0xb6, 0x82, 0xf5, 0x6a, 0x9a, 0xde, 0x8d, 0x2e,
 933                        0x62, 0x4b, 0xac, 0x49, 0x21, 0x1d, 0x30, 0x4d,
 934                        0x32, 0xac, 0x1f, 0x40, 0x6d, 0x52, 0xc7, 0x9b,
 935                        0x6c, 0x0a, 0x82, 0x3a, 0x2c, 0xaf, 0x6b, 0x6d,
 936                        0x17, 0xbe, 0x43, 0xed, 0x97, 0x78, 0xeb, 0x4c,
 937                        0x92, 0x6f, 0xcf, 0xed, 0xb1, 0x09, 0xcb, 0x27,
 938                        0xc2, 0xde, 0x62, 0xfd, 0x21, 0xe6, 0xbd, 0x4f,
 939                        0xfe, 0x7a, 0x1b, 0x50, 0xfe, 0x10, 0x4a, 0xb0,
 940                        0xb7, 0xcf, 0xdb, 0x7d, 0xca, 0xc2, 0xf0, 0x1c,
 941                        0x39, 0x48, 0x6a, 0xb5, 0x4d, 0x8c, 0xfe, 0x63,
 942                        0x91, 0x9c, 0x21, 0xc3, 0x0e, 0x76, 0xad, 0x44,
 943                        0x8d, 0x54, 0x33, 0x99, 0xe1, 0x80, 0x19, 0xba,
 944                        0xb5, 0xac, 0x7d, 0x9c, 0xce, 0x91, 0x2a, 0xd9,
 945                        0x2c, 0xe1, 0x16, 0xd6, 0xd7, 0xcf, 0x9d, 0x05,
 946                        0x9a, 0x66, 0x9a, 0x3a, 0xc1, 0xb8, 0x4b, 0xc3
 947                },
 948                .len = 128
 949        },
 950        .modulus = {
 951                .data = {
 952                        0xb3, 0xa1, 0xaf, 0xb7, 0x13, 0x08, 0x00, 0x0a,
 953                        0x35, 0xdc, 0x2b, 0x20, 0x8d, 0xa1, 0xb5, 0xce,
 954                        0x47, 0x8a, 0xc3, 0x80, 0xf4, 0x7d, 0x4a, 0xa2,
 955                        0x62, 0xfd, 0x61, 0x7f, 0xb5, 0xa8, 0xde, 0x0a,
 956                        0x17, 0x97, 0xa0, 0xbf, 0xdf, 0x56, 0x5a, 0x3d,
 957                        0x51, 0x56, 0x4f, 0x70, 0x70, 0x3f, 0x63, 0x6a,
 958                        0x44, 0x5b, 0xad, 0x84, 0x0d, 0x3f, 0x27, 0x6e,
 959                        0x3b, 0x34, 0x91, 0x60, 0x14, 0xb9, 0xaa, 0x72,
 960                        0xfd, 0xa3, 0x64, 0xd2, 0x03, 0xa7, 0x53, 0x87,
 961                        0x9e, 0x88, 0x0b, 0xc1, 0x14, 0x93, 0x1a, 0x62,
 962                        0xff, 0xb1, 0x5d, 0x74, 0xcd, 0x59, 0x63, 0x18,
 963                        0x11, 0x3d, 0x4f, 0xba, 0x75, 0xd4, 0x33, 0x4e,
 964                        0x23, 0x6b, 0x7b, 0x57, 0x44, 0xe1, 0xd3, 0x03,
 965                        0x13, 0xa6, 0xf0, 0x8b, 0x60, 0xb0, 0x9e, 0xee,
 966                        0x75, 0x08, 0x9d, 0x71, 0x63, 0x13, 0xcb, 0xa6,
 967                        0x81, 0x92, 0x14, 0x03, 0x22, 0x2d, 0xde, 0x55
 968                },
 969                .len = 128
 970        },
 971        .result_len = 128
 972}
 973};
 974
 975/* modular operation test data */
 976uint8_t base[] = {
 977        0xF8, 0xBA, 0x1A, 0x55, 0xD0, 0x2F, 0x85,
 978        0xAE, 0x96, 0x7B, 0xB6, 0x2F, 0xB6, 0xCD,
 979        0xA8, 0xEB, 0x7E, 0x78, 0xA0, 0x50
 980};
 981
 982uint8_t mod_p[] = {
 983        0x00, 0xb3, 0xa1, 0xaf, 0xb7, 0x13, 0x08, 0x00,
 984        0x0a, 0x35, 0xdc, 0x2b, 0x20, 0x8d, 0xa1, 0xb5,
 985        0xce, 0x47, 0x8a, 0xc3, 0x80, 0xf4, 0x7d, 0x4a,
 986        0xa2, 0x62, 0xfd, 0x61, 0x7f, 0xb5, 0xa8, 0xde,
 987        0x0a, 0x17, 0x97, 0xa0, 0xbf, 0xdf, 0x56, 0x5a,
 988        0x3d, 0x51, 0x56, 0x4f, 0x70, 0x70, 0x3f, 0x63,
 989        0x6a, 0x44, 0x5b, 0xad, 0x84, 0x0d, 0x3f, 0x27,
 990        0x6e, 0x3b, 0x34, 0x91, 0x60, 0x14, 0xb9, 0xaa,
 991        0x72, 0xfd, 0xa3, 0x64, 0xd2, 0x03, 0xa7, 0x53,
 992        0x87, 0x9e, 0x88, 0x0b, 0xc1, 0x14, 0x93, 0x1a,
 993        0x62, 0xff, 0xb1, 0x5d, 0x74, 0xcd, 0x59, 0x63,
 994        0x18, 0x11, 0x3d, 0x4f, 0xba, 0x75, 0xd4, 0x33,
 995        0x4e, 0x23, 0x6b, 0x7b, 0x57, 0x44, 0xe1, 0xd3,
 996        0x03, 0x13, 0xa6, 0xf0, 0x8b, 0x60, 0xb0, 0x9e,
 997        0xee, 0x75, 0x08, 0x9d, 0x71, 0x63, 0x13, 0xcb,
 998        0xa6, 0x81, 0x92, 0x14, 0x03, 0x22, 0x2d, 0xde,
 999        0x55
1000};
1001
1002uint8_t mod_e[] = {0x01, 0x00, 0x01};
1003
1004/* Precomputed modular exponentiation for verification */
1005uint8_t mod_exp[] = {
1006        0x2C, 0x60, 0x75, 0x45, 0x98, 0x9D, 0xE0, 0x72,
1007        0xA0, 0x9D, 0x3A, 0x9E, 0x03, 0x38, 0x73, 0x3C,
1008        0x31, 0x83, 0x04, 0xFE, 0x75, 0x43, 0xE6, 0x17,
1009        0x5C, 0x01, 0x29, 0x51, 0x69, 0x33, 0x62, 0x2D,
1010        0x78, 0xBE, 0xAE, 0xC4, 0xBC, 0xDE, 0x7E, 0x2C,
1011        0x77, 0x84, 0xF2, 0xC5, 0x14, 0xB5, 0x2F, 0xF7,
1012        0xC5, 0x94, 0xEF, 0x86, 0x75, 0x75, 0xB5, 0x11,
1013        0xE5, 0x0E, 0x0A, 0x29, 0x76, 0xE2, 0xEA, 0x32,
1014        0x0E, 0x43, 0x77, 0x7E, 0x2C, 0x27, 0xAC, 0x3B,
1015        0x86, 0xA5, 0xDB, 0xC9, 0x48, 0x40, 0xE8, 0x99,
1016        0x9A, 0x0A, 0x3D, 0xD6, 0x74, 0xFA, 0x2E, 0x2E,
1017        0x5B, 0xAF, 0x8C, 0x99, 0x44, 0x2A, 0x67, 0x38,
1018        0x27, 0x41, 0x59, 0x9D, 0xB8, 0x51, 0xC9, 0xF7,
1019        0x43, 0x61, 0x31, 0x6E, 0xF1, 0x25, 0x38, 0x7F,
1020        0xAE, 0xC6, 0xD0, 0xBB, 0x29, 0x76, 0x3F, 0x46,
1021        0x2E, 0x1B, 0xE4, 0x67, 0x71, 0xE3, 0x87, 0x5A
1022};
1023
1024/* Precomputed modular inverse for verification */
1025uint8_t mod_inv[] = {
1026        0x52, 0xb1, 0xa3, 0x8c, 0xc5, 0x8a, 0xb9, 0x1f,
1027        0xb6, 0x82, 0xf5, 0x6a, 0x9a, 0xde, 0x8d, 0x2e,
1028        0x62, 0x4b, 0xac, 0x49, 0x21, 0x1d, 0x30, 0x4d,
1029        0x32, 0xac, 0x1f, 0x40, 0x6d, 0x52, 0xc7, 0x9b,
1030        0x6c, 0x0a, 0x82, 0x3a, 0x2c, 0xaf, 0x6b, 0x6d,
1031        0x17, 0xbe, 0x43, 0xed, 0x97, 0x78, 0xeb, 0x4c,
1032        0x92, 0x6f, 0xcf, 0xed, 0xb1, 0x09, 0xcb, 0x27,
1033        0xc2, 0xde, 0x62, 0xfd, 0x21, 0xe6, 0xbd, 0x4f,
1034        0xfe, 0x7a, 0x1b, 0x50, 0xfe, 0x10, 0x4a, 0xb0,
1035        0xb7, 0xcf, 0xdb, 0x7d, 0xca, 0xc2, 0xf0, 0x1c,
1036        0x39, 0x48, 0x6a, 0xb5, 0x4d, 0x8c, 0xfe, 0x63,
1037        0x91, 0x9c, 0x21, 0xc3, 0x0e, 0x76, 0xad, 0x44,
1038        0x8d, 0x54, 0x33, 0x99, 0xe1, 0x80, 0x19, 0xba,
1039        0xb5, 0xac, 0x7d, 0x9c, 0xce, 0x91, 0x2a, 0xd9,
1040        0x2c, 0xe1, 0x16, 0xd6, 0xd7, 0xcf, 0x9d, 0x05,
1041        0x9a, 0x66, 0x9a, 0x3a, 0xc1, 0xb8, 0x4b, 0xc3
1042};
1043
1044struct rte_crypto_asym_xform modex_xform = {
1045        .next = NULL,
1046        .xform_type = RTE_CRYPTO_ASYM_XFORM_MODEX,
1047        .modex = {
1048                .modulus = {
1049                        .data = mod_p,
1050                        .length = sizeof(mod_p)
1051                },
1052                .exponent = {
1053                        .data = mod_e,
1054                        .length = sizeof(mod_e)
1055                }
1056        }
1057};
1058
1059struct rte_crypto_asym_xform modinv_xform = {
1060        .next = NULL,
1061        .xform_type = RTE_CRYPTO_ASYM_XFORM_MODINV,
1062        .modinv = {
1063                .modulus = {
1064                        .data = mod_p,
1065                        .length = sizeof(mod_p)
1066                }
1067        }
1068};
1069
1070#endif /* TEST_CRYPTODEV_MOD_TEST_VECTORS_H__ */
1071