code wiki / (root) / nx_rsa_pkcs1_v1_5_sha384_test.nx

nx_rsa_pkcs1_v1_5_sha384_test.nx source

↩ module page · 551 lines · 14228 B

1// nx_rsa_pkcs1_v1_5_sha384_test.nx -- KAT vs openssl RSA-2048/SHA-384. 2// expect_exit: 0 3// license_tier: ORIGINAL 4 5import "nx_syscalls.nx" 6import "nx_u2048.nx" 7import "nx_rsa_pkcs1_v1_5_sha384.nx" 8 9func main() -> i64 { 10 let msg: *u8 = (sys_mmap(26)) as *u8 11 msg[0] = 0x68 as u8 12 msg[1] = 0x65 as u8 13 msg[2] = 0x6c as u8 14 msg[3] = 0x6c as u8 15 msg[4] = 0x6f as u8 16 msg[5] = 0x20 as u8 17 msg[6] = 0x6e as u8 18 msg[7] = 0x69 as u8 19 msg[8] = 0x73 as u8 20 msg[9] = 0x68 as u8 21 msg[10] = 0x69 as u8 22 msg[11] = 0x20 as u8 23 msg[12] = 0x73 as u8 24 msg[13] = 0x68 as u8 25 msg[14] = 0x61 as u8 26 msg[15] = 0x33 as u8 27 msg[16] = 0x38 as u8 28 msg[17] = 0x34 as u8 29 let sig: *u8 = (sys_mmap(264)) as *u8 30 sig[0] = 0x03 as u8 31 sig[1] = 0x2e as u8 32 sig[2] = 0x0d as u8 33 sig[3] = 0xb6 as u8 34 sig[4] = 0x43 as u8 35 sig[5] = 0x03 as u8 36 sig[6] = 0x24 as u8 37 sig[7] = 0xce as u8 38 sig[8] = 0xd6 as u8 39 sig[9] = 0xcd as u8 40 sig[10] = 0xb5 as u8 41 sig[11] = 0x01 as u8 42 sig[12] = 0xb5 as u8 43 sig[13] = 0xbd as u8 44 sig[14] = 0xdf as u8 45 sig[15] = 0xda as u8 46 sig[16] = 0x9a as u8 47 sig[17] = 0x9f as u8 48 sig[18] = 0x13 as u8 49 sig[19] = 0xf1 as u8 50 sig[20] = 0xec as u8 51 sig[21] = 0x43 as u8 52 sig[22] = 0x1f as u8 53 sig[23] = 0xfa as u8 54 sig[24] = 0x19 as u8 55 sig[25] = 0x27 as u8 56 sig[26] = 0xd0 as u8 57 sig[27] = 0x2e as u8 58 sig[28] = 0x6c as u8 59 sig[29] = 0x3b as u8 60 sig[30] = 0x2d as u8 61 sig[31] = 0x22 as u8 62 sig[32] = 0x78 as u8 63 sig[33] = 0x5c as u8 64 sig[34] = 0x0e as u8 65 sig[35] = 0xfe as u8 66 sig[36] = 0x1b as u8 67 sig[37] = 0xda as u8 68 sig[38] = 0xda as u8 69 sig[39] = 0xb6 as u8 70 sig[40] = 0xd6 as u8 71 sig[41] = 0x09 as u8 72 sig[42] = 0x8a as u8 73 sig[43] = 0x06 as u8 74 sig[44] = 0x38 as u8 75 sig[45] = 0x72 as u8 76 sig[46] = 0x72 as u8 77 sig[47] = 0x13 as u8 78 sig[48] = 0x7c as u8 79 sig[49] = 0x3c as u8 80 sig[50] = 0x42 as u8 81 sig[51] = 0x99 as u8 82 sig[52] = 0x45 as u8 83 sig[53] = 0x52 as u8 84 sig[54] = 0x37 as u8 85 sig[55] = 0x4f as u8 86 sig[56] = 0x25 as u8 87 sig[57] = 0x12 as u8 88 sig[58] = 0x14 as u8 89 sig[59] = 0x7a as u8 90 sig[60] = 0xd5 as u8 91 sig[61] = 0x33 as u8 92 sig[62] = 0xc1 as u8 93 sig[63] = 0x83 as u8 94 sig[64] = 0xbd as u8 95 sig[65] = 0x95 as u8 96 sig[66] = 0xc0 as u8 97 sig[67] = 0x7f as u8 98 sig[68] = 0xdc as u8 99 sig[69] = 0x25 as u8 100 sig[70] = 0x1d as u8 101 sig[71] = 0xe4 as u8 102 sig[72] = 0x75 as u8 103 sig[73] = 0x8d as u8 104 sig[74] = 0xda as u8 105 sig[75] = 0x20 as u8 106 sig[76] = 0x94 as u8 107 sig[77] = 0xde as u8 108 sig[78] = 0xd5 as u8 109 sig[79] = 0x6e as u8 110 sig[80] = 0x77 as u8 111 sig[81] = 0xf4 as u8 112 sig[82] = 0x29 as u8 113 sig[83] = 0xaa as u8 114 sig[84] = 0x8d as u8 115 sig[85] = 0x66 as u8 116 sig[86] = 0xa6 as u8 117 sig[87] = 0xf1 as u8 118 sig[88] = 0x93 as u8 119 sig[89] = 0x22 as u8 120 sig[90] = 0xa7 as u8 121 sig[91] = 0x27 as u8 122 sig[92] = 0xc7 as u8 123 sig[93] = 0x8c as u8 124 sig[94] = 0x16 as u8 125 sig[95] = 0x68 as u8 126 sig[96] = 0xf6 as u8 127 sig[97] = 0xdc as u8 128 sig[98] = 0x62 as u8 129 sig[99] = 0x05 as u8 130 sig[100] = 0x57 as u8 131 sig[101] = 0x53 as u8 132 sig[102] = 0xb5 as u8 133 sig[103] = 0x96 as u8 134 sig[104] = 0x16 as u8 135 sig[105] = 0x8a as u8 136 sig[106] = 0xe5 as u8 137 sig[107] = 0xd7 as u8 138 sig[108] = 0xa2 as u8 139 sig[109] = 0x34 as u8 140 sig[110] = 0x40 as u8 141 sig[111] = 0x73 as u8 142 sig[112] = 0x23 as u8 143 sig[113] = 0xd1 as u8 144 sig[114] = 0x79 as u8 145 sig[115] = 0x36 as u8 146 sig[116] = 0x45 as u8 147 sig[117] = 0x3d as u8 148 sig[118] = 0xef as u8 149 sig[119] = 0xf0 as u8 150 sig[120] = 0xf3 as u8 151 sig[121] = 0xa9 as u8 152 sig[122] = 0xa0 as u8 153 sig[123] = 0x04 as u8 154 sig[124] = 0xf2 as u8 155 sig[125] = 0x45 as u8 156 sig[126] = 0x1b as u8 157 sig[127] = 0xb3 as u8 158 sig[128] = 0x67 as u8 159 sig[129] = 0xfb as u8 160 sig[130] = 0xa4 as u8 161 sig[131] = 0xb2 as u8 162 sig[132] = 0x98 as u8 163 sig[133] = 0x28 as u8 164 sig[134] = 0x11 as u8 165 sig[135] = 0xb1 as u8 166 sig[136] = 0xdc as u8 167 sig[137] = 0x79 as u8 168 sig[138] = 0xd6 as u8 169 sig[139] = 0x61 as u8 170 sig[140] = 0xa6 as u8 171 sig[141] = 0xab as u8 172 sig[142] = 0x8f as u8 173 sig[143] = 0x86 as u8 174 sig[144] = 0xac as u8 175 sig[145] = 0x07 as u8 176 sig[146] = 0x9a as u8 177 sig[147] = 0xc0 as u8 178 sig[148] = 0x13 as u8 179 sig[149] = 0x14 as u8 180 sig[150] = 0xdf as u8 181 sig[151] = 0x5d as u8 182 sig[152] = 0x74 as u8 183 sig[153] = 0x3a as u8 184 sig[154] = 0x16 as u8 185 sig[155] = 0x0d as u8 186 sig[156] = 0x9c as u8 187 sig[157] = 0x5d as u8 188 sig[158] = 0x84 as u8 189 sig[159] = 0x62 as u8 190 sig[160] = 0x19 as u8 191 sig[161] = 0x96 as u8 192 sig[162] = 0xca as u8 193 sig[163] = 0x09 as u8 194 sig[164] = 0xac as u8 195 sig[165] = 0xcb as u8 196 sig[166] = 0x90 as u8 197 sig[167] = 0xed as u8 198 sig[168] = 0xc2 as u8 199 sig[169] = 0xab as u8 200 sig[170] = 0xc6 as u8 201 sig[171] = 0xcc as u8 202 sig[172] = 0x57 as u8 203 sig[173] = 0xe9 as u8 204 sig[174] = 0xf2 as u8 205 sig[175] = 0x31 as u8 206 sig[176] = 0x84 as u8 207 sig[177] = 0x76 as u8 208 sig[178] = 0xc4 as u8 209 sig[179] = 0x53 as u8 210 sig[180] = 0xcf as u8 211 sig[181] = 0xe6 as u8 212 sig[182] = 0xba as u8 213 sig[183] = 0x79 as u8 214 sig[184] = 0x85 as u8 215 sig[185] = 0x05 as u8 216 sig[186] = 0x30 as u8 217 sig[187] = 0x28 as u8 218 sig[188] = 0x90 as u8 219 sig[189] = 0x38 as u8 220 sig[190] = 0xb7 as u8 221 sig[191] = 0x84 as u8 222 sig[192] = 0xbc as u8 223 sig[193] = 0x6a as u8 224 sig[194] = 0x1f as u8 225 sig[195] = 0xff as u8 226 sig[196] = 0xb8 as u8 227 sig[197] = 0x6e as u8 228 sig[198] = 0x02 as u8 229 sig[199] = 0x46 as u8 230 sig[200] = 0x0d as u8 231 sig[201] = 0xa4 as u8 232 sig[202] = 0x3a as u8 233 sig[203] = 0x3b as u8 234 sig[204] = 0xc6 as u8 235 sig[205] = 0x4d as u8 236 sig[206] = 0xd1 as u8 237 sig[207] = 0xcd as u8 238 sig[208] = 0x40 as u8 239 sig[209] = 0x17 as u8 240 sig[210] = 0xde as u8 241 sig[211] = 0x0f as u8 242 sig[212] = 0x50 as u8 243 sig[213] = 0xb0 as u8 244 sig[214] = 0x5e as u8 245 sig[215] = 0x4c as u8 246 sig[216] = 0x34 as u8 247 sig[217] = 0x8c as u8 248 sig[218] = 0x02 as u8 249 sig[219] = 0xef as u8 250 sig[220] = 0x99 as u8 251 sig[221] = 0x0c as u8 252 sig[222] = 0xfd as u8 253 sig[223] = 0x22 as u8 254 sig[224] = 0xfe as u8 255 sig[225] = 0x90 as u8 256 sig[226] = 0xff as u8 257 sig[227] = 0x0f as u8 258 sig[228] = 0xcc as u8 259 sig[229] = 0x5e as u8 260 sig[230] = 0xb1 as u8 261 sig[231] = 0x83 as u8 262 sig[232] = 0x02 as u8 263 sig[233] = 0x1c as u8 264 sig[234] = 0x9a as u8 265 sig[235] = 0x5e as u8 266 sig[236] = 0xff as u8 267 sig[237] = 0xfa as u8 268 sig[238] = 0x3e as u8 269 sig[239] = 0x39 as u8 270 sig[240] = 0x5d as u8 271 sig[241] = 0xc7 as u8 272 sig[242] = 0xbe as u8 273 sig[243] = 0x68 as u8 274 sig[244] = 0x19 as u8 275 sig[245] = 0xa7 as u8 276 sig[246] = 0x47 as u8 277 sig[247] = 0xd0 as u8 278 sig[248] = 0x31 as u8 279 sig[249] = 0x24 as u8 280 sig[250] = 0xfb as u8 281 sig[251] = 0x23 as u8 282 sig[252] = 0x8c as u8 283 sig[253] = 0x8a as u8 284 sig[254] = 0x58 as u8 285 sig[255] = 0x58 as u8 286 let nbe: *u8 = (sys_mmap(264)) as *u8 287 nbe[0] = 0xa1 as u8 288 nbe[1] = 0x7b as u8 289 nbe[2] = 0x92 as u8 290 nbe[3] = 0xc0 as u8 291 nbe[4] = 0x47 as u8 292 nbe[5] = 0x44 as u8 293 nbe[6] = 0x75 as u8 294 nbe[7] = 0x9c as u8 295 nbe[8] = 0x9c as u8 296 nbe[9] = 0x69 as u8 297 nbe[10] = 0xa5 as u8 298 nbe[11] = 0x0e as u8 299 nbe[12] = 0xe1 as u8 300 nbe[13] = 0x33 as u8 301 nbe[14] = 0x01 as u8 302 nbe[15] = 0x49 as u8 303 nbe[16] = 0x34 as u8 304 nbe[17] = 0xf2 as u8 305 nbe[18] = 0x3d as u8 306 nbe[19] = 0x59 as u8 307 nbe[20] = 0x7d as u8 308 nbe[21] = 0x57 as u8 309 nbe[22] = 0xdd as u8 310 nbe[23] = 0x38 as u8 311 nbe[24] = 0xf2 as u8 312 nbe[25] = 0xc7 as u8 313 nbe[26] = 0x7f as u8 314 nbe[27] = 0x45 as u8 315 nbe[28] = 0x8b as u8 316 nbe[29] = 0x4e as u8 317 nbe[30] = 0xde as u8 318 nbe[31] = 0x17 as u8 319 nbe[32] = 0x53 as u8 320 nbe[33] = 0x22 as u8 321 nbe[34] = 0x7c as u8 322 nbe[35] = 0xcf as u8 323 nbe[36] = 0xcb as u8 324 nbe[37] = 0x92 as u8 325 nbe[38] = 0xe6 as u8 326 nbe[39] = 0x57 as u8 327 nbe[40] = 0xb8 as u8 328 nbe[41] = 0x7e as u8 329 nbe[42] = 0x9e as u8 330 nbe[43] = 0x97 as u8 331 nbe[44] = 0x9a as u8 332 nbe[45] = 0x1e as u8 333 nbe[46] = 0x14 as u8 334 nbe[47] = 0x99 as u8 335 nbe[48] = 0xaa as u8 336 nbe[49] = 0xac as u8 337 nbe[50] = 0x3b as u8 338 nbe[51] = 0x46 as u8 339 nbe[52] = 0x19 as u8 340 nbe[53] = 0xd3 as u8 341 nbe[54] = 0x99 as u8 342 nbe[55] = 0xb7 as u8 343 nbe[56] = 0x0b as u8 344 nbe[57] = 0xdc as u8 345 nbe[58] = 0x38 as u8 346 nbe[59] = 0x84 as u8 347 nbe[60] = 0x51 as u8 348 nbe[61] = 0x43 as u8 349 nbe[62] = 0xba as u8 350 nbe[63] = 0x5a as u8 351 nbe[64] = 0x87 as u8 352 nbe[65] = 0x98 as u8 353 nbe[66] = 0xc6 as u8 354 nbe[67] = 0x52 as u8 355 nbe[68] = 0x7c as u8 356 nbe[69] = 0x76 as u8 357 nbe[70] = 0xb7 as u8 358 nbe[71] = 0xab as u8 359 nbe[72] = 0xf6 as u8 360 nbe[73] = 0x84 as u8 361 nbe[74] = 0x17 as u8 362 nbe[75] = 0xa6 as u8 363 nbe[76] = 0x24 as u8 364 nbe[77] = 0x07 as u8 365 nbe[78] = 0xfb as u8 366 nbe[79] = 0x38 as u8 367 nbe[80] = 0x2e as u8 368 nbe[81] = 0x72 as u8 369 nbe[82] = 0x31 as u8 370 nbe[83] = 0xad as u8 371 nbe[84] = 0xda as u8 372 nbe[85] = 0x8c as u8 373 nbe[86] = 0x47 as u8 374 nbe[87] = 0x33 as u8 375 nbe[88] = 0x9f as u8 376 nbe[89] = 0x09 as u8 377 nbe[90] = 0x5f as u8 378 nbe[91] = 0x87 as u8 379 nbe[92] = 0x7f as u8 380 nbe[93] = 0xad as u8 381 nbe[94] = 0x95 as u8 382 nbe[95] = 0xb4 as u8 383 nbe[96] = 0xe8 as u8 384 nbe[97] = 0x21 as u8 385 nbe[98] = 0x16 as u8 386 nbe[99] = 0xc8 as u8 387 nbe[100] = 0x3c as u8 388 nbe[101] = 0x50 as u8 389 nbe[102] = 0x25 as u8 390 nbe[103] = 0xbd as u8 391 nbe[104] = 0x6e as u8 392 nbe[105] = 0x58 as u8 393 nbe[106] = 0x41 as u8 394 nbe[107] = 0x95 as u8 395 nbe[108] = 0x46 as u8 396 nbe[109] = 0x48 as u8 397 nbe[110] = 0xd6 as u8 398 nbe[111] = 0xc8 as u8 399 nbe[112] = 0xad as u8 400 nbe[113] = 0xf0 as u8 401 nbe[114] = 0xec as u8 402 nbe[115] = 0x8c as u8 403 nbe[116] = 0x1d as u8 404 nbe[117] = 0xa0 as u8 405 nbe[118] = 0x35 as u8 406 nbe[119] = 0x28 as u8 407 nbe[120] = 0x9d as u8 408 nbe[121] = 0xfa as u8 409 nbe[122] = 0x54 as u8 410 nbe[123] = 0xc1 as u8 411 nbe[124] = 0xf0 as u8 412 nbe[125] = 0x9d as u8 413 nbe[126] = 0xd5 as u8 414 nbe[127] = 0xca as u8 415 nbe[128] = 0xa6 as u8 416 nbe[129] = 0x74 as u8 417 nbe[130] = 0xb4 as u8 418 nbe[131] = 0x84 as u8 419 nbe[132] = 0x67 as u8 420 nbe[133] = 0x88 as u8 421 nbe[134] = 0x4f as u8 422 nbe[135] = 0x6b as u8 423 nbe[136] = 0x9d as u8 424 nbe[137] = 0x5f as u8 425 nbe[138] = 0x30 as u8 426 nbe[139] = 0x85 as u8 427 nbe[140] = 0xf0 as u8 428 nbe[141] = 0x28 as u8 429 nbe[142] = 0xf0 as u8 430 nbe[143] = 0xad as u8 431 nbe[144] = 0x3c as u8 432 nbe[145] = 0x19 as u8 433 nbe[146] = 0xa2 as u8 434 nbe[147] = 0xcd as u8 435 nbe[148] = 0x95 as u8 436 nbe[149] = 0x5f as u8 437 nbe[150] = 0x2c as u8 438 nbe[151] = 0x56 as u8 439 nbe[152] = 0x96 as u8 440 nbe[153] = 0x64 as u8 441 nbe[154] = 0xeb as u8 442 nbe[155] = 0xb9 as u8 443 nbe[156] = 0xbd as u8 444 nbe[157] = 0x79 as u8 445 nbe[158] = 0xdb as u8 446 nbe[159] = 0x0b as u8 447 nbe[160] = 0x06 as u8 448 nbe[161] = 0x3a as u8 449 nbe[162] = 0xf8 as u8 450 nbe[163] = 0xaf as u8 451 nbe[164] = 0x98 as u8 452 nbe[165] = 0x7d as u8 453 nbe[166] = 0xe7 as u8 454 nbe[167] = 0x83 as u8 455 nbe[168] = 0x77 as u8 456 nbe[169] = 0x94 as u8 457 nbe[170] = 0xcf as u8 458 nbe[171] = 0x2b as u8 459 nbe[172] = 0xe3 as u8 460 nbe[173] = 0xd6 as u8 461 nbe[174] = 0x8d as u8 462 nbe[175] = 0x79 as u8 463 nbe[176] = 0x22 as u8 464 nbe[177] = 0xd0 as u8 465 nbe[178] = 0x38 as u8 466 nbe[179] = 0xcd as u8 467 nbe[180] = 0x37 as u8 468 nbe[181] = 0xca as u8 469 nbe[182] = 0xf8 as u8 470 nbe[183] = 0x39 as u8 471 nbe[184] = 0x51 as u8 472 nbe[185] = 0x83 as u8 473 nbe[186] = 0x9c as u8 474 nbe[187] = 0xfa as u8 475 nbe[188] = 0x40 as u8 476 nbe[189] = 0xed as u8 477 nbe[190] = 0x0d as u8 478 nbe[191] = 0x74 as u8 479 nbe[192] = 0xdf as u8 480 nbe[193] = 0xa5 as u8 481 nbe[194] = 0x54 as u8 482 nbe[195] = 0xb8 as u8 483 nbe[196] = 0xfc as u8 484 nbe[197] = 0xc6 as u8 485 nbe[198] = 0x75 as u8 486 nbe[199] = 0xac as u8 487 nbe[200] = 0x51 as u8 488 nbe[201] = 0x71 as u8 489 nbe[202] = 0xd9 as u8 490 nbe[203] = 0x53 as u8 491 nbe[204] = 0x53 as u8 492 nbe[205] = 0x98 as u8 493 nbe[206] = 0xa7 as u8 494 nbe[207] = 0x43 as u8 495 nbe[208] = 0x99 as u8 496 nbe[209] = 0xcd as u8 497 nbe[210] = 0xae as u8 498 nbe[211] = 0xde as u8 499 nbe[212] = 0x3d as u8 500 nbe[213] = 0x86 as u8 501 nbe[214] = 0xd7 as u8 502 nbe[215] = 0xaa as u8 503 nbe[216] = 0xaf as u8 504 nbe[217] = 0xa3 as u8 505 nbe[218] = 0xc8 as u8 506 nbe[219] = 0x6e as u8 507 nbe[220] = 0xed as u8 508 nbe[221] = 0xa1 as u8 509 nbe[222] = 0x11 as u8 510 nbe[223] = 0xb8 as u8 511 nbe[224] = 0xc0 as u8 512 nbe[225] = 0xa3 as u8 513 nbe[226] = 0x85 as u8 514 nbe[227] = 0xe0 as u8 515 nbe[228] = 0x44 as u8 516 nbe[229] = 0x3e as u8 517 nbe[230] = 0xea as u8 518 nbe[231] = 0xf5 as u8 519 nbe[232] = 0x07 as u8 520 nbe[233] = 0xda as u8 521 nbe[234] = 0x8a as u8 522 nbe[235] = 0x59 as u8 523 nbe[236] = 0xc7 as u8 524 nbe[237] = 0xa2 as u8 525 nbe[238] = 0xf3 as u8 526 nbe[239] = 0x53 as u8 527 nbe[240] = 0xe5 as u8 528 nbe[241] = 0x41 as u8 529 nbe[242] = 0x4e as u8 530 nbe[243] = 0xe0 as u8 531 nbe[244] = 0x3e as u8 532 nbe[245] = 0xa2 as u8 533 nbe[246] = 0x21 as u8 534 nbe[247] = 0xe2 as u8 535 nbe[248] = 0xac as u8 536 nbe[249] = 0xeb as u8 537 nbe[250] = 0x4f as u8 538 nbe[251] = 0xb3 as u8 539 nbe[252] = 0x94 as u8 540 nbe[253] = 0x73 as u8 541 nbe[254] = 0x68 as u8 542 nbe[255] = 0xeb as u8 543 let nint: *i64 = u2048_alloc() 544 u2048_load_be(nint, nbe) 545 let v: i64 = rsa_pkcs1_v1_5_sha384_verify(msg, 18, sig, nint, 65537) 546 if v != NX_RSA_PKCS1_V15_384_OK { return v } 547 msg[0] = 0x00 as u8 548 let v2: i64 = rsa_pkcs1_v1_5_sha384_verify(msg, 18, sig, nint, 65537) 549 if v2 == NX_RSA_PKCS1_V15_384_OK { return 90 } 550 return 0 551}