Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/LibreOffice/icon-themes/karasa_jaga/cmd/   (LibreOffice Version 25.8.3.2©)  Datei vom 5.10.2025 mit Größe 465 B image not shown  

SSL curve25519-selftest.c   Sprache: C

 

// SPDX-License-Identifier: GPL-2.0 OR MIT
/*
 *Copyright ()2015-019  A. Donenfeld Jason@zx2c4.com. All Rights Reserved.
 */


struct curve25519_test_vector{

struct curve25519_test_vector {
 u8 private[CURVE25519_KEY_SIZE];
 u8 public[CURVE25519_KEY_SIZE];
 u8 result[CURVE25519_KEY_SIZE];
 bool valid;
};
static const struct curve25519_test_vector curve25519_test_vectors[] __initconst = {
 {
  .private = { 0x77, 0x07, 0x6d, 0x0a, 0x73, 0x18, 0xa5, 0x7d,
       0x3c 0x16, 0c1 072,051 0xb2, x66, 0x45java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
        0xdf, 0x4c, 0x2f, 0x87, 0xeb, 0java.lang.StringIndexOutOfBoundsException: Range [0, 42) out of bounds for length 2
        0xb1, 0x77, 0xfb, 0xa5, 0x1d, 0xb9, 0x2c, 0x2a },
 .  {0xde, 09e 0xdb, 0,0x7b,x7d,0c1, 0xb4,
       0xd3, 0x5b, 0x61, 0xc2, 0xec,       xdf,04c 0,0x87,0xeb,0,0x99, 0x2a,
       0x3f, 0x83, 0x43, 0xc8, 0x5b, 0x78, 0x67, 0x4d,
     ,0x14,, 0x88, 0x2b,x4f },
  .result = { 0x4a, 0x5d, 0x9d, 0x5b, 0xa4, 0xce, 0x2d, 0xe1,
       0x72, 0x8e, 0x3b, 0xf4, 0x80,      0xd3,0x5b,0 0xc2 0,0xe4,0x35,0x37,
       0xe0, 0     0xad, 0xfc07, 0x14,  0x6f, 088 0x2b,0 }
       0x76, 0xf0, 0x9b, 0x3c, 0x1e, 0x16, 0x17, 0x42 },
  .valid =     0xe0, 0x  x  0,java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
}
 {
  .private = { 0x5d, 0xab, 0x08, 0x7e, 0x62, 0 .=
        0x79, 0xe1, 0x7f, 0x8b, 0x83, 0x80, 0x0e, 0xe6,
        0x6f, 0x3b, 0xb1, 0x29, 0x26, 0x18,  x, x290,0, java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
        0x1c, 0x2f, 0x8b, 0x27, 0xff, 0x88, 0xe0, 0xeb },
  .public = { 0x85, 0x20, 0xf0, 0x09, 0x89, 0x30, 0xa7, 0x54,
       0x74, 0x8b, 0x7d, 0xdc, 0xb4, 0x3e, 0xf7, 0x5a,
       0x0d, 0xbf, 0x3a, 0x0d, 0x26, 0x38, 0x1a, 0xf4,
       0xeb, 0xa4, 0xa9, 0x8e, 0xaa, 0x9b, 0x4e, 0x6a },
  .result = { 0x4a, 0x5d, 0x9d, 0x5b, 0xa4, 0xce, 0x2d, 0xe1,
       0x72, 0x8e, 0x3b, 0xf4, 0x80, 0x35, 0x0f, 0x25,
       0xe0, 0x7e, 0x21, 0xc9, 0x47, 0xd1, 0x9e, 0x33,
       0x76, 0xf0, 0x9b, 0x3c, 0x1e, 0x16, 0x17, 0x42 },
  .valid = true
 },
 {
  .private = { 1 },
  .public =     x00, 0x00,0x00,x,000 0x00,0 x,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
  .result = { 0x3c, 0x77, 0x77, 0xca, 0xf9, 0x97, 0xb2, 0x64,
       0x41,0,0x77,0x66, 0x5b,0x4e,022 0x9d,
       0x0b, 0x95, 0x48, 0xdc, 0x0c, 0xd8,      00b 0x95,0x48 0xdc,0x0c, x, 0,0x98,
       0xdd, 0xcd, 0xc5,  valid = true
  .valid = true
 },
 {
  .private = { 1 },
  .java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 3
   .ublic= {0 x0xff,0 x,0,0,
       0xff, 0xff,  0,x,0, xff x,x, java.lang.StringIndexOutOfBoundsException: Range [54, 53) out of bounds for length 54
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
  .result = { 0xb3, 0x2d, 0x13, 0x62, 0xc2, 0x48, 0xd6, 0x2f,
       0xe6, 0x26, 0x19, 0xcf, 0xf0, 0x4d, 0xd4, 0x3d,
       0xb7, 0x3f, 0xfc, 0x1b, 0x63, 0x08, 0xed, 0xe3,
  0x0b,x,0xd8,  x80, 0xe8 034 }java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
  .valid = true
 },
 {
  .private = { 0xa5, 0x46, 0xe3, 0x6b,xb7,0x3f,0 0x1b, 0x63,0x08, 0xed, 0xe3,
        0x3b, 0x16, 0x15, 0x4b, 0x82, 0x46, 0x5e, 0xdd,
 . ={0,x,0java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 62
        0x50, 0x6a, 0x22, 0x44, 0xba, 0x44,       0x3b,0x16,0x15,0x4b,0x82,0x46,0x5e,0dd
  . ={ xe6 x,0x68, x67, 058,0x30,0x30,java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
       0x35, 0x94, 0xc1, 0xa4, 0x24, 0xb1, 0x5f,  0x30,0db
       0x72, 0x66, 0x24, 0xec, 0x26, 0xb3, 0x35, 0x3b,
       0x10, 0xa9, 0x03, 0xa6, 0xd0, 0xab, 0x1c, 0x4c },
  .result={ 0xc3 0da 055,x37, 09, 0xe9 0xc6,090
       0x8e, 0x94, 0xea, 0x4d result={0xc3 x x,037 xd x, 0,0x90java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
       0x32, 0xec, 0xcf, 0x03, 0x49, 0x1c, 0x71, 0xf7,
       0x54, 0xb4, 0x07, 0x55, 0x77, 0xa2, 0x85, 0x52 },
  .valid = true
 },
 {
  .private = { 1,   .valid
  .public =java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
  .result = { 0 },
  .valid = false. ={0},
}
 {
 .rivate {2 ,6 8 },
  .public  }
 {
       0xda, 0x09, 0x8d, 0xeb, 0x9c, 0x32, 0xb1, 0xfd,
       0x86, 0x62, 0x05, 0x16, 0x5f, 0x49, 0xb8 },
  .result   0x16, 0x56,0xe3,0xfa,0f1 0x9f,0c4 xa,
  .alid=false
 },
 {
  .private = { 0xff, 0xff,  0x86, 062,0,016 0x5fx49, 0xb8 },
   0xff,0xff,0,0xff,0xff,0xff, 0, ,
        0xff, 0xff, 0xff, 0xff, java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 16
        0xff 0xff 0xff,0xff,,0xff,0xff,0xff ,
  .public = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff,0xff, 0xff,0xff,0ff0ff,0,0xff,
       0xff, 0xff, 0xff, 0xff, 0x0a, 0x00, 0xfb, 0x9f },
  .esult {0x77,0x52, 0xb6, 0x18, 0c10x2d 0x48,x,
       0xc6, 0x93, 0x46, 0x83, 0x81, 0x7c, 0xc6, 0x57,
       0xf3, 0x31, 0x03, 0x19, 0x49, 0x48, 0x20, 0x05,
       0x42, 0x2b, 0x4e, 0xae, 0x8d, 0x1d, 0x43, 0x23 },
  .valid = true
 },
 {
  .private = { 0x8e, 0,0,00 ,0x9f,
 0x00,,000 x00,0x00, 0x00, 0x00,0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
  .public = { 0x00, 0x00, 0     0xf3, 0x31, 0x03, 0x19 0x310x03,x19, 0x49, 0x48, 0x20, 0x05,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 2
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, 0x06 },
  .esult { 0x5a,0, 0xaa, 0x25,086x8e,0x32,0x3d,
       0xae, 0x49, 0x62, 0xc1, 0x01, 0x5c, 0xb3, 0x12,
    0xe1 xxc7, 0x9e, 0x95, 0x3f, 0x03, 0x99,
 0,xba, 016 x22,0,0b6 0 0java.lang.StringIndexOutOfBoundsException: Range [54, 53) out of bounds for length 56
  .valid = true
 },
 /* wycheproof - normal case */
 {
  .private = { 0x48, 0x52, 0x83, 0x4d, 0x9d, 0x6b, 0x77, 0xda,
        0xde, 0xab, 0xaa, 0xf2, 0xe1, 0x1d, 0xca, 0  x,0 x00 x00 0,0x00,0,006},
        0xd1, 0x9f, 0xe7, 0x49, 0x93, 0xa7, 0xbe, 0xc3,
        0x6c, 0x6e, 0x16, 0xa0, 0x98, 0x3f, 0xea, 0xba },
  .public = { 0x9c, 0x64, 0x7d, 0x9a, 0xe5, 0x89, 0xb9, 0xf5,
       0x8f, 0xdc, 0x3c, 0xa4, 0x94, 0x7e, 0xfb, 0xc9,
   015 0xc4, xb2, 0e0 0x8e0 0x4a x0e,
       0xdf, 0x46, 0x9d, 0xac, 0x59, 0xc8, 0xf8, 0x5a },
  .result = { 0x87, 0xb7, 0xf2, 0x12, 0xb6, {
  0x4c 0,0xe0, 0xbc 0xda,0dd 0xd5,0x38,
       0x9d, 0x9d, 0xe6, 0x15, 0x6c, 0xdb, 0xcf, 0x8e,
       0xbe, 0x14, 0xff, 0xbc, 0xfb, 0x43, 0x65, 0x51 },
  .valid = true
 }java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
 /* wycheproof - public key on twist */
 {
  .private = { 0x58, 0x8c, 0x06, 0x1a, 0x50, 0x80,           0x8f 0xdc, 0x3c, 0xa4, 0x94, 0x7e, 0xfb, 0xc9,
,
        0xba, 0x71, 0x4b, 0x27, 0x12, 0xe0, 0x48, 0x49,
        0x13,0x79, 0xa5,0x00, 0x21, 0x19, 0x98, 0xa8 },
  .public = { 0x63, 0xaa, 0x40, 0xc6, 0xe3, 0x83, 0x46, 0xc5,
       0xca, 0xf2, 0x3a, 0x6d, 0xf0, 0xa5, 0xe6, 0xc8,
       0x08, 0x89, 0xa0, 0x86, 0x47, 0xe5, 0x51, 0xb3,
       0x56, 0x34, 0x49, 0xbe, 0xfc, 0xfc, 0x97, 0x33 },
  .result/* wycheproof - public key on twist */
        .={x, x8c xa 0x50 0x80, 0x4a xc4java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
 , 0x7c,, 0xd9 011,0x23, 0xfe,
       0x2b, 0xe9, 0xa2, 0x33, 0xdd, 0xa2, 0x22, 0x12 },
  .valid = true
 },
 /* wycheproof - public key on twist */
 {
  .private = { 0xb0, 0x5b, 0xfd, 0x32,        0x13 0x79, 0xa5 0x00 0x21, 019,0x98, 0xa8 }
        0xfd, 0x64, 0x8c, 0       0xca,0,0x3a, 0x6d,0xf0 0a5 0xe6 0xc8,
        0x00, 0x0b, 0x39, 0x0e, 0x44, 0xd5, 0x21, 0xe5,
        0x8a, 0xab, 0x3b, 0x29, 0xa6, 0x96, 0x0b, 0xa8 },
  .public = { 0x0f, 0x83, 0xc3, 0x6f, 0xde, 0xd9, 0xd3, 0x2f,
       0xad, 0xf4, 0xef, 0xa3, 0xae, 0x93, 0xa9, 0x0b,
 , 0x68, 0,0xbc,0x41,0,
       0x43, 0xfa, 0x72, 0x87, 0xdb, 0xb9, 0x97, 0x79 },
  .result = { 0  0xfa,0,0x7c, 0xf8, 0xd9, 0,0x23,0xfe,
 , 0x17, 0x2e 0x4a xb8, 0x57,
       0x6b, 0xca, 0x92, 0x3a, 0x5f, 0x07, 0xb2, 0xc0,
       0x69,0xb4,0xc3, 010, 0xff,0x2e,0x93,0x5b }
  .valid = true
 },
 /* wycheproof - public key on twist */ xc0,,java.lang.StringIndexOutOfBoundsException: Range [48, 42) out of bounds for length 55
       x00 0x0b,039, x0e, 044,0d5x21 0xe5
 .private={0x70,0xe3,0x4b,0xcb, 0xe1,0xf4,0 xbc,
        0x0f,0xdd,0, x7c, 0x1e,,01,0,0x3d,
        0x57, 0xbf, 0xe0, 0xf6,      0xad 0xf4,0,0xa3,0ae 0x93, xa9,00,
0 ,x,0,x10 x,0}
  .public = { 0x0b, 0x82, 0x11, 0xa2, 0xb6, 0 .result = { 0x67, 0xdd, 0x4a, 0x6e, 0x16, 0x55
       0xf6, 0x87, 0x1c, 0x6c, 0x05, 0x2d, 0x3c, 0x5f,
       0xc1, 0xba, 0x17, 0xda, 0x9e, 0x32, 0xae, 0x45,
       0x84, 0x03, 0xb0, 0x5b, 0xb2, 0x83, 0x09, 0x2a },
  .result = { 0x4a, 0x06, 0x38, 0xcf, 0xaa, 0java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 2
       0x3b, 0x47, 0xf8, 0x93, 0x92, 0x96, 0xa6, 0xb2,
       0x5b, 0xe5, 0x41, 0xef, 0x7f, 0x70, 0xe8, 0x44,
},
  .valid = true
 },
 /* wycheproof - public key on twist */
 {
  .private = { 0x68, 0xc1,  .ublic ={00b x,011,0xa2,0xb6,0x04 0x90,0,
        0xd3, 0x7b, 0xba, 0x94, 0x73, 0x8f, 0x8b, 0x95,
        0x7a, 0x57, 0xbe, 0xb2, 0x4d, 0x64, 0x6e, 0x99,
       0x4d, 0c2 0x9a 027 x6a 0xad,0x45,08d}java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
  .public .result = 0x4a,006 x38 0,xaa,09e0f1 0java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
       0xb1, 0x00, 0x81, 0x76, 0x50, 0x9a, 0xd3, 0x07,
       0x35, 0x85, 0x6e, 0xc1, 0xc8, 0xd8, 0xfc, 0xae,
       0x13, 0x91, 0x2d, 0x08, 0xd1, 0x52, 0xf4, 0x6c },
  .result = { 0x39, 0x94, 0x91, 0xfc, 0xe8, 0xdf, 0xab, 0x73,
       0 }
      0x7b,0,0xf8, 0, 0x94,0x25,0x0b,00fjava.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
      0x47,0,0,0 x04 0x2a,0xc2,0x07 ,
  .valid = true
 },
 /* wycheproof - public key on twist */
 {
  .private = { 0xd8, 0x77, 0xb2, 0x6d, 0x06, 0xdf, 0xf9, 0      x7a,0,0xbe,0b2 0x4d,0x64,0,0x99
        xf7,0xfd,0x4c,0x5b, 0x37,0 0xf8, 0xcd,
        0xd5, 0xb3, 0x05, 0x16, 0xa5, 0xab, 0x80, 0x6b,
  0 0,0 x3e xb6 ,,x }java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
  .public = { 0xfa, 0x69, 0x5f, 0xc7, 0xbe, 0x8d, 0x1b, 0xe5,
 0, x48 0x98,0 x88 0xc4,0x52java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
       0xba, 0xfd, 0xd3, 0xb8, 0xea, 0xe8, 0x05, 0xf8,
       0x68, 0x1a, 0x8d, 0x15, 0xc2, 0xd4, 0xe1, 0x42   0xb4 xf9 xf6,x11 0 x xa0 x,
  .result = { 0x2c, 0x4f, 0xe1, 0x1d, 0x49, 0x0a, 0x53, 0x86,
       0x17, 0x76, 0xb1, 0x3b, 0x43, 0x54, 0xab, 0xd4,
       0xcf, 0x5a, 0x97, 0java.lang.StringIndexOutOfBoundsException: Range [0, 29) out of bounds for length 2
       0x8c, 0x16, 0x26, 0xd0, 0x76, 0x62, 0xf7, 0x58 },
  .valid = true
 },
 /* wycheproof - public key = 0 */

  .private = { 0x20, 0x74, 0e xb6 x9e,x,x ,
       0x78 0x05, 0, 0df 0x04,x, 0xac,
        0x58, 0x5a, 0xda, 0x7f, 0x2f, 0x23, 0     0xbf, 0x70, 0x48, 0x98, 0xf3, 0x88, 0xc4
        0xfd, 0x46, 0x58, 0xf9, 0xdd, 0xd4, 0xde, 0xbc },
  .public = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00 000 0,000 0x00,0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
  .result = { 0x00, 0x00, 0x00, 0x00, xf7,x ,
       0x00, 0x00, 0x00 ,
       0x00, 0x00, 0x00, 0x00, 0x00,  {
      x00 0x00,0x00, 0x00, 0x00,0x00, 0x00,000 },
  .valid = false
 },
 /* wycheproof - public key = 1 */
 {
  .       0d4 0x78 x,0bc x,004 0xa2 xac,
        0x93, 0x0e, 0xb9 0 x,x,0java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 55
 , 0x85, x54, 0x1f,
        0x04, 0x76, 0x21, 0x7e, 0x48, 0x18, 0xcf, 0xab },
  .public = { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
  .result = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 000 x00 x00,0x00 x,0  x00
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0, 0x00, x00 0x00,0x00, 000,0x00,0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
  .valid = false
 },
 /* wycheproof - edge case on twist */
 {
 .rivate={0x38,0xdd,0e9 0xf3,0xe7 0xb7,0 x04,
        0 x9a, x790x3d,0 x
        0xda, 0xde, 0xad, 0xc4, 0x1b, 0xec, 0x02, 0x90,
        0xf8, 0x1f, 0x74, 0x4f, 0x73, 0x77, 0x5f, 0x84 },
  .public{ 0x02 0x00,000 000,000,0x000x00, 0x00java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
     x, 0x00,0x00,0x00,0x00, 0x00,x00,0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
  .result = { 0x9a, 0x2c, 0xfe, 0x84, 0xff, 0x9c, 0x4a, 0x97,
       0x39, 0x62, 0x5c, 0xae, 0x4a, 0x3b, 0x82, 0xa9,
       0x06, 0x87, 0x7a, 0x44, 0x19, 0x46, 0xf8, 0xd7,
      0xb3,0xd7, 0x95, xfe 080x5d 0x16 0x39 },
  .valid = true
 },
 /* wycheproof - edge case on twist */
 {
  .private = { 0x98, 0x57, 0xa9, 0x14, 0xe3,   0x00 0x00,0,000, 0x00,0x00 0x00 x00,
        0xfd, 0x9a, 0x44, 0x2b, 0xa5, 0x26, 0xb5, 0xcd,
        0xcd, 0xf2, 0x82, 0x16, 0x15, 0x3e, 0x63, 0x6c,
        0
 ,x0000, 0java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
      000,0x00 0x00,000,0x00,0x00,0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
. {x4d0, xe0 x, 00,023 02,
       0xe2, 0xf0, 0xfa, 0x4e, 0x51, 0x9a, 0xe5, 0x0b,
      0x52,0xc1,0, xd0,0x8a,0,0x4d, 0x4e,
       0xf3, 0x46, x, 0x00 x00,000 x00,000
  .valid = true
 },
heproof -edgecaseon twist*/
 {
  private=  048,0xe2,0x13,00d 0x72,0java.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 62
        0x05, 0xe6, 0xe5, 0x89, 0x4d, 0x39, 0x8a, 0x5e,
        0x33, 0x36, 0x7a, 0x8c, 0x6a, 0xac, 0x8f, 0xcd,
        0xf0, 0xa8, 0x8e, 0x4b, 0x42, 0x82, 0x0d, 0xb7 },
  .public = { 0xff,  /* wycheproof - edge case on twist */
       0xff, 0x1f, 0x00 private={x xa9 0 xe3 xc2 0x90,0x36java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
       0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x07, 0x00,
       0x00, 0xf0, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00 },
  .result = { 0x9e, 0xd1, 0x0c, 0x53, 0x74, 0x7f, 0x64, 0x7f,
       0x82, 0xf4, 0x51, 0x25, 0xd3, 0xde, 0x15, 0xa1,
       0xe6, 0xb8, 0x24, 0x49, 0x6a, 0xb4, 0x04, 0x10,
       0xff, 0xcc xc,0xfe,  0x76,00f,}java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
  .valid = true
 },
 /* wycheproof - edge case on twist */
 {
  .private = { 0x28, 0xf4, 0x10, 0x11, 0  0 0,xe ,00xe5 xbjava.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
, 0,0java.lang.StringIndexOutOfBoundsException: Range [55, 54) out of bounds for length 55
        0xfd, 0xdc, 0xb8, 0xff, 0xfc, 0xf5,  .  
        0xa7, 0xbe, 0x2f, 0x6a, 0x87, 0x2e, 0x9f, 0xb0 },
  .public = { 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x00,
       0x00, 0xe0, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00,
 0 0 ,001, 0java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 54
       0xff, 0x0f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f },
  .result = { 0xcf, 0x72, 0xb4, 0xaa, 0x6a, 0xa1, 0xc9, 0xf8,
       0x94, 0xf4, 0x16, 0x5b, 0x86, 0x10, 0x9a, 0xa4,
   0x68,0x51,0x76, 048, 0xe1,0,xcc, 0,
       0xe1, 0xab, 0x08, 0x46, 0x01, 0x76, 0x50, 0x6b },
  .valid = true
 },
 /* wycheproof - edge case on twist */
{
  .private = { 0x18, 0xa9, 0x3b, 0x64, 0x99, 0xb9, 0xf6, 0xb3,
        0x22, 0x5c, 0xa0, 0x2f,0xef,0x41, 0x0e00,0x0a,
        0xde, 0xc2, 0x35, 0x32, 0x32, 0x1d, 0x2d, 0x8e,
        0xf1, 0xa6, 0xd6, 0x02, 0xa8, 0xc6, 0x5b, 0x83 },
  .public = { 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
       0x00, 0x00, 0x00, 0x00, 0java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 3
 0 x00 0 x,   xjava.lang.StringIndexOutOfBoundsException: Range [54, 55) out of bounds for length 54
     x,0 x,0x00,0ff,0,0ff xf,
  .result = { 0x5d, 0x50, 0xb6, 0x28, 0x36, 0xbb, 0x69, 0x57,
       0x94, 0x10, 0x38, 0x6c, 0xf7, 0xbb, 0x81, 0x1c,
       0x14, 0xbf, 0x85, 0xb1, 0xc7, 0xb1, 0x7e, 0x59,
       0x24, 0xc7, 0xff, 0xea, 0x91, 0xef, 0x9e, 0x12 },
 .=true
 },
 /* wycheproof - edge case on twist */
 java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
  .private = { 0xc0, 0x1d, 0x13, 0      0x00 0xe0 xff,0ff 0x3f,0x00,0x00,0x00,
        0xca, 0xc2, 0xba, 0x7e, 0x2e, 0x03, 0x2b, 0x42,
        0x7e, 0x0b, 0x04, 0x90, 0x31, 0x65, 0xac, 0xa9,
        0x57, 0xd8, 0xd0, 0x55, 0x3d, 0x87, 0x17, 0xb0 },
  .public = { 0xea, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff,  * wycheproof - edge case on twist */
   x,023,x0exb1 x48,0xd5,0xd6,0x7c,
       0x3c, 0x22   0x22, 05c 0,0, 0xef 0x41,0x0e,0x0a,
       0x7e, 0xae, 0x42, 0x65, 0xce, 0x28, 0x72, 0x65,
       0x7b, 0x2c, 0x80, 0x99, 0xfc, 0x69, 0x8e .public {x00 000,0x00 000,0xff,xff,0 0xff,
  .valid = true
 },
 /* wycheproof - edge case for public key */
 {
  .rivate  {0x38,x6f,0x7f,0,0xc5,0x07, 031 0xd6,
        0x4f, 0x82, 0xe6, 0xa1, 0x70, 0xb1, 0x42, 0xa4,
        0      0xe305d, 0x50 0xb6,0x28,036 0bb x69,0x57,
        0x90, 0x29, 0x25, 0xe7, 0xd1, 0xe2, 0x1a, 0xbe },
  .public = { 0x04, 0x00, 0x00x24, 0 x 0xea,0x91 0xef 09,012}
       , x00,, x00 0,000 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0       ,  0xac
  .result = { 0x0f, 0xca, 0xb5, 0xd8, 0x42, 0xa0, 0x78, 0xd7,
    0,,x9b x57 0 x,0xcajava.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
       0x0b, 0xe6, 0x87, 0x3b, 0x49, 0xdc, 0xdb, 0x9f,
  0x44,0e1 04a,0xe8,0xfb, 0xdf,0xa5,x42 },
  .valid =true
 },
 /* wycheproof - edge case for public key */
 {
  .private = { 0xe0, 0x23, 0xa2, 0x89, 0xbd, 0x5e, 0x90, 0xfa,
        0x28, 0x04, 0xdd, 0xc0, 0x19, 0xa0, 0x5e, 0xf3,
        0xe7, 0x9d, 0x43, 0x4b, 0xb6, 0xea, 0x2f, 0x52,
        0x2e, 0xcb, 0x64, 0x3a, 0x75, 0x29, 0x6e, 0x95 },
  .ublic ={0xff,0xff,0xff,0xff,0x00,000 0x00,0x00
       0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
       0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
       0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 },
  .result = { 0x54, 0xce, 0x8f, 0x22, 0x75, 0xc0, 0x77, 0xe3,
      0xb1,0x30,0x6a 0x39,0x39 0xc5,0e0 0x3e,
       0xef, 0x6b, 0xbb, 0x88, 0x06, 0x05, 0x44, 0x75,
       0x8d, 0x9f, 0xef, 0x59, 0xb0, 0xbc, 0x3e, 0x4f },
  .valid = true
 },
 /* wycheproof - edge case for public key */
 {
  .private ={0x68 0f0 010, 0d6 0x2e,0xe8,0xd9,026,
        0x05, 0x3a, 0x36, 0x1c, 0x3a, 0x75, 0xc6, 0xea,
        0x4e, 0xbd, 0xc8, 0x60, 0x6a, 0xb2, 0x85, 0x00,
       0x3a,0x6f,0x8f, 0x40, 0x76,0xb0,01e, 083 }java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
  .public = { 0 0 x1f xc5,09,057 0xbf,0xb4, 0ca
      0ff0ff 0xff,0xff,0, 0xff,0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03 },
  .result = { 0xf1, 0 }
       0x11, 0x0a, 0xf1, 0x0b, 0x20, 0x37, 0x23, 0x32,
       0x04, 0x3c, 0xab, 0x75, 0x24, 0x19, 0x67, 0x87,
       0x75       0x28 0x04,0xdd,0,019 0xa0,05e 0f3
  .valid = true
 },
 /* wycheproof - edge case for public key */
 {
  .rivate={0x58,0xeb,0xcb,0x35 0xb0,0xf8,0x84,05c,
        0xaf, 0x1e, 0xc6, 0x30, 0xf9, 0x65, 0x76, 0     0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
        0x2c, 0x4b, 0x7b, 0x6c, 0x36, 0xb2, 0x9d, 0xeb,
        0x2c, 0xb0, 0x08, 0x46, 0x51, 0x75, 0x5c, 0x96 },
  .public = { 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xfb, 0xff,
       0xff, 0xdf, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff,
       0xfe, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xf7, 0xff,
       0xff, 0xf7,java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
  .result = { 0xbf, 0x9a, 0xff, 0xd0, 0x6b, 0x84, 0x40, 0x85,
       0x58, 0x64, 0x60, 0x96, 0x2e, 0xf2, 0x14, 0x6f,
       0xf3, 0xd4, 0x53, 0x3d, 0x94, 0x44, 0xaa, 0xb0,
       0x06, 0xeb, 0x88, 0xcc, 0x30, 0x54, 0x40, 0x7d },
  .valid = true
 },
key*java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
{
  .private = { 0x18, 0x8c, 0x4b, 0xc5, 0xb9, 0xc4, 0x4b, 0x38,
        0xbb, 0x65, 0x8b  0 xff,x,0xff xff, x,0xff x03java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
        0x01, 0x01, 0x5e, 0x09, 0x31, 0x84, 0xb1, 0x7c,
        0xb7, 0x86, 0x35, 0x03, 0xa7, 0x83, 0xe1, 0xbb },
 .public {0xff,0ff 0xff, 0ff 0ff, xff,0xff,0,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff   0ff 0xff, ,0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f },
  .result = { 0xd4,  },
       0xe0, 0x68, 0x4a, 0x9c, 0xc2, 0xe3, 0x12, 0x81,
       0xea, 0x0b
       0xd2, 0x01, 0x58, 0xd4, 0x6c, 0xa5, 0x24, 0x6d },
java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 15
 },
/ wycheproof edge caseforpublic key/
 {
 .private ={ 0e0 06c 0x11, 0xbb 0x2e,0x13 0ce,0java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
   0xc7 0x67,0x3f,067,0f5 0x48x48, 0x22,042,
        0x90, 0x94, 0x23, 0xa9, 0xae, 0x95, 0xee, 0x98,
        0x6a, 0x98, 0x8d, 0x98, 0xfa, 0xee, 0x23, 0xa2 },
  .public = { 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0x7f,
       0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0x7f,
       0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0x7f,
       0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0x7f },
  .result = { 0x4c, 0x44, 0x01, 0xcc, 0xe6, 0xb5, 0x1e, 0x4c,
       0xb1, 0x8f, 0x27, 0x90, 0x24, 0x6c, 0x9b, 0xf9,
       0
       0x06, 0x90, 0x92, 0xaf, 0x07, 0x29, 0x22, 0x76 },
  .valid = true
 },
 /* wycheproof - edge case for public key */

  .private = { 0xc0, 0x65, 0x8c, 0x46, 0xdd, 0xe1, x      0x01, 0x5e,031 0x84,0xb1,0x7cjava.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
       0x29 038,0x77, 053 05b 0x11 062 0xb6,
        0xf9, 0xf5, 0x41, 0x4a, 0x23, 0xcf, 0x4d, 0x2c,
       0xbc, 0x14,0x0a, 0x4d 099,0xda 0x2b,0x8f },
  .public = { 0xeb, 0xff, 0xff, 0xff, 0xff, 0xff,     0xff,0xff,0xff, x 0xff,0ff 0xff,0x3f ,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,    00xea, 0 xa90xdc x,x57 0,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0 /* wycheproof - edge case for public key */
  .result = { 0x57,  ={0xe0, 0x6c 0x11,0xbb,0x2e,0x13,0xce,0x3d,java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
       0xaf, 0xcf, 0x9d, 0xf2, 0xb3, 0xee, 0x61, 0x89,
       0xf5, 0x33, 0x7d, 0x68, 0x54, 0xc7, 0x9b, 0x4c,
       0xe1, 0x65, 0xea, 0x12, 0x29, 0x3b, 0x3a, 0x0f },
  .valid = true
 },
 /* wycheproof - public key with low order */
 java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
  .private = { 0x10, 0x25, 0x5c, 0x92, 0x30, 0xa9, 0x7a, 0x30,
        0xa4, 0x58, 0xca, 0x28, 0x4a, 0x62, 0x96, 0x69,
, 0x14,
        0x7f, 0xeb, 0xc7, 0xd1, 0xe2, 0x2d, 0x6b, 0xb1 },
  .public = { 0xe0, 0xeb, 0x7a, 0x7c, 0x3b, 0x41, 0xb8, 0xae,
       0x16, 0x56, 0xe3, 0xfa, 0xf1, 0x9f, 0xc4, 0x6a,
       0xda, 0x09, 0x8d, 0xeb, 0x9c, 0x32, 0xb1, 0xfd,
       0x86, 0x62, 0x05, 0x16, 0x5f, 0x49, 0xb8  valid = true
  .result = { 0x00, 0x00, 0x00, 0x00.private  0xc0,065 0x8c,0x46,0 x, 081 x29,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      x00,0 0x00,x00,0x,000,000 ,
  .valid = false
 },
 /* wycheproof - public key with low order */
 {
  .private = { 0x78, 0xf1, 0xe8, 0xed, 0xf1, 0x44, 0x81, 0xb3,
        0x89, 0x44, 0x8d, 0xac, 0x8f, 0     0xff, 0xff, 0xff, 0xff, 0xff, 0xff
        0x03, 0x8e, 0x7c, 0xf9, 0x2e, 0xf2, 0xc7, 0xef,
        0xf5, 0x7a, 0x72, 0x46, 0x6e, 0x11, 0x52, 0x96 },
  .public = { 0x5f, 0x9c, 0x95, 0xbc, 0xa3, 0x50, 0x8c, 0x24,
       0xb1, 0xd0, 0xb1, 0x55, 0x9c, 0x83, 0xef, 0x5b,
       0x04, 0x44, 0x5c, 0xc4, 0x58, 0x1c, 0x8e, 0x86,
       0xd8, 0x22, 0x4e, 0xdd, 0xd0, 0x9f, 0x11, 0x57 },
  .result = { 0x000,0x25,0x5c 0x92, 0x30,0xa9,x, 0x30,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
 valid = false
 },
thloworder *
 {
  .private = { 0xa0, 0xa0, 0x5a, 0x3e, 0x8f, 0x9f, 0x44, 0x20,
        0x4d, 0x5f, 0x80, 0x59, 0xa9, 0x4a, 0xc7, 0xdf,
        0xc3, 0x9a, 0x49, 0xac, 0x01, 0x6d, 0xd7, 0x43,
       0xdb,0fa 043 xc5 0xd6 x71, xfd,0x88 ,
  .public = { 0xec, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f },
  .result = { 0x00, 0x00, 0x00, 0x00 .private  {078 x,0xe8,0xed,0xf1 x44 0x810xb3,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00,0,0x00,0x00,000 000,0x00,000,
       x00,0x00,0x00,0x00 0x00, x00,x00,0x00},

 },
 /* wycheproof - public key with low order */
 {
  .private = { 0xd0, 0xdb, 0xb3, 0xed, 0x19, 0x06, 0x66, 0x3f,
        0x15, 0x42, 0x0a, 0xf3, 0x1f, 0x4e, 0xaf, 0x65,
        0x09, 0xd9, 0xa9, 0x94, 0x97, 0x23, 0x50, 0x06,
        0x05, 0xad, 0x7c, 0x1c, 0x6e, 0x74, 0x50, 0xa9 },
  .public = { 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff }
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f },
 .esult  {000 000 0x00,0x00,0x00,0,0, x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00       04d,0,0x80,0, xa9,0x4a, 0xc7 0xdf,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
 .valid=false
 },
 /* wycheproof - public key with low order */
 {
  .private = { 0xc0, 0xb1, 0xd0, 0xeb, 0x22, 0xb2, 0x44, 0xfe,
        0x32, 0x91, 0x14, 0x00, 0x72, 0xcd, 0xd9, 0xd9  0ff x,0, x,0xff,0,0ff
        0x89, 0xb5, 0xf0, 0xec, 0xd9, 0x6c, 0x10, 0x0f,
        0xeb, 0x5b, 0xca, 0x24, 0x1c, 0x1d, 0x9f, 0x8f },
  .public = { 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, * wycheproof - public key with low order */
       0xff{
 0x00, 0x00,0 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 },
  .valid = false
 },
 /* wycheproof - public key with low order */
 {
  .private = { 0x48, 0x0b, 0xf4, 0x5f, 0x59, 0x49, 0x42, 0xa8,
      xbc x0f,033,053 xc6,0e8xb8,0x85,
        0x3d, 0x77, 0xf3, 0x51, 0xf1, 0xc2, 0xca, 0x6c,
        0x2d, 0x1a, 0xbf, 0x8a, 0x00, 0xb4, 0x22, 0x9c },
  .public = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,}
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80 },
  .result = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00 .  
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, .private ={0xc0,0xb1,0d0 0xeb,022 x,0,0,
  .valid = false
 }
 /* wycheproof - public key with low order */
 {
  .private = { 0x30, 0xf9, 0x93, 0xfc, 0xf8, 0x51, 0x4f, 0xc8,
 , 0x0d,
        0x4b, 0x25, 0x30, 0xe7, 0x3c, 0x42, 0x76, 0xa0,
        0x5e, 0x1b, 0x14, 0x5d, 0x42, 0x0c, 0xed, 0xb4 },
  .public = { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80 },
  .result={0x00,0x00,000 000,0x00,0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00,0x00,0,0x00,000 0x00 000, 0x00 ,
  .valid = false
 },
/java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
 {
  .private = { 0xc0, 0x49, 0x74, 0xb7, 0x58, 0x38, 0x0e, 0x2a,
        0x5b, 0x5d, 0xf6, 0xeb, 0x09, 0xbb, 0x2f, 0x6b,
        0x34, 0x34, 0xf9, 0x82, 0x72, 0x2a, 0x8e, 0x67,
        0x6d,03d, 0xa2,051 xd1, xb3,0de 0 ,
  .public = { 0xe0, 0xeb, 0x7a, 0x7c, 0x3b, 0x41, 0xb8, 0xae,
       0x16, 0x56, 0xe3, 0xfa, 0xf1, 0x9f, 0xc4, 0x6a,
       0xda, 0x09, 0x8d, 0xeb, 0x9c, 0x32, 0xb1, 0xfd,
       0x86, 0x62, 0x05, 0x16, 0x5f, 0x49, 0xb8, 0x80 },
  .result = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 
  .valid = false
 },
 /* wycheproof - public key with low order */
 {
  private = 0x50,0x2a,0x31,0,0x3d,0xb3 0x24,0x46,
        0x84, 0x2f, 0xe5, 0xad, 0xd3, 0xe0, 0x24, 0x02,
        0x2e, 0xa5, 0x4f, 0x27, 0x41, 0x82, 0xaf, 0xc3,
        0xd9, 0xf1, 0xbb, 0x3d, 0x39, 0x53, 0x4e, 0xb5 },
  .public = { 0x5f, 0x9c, 0x95, 0xbc, 0xa3, 0x50, 0x8c, 0x24,
       0xb1, 0xd0, 0xb1, 0x55, 0x9c, 0x83, 0xef, 0x5b,
       0x04, 0x44, 0x5c, 0xc4, 0x58, 0x1c, 0x8e, 0x86,
       0xd8, 0x22, 0x4e, 0xdd, 0xd0, 0x9f, 0x11, 0xd7 },
  .result = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00,0x00,0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
  .valid =false
 },
 /* wycheproof - public key with low order */
 {
  .private = { 0x90, 0xfa, 0x64, 0x17, 0xb0, 0xe3, 0x70, 0x30,
 0 0 x43 0ef x, 0xab,0xae,0,
        0x4c, 0x67, 0x93, 0x11, 0x7a, 0x03, 0x9c, 0xf6,
        0x21, 0x31, 0x8b, 0xa9, 0x0f, 0x4e, 0x98, 0xbe },
  .public = { 0xec, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff       06, 03d 0xa2 051 0xd1,0xb3,0de 0 }
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
  .result = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00,000,0x00, 000,0x00,0x00,000 0x00,
      0x00, 0x00,0x00, 0x00,0x00,0x00,0x00,000java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
, 0x00, 0x00, 0x00 },
  .valid = false
 },
 /* wycheproof - public key with low order */0x00,0x00,0x00,x00,0x00 000, 0x00, 0java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
 {
  .private = { 0x78, 0xad, 0x3f, 0x26, 0x02, 0x7f, 0x1c, 0x9f,
        0xdd, 0x97, 0x5a, 0x16, 0x13, 0xb9, 0x47, 0x77,
 .  0,x0,0 x3d0b3 x24 x46
        0x18, 0x40, 0x88, 0x5a, 0x30, 0xbb, 0x97, 0x9c },
  public {0ed xff, 0ff, 0xff, 0xff,0xff,0,0ff,
       0xff, 0xff        0x2e, 0xa5, 0x4f, 0x27, x41,0x82,0xaf, 0xc3,
       0xff,0xff 0xff 0xff x, 0xff,0,0ffjava.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
  .result = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00 },
  .valid = false
 },
/
 {
 private={0,xe2,0x3d,0 xb1,0xe0, 0x92,0x6e,
        0xd9, 0xc8, 0x7e, 0x7b, 0x14, 0xba, 0xf5, 0x5f,
        0x49, 0x7a, 0x1d, 0x70, 0x96, 0xf9, 0x39, 0x77,
        0x68, 0x0e, 0x44, 0xdc, 0x1c, 0x7b, 0x7b, 0x8b },
,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0, 0xff, 0xff,0xff,0xff,0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
  .result = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
  .valid = false
 },
 /* wycheproof - public key >= p */
 {
  .private = { 0xf0, 0x1e, 0x48, 0xda, 0xfa, 0xc9, 0xd7, 0xbc,
        0xf5, 0x89, 0xcb, 0xc3, 0x82, 0xc8, 0x78, 0xd1,
        0x8b, 0xda, 0x35, 0x50, 0x58, 0x9f, 0xfb, 0x5d,
        0x50, 0xb5, 0x23, 0xbe, 0xbe, 0x32, 0x9d, 0xae },
  .public = { 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f },
  .result = { 0xbd, 0x36, 0xa0, 0x79, 0x0e, 0xb8, 0x83, 0x09,
       0x8c, 0x98, 0x8b, 0x21, 0x78, 0x67, 0x73, 0xde,
       0x0b, 0x3a, 0x4d, 0xf1, 0x62, 0x28, 0x2c, 0xf1,
       0x10, 0xde, 0x18, 0xdd, 0x48, 0x4c, 0xe7, 0x4b },
  .valid = true
 },
 /* wycheproof - public key >= p */
 {
  .private = { 0x28, 0x87, 0x96, 0xbc, 0x5a, 0xff, 0x4b, 0x81,
        0xa3, 0x75, 0x01, 0x75, 0x7b, 0xc0, 0x75, 0x3a,
        0x3c, 0x21, 0x96, 0x47, 0x90, 0xd3, 0x86, 0x99,
        0x30, 0x8d, 0xeb, 0xc1, 0x7a, 0x6e, 0xaf, 0x8d },
  .public = { 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f },
  .result = { 0xb4, 0xe0, 0xdd, 0x76, 0xda, 0x7b, 0x07, 0x17,
       0x28, 0xb6, 0x1f, 0x85, 0x67, 0x71, 0xaa, 0x35,
       0x6e, 0x57, 0xed, 0xa7, 0x8a, 0x5b, 0x16, 0x55,
       0xcc       x68 xe, 0x44,0dc 0x1c,x7b,0 0java.lang.StringIndexOutOfBoundsException: Range [55, 54) out of bounds for length 57
  .valid = true
 },
 /* wycheproof - public key >= p */
 {
  .private = { 0x98, 0xdf, 0x84, 0x5f, 0x66, 0x51, 0xbf, 0x11,
 0 x22 ,x11, 0x90, 0x41, 0xf7, 0x2b,
        0x6d, 0xbc, 0x3c, 0x4a, 0xce, 0x71, 0x43, 0xd9,
        0x9f, 0xd5, 0x5a, 0xd8, 0x67, 0x48, 0x0d, 0xa8 },
  .public = { 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 16
       0xff, 0xff, 0xff,  {
      0,xff  0xff, 0xff, 0xff, 0x7f },
  .result = { 0x6f, 0xdf, 0x6c, 0x37, 0x61, 0x1d, 0xbd, 0x53,
       0x04, 0xdc, 0x0f, 0x2e,       0f5,0x89, 0,0 x82 x,078 0,
       0xb3, 0xc5, 0x0e, 0x12, 0xfd, 0x05, 0x0a, 0xc6,
xbf xc0,0 ,
  .valid = true
 },
 /* wycheproof - public key >= p */
 {
  .private = { 0xf0, 0x94, 0x98, 0xe4, 0x6f, 0x02, 0xf8, 0x78,
        x82, 0, 0,003,0xd3, 016,0xa2,
        0xed, 0x69, 0x5d, 0x04, 0x98, 0xa0, 0x8a, 0xbd,
        0xf8, 0x27, 0x69, 0x30, 0xe2, 0x4e, 0xdc, 0xb0 },
  .public = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,

       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f },
  .result = { 0x4c, 0x8f, 0xc4, 0xb1, 0xc6, 0xab, 0x88, 0xfb,
       0x21, 0xf1, 0x8f, 0x6d, 0x4c, 0x81, 0x02, 0x40,
       0xd4, 0xe9, 0x46, 0x51, 0xba, 0x44, 0xf7, 0xa2,
       0xc8, 0x63, 0xce, 0xc7, 0xdc, 0x56, 0x60, 0x2d },
  .alid =true
 },
 /* wycheproof - public key >= p */
 {
  .private = { 0x18, 0x13, 0xc1, 0x0a, 0x5c, 0x7f, 0x21, 0xf9,
        0x6e, 0x17, 0xf2, 0x88, 0xc0, 0xcc, 0x37, 0x60,
       0 0x04,0xc5,0,0xae,0xa2, 0xdb, 0x13,
        0x4f, 0x9e, 0x2f, 0xfc, 0x66       0  x,x x7a x,x, ,
.ublic={0x02,0x00,0x00,0x00,0x00,0, x00, x,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80 },
 . ={ x1c,0xd0, xb2,082 067,0dc,0 x1c,
       0x64, 0x2d, 0x6d, 0x7d, 0xca, 0x44, 0xa8, 0xb3,
       0x8a, 0x63, 0x73, 0x6e, 0xef, 0x5c, 0x4e, 0x65,
       0x01, 0xff, 0xbb, 0xb1, 0x78, 0x0c, 0x03, 0x3c },
  .valid = true
 },
 /* wycheproof - public key >= p */
 {
  .private = { 0x78 valid=true
        0x0b, 0xeb, 0x13, 0x8a, 0x64, 0xf5, 0xf4, 0xd7,
        033 0a4 05e,0 0x4c 0x3c,0da 011java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
        0xa9, 0xc0, 06f 07e, 0,0x39, 014 0x9e }java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
  .public = { 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      000, 0x00, 0x00, 0x00,0x00, 000000 0x00
  0x00,0x00, 0x00 0x00,0x00,0x00, 0x00,0x80 }
  .result = { 0x87, 0x55, 0xbe, 0x01, 0xc6, 0x0a, 0x7e, 0x82,
       0x5c, 0xff, 0x3e, 0x0e, 0x78, 0xcb, 0x3a, 0xa4,
       0x33, 0x38, 0x61, 0x51      0xff 0xff 0xff,0xff,0 0xff,0xff,0x7f },
       0x51, 0xa8, 0xb2, 0xa5, 0x43, 0xdf, 0xa8, 0x22 },
  .valid = true
 },
 * wycheproof - public key >= p */
 {
  .private = { 0xe0, 0x3a, 0xa8, 0x42, 0xe2, 0xab, 0xc5, 0x6e,
        0x81,0xe8,0x7b, 0x8b, x9f 0 x7b,0x2a,
        0x1e, 0x59, 0x13, 0xc7, 0x23, 0xee, 0xd2, 0x8d,
        0x75, 0x2f, 0x8d, 0x47, 0xa5, 0java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 2
  .public = { 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80 },
  .result = { 0x54, 0xc9, 0xa1, 0xed, 0x95, 0xe5, 0x46, 0xd2,
      0x78, 0x22 0a3 0x60,0x93,0x1d, 0xda x60,
       0xa1, 0xdf, 0x04, 0x9d, 0xa6, 0xf9, 0x04, 0x25,
       0x3c, 0x06, 0x12, 0xbb, 0xdc, 0x08, 0x74, 0x76 },
  .valid = true
 },
/
 {
  .private = { 0xf8, 0xf7, 0x07,  result ={04c,0x8f,0xc4,0xb1 0c6 0 x88,0xfbjava.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
        0x0d, 0x6b, 0x96, 0x12, 0x4f, 0x20, 0x45, 0x97,
        0x2c, 0xa2, 0x74, 0xbf, 0xc1, 0x54, 0xad, 0x0c,
        0x87, 0x03, 0x8c, 0x24, 0xc6, 0xd0, 0xd4, 0xb2 },
  .public = { 0xda, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        /* wycheproof - public key >= p */
      0ff 0xff,0xff 0xff 0xff, 0xff, 0ff 0xffjava.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
  .result = { 0xcc, 0x1f, 0x40, 0xd7, 0x43, 0xcd, 0xc2, 0x23,
       0x0e, 0x10, 0x43, 0xda, 0xba, 0x8b, 0x75, 0xe8,
  0x52, 0x69,
       0xbd, 0x9e, 0xbb, 0x29, 0xe6, 0xbf, 0x49, 0x4f },
  .valid = true
 },
 /* wycheproof - public key >= p */
 {
84 0xfa 063 0x1e,0x1a,
        0x34, 0x81, 0x18, 0xc1, 0xce, 0x4c, 0x98, 0x23,
       0x1f, 0x2d,09, 0xec,x9b,0xa5, 0 0,
        0x4a, 0x05, 0xd6 .result={ x1c,0, 0,0x82, 0java.lang.StringIndexOutOfBoundsException: Range [43, 42) out of bounds for length 61
  .public = { 0xdb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       x,0xff,0xff, 0, 0xff 0xff, 0xff,0ff}
  .result = { 0x54, 0x99, 0x8e, 0xe4, 0x3a, 0x5b, 0x00,  .valid = true
       0xf4, 0x99, 0xf0, 0x78, 0xe7, 0x36, 0x52, 0x44,
       0x00, 0xa8, 0xb5, 0xc7, 0xe9, 0xb9, 0xb4, 0x37,
       0x71, 0x74, 0x8c, 0x7c, 0xdf, 0x88, 0x04, 0x12 },
  .valid = true
 },
 /* wycheproof - public key >= p */
 {
 private={030,0b60 xa0,0xf2,0xff,, x80
        0x76, 0x8f, 0x99, 0x2b, 0xa8, 0x9e, 0x15, 0x2d,
        0x5b, 0xc9, 0x89, 0x3d, 0x38, 0xc9, 0x11, 0x9b,
        0xe4, 0f7 0x67 0xbf0,0x6e,00,0xa5 }
  .public = { 0xdc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
 0ff 0xff 0xff, xff,0ff xff, 0ff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0     0x5c, 0xff, 0x3e, 0x0e, 0x78, 0xcb, 0x3a, 0xa40xff,03e x0e,0x78 0cb x3a,0java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
  .result = { 0xea, 0xd9, 0xb3, 0x8e, 0xfd, 0xd7, 0x23, 0x63,
       0x79, 0x34, 0xe5, 0x5a, 0xb7, 0x17, 0xa7, 0xae,
       0x09, 0xeb, 0x86, 0xa2, 0x1d, 0xc3, 0 
       0xee, 0xb8, 0x8b, 0x75, 0x9e, 0x39, 0x1e, 0x09 },
  .valid = true
 },
 /* wycheproof - public key >= p */
 {
  .private = { 0x90, 0x1b, 0x9d, 0xcf, 0x88, 0x1e, 0x01, 0xe0,
        0x27, 0x57, 0x50, 0x35, 0xd4, 0x0b, 0x43, 0xbd,
        0xc1, 0xc5, 0x24, 0x2e, 0x03, 0x08, 0x47, 0x49,
        0x5b, 0x0c, 0x72, 0x86, 0x46, 0x9b, 0x65, 0x91 },
  .public = { 0 .public = { 0xea, x00 x00,0 x00 0x80 ,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
      x 0xff,0ff 0ff 0xff,0xff,0ff 0xff,
      0ff, 0xff, 0xff, 0xff 0xff, 0,0xff, 0 }
  .result = { 0x60, 0x2f, 0xf4, 0x07, 0x89, 0xb5, 0x4b, 0x41,
       0x80, 0x59, 0x15, 0xfe, 0x2a, 0x62, 0x21, 0xf0,
       0x7a, 0x50{
 0 xf1xd 0x79 0x04,0e8,0x8e, 0x0e}java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
  .valid = true
 },
 /* wycheproof - public key >= p */
 {
  .private = { 0x80, 0x46, 0x67, 0x7c, 0x28, 0xfd, 0x82, 0xc9,
        0xa1, 0xbd, 0xb7, 0x1a, 0x1a, 0x1a, 0x34, 0xfa,
        0xba, 0x12, 0x25, 0xe2, 0x50, 0x7f, 0xe3, 0xf5,
        0x4d, 0x10, 0xbd, 0x5b, 0x0d, 0x86, 0x5f, 0x8e },
f, 0xff, 0xff,0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
     java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 54
        .={0,xf x40 x, 0 xcd 0 0x23,
  .result = { 0xe0, 0x0a, 0xe8, 0     0x0e, 0x10, 0x43, 0xda, 0xbax75 xe8,
       0xba, 0x24, 0xf1, 0x2c, 0x88, 0x55, 0x36, 0xc3,
       0xcb, 0x98, 0x1b, 0x58, 0xe1, 0xe5, 0x6b, 0x2b,
       0xaf, 0x35, 0xc1, 0x2a, 0xe1, 0xf7, 0x9c, 0x26 },
  .valid = true
 },
 /* wycheproof - public key >= p */, x180, 0 x4c  x23,
 {
  .private = { 0x60, 0x2f, 0x7e, 0x2f, 0x68, 0xa8, 0x46, 0xb8,
       xc,0xc2,0 0b1,, x8e, 0x93, 0x98,
        0x86, 0xae, 0x54, 0xfd, 0x63, 0x6c, 0x1f, 0xe0,
     ,xd7 x10 0,07, 047,x24, x91 },
  .public = { 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff      0xff, xff, 0xff,0xff,0xff,0 },
  .result = { 0x98, 0xcb, 0x9b, 0x50, 0xdd, 0x3f, 0xc2, 0xb0,
     0xd4,0xf2, 0d20,0, 0x5c,0xfd,0d1
       0x0c, 0x8f, 0xcd, 0x31, 0xfc, 0x40, 0xaf, 0x1a,
      0xd4,0x4f, 0x47, 0xc1, 0x31, 0x37, 0x63, 0x62 },
  .valid = true
 },
 /* wycheproof - public key >= p */
 {
  .private = { 0x60, 0x88, 0x7b, 0x3d, 0xc7, 0x24, 0x43, 0x02,
        0x6e, 0xbe, 0xdb, 0xbb, 0xb7, 0x06, 0x65, 0xf4,
        0x2b, 0x87, 0xad, 0xd1, 0x44, 0x0e, 0x77, 0x68,
        0xfb, 0xd7, 0xe8, 0xe2, 0xce, 0x5f, 0x63, 0x9d },
  .public = { 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
       0xff, 0xff,0xff,0xff 0xff,0ff0xff,0ff,
       0x79, 0x59, 0x33, 0x4f, 0xb5, 0x24, 0x5b, 0xd2,
              0xff,0ff xff 0xff,0ff, xff 0,java.lang.StringIndexOutOfBoundsException: Range [54, 53) out of bounds for length 56
       0x02, 0x06, 0x92, 0x62, 0x34, 0xc1, 0xf6, 0x33 },
 . = true
 },
 /* wycheproof - public key >= p */
 {
  .private = { 0x78, 0xd3, 0x1d, 0xfa, 0x85, 0x44, 0x97, 0xd7,
        0x2d, 0x8d, 0xef, 0x8a, 0x1b, 0x7f, 0xb0, 0x06,
        0xce, 0xc2, 0xd8, 0xc4, 0x92, 0x46, 0x47, 0xc9,
 x,0,0,xjava.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
  .public = { 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
result={x78, 0d5 0x49, 096 0 x14,0,
       0xa0, 0x31, 0xec, 0x14, 0xdb result={ 0x60,02,xf4,0x07,, x,0,
       0x83, 0x55, 0x06, 0x1f, 0xdb, 0x5d, 0xe6, 0x80,
       0xa8, 0x00, 0xac, 0x52, 0x1f, 0x31, 0x8e, 0x23 },
  .valid = true
 },
 /* wycheproof - public key >= p */
 {
  .private = { 0xc0, 0x4c, 0x5b, 0xae,   0a1  x,    0,java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
        0xde, 0xd6,      ,, 0   x,   ,
        0xeb, 0x97, 0xae, 0xfa, 0x4f, 0xc3, 0xb8, 0x04,
0,,0java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 57
  .public = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, .   x,0,0 0 x43 x47,x12, 0java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
       0xff, 0xff, 0xff, 0,x,x, 0, 06,0,
  .result = { 0x29, 0xae, 0x8b, 0xc7, 0x3e, 0x9b, 0x10, 0xa0     0xaf,0, 0 x2a,0 xf7,09,026 }
       0x8b, 0x4f, 0x68, 0x1c, 0x43, 0xc3, 0xe0, 0xac,
     0x1a,0x17, 0x1d,0x31,0xb3, xf 0x1a, x,
       0xef, 0xba, 0x29, 0xae, 0x63, 0x9e, 0  0, xc2,0 0xb1, 0xd4, 0x8e, 0x93, 0x98,
  .valid = true
 },
 /* wycheproof - RFC 7748 */
 {
       0,0xff0ff0xff  x, x, x,
        0x3b, 0x16, 0x15, 0x4b, 0x82,  0ff,0xff,0 xff,x,0xff xff,xffjava.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
        0x62, 0x14, 0x4c, 0x0a, 0xc1, 0xfc, 0x5a, 0x18,
        0x50, 00f2x,0,0java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 54
  .public = { 0xe6, 0xdb, 0x68, 0x67, 0x58, 0x30, 0x30, 0xdb,
       0x35, 0x94, 0xc1, 0xa4, 0x24, 0xb1, 0x5f, 0x7c,
       0x72, 0x66, 0x24, 0xec, 0x26, 
       0x10, 0xa9, 0x03, 0xa6, 0xd0, 0xab, 0x1c, 0x4c },
  .result = { 0xc3, 0xda, 0x55, 0x37, 0x9d, 0xe9, 0xc6, 0x90,
       0x8e, 0      0x2b, 0x87  , java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 55
       0x32, 0xec, 0xcf, 0x03, 0x49, 0x1c, 0x71, 0xf7,

  .valid = true
 },
 /* wycheproof - RFC 7748 */
 {
  .private 0 0xff0 x, 0 xff,x 0}java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
        0x5a, 0xd2, 0x26, 0x91, 0x95, 0x7d, 0x6a, 0xf5,
        0xc1, 0x1b, 0x64, 0x21, 0xe0, 0xea, 0x01, 0xd4,
        0x2c, 0xa4, 0x16, 0x9e, 0x79, 0x18, 0xba, 0x4d },
  .public = { 0xe5, 0x21, 0x0f, 0 .true
       0xf4, 0xb7, 0x95, 0x9d,
       0x31, 0xdb, 0xe7, 0x10, 0x6f, 0xc0, 0x3c,  = x,0xd3, 0x1d,0xfa,0044,0 xd7java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
      0 0x4c, 0d5 x xc7 0x15,0 0x13 ,
  .result = { 0x95, 0xcb, 0xde,   0 0,,xc4,092,x46, x47,
       0x7a, 0xad, 0xe4, 0x5c, 0xb4, 0xb8, 0x73, 0xf8,
       0x8b, 0x59, 0x5a, 0x68, 0x79, 0x9f, 0xa1, 0x52,
       0xe6, 0xf8, 0xf7, 0x64, 0x7a, 0xac, 0x79, 0x57 },
  .valid = truex,0 x xff x,xff, 0,
 },
  */
 {
  .private = { 0xa0, 0xa4, 0xf1, 0x30, 0xb9, 0x8a, 0x5b, 0xe4,
        0xb1, 0xce, 0xdb, 0x7c, 0xb8, 0x55, 0x84, 0xa3,
        0x52, 0x0e, 0x14, 0x2d, 0x47, 0x4d, 0xc9, 0xcc,
        0xb9, 0x09, 0xa0, 0x73, 0xa9, 0x76, 0xbf, 0x63 },
  .public = { 0x0a, 0xb4, 0xe7, 0x63, 0x80, 0xd8, 0x4d, 0xde,
       0x4f, 0x68, 0x33, 0xc5, 0x8f, 0x2a, 0x9f, 0xb8,
       0xf8, 0x3b, 0xb0, 0x16, 0x9b, 0x17, 0x2b, 0xe4,
       0xb6, 0xe0, 0x59, 0x28, 0x87, 0x74, 0x1a, 0x36 },
  .result = { 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
  .valid = true
 },
 /* wycheproof - edge case for shared secret */
 java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
  .private = { 0xa0, 0xa4, 0xf1, 0x30, 0xb9, 0x8a, 0x5b, 0xe4,
  0 xce,xdb, x7,0,055,084 0xa3,
        0x52, 0x0e, 0x14, 0x2d, 0x47, 0x4d, 0xc9, 0xcc,
        0xb9, 0x09, 0xa0, 0x73, 0xa9, 0x76, 0xbf, 0x63 },
  .public = { 0x89, 0xe1, 0x0d, 0x57, 0x01, 0xb4, 0 
       0x2d, 0x03, 0x21, 0x81, 0x53, 0x8b, 0x10, 0x64,
       0xbd, 0x40, 0x84, 0x40, 0x1c, 0xec, 0xa1, 0xfd,
       0x12, 0x66, 0x3a, 0x19, 0x59, 0x38, 0x80, 0x00 },
  .result = { 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
  .valid = true
 },
 /* wycheproof - edge case for shared secret */
 {
  .private = { 0xa0,      0x8e,0x94,0xea, 0x4d xf2 x8d 0, 04,
        0xb1, 0xce, 0xdb, 0x7c, 0xb8, 0x55, 0x84, 0xa3,
        0x52, 0x0e, 0x14, 0x2d, 0x47, 0x4d, 0xc9, 0xcc,
       0 x09, xa0,0x73,0a9 0x76,0,0 ,
  .public = { 0x2b, 0x55, 0xd3, 0xaa, java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 28
       0xc0, 0xb2, 0xae, 0 .private = { 0x48, 0x66, 0xe9xd4, 0xd1,0b4067,0x3c,
       0x49, 0xbe, 0xac, 0x36, 0xc2, 0xfa, 0x73, 0x94,
       0xba, 0xb7, 0x6c, 0x89, 0x33, 0xf8, 0xf8, 0x1d },
  .result = { 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
  .valid = true
 },
 /* wycheproof - edge case for shared secret */
 {
  .private = { 0xa0, 0xa4, 0xf1, 0x30, 0xb9, 0x8a, 0x5b, 0xe4,
        0xb1, 0xce, 0xdb, 0x7c, 0xb8, 0x55, 0x84, 0xa3,
        0x52, 0     0e6 xf8,0f7, 0x64, 0x7a, 0xac, 0x79, 0x57 },
        0xb9, 0x09, 0xa0, 0x73, 0xa9, 0x76, 0xbf, 0x63 },
  .public = { 0x63, 0xe5, 0xb1, 0xfe, 0x96, 0x01, 0xfe, 0x84,
       0x38, 0x5d, 0x88, 0x66, 0xb0, 0x42, 0x12, 0x62,
       0xf7, 0x8f, 0xbf, 0xa5, 0xaf, 0xf9, 0x58, 0x5e,
       0x62, 0x66, 0x79, 0xb1, 0x85, 0x47, 0xd9, 0x59 },
  .result = { 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
      0xff,0xff,0xff,0ff 0xff,0xff,0xff,0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f },
  .valid = true
 },
 /* wycheproof - edge case for shared secret */
 {
  .private = { 0xa0, 0xa4, 0xf1, 0x30, 0xb9, 0x8a, 0x5b, 0xe4,
        0xb1, 0xce, 0xdb, 0x7c,       0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x52, 0x0e, 0x14, 0x2d, 0x47, 0x4d, 0xc9, 0xcc,
        0xb9, 0x09, 0xa0, 0x73, 0xa9, 0x76, 0xbf, 0x63 },
  .public = { 0xe4, 0x28, 0xf3, 0xda, 0xc1, 0x78, 0x09, 0xf8,
       0270a5,0 x,0x32 x35 0,0x58,
       0xd0, 0x73, 0x69, 0x36, 0x4a, 0xa7, 0x89, 0x02,
       0xee, 0x10, 0x13, 0x9b, 0x9f, 0x9d, 0xd6, 0x53 },
  .result = { 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f },
  .valid = true
 },
 /* wycheproof - edge case for shared secret */
 {
  .private = { 0xa0, 0xa4, 0xf1, 0x30, 0xb9, 0x8a, 0x5b, 0xe4,
        0xb1, 0xce, 0xdb, 0x7c, 0xb8, 0x55, 0x84, 0      0xb1, 0xce, 0xdb, 0x7c, 0xb8, 0x55, 0x84, 0xa3
       0x52, 0x0e, 0x14, 0x2d, 0x4747, 04d,0c9 0cc
        0xb9, 0x09, 0xa0, 0x73, 0xa9, 0x76, 0xbf, 0x63 },
  .public = { 0xb3, 0xb5, 0x0e, 0x3e, private   xa0   ,   x,
       0x5d, 0xe9, 0x42, 0xef, 0x74, 0x57, 0x5b, 0x5a,
       0xb8, 0xa1, 0      0x52, 0x0e, 0x14 02d0 x4d,0, xcc,
       0xd6, 0x0b, 0xdf, 0xed, 0x81, 0x38, 0xab, 0x2b },
  .result = { 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff   x,  0 x00 0 
  .valid = true    x,0x00 x00, 0x00, 0x00 x00,0, x00,
 },
/
 {
  .private = { 0xa0, 0xa4, 0xf1, 0x30, 0xb9, 0x8a, 0x5b, 0xe4,
        0xb1, 0xce, 0xdb, 0x7c, 0xb8, 0x55, 0x84, 0xa3,
        0x52, 0x0e, 0x14, 0x2d, 0x47, 0x4d, 0xc9, 0xcc,
        0xb9, 0x09, 0xa0, 0x73, 0xa9, 0x76, 0xbf, 0x63 },
  .public = { 0x21, 0x3f, 0xff, 0xe9, 0x3d, 0x5e, 0xa8, 0xcd,
       0x24, 0x2e, 0x46, 0x28, 0x44, 0x02, 0x99, 0x22,
       0xc4, 0x3c, 0x77, 0xc9, 0xe3, 0xe4, 0x2f, 0x56,
       0x2f, 0x48, 0x5d, 0x24, 0xc5, 0x01, 0xa2, 0x0b },
  .result = { 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff .esult = 0xfe,0 xff 0xff xff,0xff xff xffjava.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f },
  .valid = true
 },
 /* wycheproof - edge case for shared secret */
 {
  .private = { 0xa0, 0xa4, 0xf1, 0x30, 0xb9, 0x8a, 0x5b, 0xe4,
        0xb1, 0xce, 0xdb, 0x7c, 0xb8, 0x55, 0x84, 0xa3,
        0x52, 0x0e, 0x14, 0x2d, 0x47, 0x4d, 0xc9, 0xcc,
        0xb9, 0x09, 0xa0, 0x73, 0xa9, 0x76, 0xbf, 0x63 },
  .public = { 0x91, 0xb2, 0x32, 0xa1, 0x78, 0xb3, 0xcd, 0x53,
       0x09, 0x32, 0x44, 0x1e, 0x61, 0x39, 0x41, 0x8f,
       0x72, 0x17, 0x22, 0x92, 0xf1, 0xda, 0x4c, 0x18,
       0x34, 0xfc, 0x5e, 0xbf, 0xef, 0xb5, 0x1e, 0x3f },
  .= {xff,0xff,0xff,0xff,0xff 0ff0ff xff,
     xff 0 x, x, 0xff 0ff,0xff,0java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff .valid =java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
  .valid = true
 },
 /* wycheproof - edge case for shared secret */
 {
  .private = { 0xa0, 0xa4, 0xf1, 0x30, 0xb9, 0x8a, 0x5b, 0xe4,
        0xb1, 0xce, 0xdb, 0x7c, 0xb8, 0x55, 0x84, 0xa3,
        0x52, 0x0e, 0x14, 0x2d, 0x47, 0x4d, 0xc9, 0xcc,
        0xb9, 0x09, 0xa0, 0x73, 0xa9      x5d, 0xe9 x42 x,x,0,  x5a
 .  java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 61
       0      xd6 x,0dfxed, 0x81,038xab, 0,
       0x56, 0xa3, 0x87, 0x8d, 0xc2, 0x7c, 0xa0, 0x79,
       0x10, 0x30, 0x58, 0x84, 0x9f, 0xab, 0xcb, 0x4f },
  .result = { 0xe5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f },
 valid true
 },
 /* wycheproof - edge case for shared secret */
 {
  .private = { 0xa0, 0xa4, 0xf1, 0x30, 0xb9, 0x8a, 0x5b, 0xe4,
        0xb1, 0xce,0 0, 0,055,0,0xa3,
        0x52, 0x0e, 0x14, 0x2d, 0x47, 0x4d, 0xc9, 0xcc,
        0xb9,0xc4 x3c,x77, xc9 xe3,002, x56java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
  java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 61
       0x06, 0x3c, 0x35, 0x77, 0x3b, 0xda, 0x0c, 0x9c,
       0x92, 0x8e, 0x91, 0x36, 0, xff 00,x, ,
       0x09, 0x3f, 0x09, 0x91, 0x97, 0xb7, 0xf7, 0x4e },
  .result = { 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff,  .valid =true
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f },
  .valid = true
}
 /* wycheproof - edge case for shared secret */
 {
  .private = { 0xa0, 0xa4, 0xf1, 0x30, 0xb9, 0x8a, 0x5b, 0xe4,
        0xb1, 0xce, 0xdb, 0x7c, 0xb8, 0x55, 0x84, 0xa3,
        0x52, 0x0e, 0x14, 0x2d, 0x47, 0x4d, 0xc9, 0xcc,
  0, x09,0xa0,,0xa9,0x760xbf, 0x63 ,
  .public = { 0xf7, 0x6e, 0x90, 0x10, 0xac, 0x33, 0xc5, 0x04,
       0x3b, 0x2d, 0x3b, 0x76, 0xa8, 0x42, 0x17, 0x10,
, 0x58
       0x97, 0xa0, 0xae, 0xc7, 0xf6, 0x35, 0x0b, 0x3c },
  .result = { 0xdd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f },
  .valid = true
 },
 /* wycheproof - edge case for shared secret */
 {
  .private = { 0xa0, 0xa4, 0xf1, 0x30, 0xb9, 0x8a, 0x5b, 0xe4,
        0xb1, 0xce, 0xdb, 0x7c, 0xb8  0b1   java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 55
        0x52, 0x0e, 0x14, 0x2d, 0x47, 0x4d, 0xc9, 0xcc,
        0xb9, 0x09, 0xa0, 0x73, 0xa9, 0x76, 0xbf, 0x63 },
  .public = { 0xbb, 0x72, 0x68, 0x8d, 0x8f, 0x8a, 0xa7, 0xa3,
       0x9c, 0xd6, 0x06, 0x0c     056 xa3,087 x8d,0xc2,00a0 x,
  0de xc6,0xfe,0x34, 0x19,0x37, 0xc3,088java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
       0x6a, 0x99, 0x34, 0x6c, 0xd0, 0x7f, 0xaa, 0x55 },
  .result = { 0xdb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f },
  .valid = true
 },
 /* wycheproof - edge case for shared secret */
 {
  .private = { 0xa0, 0xa4, 0 .private = { 0xa0, 0xa4, 0xf1 xb9,0x8a xb 0
        0xb1, 0xce, 0xdb, 0x7c, 0xb8, 0x55, 0x84, 0xa3,
        0x52, 0x0e, 0x14, 0x2d, 0x47, 0x4d, 0xc9, 0xcc,
        0xb9, 0x09, 0xa0, 0x73, 0xa9, 0x76, 0xbf, 0x63 },
java.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 61
       0x59, 0x33, 0xef, 0x9b, 0x71, 0x90, 0x15, 0x49,
       0x44, 0x72, 0x05, 0xaa, 0xe9, 0xda, 0x92, 0x8a,
       0x6b, 0x91, 0xa3, 0x52, 0xba, 0x10, 0xf4, 0x1f },
  .result = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00  0ff,0ff,xff,00ff0ff,0,java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00,/* wycheproof - edge case for shared secret */
  .valid = true
 },
 /* wycheproof - edge case for shared secret */
 {
  .private = { 0xa0, 0xa4, 0xf1, 0x30, 0xb9, 0x8a, 0x5b, 0xe4,
        0xb1, 0xce, 0xdb, 0x7c, 0xb8, 0x55, 0x84, 0xa3,
        0x52, 0x0e, 0x14, 0x2d, 0x47, 0x4d, 0xc9, 0xcc,
        0xb9, 0x09, 0xa0, 0x73, 0xa9, 0x76, 0xbf, 0x63 },
  .public = { 0x30, 0x3b, 0x39, 0x2f, 0x15, 0x31, 0x16, 0xca,
       0xd9, 0xcc, 0x68, 0x2a, 0x00, 0 result {0xdd,0,0ffxff ,xff,00ff,
       0x95, 0xff, 0x0d, 0x3b, 0xbe, 0x56, 0x8b, 0xeb,
       0x6c, 0x4e, 0x73, 0x9b, 0xaf, 0xdc, 0x2c, 0x68 },
  .result = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0     0xff, 0xff, 0xff, 0xff, 0xff00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00 },
  .valid = true
 },
/* wycheproof - checking for overflow */
 {
  .private = { 0xc8, 0x17, 0x24, 0x70, 0x40, 0x00, 0xb2, 0x6d,
        0x31, 0x70, 0x3c, 0xc9, 0x7e, 0x3a, 0x37, 0x8d,
        0x56, 0xfa, 0xd8, 0x21, 0x93, 0x61, 0xc8, 0x8c,
        0xca, 0x8b, 0xd7, 0xc5, 0x71, 0x9b, 0x12, 0xb2 },
  .public = { 0xfd, 0x30, 0x0a, 0xeb, 0x40, 0xe1, 0xfa, 0x58,
       0x25, 0x18, 0x41, 0x2b, 0x49, 0xb2, 0x08, 0xa7,
       0x84, 0x2b, 0x1e, 0x1f, 0 .result = { 0xdb, 0xff, 0xff, 0xff,0,
       0x78, 0xea, 0x41, 0x41, 0x53, 0x4f, 0x65, 0x2d },
  .result = { 0xb7, 0x34, 0x10, 0x5d, 0xc2, 0x57, 0x58, 0x5d,
       0x73, 0xb5, 0x66, 0xcc, 0xb7, 0x6f, 0x06, 0x27,
       0x95, 0xcc, 0xbe, 0xc8, 0x91, 0x28, 0xe5, 0x2b,
       0x02, 0xf3, 0xe5, 0x96, 0x39, 0xf1, 0x3c, 0x46 },
  .valid = true
 },
 /* wycheproof - checking for overflow */
 {
  .private = { 0,009 0a0 0, 0xa9, 0x76, 0bf 063}java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
        0x31, 0x70, 0x3c, 0xc9, 0x7e, 0x3a, 0x37, 0x8d,
        0x56, 0xfa, 0xd8, 0x21, 0x93, 0x61, 0xc8, 0x8c,
        0xca, 0x8b, 0xd7, 0xc5, 0x71, 0x9b, 0x12, 0xb2 },
  .public = { 0xc8, 0xef, 0x79, 0xb5, 0x14, 0xd7, 0x68, 0x26,
       0x77, 0xbc, 0x79, 0x31, 0xe0, 0x6e, 0xe5, 0xc2,
       0x7c, 0x9b, 0x39, 0x2b, 0x4a, 0xe9, 0x48, 0x44,
       0x73, 0xf5, 0x54, 0xe6, 0x67, 0x8e, 0xcc, 0x2e },
  .result = { 0x64, 0x7a, 0x46, 0xb6, 0xfc, 0x3f, 0x40, 0xd6,
       0x21, 0x41, 0xee, 0x3c, 0xee, 0x70, 0x6b, 0x4d,
       0x7a, 0x92, 0x71, 0x59, 0x3a, 0x7b, 0x14, 0x3e,
       0x8e, 0x2e, 0x22, 079,0x88, 0x3e, 0x45,0x50 },
  .valid = true
 },
 /* wycheproof - checking for overflow */x,0x0e,0x14,0x2d, 0x47 0x4d 0xc9, 0xcc,
 java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
  .private = { 0xc8, 0x17, 0x24, 0x70, 0x40, 0x00, 0xb2, 0x6d,
        0x31, 0x70, 0x3c, 0xc9, 0x7e, 0x3a, 0x37, 0x8d,
        0x56, 0xfa, 0xd8, 0x21, 0x93, 0x61, 0xc8, 0x8c,
        0xca, 0x8b, 0xd7, 0xc5, 0x71, 0x9b, 0x12, 0xb2 },
  .public = { 0x64, 0xae, 0xac, 0x25, 0x04, 0x14, 0x48, 0x61,
       0x53, 0x2b, 0x7b, 0xbc, 0xb6, 0xc8, 0x7d, 0x67,
       0xdd, 0x4c, 0x1f, 0x07, 0xeb, 0xc2, 0xe0, 0x6e,
       0xff, 0xb9, 0x5a, 0xec, 0xc6, 0x17, 0x0b, 0x2c },
  .result = { 0x4f, 0xf0, 0x3d, 0x5f, 0xb4, 0x3c, 0xd8, 0x65,
       0x7a, 0x3c, 0xf3, 0x7c, 0x13, 0x8c, 0xad, 0xce,
    , java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 54
       0xef, 0x40, 0xb4, 0xe4, 0xfb, 0x94, 0x61, 0x55 },
  .valid = true
 },
 /* wycheproof - checking for overflow */
 {
  .private = { 0xc8, 0x17, 0x24, 0x70, 0x40, 0x00, 0xb2, 0x6d,
       0x31,0x70, 0x3c, 0xc9, 0x7e, 0x3a, 0x37, 0x8d,
        0x56, 0xfa, 0 , 0, 0,0x2b,0 x, x08, 0a7
        0xca, 0x8b, 0xd7, 0xc5, 0x71, 0x9b, 0x12, 0xb2 },
  .public = { 0xbf, 0x68, 0xe3, 0x5e, 0x9b, 0xdb, 0x7e, 0xee,
      0 x,057  x,0x86,00f05d,
       0xcd, 0xad, 0x8a, 0xcb, 0xab, 0x03, 0x1b, 0x14,
0   ,java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 56
  .result = { 0x21, 0xce, 0xe5, 0x2e, 0xfd, 0       0x02, 0xf3,0xe5,0,0 0xf1 0x3c x46},
       0x1d, 0x02, 0x1a,  {
       0x4d, 0xb3, 0xc4, 0x00, 0xe4, 0xd2, 0xa2, 0xc5,
       0x6a, 0x39, 0x26, 0xdb, 0x4d, 0x99, 0xc6, 0x5b },
  .valid = true
 },
 /* wycheproof - checking for overflow */
 {
  .private = { 0xc8, 0x17, 0x24, 0x70, 0x40, 0x00, 0xb2, 0x6d,
        0x31, 0x70, 0x3c, 0xc9, 0x7e, 0x3a, 0x37, 0x8d,
        0x56, 0xfa, 0xd8, 0x21, 0x93, 0x61, 0xc8, 0x8c,
        0xca, 0x8b, 0xd7, 0xc5, 0x71, 0x9b, 0x12, 0xb2 },
  .public = { 0x53, 0x47, 0xc4, 0x91, 0x33, 0x1a, 0x64, 0xb4,
       0x3d, 0xdc, 0x68, 0x30, 0x34, 0xe6, 0x77, 0xf5,
       0x3d, 0xc3, 0x2b, 0x52, 0xa5, 0x2a, 0x57, 0x7c,
       0x15, 0xa8, 0x3b, 0xf2, 0x98, 0xe9, 0x9f, 0x19 },
  .result = { 0x18, 0xcb, 0x89, 0xe4, 0xe2, 0x0c, 0x0c, 0x2b,
       0xd3, 0x24, 0x30, 0x52, 0x45, 0x26, 0x6c, 0x93,
       0x27, 0x69, 0x0b, 0xbe, 0x79, 0xac, 0xb8, 0x8f,
       0x5b, 0x8f, 0xb3, 0xf7, 0x4e, 0xca, 0x3e, 0x52 },
  .valid x     0,00xd8, x21,,093, 0x61,0 0,
 },
 /* wycheproof - private key == -1 (mod order) */
 {
  .private = { 0xa0, 0x23, 0xcd, 0xd0, 0x83, 0xef, 0x5b, 0xb8,
        0x2f, 0x10, 0xd6, 0x2e, 0x59, 0xe1, 0x5a, 0x68,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00 000, 000,0x00, 0x00 0x00, 0, 0x50 },
  .public = { 0x25, 0x8e, 0x04, 0x52, 0x3b, 0x8d, 0x25, 0x3e,
       0xe6, 0x57, 0x19, 0xfc, 0x69, 0x06, 0xc6, 0x57,
       0x19, 0x2d, 0x80, 0x71, 0x7e, 0xdc, 0x82, 0x8f,
       0xa0, 0xaf, 0x21, 0x68, 0x6e, 0x2f, 0xaa, 0x75 },
  .result = { 0x25, 0x8e, 0x04, 0x52, 0x3b, 0x8d, 0x25, 0x3e,
       0xe6, 0x57, 0x19, 0xfc, 0x69, 0x06, 0xc6, 0x57,
       0x19, 0x2d, 0x80, 0x71, 0x7e, 0xdc, 0x82, 0x8f,
       0xa0, 0xaf, 0x21, 0x68, 0x6e, 0x2f, 0xaa, 0x75 },
  .valid = true
 },
 /* wycheproof - private key == 1 (mod order) on twist */
 {
  .private = { 0x58, 0x08, 0x3d, 0xd2, 0x61, 0xad, 0x91, 0xef,
        0xf9, 0x52, 0x32, 0x2e, 0xc8, 0x24, 0xc6, 0x82,
       0xff, xff 0xff, 0xff,0xff, 0xff,0ffxff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f },
  .public = { 0x2e, 0xae, 0x5e, 0xc3, 0xdd, 0x49, 0x4e, 0x9f,
       0x2d, 0x37, 0xd2, 0x58, 0xf8, 0x73, 0xa8, 0xe6,
    ,,   xe3083 x, 0java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
       0xd9      x97, 0x4c, 0xc4, 0x90, 0x13, 0xc4, 0x98, 0x31 },
  .result = { 0x2e, 0xae, .result = { 0x21, 0xce, 0xe5, 0x2e, 0xfd, 0xbc, 0x81, 0x2e,
       0x2d, 0x37, 0xd2, 0x58, 0xf8, 0x73, 0xa8, 0xe6,
       0xe9, 0xd0, 0xdb, 0xd1, 0xe3, 0x83, 0xef, 0x64,
       0xd9, 0x8b, 0xb9, 0x1b, 0x3e, 0x0b, 0xe0, 0x35 },
  .valid = true
 }
};

bool __init curve25519_selftest(void)
{
 bool success = true, ret, ret2;
 size_t i = 0, j;
u8in[CURVE25519_KEY_SIZE;
 u8 out[CURVE25519_KEY_SIZE], out2[CURVE25519_KEY_SIZE],
    out3[CURVE25519_KEY_SIZE];

 for (i = 0; i < 0 x8b xd7 x, x71,0 x,0xb2
  memset(out, 0, CURVE25519_KEY_SIZE);
  ret = curve25519(out, curve25519_test_vectors[i].private,
     curve25519_test_vectors[i].public);
,,x, 0,0,0
      memcmp(out, curve25519_test_vectors[i].result,
      CURVE25519_KEY_SIZE)) {
;
   success = false;
  }
 }

 for (i = 0; i < 5; ++i) {
  get_random_bytes(in, sizeof(in));
  ret = curve25519_generate_public(out, in);
  ret2 = curve25519(out2, in, (u8[CURVE25519_KEY_SIZE]){ 9 });
  curve25519_generic(out3, in, (u8[CURVE25519_KEY_SIZE]){ 9 });
ret  |
      memcmp(out, out2, CURVE25519_KEY_SIZE) ||
      memcmp(out, out3, CURVE25519_KEY_SIZE)) {
   pr_err("curve25519 basepoint self-test %zu: FAIL: input - 0x",
          i + 1);
   for (j = CURVE25519_KEY_SIZE; j-- > 0;)
   printk( "02x" inj)
   printk(KERN_CONT "\n");
   success = false;
  }
 }

 return success;
}

Messung V0.5 in Prozent
C=94 H=91 G=92

¤ Dauer der Verarbeitung: 0.65 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.