#41 Remove hobbling and allow brainpool curves
Merged a year ago by saprasad. Opened a year ago by saprasad.
rpms/ saprasad/openssl rawhide  into  rawhide

file modified
+1
@@ -57,3 +57,4 @@ 

  /openssl-3.0.5-hobbled.tar.xz

  /openssl-3.0.7-hobbled.tar.gz

  /openssl-3.0.8-hobbled.tar.gz

+ /openssl-3.0.8.tar.gz

The added file is too large to be shown here, see it at: 0010-Add-changes-to-ectest-and-eccurve.patch
file modified
+100 -4889
@@ -1,19 +1,16 @@ 

- diff -up openssl-3.0.0-alpha13/apps/speed.c.ec-curves openssl-3.0.0-alpha13/apps/speed.c

- --- openssl-3.0.0-alpha13/apps/speed.c.ec-curves	2021-04-10 12:12:00.620129302 +0200

- +++ openssl-3.0.0-alpha13/apps/speed.c	2021-04-10 12:18:11.872369417 +0200

- @@ -364,68 +364,23 @@ static double ffdh_results[FFDH_NUM][1];

+ diff -up ./apps/speed.c.ec-curves ./apps/speed.c

+ --- ./apps/speed.c.ec-curves	2023-03-14 04:44:12.545437892 +0100

+ +++ ./apps/speed.c	2023-03-14 04:48:28.606729067 +0100

+ @@ -366,7 +366,7 @@ static double ffdh_results[FFDH_NUM][1];

   #endif /* OPENSSL_NO_DH */

   

   enum ec_curves_t {

  -    R_EC_P160, R_EC_P192, R_EC_P224, R_EC_P256, R_EC_P384, R_EC_P521,

- -#ifndef OPENSSL_NO_EC2M

- -    R_EC_K163, R_EC_K233, R_EC_K283, R_EC_K409, R_EC_K571,

- -    R_EC_B163, R_EC_B233, R_EC_B283, R_EC_B409, R_EC_B571,

- -#endif

- -    R_EC_BRP256R1, R_EC_BRP256T1, R_EC_BRP384R1, R_EC_BRP384T1,

- -    R_EC_BRP512R1, R_EC_BRP512T1, ECDSA_NUM

  +    R_EC_P224, R_EC_P256, R_EC_P384, R_EC_P521,

- +    ECDSA_NUM

+  #ifndef OPENSSL_NO_EC2M

+      R_EC_K163, R_EC_K233, R_EC_K283, R_EC_K409, R_EC_K571,

+      R_EC_B163, R_EC_B233, R_EC_B283, R_EC_B409, R_EC_B571,

+ @@ -376,8 +376,6 @@ enum ec_curves_t {

   };

   /* list of ecdsa curves */

   static const OPT_PAIR ecdsa_choices[ECDSA_NUM] = {
@@ -22,26 +19,7 @@ 

       {"ecdsap224", R_EC_P224},

       {"ecdsap256", R_EC_P256},

       {"ecdsap384", R_EC_P384},

-      {"ecdsap521", R_EC_P521},

- -#ifndef OPENSSL_NO_EC2M

- -    {"ecdsak163", R_EC_K163},

- -    {"ecdsak233", R_EC_K233},

- -    {"ecdsak283", R_EC_K283},

- -    {"ecdsak409", R_EC_K409},

- -    {"ecdsak571", R_EC_K571},

- -    {"ecdsab163", R_EC_B163},

- -    {"ecdsab233", R_EC_B233},

- -    {"ecdsab283", R_EC_B283},

- -    {"ecdsab409", R_EC_B409},

- -    {"ecdsab571", R_EC_B571},

- -#endif

- -    {"ecdsabrp256r1", R_EC_BRP256R1},

- -    {"ecdsabrp256t1", R_EC_BRP256T1},

- -    {"ecdsabrp384r1", R_EC_BRP384R1},

- -    {"ecdsabrp384t1", R_EC_BRP384T1},

- -    {"ecdsabrp512r1", R_EC_BRP512R1},

- -    {"ecdsabrp512t1", R_EC_BRP512T1}

-  };

+ @@ -404,8 +402,6 @@ static const OPT_PAIR ecdsa_choices[ECDS

   enum { R_EC_X25519 = ECDSA_NUM, R_EC_X448, EC_NUM };

   /* list of ecdh curves, extension of |ecdsa_choices| list above */

   static const OPT_PAIR ecdh_choices[EC_NUM] = {
@@ -50,29 +28,7 @@ 

       {"ecdhp224", R_EC_P224},

       {"ecdhp256", R_EC_P256},

       {"ecdhp384", R_EC_P384},

-      {"ecdhp521", R_EC_P521},

- -#ifndef OPENSSL_NO_EC2M

- -    {"ecdhk163", R_EC_K163},

- -    {"ecdhk233", R_EC_K233},

- -    {"ecdhk283", R_EC_K283},

- -    {"ecdhk409", R_EC_K409},

- -    {"ecdhk571", R_EC_K571},

- -    {"ecdhb163", R_EC_B163},

- -    {"ecdhb233", R_EC_B233},

- -    {"ecdhb283", R_EC_B283},

- -    {"ecdhb409", R_EC_B409},

- -    {"ecdhb571", R_EC_B571},

- -#endif

- -    {"ecdhbrp256r1", R_EC_BRP256R1},

- -    {"ecdhbrp256t1", R_EC_BRP256T1},

- -    {"ecdhbrp384r1", R_EC_BRP384R1},

- -    {"ecdhbrp384t1", R_EC_BRP384T1},

- -    {"ecdhbrp512r1", R_EC_BRP512R1},

- -    {"ecdhbrp512t1", R_EC_BRP512T1},

-      {"ecdhx25519", R_EC_X25519},

-      {"ecdhx448", R_EC_X448}

-  };

- @@ -1449,31 +1404,10 @@ int speed_main(int argc, char **argv)

+ @@ -1422,8 +1418,6 @@ int speed_main(int argc, char **argv)

        */

       static const EC_CURVE ec_curves[EC_NUM] = {

           /* Prime Curves */
@@ -81,367 +37,10 @@ 

           {"nistp224", NID_secp224r1, 224},

           {"nistp256", NID_X9_62_prime256v1, 256},

           {"nistp384", NID_secp384r1, 384},

-          {"nistp521", NID_secp521r1, 521},

- -#ifndef OPENSSL_NO_EC2M

- -        /* Binary Curves */

- -        {"nistk163", NID_sect163k1, 163},

- -        {"nistk233", NID_sect233k1, 233},

- -        {"nistk283", NID_sect283k1, 283},

- -        {"nistk409", NID_sect409k1, 409},

- -        {"nistk571", NID_sect571k1, 571},

- -        {"nistb163", NID_sect163r2, 163},

- -        {"nistb233", NID_sect233r1, 233},

- -        {"nistb283", NID_sect283r1, 283},

- -        {"nistb409", NID_sect409r1, 409},

- -        {"nistb571", NID_sect571r1, 571},

- -#endif

- -        {"brainpoolP256r1", NID_brainpoolP256r1, 256},

- -        {"brainpoolP256t1", NID_brainpoolP256t1, 256},

- -        {"brainpoolP384r1", NID_brainpoolP384r1, 384},

- -        {"brainpoolP384t1", NID_brainpoolP384t1, 384},

- -        {"brainpoolP512r1", NID_brainpoolP512r1, 512},

- -        {"brainpoolP512t1", NID_brainpoolP512t1, 512},

-          /* Other and ECDH only ones */

-          {"X25519", NID_X25519, 253},

-          {"X448", NID_X448, 448}

- diff -up openssl-3.0.0-alpha13/test/ecdsatest.h.ec-curves openssl-3.0.0-alpha13/test/ecdsatest.h

- --- openssl-3.0.0-alpha13/test/ecdsatest.h.ec-curves	2021-04-10 12:07:43.158013028 +0200

- +++ openssl-3.0.0-alpha13/test/ecdsatest.h	2021-04-10 12:11:21.601828737 +0200

- @@ -32,23 +32,6 @@ typedef struct {

-  } ecdsa_cavs_kat_t;

-  

-  static const ecdsa_cavs_kat_t ecdsa_cavs_kats[] = {

- -    /* prime KATs from X9.62 */

- -    {NID_X9_62_prime192v1, NID_sha1,

- -     "616263",                  /* "abc" */

- -     "1a8d598fc15bf0fd89030b5cb1111aeb92ae8baf5ea475fb",

- -     "0462b12d60690cdcf330babab6e69763b471f994dd702d16a563bf5ec08069705ffff65e"

- -     "5ca5c0d69716dfcb3474373902",

- -     "fa6de29746bbeb7f8bb1e761f85f7dfb2983169d82fa2f4e",

- -     "885052380ff147b734c330c43d39b2c4a89f29b0f749fead",

- -     "e9ecc78106def82bf1070cf1d4d804c3cb390046951df686"},

- -    {NID_X9_62_prime239v1, NID_sha1,

- -     "616263",                  /* "abc" */

- -     "7ef7c6fabefffdea864206e80b0b08a9331ed93e698561b64ca0f7777f3d",

- -     "045b6dc53bc61a2548ffb0f671472de6c9521a9d2d2534e65abfcbd5fe0c707fd9f1ed2e"

- -     "65f09f6ce0893baf5e8e31e6ae82ea8c3592335be906d38dee",

- -     "656c7196bf87dcc5d1f1020906df2782360d36b2de7a17ece37d503784af",

- -     "2cb7f36803ebb9c427c58d8265f11fc5084747133078fc279de874fbecb0",

- -     "2eeae988104e9c2234a3c2beb1f53bfa5dc11ff36a875d1e3ccb1f7e45cf"},

-      /* prime KATs from NIST CAVP */

-      {NID_secp224r1, NID_sha224,

-       "699325d6fc8fbbb4981a6ded3c3a54ad2e4e3db8a5669201912064c64e700c139248cdc1"

- diff -up openssl-3.0.0-alpha13/test/recipes/15-test_genec.t.ec-curves openssl-3.0.0-alpha13/test/recipes/15-test_genec.t

- --- openssl-3.0.0-alpha13/test/recipes/15-test_genec.t.ec-curves	2021-04-10 11:59:37.453332668 +0200

- +++ openssl-3.0.0-alpha13/test/recipes/15-test_genec.t	2021-04-10 12:03:43.363538976 +0200

- @@ -41,45 +41,11 @@ plan skip_all => "This test is unsupport

-      if disabled("ec");

-  

-  my @prime_curves = qw(

- -    secp112r1

- -    secp112r2

- -    secp128r1

- -    secp128r2

- -    secp160k1

- -    secp160r1

- -    secp160r2

- -    secp192k1

- -    secp224k1

-      secp224r1

-      secp256k1

-      secp384r1

-      secp521r1

- -    prime192v1

- -    prime192v2

- -    prime192v3

- -    prime239v1

- -    prime239v2

- -    prime239v3

-      prime256v1

- -    wap-wsg-idm-ecid-wtls6

- -    wap-wsg-idm-ecid-wtls7

- -    wap-wsg-idm-ecid-wtls8

- -    wap-wsg-idm-ecid-wtls9

- -    wap-wsg-idm-ecid-wtls12

- -    brainpoolP160r1

- -    brainpoolP160t1

- -    brainpoolP192r1

- -    brainpoolP192t1

- -    brainpoolP224r1

- -    brainpoolP224t1

- -    brainpoolP256r1

- -    brainpoolP256t1

- -    brainpoolP320r1

- -    brainpoolP320t1

- -    brainpoolP384r1

- -    brainpoolP384t1

- -    brainpoolP512r1

- -    brainpoolP512t1

-  );

-  

-  my @binary_curves = qw(

- @@ -136,7 +102,6 @@ push(@other_curves, 'SM2')

-      if !disabled("sm2");

-  

-  my @curve_aliases = qw(

- -    P-192

-      P-224

-      P-256

-      P-384

- diff -up openssl-3.0.0-alpha13/test/recipes/06-test_algorithmid.t.ec-curves openssl-3.0.0-alpha13/test/recipes/06-test_algorithmid.t

- --- openssl-3.0.0-alpha13/test/recipes/06-test_algorithmid.t.ec-curves	2021-04-10 12:40:59.871858764 +0200

- +++ openssl-3.0.0-alpha13/test/recipes/06-test_algorithmid.t	2021-04-10 12:41:41.140455070 +0200

- @@ -33,7 +33,7 @@ my %certs_info =

-           'ee-cert-ec-named-explicit' => 'ca-cert-ec-explicit',

-           'ee-cert-ec-named-named' => 'ca-cert-ec-named',

-           # 'server-ed448-cert' => 'root-ed448-cert'

- -         'server-ecdsa-brainpoolP256r1-cert' => 'rootcert',

- +		 # 'server-ecdsa-brainpoolP256r1-cert' => 'rootcert',

-          )

-       )

-      );

- diff -up openssl-3.0.0-alpha13/test/recipes/15-test_ec.t.ec-curves openssl-3.0.0-alpha13/test/recipes/15-test_ec.t

- diff -up openssl-3.0.0-alpha13/test/recipes/20-test_cli_fips.t.ec-curves openssl-3.0.0-alpha13/test/recipes/20-test_cli_fips.t

- diff -up openssl-3.0.0-alpha13/test/recipes/30-test_acvp.t.ec-curves openssl-3.0.0-alpha13/test/recipes/30-test_acvp.t

- diff -up openssl-3.0.0-alpha13/test/ssl-tests/20-cert-select.cnf.ec-curves openssl-3.0.0-alpha13/test/ssl-tests/20-cert-select.cnf

- --- openssl-3.0.0-alpha13/test/ssl-tests/20-cert-select.cnf.ec-curves	2021-04-10 13:21:52.123040226 +0200

- +++ openssl-3.0.0-alpha13/test/ssl-tests/20-cert-select.cnf	2021-04-10 13:28:20.856023985 +0200

- @@ -776,14 +776,12 @@ server = 22-ECDSA with brainpool-server

-  client = 22-ECDSA with brainpool-client

-  

-  [22-ECDSA with brainpool-server]

- -Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-brainpoolP256r1-cert.pem

- +Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem

-  CipherString = DEFAULT

- -Groups = brainpoolP256r1

- -PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-brainpoolP256r1-key.pem

- +PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem

-  

-  [22-ECDSA with brainpool-client]

-  CipherString = aECDSA

- -Groups = brainpoolP256r1

-  MaxProtocol = TLSv1.2

-  RequestCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem

-  VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem

- @@ -791,9 +789,6 @@ VerifyMode = Peer

-  

-  [test-22]

-  ExpectedResult = Success

- -ExpectedServerCANames = empty

- -ExpectedServerCertType = brainpoolP256r1

- -ExpectedServerSignType = EC

-  

-  

-  # ===========================================================

- @@ -1741,9 +1736,9 @@ server = 53-TLS 1.3 ECDSA with brainpool

-  client = 53-TLS 1.3 ECDSA with brainpool-client

-  

-  [53-TLS 1.3 ECDSA with brainpool-server]

- -Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-brainpoolP256r1-cert.pem

- +Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem

-  CipherString = DEFAULT

- -PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-brainpoolP256r1-key.pem

- +PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem

-  

-  [53-TLS 1.3 ECDSA with brainpool-client]

-  CipherString = DEFAULT

- @@ -1754,7 +1749,7 @@ VerifyCAFile = ${ENV::TEST_CERTS_DIR}/ro

-  VerifyMode = Peer

-  

-  [test-53]

- -ExpectedResult = ServerFail

- +ExpectedResult = Success

-  

-  

-  # ===========================================================

- diff -up openssl-3.0.0-alpha13/test/ssl-tests/20-cert-select.cnf.in.ec-curves openssl-3.0.0-alpha13/test/ssl-tests/20-cert-select.cnf.in

- --- openssl-3.0.0-alpha13/test/ssl-tests/20-cert-select.cnf.in.ec-curves	2021-04-10 13:22:06.275221662 +0200

- +++ openssl-3.0.0-alpha13/test/ssl-tests/20-cert-select.cnf.in	2021-04-10 13:35:18.774623319 +0200

- @@ -428,21 +428,21 @@ my @tests_non_fips = (

-      {

-          name => "ECDSA with brainpool",

-          server =>  {

- -            "Certificate" => test_pem("server-ecdsa-brainpoolP256r1-cert.pem"),

- -            "PrivateKey" => test_pem("server-ecdsa-brainpoolP256r1-key.pem"),

- -            "Groups" => "brainpoolP256r1",

- +            "Certificate" => test_pem("server-ecdsa-cert.pem"),

- +            "PrivateKey" => test_pem("server-ecdsa-key.pem"),

- +			#"Groups" => "brainpoolP256r1",

-          },

-          client => {

-              "MaxProtocol" => "TLSv1.2",

-              "CipherString" => "aECDSA",

-              "RequestCAFile" => test_pem("root-cert.pem"),

- -            "Groups" => "brainpoolP256r1",

- +			#"Groups" => "brainpoolP256r1",

-          },

-          test   => {

- -            "ExpectedServerCertType" =>, "brainpoolP256r1",

- -            "ExpectedServerSignType" =>, "EC",

- +            #"ExpectedServerCertType" =>, "brainpoolP256r1",

- +            #"ExpectedServerSignType" =>, "EC",

-              # Note: certificate_authorities not sent for TLS < 1.3

- -            "ExpectedServerCANames" =>, "empty",

- +            #"ExpectedServerCANames" =>, "empty",

-              "ExpectedResult" => "Success"

-          },

-      },

- @@ -915,8 +915,8 @@ my @tests_tls_1_3_non_fips = (

-      {

-          name => "TLS 1.3 ECDSA with brainpool",

-          server =>  {

- -            "Certificate" => test_pem("server-ecdsa-brainpoolP256r1-cert.pem"),

- -            "PrivateKey" => test_pem("server-ecdsa-brainpoolP256r1-key.pem"),

- +            "Certificate" => test_pem("server-ecdsa-cert.pem"),

- +            "PrivateKey" => test_pem("server-ecdsa-key.pem"),

-          },

-          client => {

-              "RequestCAFile" => test_pem("root-cert.pem"),

- @@ -924,7 +924,7 @@ my @tests_tls_1_3_non_fips = (

-              "MaxProtocol" => "TLSv1.3"

-          },

-          test   => {

- -            "ExpectedResult" => "ServerFail"

- +            "ExpectedResult" => "Success"

-          },

-      },

-  );

- diff -up openssl-3.0.0-alpha13/test/recipes/20-test_cli_fips.t.ec-curves openssl-3.0.0-alpha13/test/recipes/20-test_cli_fips.t

- --- openssl-3.0.0-alpha13/test/recipes/20-test_cli_fips.t.ec-curves	2021-04-10 14:00:22.482782216 +0200

- +++ openssl-3.0.0-alpha13/test/recipes/20-test_cli_fips.t	2021-04-10 14:08:50.769727651 +0200

- @@ -158,60 +158,6 @@ sub tsignverify {

-         $testtext);

-  }

-  

- -SKIP : {

- -    skip "FIPS EC tests because of no ec in this build", 1

- -        if disabled("ec");

- -

- -    subtest EC => sub {

- -        my $testtext_prefix = 'EC';

- -        my $a_fips_curve = 'prime256v1';

- -        my $fips_key = $testtext_prefix.'.fips.priv.pem';

- -        my $fips_pub_key = $testtext_prefix.'.fips.pub.pem';

- -        my $a_nonfips_curve = 'brainpoolP256r1';

- -        my $nonfips_key = $testtext_prefix.'.nonfips.priv.pem';

- -        my $nonfips_pub_key = $testtext_prefix.'.nonfips.pub.pem';

- -        my $testtext = '';

- -        my $curvename = '';

- -

- -        plan tests => 5 + $tsignverify_count;

- -

- -        $ENV{OPENSSL_CONF} = $defaultconf;

- -        $curvename = $a_nonfips_curve;

- -        $testtext = $testtext_prefix.': '.

- -            'Generate a key with a non-FIPS algorithm with the default provider';

- -        ok(run(app(['openssl', 'genpkey', '-algorithm', 'EC',

- -                    '-pkeyopt', 'ec_paramgen_curve:'.$curvename,

- -                    '-out', $nonfips_key])),

- -           $testtext);

- -

- -        pubfrompriv($testtext_prefix, $nonfips_key, $nonfips_pub_key, "non-FIPS");

- -

- -        $ENV{OPENSSL_CONF} = $fipsconf;

- -

- -        $curvename = $a_fips_curve;

- -        $testtext = $testtext_prefix.': '.

- -            'Generate a key with a FIPS algorithm';

- -        ok(run(app(['openssl', 'genpkey', '-algorithm', 'EC',

- -                    '-pkeyopt', 'ec_paramgen_curve:'.$curvename,

- -                    '-out', $fips_key])),

- -           $testtext);

- -

- -        pubfrompriv($testtext_prefix, $fips_key, $fips_pub_key, "FIPS");

- -

- -        $curvename = $a_nonfips_curve;

- -        $testtext = $testtext_prefix.': '.

- -            'Generate a key with a non-FIPS algorithm'.

- -            ' (should fail)';

- -        ok(!run(app(['openssl', 'genpkey', '-algorithm', 'EC',

- -                     '-pkeyopt', 'ec_paramgen_curve:'.$curvename,

- -                     '-out', $testtext_prefix.'.'.$curvename.'.priv.pem'])),

- -           $testtext);

- -

- -        tsignverify($testtext_prefix, $fips_key, $fips_pub_key, $nonfips_key,

- -                    $nonfips_pub_key);

- -    };

- -}

- -

-  SKIP: {

-      skip "FIPS RSA tests because of no rsa in this build", 1

-          if disabled("rsa");

- diff -up openssl-3.0.0-alpha13/test/recipes/20-test_cli_fips.t.ec-curves openssl-3.0.0-alpha13/test/recipes/20-test_cli_fips.t

- --- openssl-3.0.0-alpha13/test/recipes/20-test_cli_fips.t.ec-curves	2021-04-10 14:23:09.805468483 +0200

- +++ openssl-3.0.0-alpha13/test/recipes/20-test_cli_fips.t	2021-04-10 14:23:33.002784265 +0200

- @@ -26,7 +26,7 @@ use platform;

-  my $no_check = disabled("fips") || disabled('fips-securitychecks');

-  plan skip_all => "Test only supported in a fips build with security checks"

-      if $no_check;

- -plan tests => 11;

- +plan tests => 10;

-  

-  my $fipsmodule = bldtop_file('providers', platform->dso('fips'));

-  my $fipsconf = srctop_file("test", "fips-and-base.cnf");

- diff -up openssl-3.0.0-alpha13/test/ssl-tests/20-cert-select.cnf.ec-curves openssl-3.0.0-alpha13/test/ssl-tests/20-cert-select.cnf

- --- openssl-3.0.0-alpha13/test/ssl-tests/20-cert-select.cnf.ec-curves	2021-04-10 17:52:46.478721611 +0200

- +++ openssl-3.0.0-alpha13/test/ssl-tests/20-cert-select.cnf	2021-04-10 17:54:11.371688446 +0200

- @@ -1710,20 +1710,18 @@ server = 52-TLS 1.3 ECDSA with brainpool

-  client = 52-TLS 1.3 ECDSA with brainpool but no suitable groups-client

-  

-  [52-TLS 1.3 ECDSA with brainpool but no suitable groups-server]

- -Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-brainpoolP256r1-cert.pem

- +Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem

-  CipherString = DEFAULT

- -Groups = brainpoolP256r1

- -PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-brainpoolP256r1-key.pem

- +PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem

-  

-  [52-TLS 1.3 ECDSA with brainpool but no suitable groups-client]

-  CipherString = aECDSA

- -Groups = brainpoolP256r1

-  RequestCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem

-  VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem

-  VerifyMode = Peer

-  

-  [test-52]

- -ExpectedResult = ClientFail

- +ExpectedResult = Success

-  

-  

-  # ===========================================================

- diff -up openssl-3.0.0-alpha13/test/ssl-tests/20-cert-select.cnf.in.ec-curves openssl-3.0.0-alpha13/test/ssl-tests/20-cert-select.cnf.in

- --- openssl-3.0.0-alpha13/test/ssl-tests/20-cert-select.cnf.in.ec-curves	2021-04-10 17:53:03.317913390 +0200

- +++ openssl-3.0.0-alpha13/test/ssl-tests/20-cert-select.cnf.in	2021-04-10 17:55:22.507498606 +0200

- @@ -896,20 +896,20 @@ my @tests_tls_1_3_non_fips = (

-      {

-          name => "TLS 1.3 ECDSA with brainpool but no suitable groups",

-          server =>  {

- -            "Certificate" => test_pem("server-ecdsa-brainpoolP256r1-cert.pem"),

- -            "PrivateKey" => test_pem("server-ecdsa-brainpoolP256r1-key.pem"),

- -            "Groups" => "brainpoolP256r1",

- +            "Certificate" => test_pem("server-ecdsa-cert.pem"),

- +            "PrivateKey" => test_pem("server-ecdsa-key.pem"),

- +            #"Groups" => "brainpoolP256r1",

-          },

-          client => {

-              "CipherString" => "aECDSA",

-              "RequestCAFile" => test_pem("root-cert.pem"),

- -            "Groups" => "brainpoolP256r1",

- +            #"Groups" => "brainpoolP256r1",

-          },

-          test   => {

-              #We only configured brainpoolP256r1 on the client side, but TLSv1.3

-              #is enabled and this group is not allowed in TLSv1.3. Therefore this

-              #should fail

- -            "ExpectedResult" => "ClientFail"

- +            "ExpectedResult" => "Success"

-          },

-      },

-      {

- diff -up openssl-3.0.0-alpha13/crypto/evp/ec_support.c.ec-curves openssl-3.0.0-alpha13/crypto/evp/ec_support.c

- --- openssl-3.0.0-alpha13/crypto/evp/ec_support.c.ec-curves	2021-04-11 11:13:14.236891844 +0200

- +++ openssl-3.0.0-alpha13/crypto/evp/ec_support.c	2021-04-11 11:12:05.128098714 +0200

- @@ -20,99 +20,13 @@ typedef struct ec_name2nid_st {

+ diff -up ./crypto/evp/ec_support.c.ec-curves ./crypto/evp/ec_support.c

+ --- ./crypto/evp/ec_support.c.ec-curves	2023-03-14 06:22:41.542310442 +0100

+ +++ ./crypto/evp/ec_support.c	2023-03-21 11:24:18.378451683 +0100

+ @@ -20,89 +20,15 @@ typedef struct ec_name2nid_st {

   static const EC_NAME2NID curve_list[] = {

       /* prime field curves */

       /* secg curves */
@@ -453,7 +52,7 @@ 

  -    {"secp160r1", NID_secp160r1 },

  -    {"secp160r2", NID_secp160r2 },

  -    {"secp192k1", NID_secp192k1 },

-      {"secp224k1", NID_secp224k1 },

+ -    {"secp224k1", NID_secp224k1 },

       {"secp224r1", NID_secp224r1 },

       {"secp256k1", NID_secp256k1 },

       {"secp384r1", NID_secp384r1 },
@@ -466,8 +65,8 @@ 

  -    {"prime239v2", NID_X9_62_prime239v2 },

  -    {"prime239v3", NID_X9_62_prime239v3 },

       {"prime256v1", NID_X9_62_prime256v1 },

- -    /* characteristic two field curves */

- -    /* NIST/SECG curves */

+      /* characteristic two field curves */

+      /* NIST/SECG curves */

  -    {"sect113r1", NID_sect113r1 },

  -    {"sect113r2", NID_sect113r2 },

  -    {"sect131r1", NID_sect131r1 },
@@ -521,29 +120,28 @@ 

  -    /* IPSec curves */

  -    {"Oakley-EC2N-3", NID_ipsec3 },

  -    {"Oakley-EC2N-4", NID_ipsec4 },

- -    /* brainpool curves */

+      /* brainpool curves */

  -    {"brainpoolP160r1", NID_brainpoolP160r1 },

  -    {"brainpoolP160t1", NID_brainpoolP160t1 },

  -    {"brainpoolP192r1", NID_brainpoolP192r1 },

  -    {"brainpoolP192t1", NID_brainpoolP192t1 },

  -    {"brainpoolP224r1", NID_brainpoolP224r1 },

  -    {"brainpoolP224t1", NID_brainpoolP224t1 },

- -    {"brainpoolP256r1", NID_brainpoolP256r1 },

- -    {"brainpoolP256t1", NID_brainpoolP256t1 },

- -    {"brainpoolP320r1", NID_brainpoolP320r1 },

- -    {"brainpoolP320t1", NID_brainpoolP320t1 },

- -    {"brainpoolP384r1", NID_brainpoolP384r1 },

- -    {"brainpoolP384t1", NID_brainpoolP384t1 },

- -    {"brainpoolP512r1", NID_brainpoolP512r1 },

- -    {"brainpoolP512t1", NID_brainpoolP512t1 },

+      {"brainpoolP256r1", NID_brainpoolP256r1 },

+      {"brainpoolP256t1", NID_brainpoolP256t1 },

+      {"brainpoolP320r1", NID_brainpoolP320r1 },

+ @@ -111,8 +37,6 @@ static const EC_NAME2NID curve_list[] =

+      {"brainpoolP384t1", NID_brainpoolP384t1 },

+      {"brainpoolP512r1", NID_brainpoolP512r1 },

+      {"brainpoolP512t1", NID_brainpoolP512t1 },

  -    /* SM2 curve */

  -    {"SM2", NID_sm2 },

   };

   

   const char *OSSL_EC_curve_nid2name(int nid)

- diff -up openssl-3.0.0-alpha13/test/acvp_test.inc.ec-curves openssl-3.0.0-alpha13/test/acvp_test.inc

- --- openssl-3.0.0-alpha13/test/acvp_test.inc.ec-curves	2021-04-11 13:46:57.286828933 +0200

- +++ openssl-3.0.0-alpha13/test/acvp_test.inc	2021-04-11 13:48:01.356704526 +0200

+ diff -up ./test/acvp_test.inc.ec-curves ./test/acvp_test.inc

+ --- ./test/acvp_test.inc.ec-curves	2023-03-14 06:38:20.563712586 +0100

+ +++ ./test/acvp_test.inc	2023-03-14 06:39:01.631080059 +0100

  @@ -212,15 +212,6 @@ static const unsigned char ecdsa_sigver_

   };

   static const struct ecdsa_sigver_st ecdsa_sigver_data[] = {
@@ -560,4466 +158,79 @@ 

           "SHA2-512",

           "P-521",

           ITM(ecdsa_sigver_msg1),

- diff -up openssl-3.0.0-alpha13/test/recipes/65-test_cmp_protect.t.ec-curves openssl-3.0.0-alpha13/test/recipes/65-test_cmp_protect.t

- --- openssl-3.0.0-alpha13/test/recipes/65-test_cmp_protect.t.ec-curves	2021-04-11 21:45:04.949948725 +0200

- +++ openssl-3.0.0-alpha13/test/recipes/65-test_cmp_protect.t	2021-04-11 21:44:09.585283604 +0200

- @@ -7,7 +7,6 @@

-  # this file except in compliance with the License.  You can obtain a copy

-  # in the file LICENSE in the source distribution or at

-  # https://www.openssl.org/source/license.html

- -

-  use strict;

-  use OpenSSL::Test qw/:DEFAULT data_file srctop_file srctop_dir bldtop_file bldtop_dir/;

-  use OpenSSL::Test::Utils;

- @@ -27,7 +26,7 @@ plan skip_all => "This test is not suppo

-  plan skip_all => "This test is not supported in a shared library build on Windows"

-      if $^O eq 'MSWin32' && !disabled("shared");

-  

- -plan tests => 2 + ($no_fips ? 0 : 1); #fips test

- +plan skip_all => 2 + ($no_fips ? 0 : 1); #fips test

+ diff -up ./test/ecdsatest.h.ec-curves ./test/ecdsatest.h

+ --- ./test/ecdsatest.h.ec-curves	2023-03-14 04:49:16.148154472 +0100

+ +++ ./test/ecdsatest.h	2023-03-14 04:51:01.376096037 +0100

+ @@ -32,23 +32,6 @@ typedef struct {

+  } ecdsa_cavs_kat_t;

   

-  my @basic_cmd = ("cmp_protect_test",

-                   data_file("server.pem"),

- diff -up openssl-3.0.0-alpha13/test/recipes/65-test_cmp_vfy.t.ec-curves openssl-3.0.0-alpha13/test/recipes/65-test_cmp_vfy.t

- --- openssl-3.0.0-alpha13/test/recipes/65-test_cmp_vfy.t.ec-curves	2021-04-11 21:45:25.414194574 +0200

- +++ openssl-3.0.0-alpha13/test/recipes/65-test_cmp_vfy.t	2021-04-11 21:44:40.786658440 +0200

- @@ -7,7 +7,6 @@

-  # this file except in compliance with the License.  You can obtain a copy

-  # in the file LICENSE in the source distribution or at

-  # https://www.openssl.org/source/license.html

- -

-  use strict;

-  use OpenSSL::Test qw/:DEFAULT data_file srctop_file srctop_dir bldtop_file bldtop_dir/;

-  use OpenSSL::Test::Utils;

- @@ -27,7 +26,7 @@ plan skip_all => "This test is not suppo

-  plan skip_all => "This test is not supported in a no-ec build"

+  static const ecdsa_cavs_kat_t ecdsa_cavs_kats[] = {

+ -    /* prime KATs from X9.62 */

+ -    {NID_X9_62_prime192v1, NID_sha1,

+ -     "616263",                  /* "abc" */

+ -     "1a8d598fc15bf0fd89030b5cb1111aeb92ae8baf5ea475fb",

+ -     "0462b12d60690cdcf330babab6e69763b471f994dd702d16a563bf5ec08069705ffff65e"

+ -     "5ca5c0d69716dfcb3474373902",

+ -     "fa6de29746bbeb7f8bb1e761f85f7dfb2983169d82fa2f4e",

+ -     "885052380ff147b734c330c43d39b2c4a89f29b0f749fead",

+ -     "e9ecc78106def82bf1070cf1d4d804c3cb390046951df686"},

+ -    {NID_X9_62_prime239v1, NID_sha1,

+ -     "616263",                  /* "abc" */

+ -     "7ef7c6fabefffdea864206e80b0b08a9331ed93e698561b64ca0f7777f3d",

+ -     "045b6dc53bc61a2548ffb0f671472de6c9521a9d2d2534e65abfcbd5fe0c707fd9f1ed2e"

+ -     "65f09f6ce0893baf5e8e31e6ae82ea8c3592335be906d38dee",

+ -     "656c7196bf87dcc5d1f1020906df2782360d36b2de7a17ece37d503784af",

+ -     "2cb7f36803ebb9c427c58d8265f11fc5084747133078fc279de874fbecb0",

+ -     "2eeae988104e9c2234a3c2beb1f53bfa5dc11ff36a875d1e3ccb1f7e45cf"},

+      /* prime KATs from NIST CAVP */

+      {NID_secp224r1, NID_sha224,

+       "699325d6fc8fbbb4981a6ded3c3a54ad2e4e3db8a5669201912064c64e700c139248cdc1"

+ diff -up ./test/recipes/15-test_genec.t.ec-curves ./test/recipes/15-test_genec.t

+ --- ./test/recipes/15-test_genec.t.ec-curves	2023-03-14 04:51:45.215488277 +0100

+ +++ ./test/recipes/15-test_genec.t	2023-03-21 11:26:58.613885435 +0100

+ @@ -41,37 +41,11 @@ plan skip_all => "This test is unsupport

       if disabled("ec");

- 

- -plan tests => 2 + ($no_fips ? 0 : 1); #fips test

- +plan skip_all => 2 + ($no_fips ? 0 : 1); #fips test

- 

-  my @basic_cmd = ("cmp_vfy_test",

-                   data_file("server.crt"),     data_file("client.crt"),

- diff -up openssl-3.0.0-alpha15/crypto/evp/ec_support.c.ec-curves openssl-3.0.0-alpha15/crypto/evp/ec_support.c

- --- openssl-3.0.0-alpha15/crypto/evp/ec_support.c.ec-curves	2021-04-23 18:15:12.571691284 +0200

- +++ openssl-3.0.0-alpha15/crypto/evp/ec_support.c	2021-04-23 18:16:00.803087403 +0200

- @@ -28,7 +28,6 @@ static const EC_NAME2NID curve_list[] =

-  static const EC_NAME2NID curve_list[] = {

-      /* prime field curves */

-      /* secg curves */

- -    {"secp224k1", NID_secp224k1 },

-      {"secp224r1", NID_secp224r1 },

-      {"secp256k1", NID_secp256k1 },

-      {"secp384r1", NID_secp384r1 },

- diff -up openssl-3.0.0-alpha15/apps/speed.c.ec-curves openssl-3.0.0-alpha15/apps/speed.c

- --- openssl-3.0.0-alpha15/apps/speed.c.ec-curves	2021-04-26 14:25:44.049991942 +0200

- +++ openssl-3.0.0-alpha15/apps/speed.c	2021-04-26 14:36:10.643570273 +0200

- @@ -1439,8 +1439,8 @@ int speed_main(int argc, char **argv)

-      OPENSSL_assert(ec_curves[EC_NUM - 1].nid == NID_X448);

-      OPENSSL_assert(strcmp(ecdh_choices[EC_NUM - 1].name, "ecdhx448") == 0);

-  

- -    OPENSSL_assert(ec_curves[ECDSA_NUM - 1].nid == NID_brainpoolP512t1);

- -    OPENSSL_assert(strcmp(ecdsa_choices[ECDSA_NUM - 1].name, "ecdsabrp512t1") == 0);

- +    OPENSSL_assert(ec_curves[ECDSA_NUM - 1].nid == NID_secp521r1);

- +    OPENSSL_assert(strcmp(ecdsa_choices[ECDSA_NUM - 1].name, "ecdsap521") == 0);

-  

-  #ifndef OPENSSL_NO_SM2

-      OPENSSL_assert(sm2_curves[SM2_NUM - 1].nid == NID_sm2);

- diff -up openssl-3.0.0-alpha16/test/evp_extra_test.c.ec-curves openssl-3.0.0-alpha16/test/evp_extra_test.c

- --- openssl-3.0.0-alpha16/test/evp_extra_test.c.ec-curves	2021-05-10 14:44:28.932751551 +0200

- +++ openssl-3.0.0-alpha16/test/evp_extra_test.c	2021-05-10 14:45:21.537238883 +0200

- @@ -2701,13 +2701,12 @@ err:

-  

-  #ifndef OPENSSL_NO_EC

-  static int ecpub_nids[] = {

- -    NID_brainpoolP256r1, NID_X9_62_prime256v1,

- +    NID_X9_62_prime256v1,

-      NID_secp384r1, NID_secp521r1,

-  # ifndef OPENSSL_NO_EC2M

-      NID_sect233k1, NID_sect233r1, NID_sect283r1,

-      NID_sect409k1, NID_sect409r1, NID_sect571k1, NID_sect571r1,

-  # endif

- -    NID_brainpoolP384r1, NID_brainpoolP512r1

-  };

-  

-  static int test_ecpub(int idx)

- diff -up openssl-3.0.0-alpha16/test/recipes/30-test_evp_data/evppkey_mismatch.txt.ec-curves openssl-3.0.0-alpha16/test/recipes/30-test_evp_data/evppkey_mismatch.txt

- --- openssl-3.0.0-alpha16/test/recipes/30-test_evp_data/evppkey_mismatch.txt.ec-curves	2021-05-17 10:45:03.968368782 +0200

- +++ openssl-3.0.0-alpha16/test/recipes/30-test_evp_data/evppkey_mismatch.txt	2021-05-17 10:45:54.211747865 +0200

- @@ -31,12 +31,6 @@ MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAELBUP

-  x/iUJAcsJxl9eLM7kg6VzbZk6ZDc8M/qDZTiqOavnQ5YBW5lMQSSW5/myQ==

-  -----END PUBLIC KEY-----

-  

- -PublicKey=KAS-ECC-CDH_K-163_C0-PUBLIC

- ------BEGIN PUBLIC KEY-----

- -MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEBx+LKHfWAn2cGt5CRPLeoSaS7yPVBcFe

- -53YiHHK4SzR844PzgGe4nD6a

- ------END PUBLIC KEY-----

- -

-  PrivateKey = RSA-2048

-  -----BEGIN PRIVATE KEY-----

-  MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDNAIHqeyrh6gbV

- @@ -77,9 +71,3 @@ Result = KEYPAIR_TYPE_MISMATCH

-  

-  PrivPubKeyPair = RSA-2048:P-256-PUBLIC

-  Result = KEYPAIR_TYPE_MISMATCH

- -

- -PrivPubKeyPair = RSA-2048:KAS-ECC-CDH_K-163_C0-PUBLIC

- -Result = KEYPAIR_TYPE_MISMATCH

- -

- -PrivPubKeyPair = Alice-25519:KAS-ECC-CDH_K-163_C0-PUBLIC

- -Result = KEYPAIR_TYPE_MISMATCH

- diff -up openssl-3.0.0-alpha16/test/recipes/30-test_evp.t.ec-curves openssl-3.0.0-alpha16/test/recipes/30-test_evp.t

- --- openssl-3.0.0-alpha16/test/recipes/30-test_evp.t.ec-curves	2021-05-17 10:49:28.050844977 +0200

- +++ openssl-3.0.0-alpha16/test/recipes/30-test_evp.t	2021-05-17 10:53:53.480444576 +0200

- @@ -111,7 +111,6 @@ my @defltfiles = qw(

-                       evppkey_kdf_tls1_prf.txt

-                       evppkey_rsa.txt

-                      );

- -push @defltfiles, qw(evppkey_brainpool.txt) unless $no_ec;

-  push @defltfiles, qw(evppkey_sm2.txt) unless $no_sm2;

-  

-  plan tests =>

- diff -up openssl-3.0.0-beta1/test/recipes/30-test_evp_data/evppkey_ecc.txt.remove-ec openssl-3.0.0-beta1/test/recipes/30-test_evp_data/evppkey_ecc.txt

- --- openssl-3.0.0-beta1/test/recipes/30-test_evp_data/evppkey_ecc.txt.remove-ec	2021-06-29 16:24:56.863303499 +0200

- +++ openssl-3.0.0-beta1/test/recipes/30-test_evp_data/evppkey_ecc.txt	2021-06-29 16:38:04.189996425 +0200

- @@ -11,1949 +11,6 @@

-  #       PrivPubKeyPair Sign Verify VerifyRecover

-  # and continue until a blank line. Lines starting with a pound sign are ignored.

-  

- -Title=c2pnb163v1 curve tests

- -

- -PrivateKey=ALICE_cf_c2pnb163v1

- ------BEGIN PRIVATE KEY-----

- -MDYCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAEEHDAaAgEBBBUD1JfG8cLNP9418YW+hVhriqH6O5Y=

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_c2pnb163v1_PUB

- ------BEGIN PUBLIC KEY-----

- -MEMwEwYHKoZIzj0CAQYIKoZIzj0DAAEDLAAEBXgoOgVlWTLQnrQZXgQuSBcIS3bQAlXQ+yJhS03B

- -4G8rKQXbrc0mvWsF

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_c2pnb163v1:ALICE_cf_c2pnb163v1_PUB

- -

- -PrivateKey=BOB_cf_c2pnb163v1

- ------BEGIN PRIVATE KEY-----

- -MDYCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAEEHDAaAgEBBBUAc3EaoMmMORTzQhMkhPIXY+/jUSI=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_c2pnb163v1_PUB

- ------BEGIN PUBLIC KEY-----

- -MEMwEwYHKoZIzj0CAQYIKoZIzj0DAAEDLAAEBn9J0jo39aFVZqhBsAKZ6bViAu6zBC8WaFGExnpZ

- -KuBh8tP8VSTHPCHF

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_c2pnb163v1:BOB_cf_c2pnb163v1_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_c2pnb163v1

- -PeerKey=BOB_cf_c2pnb163v1_PUB

- -SharedSecret=065dd38fb6de7f394778e1bf65d840a2c0e7219acd

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_c2pnb163v1

- -PeerKey=ALICE_cf_c2pnb163v1_PUB

- -SharedSecret=065dd38fb6de7f394778e1bf65d840a2c0e7219acd

- -

- -# ECC CDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_c2pnb163v1

- -PeerKey=BOB_cf_c2pnb163v1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=066fc46e8cc4327634dd127748020f2de6aab67585

- -

- -# ECC CDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_c2pnb163v1

- -PeerKey=ALICE_cf_c2pnb163v1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=066fc46e8cc4327634dd127748020f2de6aab67585

- -

- -PublicKey=MALICE_cf_c2pnb163v1_PUB

- ------BEGIN PUBLIC KEY-----

- -MEMwEwYHKoZIzj0CAQYIKoZIzj0DAAEDLAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8JxepS05nN

- -/piKdhDD3dDKXUih

- ------END PUBLIC KEY-----

- -

- -# ECC CDH Bob with Malice peer

- -Availablein = default

- -Derive=BOB_cf_c2pnb163v1

- -PeerKey=MALICE_cf_c2pnb163v1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -# ECC CDH Alice with Malice peer

- -Availablein = default

- -Derive=ALICE_cf_c2pnb163v1

- -PeerKey=MALICE_cf_c2pnb163v1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -Title=c2pnb163v2 curve tests

- -

- -PrivateKey=ALICE_cf_c2pnb163v2

- ------BEGIN PRIVATE KEY-----

- -MDYCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAIEHDAaAgEBBBUA4KFv7c1dygtVbdp/g2z2TqLAHkI=

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_c2pnb163v2_PUB

- ------BEGIN PUBLIC KEY-----

- -MEMwEwYHKoZIzj0CAQYIKoZIzj0DAAIDLAAEAVnlL7lMBaASwCIJaf9x2LgNPVmEAb43huHQlo3Q

- -4PzawHXQoYm/qgDd

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_c2pnb163v2:ALICE_cf_c2pnb163v2_PUB

- -

- -PrivateKey=BOB_cf_c2pnb163v2

- ------BEGIN PRIVATE KEY-----

- -MDYCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAIEHDAaAgEBBBUCEdYqClRWIl2m+X34e+DB2iZSxmQ=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_c2pnb163v2_PUB

- ------BEGIN PUBLIC KEY-----

- -MEMwEwYHKoZIzj0CAQYIKoZIzj0DAAIDLAAEAVWNIKn7/WMfzuNnd5ws9J0DI2CfBkEJizZHAFqy

- -kBF3juAQuARgxuT6

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_c2pnb163v2:BOB_cf_c2pnb163v2_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_c2pnb163v2

- -PeerKey=BOB_cf_c2pnb163v2_PUB

- -SharedSecret=0078ebb986d4f9b0aa0bc4af99e82c2bd24130f3f4

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_c2pnb163v2

- -PeerKey=ALICE_cf_c2pnb163v2_PUB

- -SharedSecret=0078ebb986d4f9b0aa0bc4af99e82c2bd24130f3f4

- -

- -# ECC CDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_c2pnb163v2

- -PeerKey=BOB_cf_c2pnb163v2_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=069a80bcd45987fd1c874cd9dc5453207a09b61d41

- -

- -# ECC CDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_c2pnb163v2

- -PeerKey=ALICE_cf_c2pnb163v2_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=069a80bcd45987fd1c874cd9dc5453207a09b61d41

- -

- -PublicKey=MALICE_cf_c2pnb163v2_PUB

- ------BEGIN PUBLIC KEY-----

- -MEMwEwYHKoZIzj0CAQYIKoZIzj0DAAIDLAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAABuVBl1V5uysY

- -n6HANPEoMoK+7Sv0

- ------END PUBLIC KEY-----

- -

- -# ECC CDH Bob with Malice peer

- -Availablein = default

- -Derive=BOB_cf_c2pnb163v2

- -PeerKey=MALICE_cf_c2pnb163v2_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -# ECC CDH Alice with Malice peer

- -Availablein = default

- -Derive=ALICE_cf_c2pnb163v2

- -PeerKey=MALICE_cf_c2pnb163v2_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -Title=c2pnb163v3 curve tests

- -

- -PrivateKey=ALICE_cf_c2pnb163v3

- ------BEGIN PRIVATE KEY-----

- -MDYCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAMEHDAaAgEBBBUBItB0y/QeJ+cCh9yoHf0zqLVyMZc=

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_c2pnb163v3_PUB

- ------BEGIN PUBLIC KEY-----

- -MEMwEwYHKoZIzj0CAQYIKoZIzj0DAAMDLAAEBx1HRyjuBMjt+vlbWaQbKOpNvWKFAslzEbPv6MpK

- -YnObLnq34LRuWznb

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_c2pnb163v3:ALICE_cf_c2pnb163v3_PUB

- -

- -PrivateKey=BOB_cf_c2pnb163v3

- ------BEGIN PRIVATE KEY-----

- -MDYCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAMEHDAaAgEBBBUAXVHUHeP8Ioz7IqXOWbjaUXEHE5M=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_c2pnb163v3_PUB

- ------BEGIN PUBLIC KEY-----

- -MEMwEwYHKoZIzj0CAQYIKoZIzj0DAAMDLAAEAqXF7rsAZ40Z1PT4TeeC45RKTxP4AJBAdfuknJ/J

- -DZnBLhxBwtqnfUpA

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_c2pnb163v3:BOB_cf_c2pnb163v3_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_c2pnb163v3

- -PeerKey=BOB_cf_c2pnb163v3_PUB

- -SharedSecret=07fd2ffe9b18973c51caeadbc2154b97a9a0390be9

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_c2pnb163v3

- -PeerKey=ALICE_cf_c2pnb163v3_PUB

- -SharedSecret=07fd2ffe9b18973c51caeadbc2154b97a9a0390be9

- -

- -# ECC CDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_c2pnb163v3

- -PeerKey=BOB_cf_c2pnb163v3_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=06f7daf1c963594e1a13f9f17b62aaab2934872c16

- -

- -# ECC CDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_c2pnb163v3

- -PeerKey=ALICE_cf_c2pnb163v3_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=06f7daf1c963594e1a13f9f17b62aaab2934872c16

- -

- -PublicKey=MALICE_cf_c2pnb163v3_PUB

- ------BEGIN PUBLIC KEY-----

- -MEMwEwYHKoZIzj0CAQYIKoZIzj0DAAMDLAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7jRlUg9oaLK

- -LwAuHF8g5Y0JjJnI

- ------END PUBLIC KEY-----

- -

- -# ECC CDH Bob with Malice peer

- -Availablein = default

- -Derive=BOB_cf_c2pnb163v3

- -PeerKey=MALICE_cf_c2pnb163v3_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -# ECC CDH Alice with Malice peer

- -Availablein = default

- -Derive=ALICE_cf_c2pnb163v3

- -PeerKey=MALICE_cf_c2pnb163v3_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -Title=c2pnb176v1 curve tests

- -

- -PrivateKey=ALICE_cf_c2pnb176v1

- ------BEGIN PRIVATE KEY-----

- -MDYCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAQEHDAaAgEBBBUAaZ1jV1jM9meV5iiNGPU/WMSfWOM=

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_c2pnb176v1_PUB

- ------BEGIN PUBLIC KEY-----

- -MEUwEwYHKoZIzj0CAQYIKoZIzj0DAAQDLgAEPjME7IV6Tuz2P++wIT60hRxTkk0M0PNgvqYcUoCI

- -iw3girDLhNzOu3IQ8Ac=

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_c2pnb176v1:ALICE_cf_c2pnb176v1_PUB

- -

- -PrivateKey=BOB_cf_c2pnb176v1

- ------BEGIN PRIVATE KEY-----

- -MDYCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAQEHDAaAgEBBBUAreyYbcF+ONIf64KmeSzV82OI/50=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_c2pnb176v1_PUB

- ------BEGIN PUBLIC KEY-----

- -MEUwEwYHKoZIzj0CAQYIKoZIzj0DAAQDLgAEpJn1IDmFj5LceLGfY2wlhI1VHq5vJ+qNIAOXVZhX

- -uMtp6pzy63rCEK53bgs=

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_c2pnb176v1:BOB_cf_c2pnb176v1_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_c2pnb176v1

- -PeerKey=BOB_cf_c2pnb176v1_PUB

- -SharedSecret=3a8021848ee0b2c1c377404267a515225781c181e6ab

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_c2pnb176v1

- -PeerKey=ALICE_cf_c2pnb176v1_PUB

- -SharedSecret=3a8021848ee0b2c1c377404267a515225781c181e6ab

- -

- -# ECC CDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_c2pnb176v1

- -PeerKey=BOB_cf_c2pnb176v1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=b06cdc633b56e813d63326c69d2cfa335352279540ac

- -

- -# ECC CDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_c2pnb176v1

- -PeerKey=ALICE_cf_c2pnb176v1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=b06cdc633b56e813d63326c69d2cfa335352279540ac

- -

- -PublicKey=MALICE_cf_c2pnb176v1_PUB

- ------BEGIN PUBLIC KEY-----

- -MEUwEwYHKoZIzj0CAQYIKoZIzj0DAAQDLgAE4ePri2opCoAUJIUQnaQlvDaxZd9bsdKnjWSvh+FL

- -zXV3l5j8K3pow+GJBE4=

- ------END PUBLIC KEY-----

- -

- -# ECC CDH Bob with Malice peer

- -Availablein = default

- -Derive=BOB_cf_c2pnb176v1

- -PeerKey=MALICE_cf_c2pnb176v1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -# ECC CDH Alice with Malice peer

- -Availablein = default

- -Derive=ALICE_cf_c2pnb176v1

- -PeerKey=MALICE_cf_c2pnb176v1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -Title=c2pnb208w1 curve tests

- -

- -PrivateKey=ALICE_cf_c2pnb208w1

- ------BEGIN PRIVATE KEY-----

- -MDoCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAoEIDAeAgEBBBkAiENroXMYNbK/7DQQwCpbXk00gnVd

- -XF2k

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_c2pnb208w1_PUB

- ------BEGIN PUBLIC KEY-----

- -ME0wEwYHKoZIzj0CAQYIKoZIzj0DAAoDNgAEL+IHOL2IfeLRiE6Wqsc0Frqjq7t/JnBmhN1lMB9Y

- -Yj3+Btcne4CPWf8KvfGjAdMs6JKP4A==

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_c2pnb208w1:ALICE_cf_c2pnb208w1_PUB

- -

- -PrivateKey=BOB_cf_c2pnb208w1

- ------BEGIN PRIVATE KEY-----

- -MDoCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAoEIDAeAgEBBBkAY1GZLynO/IDWwOOjEWUE7k+I/MkP

- -cJot

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_c2pnb208w1_PUB

- ------BEGIN PUBLIC KEY-----

- -ME0wEwYHKoZIzj0CAQYIKoZIzj0DAAoDNgAENBvdzCDOIvu9zo7reJq1ummhR+0jaDc+EoSlW984

- -cl9FTi/JJznwC+RNgwVfJ1WKJun1YA==

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_c2pnb208w1:BOB_cf_c2pnb208w1_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_c2pnb208w1

- -PeerKey=BOB_cf_c2pnb208w1_PUB

- -SharedSecret=ba32bf80c0f7ab53cb083f267a902a1ad6396eb283237fad91cd

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_c2pnb208w1

- -PeerKey=ALICE_cf_c2pnb208w1_PUB

- -SharedSecret=ba32bf80c0f7ab53cb083f267a902a1ad6396eb283237fad91cd

- -

- -# ECC CDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_c2pnb208w1

- -PeerKey=BOB_cf_c2pnb208w1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=f09f5fc8bf20677558bc65939bf1b7fbbbe2579702729304258b

- -

- -# ECC CDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_c2pnb208w1

- -PeerKey=ALICE_cf_c2pnb208w1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=f09f5fc8bf20677558bc65939bf1b7fbbbe2579702729304258b

- -

- -PublicKey=MALICE_cf_c2pnb208w1_PUB

- ------BEGIN PUBLIC KEY-----

- -ME0wEwYHKoZIzj0CAQYIKoZIzj0DAAoDNgAEfuWB9pBZQin+VnmqgYVpbUpKxSQsnXxNqiDtVwqJ

- -oPkHxRWnu5e7qI2idMcqaKDeeniUaA==

- ------END PUBLIC KEY-----

- -

- -# ECC CDH Bob with Malice peer

- -Availablein = default

- -Derive=BOB_cf_c2pnb208w1

- -PeerKey=MALICE_cf_c2pnb208w1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -# ECC CDH Alice with Malice peer

- -Availablein = default

- -Derive=ALICE_cf_c2pnb208w1

- -PeerKey=MALICE_cf_c2pnb208w1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -Title=c2pnb272w1 curve tests

- -

- -PrivateKey=ALICE_cf_c2pnb272w1

- ------BEGIN PRIVATE KEY-----

- -MEICAQAwEwYHKoZIzj0CAQYIKoZIzj0DABAEKDAmAgEBBCEA0SoHwKAgKb7WQ+s0w1iNBemDZ3+f

- -StHU67fpP7YoF8U=

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_c2pnb272w1_PUB

- ------BEGIN PUBLIC KEY-----

- -MF0wEwYHKoZIzj0CAQYIKoZIzj0DABADRgAE0IH60bGi46FDzEprGZ8EBK5uMMcVke/txeBRNGHQ

- -DzG68r3EMLZkOfE1+g04MN7HgY7zt3jMYb8ImyLRmvqR2abjs6c=

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_c2pnb272w1:ALICE_cf_c2pnb272w1_PUB

- -

- -PrivateKey=BOB_cf_c2pnb272w1

- ------BEGIN PRIVATE KEY-----

- -MEICAQAwEwYHKoZIzj0CAQYIKoZIzj0DABAEKDAmAgEBBCEAFqB5GbPJ4d+X7ye7m05l/OirDqfn

- -MOsOJ6xObBph3zQ=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_c2pnb272w1_PUB

- ------BEGIN PUBLIC KEY-----

- -MF0wEwYHKoZIzj0CAQYIKoZIzj0DABADRgAEIeIkcMHAuOgvHt2Wp52vVe0DYPNnUX79t/mLSx03

- -cUlDmcxL7vIXdx9hB4OmQBYbm+YLDNfTFGAIlDfr2tELpVVPWPo=

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_c2pnb272w1:BOB_cf_c2pnb272w1_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_c2pnb272w1

- -PeerKey=BOB_cf_c2pnb272w1_PUB

- -SharedSecret=cfebd65006520a40f081d8940edf0ebb8e54491ba1499d9f3c63deecee84ddc07142

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_c2pnb272w1

- -PeerKey=ALICE_cf_c2pnb272w1_PUB

- -SharedSecret=cfebd65006520a40f081d8940edf0ebb8e54491ba1499d9f3c63deecee84ddc07142

- -

- -# ECC CDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_c2pnb272w1

- -PeerKey=BOB_cf_c2pnb272w1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=756fc20b27352ac74e5135359c63d375d2732c6d02f25cd526155bac0882a9211dd4

- -

- -# ECC CDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_c2pnb272w1

- -PeerKey=ALICE_cf_c2pnb272w1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=756fc20b27352ac74e5135359c63d375d2732c6d02f25cd526155bac0882a9211dd4

- -

- -PublicKey=MALICE_cf_c2pnb272w1_PUB

- ------BEGIN PUBLIC KEY-----

- -MF0wEwYHKoZIzj0CAQYIKoZIzj0DABADRgAEvID3AM7qzpKDnOLFY00+E7EKZz/vS/pXgsUA3bWN

- -oJF8ElXFXv59s/SykQBCTHPqzmUbVmrXmtD44Kt1wUBRJfuwxy4=

- ------END PUBLIC KEY-----

- -

- -# ECC CDH Bob with Malice peer

- -Availablein = default

- -Derive=BOB_cf_c2pnb272w1

- -PeerKey=MALICE_cf_c2pnb272w1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -# ECC CDH Alice with Malice peer

- -Availablein = default

- -Derive=ALICE_cf_c2pnb272w1

- -PeerKey=MALICE_cf_c2pnb272w1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -Title=c2pnb304w1 curve tests

- -

- -PrivateKey=ALICE_cf_c2pnb304w1

- ------BEGIN PRIVATE KEY-----

- -MEYCAQAwEwYHKoZIzj0CAQYIKoZIzj0DABEELDAqAgEBBCUAqJxh50ZIUXOJ1HE3cVkech9OTTPJ

- -8jy/v5cFcO0X6dykHgnZ

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_c2pnb304w1_PUB

- ------BEGIN PUBLIC KEY-----

- -MGUwEwYHKoZIzj0CAQYIKoZIzj0DABEDTgAEvoaqRX6qiNQiFH1BhgLCPTpYszoRhmlLirkvlw/Q

- -iXBlfQ7U4g+iRR/kmu2RlwwOHgNNL+mWcvLkFfS8Kr4jzv1EY1Ecx96n21l0YQ==

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_c2pnb304w1:ALICE_cf_c2pnb304w1_PUB

- -

- -PrivateKey=BOB_cf_c2pnb304w1

- ------BEGIN PRIVATE KEY-----

- -MEYCAQAwEwYHKoZIzj0CAQYIKoZIzj0DABEELDAqAgEBBCUAOScHepX+IwqC8TjyAJI1bkR3cYYt

- -X9BbqYM9GQfVNSLHntTg

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_c2pnb304w1_PUB

- ------BEGIN PUBLIC KEY-----

- -MGUwEwYHKoZIzj0CAQYIKoZIzj0DABEDTgAEYuAq/6Yw5HxMeMohlWmwl+ZK4ZQucfr1tWDKwhDb

- -kAOUO2P/Q/H+uelM3VVwxeu6A1kaX7K0UZpNa96NRBwI4aevc+vOxCgYkGt9BA==

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_c2pnb304w1:BOB_cf_c2pnb304w1_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_c2pnb304w1

- -PeerKey=BOB_cf_c2pnb304w1_PUB

- -SharedSecret=bfddf9f923210e8231a702e3a1c987cf27661de1bc243c1890e437d67d9f49c6ccfadc035d9d

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_c2pnb304w1

- -PeerKey=ALICE_cf_c2pnb304w1_PUB

- -SharedSecret=bfddf9f923210e8231a702e3a1c987cf27661de1bc243c1890e437d67d9f49c6ccfadc035d9d

- -

- -# ECC CDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_c2pnb304w1

- -PeerKey=BOB_cf_c2pnb304w1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=0c7afb3143f93ef2166c05437a1757a62c916ff1751c6d456dd7f2356dcbc75df48015eb5ce8

- -

- -# ECC CDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_c2pnb304w1

- -PeerKey=ALICE_cf_c2pnb304w1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=0c7afb3143f93ef2166c05437a1757a62c916ff1751c6d456dd7f2356dcbc75df48015eb5ce8

- -

- -PublicKey=MALICE_cf_c2pnb304w1_PUB

- ------BEGIN PUBLIC KEY-----

- -MGUwEwYHKoZIzj0CAQYIKoZIzj0DABEDTgAEBZ5FuthQt0mxTJ8NQWN2J37kYT8ySD893IXEmXYP

- -fMTr+CSNkf/sfF/13GEdVGnHmBgCH61sPWG69RgzdjRPprZFZxXjubIWYkp0DQ==

- ------END PUBLIC KEY-----

- -

- -# ECC CDH Bob with Malice peer

- -Availablein = default

- -Derive=BOB_cf_c2pnb304w1

- -PeerKey=MALICE_cf_c2pnb304w1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -# ECC CDH Alice with Malice peer

- -Availablein = default

- -Derive=ALICE_cf_c2pnb304w1

- -PeerKey=MALICE_cf_c2pnb304w1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -Title=c2pnb368w1 curve tests

- -

- -PrivateKey=ALICE_cf_c2pnb368w1

- ------BEGIN PRIVATE KEY-----

- -ME4CAQAwEwYHKoZIzj0CAQYIKoZIzj0DABMENDAyAgEBBC0AXeSTXsHb2PEH12tZL8w2q6evA2mi

- -KfLLIa1c29BTmM//oWdKpqeuvwMIBto=

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_c2pnb368w1_PUB

- ------BEGIN PUBLIC KEY-----

- -MHUwEwYHKoZIzj0CAQYIKoZIzj0DABMDXgAEmEBXcvMgnHwJW7wAKM4cqboco6zF01J9ntUwoACI

- -euvf3cpPXBvxUawJXfO9FwFRQabDRagGP99Walidd2JW8nWDWZgZMKj15Wh+4bp2dZHc2tPIIHHd

- -3makbwQ=

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_c2pnb368w1:ALICE_cf_c2pnb368w1_PUB

- -

- -PrivateKey=BOB_cf_c2pnb368w1

- ------BEGIN PRIVATE KEY-----

- -ME4CAQAwEwYHKoZIzj0CAQYIKoZIzj0DABMENDAyAgEBBC0Aq1R9M/mCMbJMj6VBUpBkS4HXywEz

- -Qun6d6uXgyU4LZRszA7Dz9+eKbXEMsk=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_c2pnb368w1_PUB

- ------BEGIN PUBLIC KEY-----

- -MHUwEwYHKoZIzj0CAQYIKoZIzj0DABMDXgAEJOSnsaXA9wb5p8CGLPvYI47Yf3IdZSbWQ3Sn6G2v

- -At+zYlpzGax1oJ1CW8fGA0Gu0RnvAfDeW9vgrtzshH1Vy/Ni6a7LPho99PtUP2nzUBnv+hfhFSra

- -gqfRaOs=

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_c2pnb368w1:BOB_cf_c2pnb368w1_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_c2pnb368w1

- -PeerKey=BOB_cf_c2pnb368w1_PUB

- -SharedSecret=008d20ede3961be3b01051d6fdae63db43865664804d432293a2edb13dcc8be0fe5b0c655297a84b9067a29c2a6f

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_c2pnb368w1

- -PeerKey=ALICE_cf_c2pnb368w1_PUB

- -SharedSecret=008d20ede3961be3b01051d6fdae63db43865664804d432293a2edb13dcc8be0fe5b0c655297a84b9067a29c2a6f

- -

- -# ECC CDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_c2pnb368w1

- -PeerKey=BOB_cf_c2pnb368w1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=df32ddeeffa029aeadabad000a79c3154a0ddd0aeacf4e3de426f5c10096eff8912038c64d4c899131dcd4df2561

- -

- -# ECC CDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_c2pnb368w1

- -PeerKey=ALICE_cf_c2pnb368w1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=df32ddeeffa029aeadabad000a79c3154a0ddd0aeacf4e3de426f5c10096eff8912038c64d4c899131dcd4df2561

- -

- -PublicKey=MALICE_cf_c2pnb368w1_PUB

- ------BEGIN PUBLIC KEY-----

- -MHUwEwYHKoZIzj0CAQYIKoZIzj0DABMDXgAEWDn/U9rymClM/a0Q1mawHjQjvpxSehRWstSE+2Sd

- -ubcZowJ+rw5LsEZteQyeVrCpKYUiIBmIVuFb2LDjtNLIJD1lr8C+vdco24ciLS9RzF/Dc9X+tcIj

- -726e1BE=

- ------END PUBLIC KEY-----

- -

- -# ECC CDH Bob with Malice peer

- -Availablein = default

- -Derive=BOB_cf_c2pnb368w1

- -PeerKey=MALICE_cf_c2pnb368w1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -# ECC CDH Alice with Malice peer

- -Availablein = default

- -Derive=ALICE_cf_c2pnb368w1

- -PeerKey=MALICE_cf_c2pnb368w1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -Title=c2tnb191v1 curve tests

- -

- -PrivateKey=ALICE_cf_c2tnb191v1

- ------BEGIN PRIVATE KEY-----

- -MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAUEHzAdAgEBBBgXyG7A4BvSmjKEl3aU+FQUt02p9U7x

- -Jk4=

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_c2tnb191v1_PUB

- ------BEGIN PUBLIC KEY-----

- -MEkwEwYHKoZIzj0CAQYIKoZIzj0DAAUDMgAEG9iuZmnhz2H/YQKmVUaO//fm7hvV+CP5c2iszpR3

- -7lRimqLWHPyvKgcP+PRCIUom

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_c2tnb191v1:ALICE_cf_c2tnb191v1_PUB

- -

- -PrivateKey=BOB_cf_c2tnb191v1

- ------BEGIN PRIVATE KEY-----

- -MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAUEHzAdAgEBBBg4+2hv9x9HxFy0c2c1XESDdgOamHu0

- -MTU=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_c2tnb191v1_PUB

- ------BEGIN PUBLIC KEY-----

- -MEkwEwYHKoZIzj0CAQYIKoZIzj0DAAUDMgAEdO/4ii8gi8eQfBrv3XmsOETwIfT8OIpBW/kUoHD+

- -adqalcB6SIWOfoJReDLcpxAD

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_c2tnb191v1:BOB_cf_c2tnb191v1_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_c2tnb191v1

- -PeerKey=BOB_cf_c2tnb191v1_PUB

- -SharedSecret=2ee8a85151c397600984285307c14f0ea0e4c2071d753a99

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_c2tnb191v1

- -PeerKey=ALICE_cf_c2tnb191v1_PUB

- -SharedSecret=2ee8a85151c397600984285307c14f0ea0e4c2071d753a99

- -

- -# ECC CDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_c2tnb191v1

- -PeerKey=BOB_cf_c2tnb191v1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=334051dfd62237e69e280ce2fab979bd77260f8dfe4df989

- -

- -# ECC CDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_c2tnb191v1

- -PeerKey=ALICE_cf_c2tnb191v1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=334051dfd62237e69e280ce2fab979bd77260f8dfe4df989

- -

- -PublicKey=MALICE_cf_c2tnb191v1_PUB

- ------BEGIN PUBLIC KEY-----

- -MEkwEwYHKoZIzj0CAQYIKoZIzj0DAAUDMgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcPEwZ1wj

- -iNoFyzyANZl8IDB0fF1RmZD6

- ------END PUBLIC KEY-----

- -

- -# ECC CDH Bob with Malice peer

- -Availablein = default

- -Derive=BOB_cf_c2tnb191v1

- -PeerKey=MALICE_cf_c2tnb191v1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -# ECC CDH Alice with Malice peer

- -Availablein = default

- -Derive=ALICE_cf_c2tnb191v1

- -PeerKey=MALICE_cf_c2tnb191v1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -Title=c2tnb191v2 curve tests

- -

- -PrivateKey=ALICE_cf_c2tnb191v2

- ------BEGIN PRIVATE KEY-----

- -MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAYEHzAdAgEBBBgQZHIQIPrAsbJqq4ZX3JdMrZAkaIGP

- -jbo=

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_c2tnb191v2_PUB

- ------BEGIN PUBLIC KEY-----

- -MEkwEwYHKoZIzj0CAQYIKoZIzj0DAAYDMgAEAyQdwZYRIiv7O4/WRLDKJ249TM8dr2Y+Oz8rSxCI

- -UVvJT/Jv9m462J6Iz1XOohhP

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_c2tnb191v2:ALICE_cf_c2tnb191v2_PUB

- -

- -PrivateKey=BOB_cf_c2tnb191v2

- ------BEGIN PRIVATE KEY-----

- -MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAYEHzAdAgEBBBgThhW6d5QDaqM8yhm16q6Pu/VFBpf7

- -wcs=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_c2tnb191v2_PUB

- ------BEGIN PUBLIC KEY-----

- -MEkwEwYHKoZIzj0CAQYIKoZIzj0DAAYDMgAEBVkB4O6fFvGzMHv4BF51muFA0npOGKoOdKbIIMQY

- -JBIoz1RNNXTcgdpguLcrvcPJ

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_c2tnb191v2:BOB_cf_c2tnb191v2_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_c2tnb191v2

- -PeerKey=BOB_cf_c2tnb191v2_PUB

- -SharedSecret=711f90cb2aaea65e939065cbd1896affe1d490ba14571400

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_c2tnb191v2

- -PeerKey=ALICE_cf_c2tnb191v2_PUB

- -SharedSecret=711f90cb2aaea65e939065cbd1896affe1d490ba14571400

- -

- -# ECC CDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_c2tnb191v2

- -PeerKey=BOB_cf_c2tnb191v2_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=1740db5b771fa2889d3ec7c1ba8eeffa7741f0ee62433dce

- -

- -# ECC CDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_c2tnb191v2

- -PeerKey=ALICE_cf_c2tnb191v2_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=1740db5b771fa2889d3ec7c1ba8eeffa7741f0ee62433dce

- -

- -PublicKey=MALICE_cf_c2tnb191v2_PUB

- ------BEGIN PUBLIC KEY-----

- -MEkwEwYHKoZIzj0CAQYIKoZIzj0DAAYDMgAEA3yPV6Ilx7PU7dWIDzgKzFV07LNsn1EhMyLQaa5U

- -2vqunpWef+/CaO2pFBcwwW+x

- ------END PUBLIC KEY-----

- -

- -# ECC CDH Bob with Malice peer

- -Availablein = default

- -Derive=BOB_cf_c2tnb191v2

- -PeerKey=MALICE_cf_c2tnb191v2_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -# ECC CDH Alice with Malice peer

- -Availablein = default

- -Derive=ALICE_cf_c2tnb191v2

- -PeerKey=MALICE_cf_c2tnb191v2_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -Title=c2tnb191v3 curve tests

- -

- -PrivateKey=ALICE_cf_c2tnb191v3

- ------BEGIN PRIVATE KEY-----

- -MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAcEHzAdAgEBBBgTPjf06B01Jq59qU1iczNuA29WfW+b

- -erU=

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_c2tnb191v3_PUB

- ------BEGIN PUBLIC KEY-----

- -MEkwEwYHKoZIzj0CAQYIKoZIzj0DAAcDMgAEL4NGEUX2CXY18MyoH1inKq5kde9RGr25ODm/0BEX

- -HWsGvDE2HC+6pL2BMl3MRCty

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_c2tnb191v3:ALICE_cf_c2tnb191v3_PUB

- -

- -PrivateKey=BOB_cf_c2tnb191v3

- ------BEGIN PRIVATE KEY-----

- -MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAcEHzAdAgEBBBgUC2bC465JTXYLUaaET/r5n7X85gRH

- -iSQ=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_c2tnb191v3_PUB

- ------BEGIN PUBLIC KEY-----

- -MEkwEwYHKoZIzj0CAQYIKoZIzj0DAAcDMgAEPKekNkT9mQ8KRCTR2RwCFkhNvsjL+/mLHYzbMrYe

- -QFIb5QwXAdbg2tEOl7yj9qkk

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_c2tnb191v3:BOB_cf_c2tnb191v3_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_c2tnb191v3

- -PeerKey=BOB_cf_c2tnb191v3_PUB

- -SharedSecret=196200f7ea06c43c35516b995cf4a4dd4151dbd0ed998561

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_c2tnb191v3

- -PeerKey=ALICE_cf_c2tnb191v3_PUB

- -SharedSecret=196200f7ea06c43c35516b995cf4a4dd4151dbd0ed998561

- -

- -# ECC CDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_c2tnb191v3

- -PeerKey=BOB_cf_c2tnb191v3_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=311939377670a8a1ed1ee17f9dd182167da00c5a19e2e109

- -

- -# ECC CDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_c2tnb191v3

- -PeerKey=ALICE_cf_c2tnb191v3_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=311939377670a8a1ed1ee17f9dd182167da00c5a19e2e109

- -

- -PublicKey=MALICE_cf_c2tnb191v3_PUB

- ------BEGIN PUBLIC KEY-----

- -MEkwEwYHKoZIzj0CAQYIKoZIzj0DAAcDMgAESvPjWlLnANK2j38hHZ0uqueaniovkhwwdJZjrmUk

- -n5vQBTxUzkIkMjL33v6Lr3z7

- ------END PUBLIC KEY-----

- -

- -# ECC CDH Bob with Malice peer

- -Availablein = default

- -Derive=BOB_cf_c2tnb191v3

- -PeerKey=MALICE_cf_c2tnb191v3_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -# ECC CDH Alice with Malice peer

- -Availablein = default

- -Derive=ALICE_cf_c2tnb191v3

- -PeerKey=MALICE_cf_c2tnb191v3_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -Title=c2tnb239v1 curve tests

- -

- -PrivateKey=ALICE_cf_c2tnb239v1

- ------BEGIN PRIVATE KEY-----

- -MD8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAsEJTAjAgEBBB4fMJDhCEiuEf/RF6oGjHVcNwN+wCYG

- -rJMnJLIXiCI=

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_c2tnb239v1_PUB

- ------BEGIN PUBLIC KEY-----

- -MFUwEwYHKoZIzj0CAQYIKoZIzj0DAAsDPgAEUgG/uMWy4k0R/kbVJEapF6r5ik4Q9WPsDXAd0856

- -dVL8PvBXgixk2tKfyY1xUVebcEVlgdZP1pN1Xyvi

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_c2tnb239v1:ALICE_cf_c2tnb239v1_PUB

- -

- -PrivateKey=BOB_cf_c2tnb239v1

- ------BEGIN PRIVATE KEY-----

- -MD8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAsEJTAjAgEBBB4JLDwVJQw3+00FiZBDWFErd7PXnchH

- -sfpZeV3i5FM=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_c2tnb239v1_PUB

- ------BEGIN PUBLIC KEY-----

- -MFUwEwYHKoZIzj0CAQYIKoZIzj0DAAsDPgAEcwKt31cWaoFUd7QxYSdwgMDOqEhjPbD3Z9AfR3tc

- -G77/MY5z1oQegqImBog645vtPWI8lZd1zcl6QYRS

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_c2tnb239v1:BOB_cf_c2tnb239v1_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_c2tnb239v1

- -PeerKey=BOB_cf_c2tnb239v1_PUB

- -SharedSecret=413ea943cdf40c45795c77aeea7099b81cc42566067924d1fdbae42ddf99

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_c2tnb239v1

- -PeerKey=ALICE_cf_c2tnb239v1_PUB

- -SharedSecret=413ea943cdf40c45795c77aeea7099b81cc42566067924d1fdbae42ddf99

- -

- -# ECC CDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_c2tnb239v1

- -PeerKey=BOB_cf_c2tnb239v1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=1f1e5a6084492e895c35d76a5d2b4a3fafbd96c4b2230ea71cc1c711fa38

- -

- -# ECC CDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_c2tnb239v1

- -PeerKey=ALICE_cf_c2tnb239v1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=1f1e5a6084492e895c35d76a5d2b4a3fafbd96c4b2230ea71cc1c711fa38

- -

- -PublicKey=MALICE_cf_c2tnb239v1_PUB

- ------BEGIN PUBLIC KEY-----

- -MFUwEwYHKoZIzj0CAQYIKoZIzj0DAAsDPgAEJFn89FF7xaa5m+XGxWKFwCH+Mu4rbxwi6lvhuEuT

- -Itl/OAosALFh8xpt+N5gmKtUdhpjyok2udC4B/mY

- ------END PUBLIC KEY-----

- -

- -# ECC CDH Bob with Malice peer

- -Availablein = default

- -Derive=BOB_cf_c2tnb239v1

- -PeerKey=MALICE_cf_c2tnb239v1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -# ECC CDH Alice with Malice peer

- -Availablein = default

- -Derive=ALICE_cf_c2tnb239v1

- -PeerKey=MALICE_cf_c2tnb239v1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -Title=c2tnb239v2 curve tests

- -

- -PrivateKey=ALICE_cf_c2tnb239v2

- ------BEGIN PRIVATE KEY-----

- -MD8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAwEJTAjAgEBBB4KU4YKdzFOkl6M1biHkxtVGD2uNXr6

- -GbEcp4PbJKU=

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_c2tnb239v2_PUB

- ------BEGIN PUBLIC KEY-----

- -MFUwEwYHKoZIzj0CAQYIKoZIzj0DAAwDPgAEKzpycflUrsyqVV/+fzvC2+AuX3r0b0Syn8acvn78

- -VnKA9mZKwPLWhnMJcLyzarIzc/6/UcfYGNmTyUlG

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_c2tnb239v2:ALICE_cf_c2tnb239v2_PUB

- -

- -PrivateKey=BOB_cf_c2tnb239v2

- ------BEGIN PRIVATE KEY-----

- -MD8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAwEJTAjAgEBBB4HZQLKGKBpIKiyTq6XYZWQNph1oGP+

- -JLwCwn7lYx0=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_c2tnb239v2_PUB

- ------BEGIN PUBLIC KEY-----

- -MFUwEwYHKoZIzj0CAQYIKoZIzj0DAAwDPgAETPSkhMs3JW3BG66FSfCov76JKdcRiBhMCW453Wku

- -N7yBxBmWjeclHhnXIzfc4qM4qf9n3KzMSXejPVYg

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_c2tnb239v2:BOB_cf_c2tnb239v2_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_c2tnb239v2

- -PeerKey=BOB_cf_c2tnb239v2_PUB

- -SharedSecret=2e738f14795b2e19ee791c1bf30c5e462ca6c6ed0ec5c6c6402d0730cf4c

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_c2tnb239v2

- -PeerKey=ALICE_cf_c2tnb239v2_PUB

- -SharedSecret=2e738f14795b2e19ee791c1bf30c5e462ca6c6ed0ec5c6c6402d0730cf4c

- -

- -# ECC CDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_c2tnb239v2

- -PeerKey=BOB_cf_c2tnb239v2_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=7662d8b94d3f0d20eb8e112ca8b7d5699d81f35902df5b77561977df3946

- -

- -# ECC CDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_c2tnb239v2

- -PeerKey=ALICE_cf_c2tnb239v2_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=7662d8b94d3f0d20eb8e112ca8b7d5699d81f35902df5b77561977df3946

- -

- -PublicKey=MALICE_cf_c2tnb239v2_PUB

- ------BEGIN PUBLIC KEY-----

- -MFUwEwYHKoZIzj0CAQYIKoZIzj0DAAwDPgAES8fLc5mtVI0HqgKRJ7mN8MU1B0FBkiim6jCHYJf3

- -JYUX3Gn3Ai11cHie+nVb3z51jSkpDQENHESTv5K2

- ------END PUBLIC KEY-----

- -

- -# ECC CDH Bob with Malice peer

- -Availablein = default

- -Derive=BOB_cf_c2tnb239v2

- -PeerKey=MALICE_cf_c2tnb239v2_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -# ECC CDH Alice with Malice peer

- -Availablein = default

- -Derive=ALICE_cf_c2tnb239v2

- -PeerKey=MALICE_cf_c2tnb239v2_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -Title=c2tnb239v3 curve tests

- -

- -PrivateKey=ALICE_cf_c2tnb239v3

- ------BEGIN PRIVATE KEY-----

- -MD8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAA0EJTAjAgEBBB4BZZXtcMw5GrpgHJLx4D8z7M6ocWdv

- -rDl2fV9ObC8=

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_c2tnb239v3_PUB

- ------BEGIN PUBLIC KEY-----

- -MFUwEwYHKoZIzj0CAQYIKoZIzj0DAA0DPgAEOu2HIAUX+r6IbRlrPUJUBDL814dR++maVAAkUIjD

- -H33ewqcI9ZLtpvuR8P8hgRNUTXlh1GWgrB6F21Eo

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_c2tnb239v3:ALICE_cf_c2tnb239v3_PUB

- -

- -PrivateKey=BOB_cf_c2tnb239v3

- ------BEGIN PRIVATE KEY-----

- -MD8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAA0EJTAjAgEBBB4BDxw3SA54y6uYOW1n4yZaUK22J9ef

- -XG3HcQX+4i0=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_c2tnb239v3_PUB

- ------BEGIN PUBLIC KEY-----

- -MFUwEwYHKoZIzj0CAQYIKoZIzj0DAA0DPgAEVaEi76wyzlpzkkSElf4SmGZ7kf1ghHMP82HkGk7K

- -BC10zUyppoSOAr0eX4pHAkDUF1m/KGoJa7QcJJww

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_c2tnb239v3:BOB_cf_c2tnb239v3_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_c2tnb239v3

- -PeerKey=BOB_cf_c2tnb239v3_PUB

- -SharedSecret=6a756022ec2ea89b0fa757824909707102acf3b7da39dc625c6252eb4c48

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_c2tnb239v3

- -PeerKey=ALICE_cf_c2tnb239v3_PUB

- -SharedSecret=6a756022ec2ea89b0fa757824909707102acf3b7da39dc625c6252eb4c48

- -

- -# ECC CDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_c2tnb239v3

- -PeerKey=BOB_cf_c2tnb239v3_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=3240e19dd8c290e5e1749df60ad0166dd9dbfad645e518b4948e14f774ce

- -

- -# ECC CDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_c2tnb239v3

- -PeerKey=ALICE_cf_c2tnb239v3_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=3240e19dd8c290e5e1749df60ad0166dd9dbfad645e518b4948e14f774ce

- -

- -PublicKey=MALICE_cf_c2tnb239v3_PUB

- ------BEGIN PUBLIC KEY-----

- -MFUwEwYHKoZIzj0CAQYIKoZIzj0DAA0DPgAELe/znC87/2ucKX7mXUUyiUvg67slWRdH+WHDct9d

- -LcXDyB342ZN1nm0NCAmBMcLjohX0Zza0ji3YNjT1

- ------END PUBLIC KEY-----

- -

- -# ECC CDH Bob with Malice peer

- -Availablein = default

- -Derive=BOB_cf_c2tnb239v3

- -PeerKey=MALICE_cf_c2tnb239v3_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -# ECC CDH Alice with Malice peer

- -Availablein = default

- -Derive=ALICE_cf_c2tnb239v3

- -PeerKey=MALICE_cf_c2tnb239v3_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -Title=c2tnb359v1 curve tests

- -

- -PrivateKey=ALICE_cf_c2tnb359v1

- ------BEGIN PRIVATE KEY-----

- -ME4CAQAwEwYHKoZIzj0CAQYIKoZIzj0DABIENDAyAgEBBC0Afea/a1NrRf6rRRr/UDsI559ADTFP

- -Bd5HaS33laTZkCdNLITw1UUrESUIOiU=

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_c2tnb359v1_PUB

- ------BEGIN PUBLIC KEY-----

- -MHMwEwYHKoZIzj0CAQYIKoZIzj0DABIDXAAEZMJU3QF9UJJp2m6qyCnhPuVlPKPHtav3DCgH27SY

- -RLMN7C4rRmqiJakD11QtOforOgbPW5r/v7t4TUWIlq8jV7kapJNtxQtg/S87L0NQGgHBq/lnJL8x

- -fN3Y

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_c2tnb359v1:ALICE_cf_c2tnb359v1_PUB

- -

- -PrivateKey=BOB_cf_c2tnb359v1

- ------BEGIN PRIVATE KEY-----

- -ME4CAQAwEwYHKoZIzj0CAQYIKoZIzj0DABIENDAyAgEBBC0Aaw+yr7Atz8CXjLsbI5msXLqxFoMr

- -esHVfU53i6ucCsnPTWSDWSb5CePtI9g=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_c2tnb359v1_PUB

- ------BEGIN PUBLIC KEY-----

- -MHMwEwYHKoZIzj0CAQYIKoZIzj0DABIDXAAEUQde0iyDHbsFJZ459d4zUhsrJYAkqndmEBRwSlg5

- -ZNX8SSS79Zf2HsQl+LWIZyzeYzoHobKXufChw9/H4ThS58VwV5/0hoE929PIgJ1MSEqr5LvJXi+b

- -R8fe

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_c2tnb359v1:BOB_cf_c2tnb359v1_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_c2tnb359v1

- -PeerKey=BOB_cf_c2tnb359v1_PUB

- -SharedSecret=623a71122b5acad467d40d97ef8d8fd46541d8c41d7de6ba181c24e2714c1bc35bcefcf089af69c406eedecc12

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_c2tnb359v1

- -PeerKey=ALICE_cf_c2tnb359v1_PUB

- -SharedSecret=623a71122b5acad467d40d97ef8d8fd46541d8c41d7de6ba181c24e2714c1bc35bcefcf089af69c406eedecc12

- -

- -# ECC CDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_c2tnb359v1

- -PeerKey=BOB_cf_c2tnb359v1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=1c9c4cea3251dace2cb763eabf60f106cc1b03f2491e6f20d7bea78e062f8f14c4e82e4d43786eefa44d33f7e9

- -

- -# ECC CDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_c2tnb359v1

- -PeerKey=ALICE_cf_c2tnb359v1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=1c9c4cea3251dace2cb763eabf60f106cc1b03f2491e6f20d7bea78e062f8f14c4e82e4d43786eefa44d33f7e9

- -

- -PublicKey=MALICE_cf_c2tnb359v1_PUB

- ------BEGIN PUBLIC KEY-----

- -MHMwEwYHKoZIzj0CAQYIKoZIzj0DABIDXAAEDW1DxeJfyPPnxX4WiLM5ZnX9AypqqeKj7FTHxanl

- -++A6FgVFjUCatt8Sr4xnSc3zDE0kh6f/wS9SbtCAi74i8HAX5SJiccCMPRkw6kBuHZgiG8EmFJ53

- -OEQw

- ------END PUBLIC KEY-----

- -

- -# ECC CDH Bob with Malice peer

- -Availablein = default

- -Derive=BOB_cf_c2tnb359v1

- -PeerKey=MALICE_cf_c2tnb359v1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -# ECC CDH Alice with Malice peer

- -Availablein = default

- -Derive=ALICE_cf_c2tnb359v1

- -PeerKey=MALICE_cf_c2tnb359v1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -Title=c2tnb431r1 curve tests

- -

- -PrivateKey=ALICE_cf_c2tnb431r1

- ------BEGIN PRIVATE KEY-----

- -MFYCAQAwEwYHKoZIzj0CAQYIKoZIzj0DABQEPDA6AgEBBDUAG1rgUnH3+PSxqlzt9+QTWv7PrYxz

- -Qgqj5A2Mqi0LbdixVDciVSSgrU6keVu72oCmHVP+OQ==

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_c2tnb431r1_PUB

- ------BEGIN PUBLIC KEY-----

- -MIGFMBMGByqGSM49AgEGCCqGSM49AwAUA24ABFcQEDic9pYxtxStk/oBxafqyUux1kvEOOwR4FxJ

- -pGEMTh8B+YfkWuq+IDY5zSqNKtg7cRlAFX2dlHhRSvNxrN3DJCrhe/TQq8SIYawcqEQnM39F8hHM

- -7VQJLEsBpJ/WUonwMJXknjgfONP7GA==

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_c2tnb431r1:ALICE_cf_c2tnb431r1_PUB

- -

- -PrivateKey=BOB_cf_c2tnb431r1

- ------BEGIN PRIVATE KEY-----

- -MFYCAQAwEwYHKoZIzj0CAQYIKoZIzj0DABQEPDA6AgEBBDUBOsZrpI6hTgImR8DBhKOOrh2SvcT/

- -VwmzYnbuCRrtr/zwIQcqKKI1ztlrl+kxFxJfk5L7UQ==

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_c2tnb431r1_PUB

- ------BEGIN PUBLIC KEY-----

- -MIGFMBMGByqGSM49AgEGCCqGSM49AwAUA24ABHeTG6xjbsKKxn4oYQt9qUM9LrSPZfY11XsBmROc

- -fb9kEbBLU+QixSbYZOrqPasesDV9dApDXF+w6EfIeNyJEK5Lk+aXamrn7fRMUAQ2m7+Odp87GgA+

- -8Cg6YpgbK314SK5STziqoZwzEISJ9w==

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_c2tnb431r1:BOB_cf_c2tnb431r1_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_c2tnb431r1

- -PeerKey=BOB_cf_c2tnb431r1_PUB

- -SharedSecret=1c9a64de0b706f0e562d5144ceeb4806ce8782865dc0e3fab694967955bd40afc79bf9241ef4a173fbf9baeac0d416392fb13bdc6978

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_c2tnb431r1

- -PeerKey=ALICE_cf_c2tnb431r1_PUB

- -SharedSecret=1c9a64de0b706f0e562d5144ceeb4806ce8782865dc0e3fab694967955bd40afc79bf9241ef4a173fbf9baeac0d416392fb13bdc6978

- -

- -# ECC CDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_c2tnb431r1

- -PeerKey=BOB_cf_c2tnb431r1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=059e2ea2d0d8bad5005a9401196ebb1633377c7ded8ec58a0398cf1d0f42ea82614f68cb836ecfc33612b8a705b4c3b7b4ed12eb6e22

- -

- -# ECC CDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_c2tnb431r1

- -PeerKey=ALICE_cf_c2tnb431r1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=059e2ea2d0d8bad5005a9401196ebb1633377c7ded8ec58a0398cf1d0f42ea82614f68cb836ecfc33612b8a705b4c3b7b4ed12eb6e22

- -

- -PublicKey=MALICE_cf_c2tnb431r1_PUB

- ------BEGIN PUBLIC KEY-----

- -MIGFMBMGByqGSM49AgEGCCqGSM49AwAUA24ABA/cHJ1bNJ2l3GcrT67WEoU0w/Ajy28T9X4XLv8a

- -5EpnkembeFlRG8ILplDcZimE8kjNQWynAk+NbJRsIU/XLzcm7VXkkqEkx/yCQ/TOcbeB3qrpzWYr

- -F3Cls9x60wuFYNc9d6eIe4B+puz9IQ==

- ------END PUBLIC KEY-----

- -

- -# ECC CDH Bob with Malice peer

- -Availablein = default

- -Derive=BOB_cf_c2tnb431r1

- -PeerKey=MALICE_cf_c2tnb431r1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -# ECC CDH Alice with Malice peer

- -Availablein = default

- -Derive=ALICE_cf_c2tnb431r1

- -PeerKey=MALICE_cf_c2tnb431r1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -Title=prime192v2 curve tests

- -

- -PrivateKey=ALICE_cf_prime192v2

- ------BEGIN PRIVATE KEY-----

- -MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQIEHzAdAgEBBBh6rcgPFDmA2P4CGSrC7ii9DAjepljX

- -sMM=

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_prime192v2_PUB

- ------BEGIN PUBLIC KEY-----

- -MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQIDMgAET6wOPoDU3BeU7VKozsGEvDeJs//9Z/aNEcbbLQ0d

- -g5IzsS/XMJzifjCJZgNsb7mi

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_prime192v2:ALICE_cf_prime192v2_PUB

- -

- -PrivateKey=BOB_cf_prime192v2

- ------BEGIN PRIVATE KEY-----

- -MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQIEHzAdAgEBBBja4R9iZuiu95XEuM1558ArTwNnAl7M

- -xqI=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_prime192v2_PUB

- ------BEGIN PUBLIC KEY-----

- -MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQIDMgAEcgWNAOL4pZCmouZl+be+rC0yLAJkm2YuPWs+FX2u

- -Y6OU1aHkkspZTC1uUVWjchy5

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_prime192v2:BOB_cf_prime192v2_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_prime192v2

- -PeerKey=BOB_cf_prime192v2_PUB

- -SharedSecret=ae2ff9f1f9f24e6d281dc78993d9f71913e1e105965000a1

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_prime192v2

- -PeerKey=ALICE_cf_prime192v2_PUB

- -SharedSecret=ae2ff9f1f9f24e6d281dc78993d9f71913e1e105965000a1

- -

- -Title=prime192v3 curve tests

- -

- -PrivateKey=ALICE_cf_prime192v3

- ------BEGIN PRIVATE KEY-----

- -MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQMEHzAdAgEBBBij5blPQRKM1/9c57YDZXIIue80MDqx

- -Igw=

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_prime192v3_PUB

- ------BEGIN PUBLIC KEY-----

- -MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQMDMgAE1+mLeiT/jjHO71IL/C/ZcnF6+yj9FV6eqfuPdHAi

- -MsDRFCB6/h8TcCUFuospu5l0

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_prime192v3:ALICE_cf_prime192v3_PUB

- -

- -PrivateKey=BOB_cf_prime192v3

- ------BEGIN PRIVATE KEY-----

- -MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQMEHzAdAgEBBBhgFP4fFLtm/yk5tsosBUBKTg370FOu

- -92g=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_prime192v3_PUB

- ------BEGIN PUBLIC KEY-----

- -MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQMDMgAEv35bOz0xqLeJqpZdZ8LyiUgsJMBEtN2UMJm8blX2

- -vMWAgEeLhzar86BUlS7dZwS7

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_prime192v3:BOB_cf_prime192v3_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_prime192v3

- -PeerKey=BOB_cf_prime192v3_PUB

- -SharedSecret=9e562ecbe29c510a13b0daea822ec864c2a9684d2a382812

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_prime192v3

- -PeerKey=ALICE_cf_prime192v3_PUB

- -SharedSecret=9e562ecbe29c510a13b0daea822ec864c2a9684d2a382812

- -

- -Title=prime239v1 curve tests

- -

- -PrivateKey=ALICE_cf_prime239v1

- ------BEGIN PRIVATE KEY-----

- -MD8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQQEJTAjAgEBBB5nH2mt/GUx+I/60NlcuQlrdupDXwMY

- -SF/w+SUTNqY=

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_prime239v1_PUB

- ------BEGIN PUBLIC KEY-----

- -MFUwEwYHKoZIzj0CAQYIKoZIzj0DAQQDPgAEMqQLCgDR9njkq9QELuOu+J/9YGcxJHULdvxHImLW

- -RXqBUM5Xea+Qk2SKIpWcogxr2zFeQyeLj2bQysuo

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_prime239v1:ALICE_cf_prime239v1_PUB

- -

- -PrivateKey=BOB_cf_prime239v1

- ------BEGIN PRIVATE KEY-----

- -MD8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQQEJTAjAgEBBB5RZgYV+j+zhwI12zCzB+mdPofMx0kB

- -jZ9gplgXxzk=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_prime239v1_PUB

- ------BEGIN PUBLIC KEY-----

- -MFUwEwYHKoZIzj0CAQYIKoZIzj0DAQQDPgAEBR5m/kllh025oO4GvqALkjRliVv7q4x8ro/tkYnT

- -L2U4hkT6xUeRu9QC4KOz7KUVH+nBbQASL4XQg/3C

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_prime239v1:BOB_cf_prime239v1_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_prime239v1

- -PeerKey=BOB_cf_prime239v1_PUB

- -SharedSecret=196b1d0206d4f87c313c266bfb12c90dd1f1f64b89bfc16518086b9801b8

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_prime239v1

- -PeerKey=ALICE_cf_prime239v1_PUB

- -SharedSecret=196b1d0206d4f87c313c266bfb12c90dd1f1f64b89bfc16518086b9801b8

- -

- -Title=prime239v2 curve tests

- -

- -PrivateKey=ALICE_cf_prime239v2

- ------BEGIN PRIVATE KEY-----

- -MD8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQUEJTAjAgEBBB5uLCwofbD2Suc/iIRhXJsPqZ4me87h

- -+tFevsg1pPE=

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_prime239v2_PUB

- ------BEGIN PUBLIC KEY-----

- -MFUwEwYHKoZIzj0CAQYIKoZIzj0DAQUDPgAETH77jXHBItV673gTNK/HTFldo4VxPiscbideUgKd

- -CWjdVsXebgAZbqQwf0h9QWcIgM7K7ODdW5kCuZ1G

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_prime239v2:ALICE_cf_prime239v2_PUB

- -

- -PrivateKey=BOB_cf_prime239v2

- ------BEGIN PRIVATE KEY-----

- -MD8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQUEJTAjAgEBBB5nlF+ouuw3Ljkgy3pHkCN+/JoHAMyT

- -KY0wlvJdo/w=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_prime239v2_PUB

- ------BEGIN PUBLIC KEY-----

- -MFUwEwYHKoZIzj0CAQYIKoZIzj0DAQUDPgAELUQYo0UH8HbK/RMD2jVphBU+iB4OTOfvaaTlHq06

- -dcJ8a9a+mAQKhb1OZVEq1n4nQsgRiI1rPxugVERM

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_prime239v2:BOB_cf_prime239v2_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_prime239v2

- -PeerKey=BOB_cf_prime239v2_PUB

- -SharedSecret=1d18ca6366bceba3c1477daa0e08202088abcf14fc2b8fbf98ba95858fcf

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_prime239v2

- -PeerKey=ALICE_cf_prime239v2_PUB

- -SharedSecret=1d18ca6366bceba3c1477daa0e08202088abcf14fc2b8fbf98ba95858fcf

- -

- -Title=prime239v3 curve tests

- -

- -PrivateKey=ALICE_cf_prime239v3

- ------BEGIN PRIVATE KEY-----

- -MD8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQYEJTAjAgEBBB5J95JRhBDTzlyAPAfu6T2Pb9vK0NKu

- -Y9AfhA2G+mI=

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_prime239v3_PUB

- ------BEGIN PUBLIC KEY-----

- -MFUwEwYHKoZIzj0CAQYIKoZIzj0DAQYDPgAEZEN48pqgLF08Yjj/8BLM2Nr5ZhpYxyBurbzKRuBb

- -GLpzZLteJN9vZjN7ouNpMxLVUFQxTOwpsvUw86Lk

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_prime239v3:ALICE_cf_prime239v3_PUB

- -

- -PrivateKey=BOB_cf_prime239v3

- ------BEGIN PRIVATE KEY-----

- -MD8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQYEJTAjAgEBBB5Z7rMZML1xeryBaYYr+QuMiQxHT44I

- -d9bmIVvG3dM=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_prime239v3_PUB

- ------BEGIN PUBLIC KEY-----

- -MFUwEwYHKoZIzj0CAQYIKoZIzj0DAQYDPgAEQUWKqohAPAoIYEZOvc1QwSlcB+gW0febaNxGOy47

- -LaIWdsNM7GJVP9xpdSwm/L+Dip/oH4E59f3SiOAd

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_prime239v3:BOB_cf_prime239v3_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_prime239v3

- -PeerKey=BOB_cf_prime239v3_PUB

- -SharedSecret=4dcc2c67c5993162ed71ebb33077bbb85395b0d3eec2311aa404e45901a0

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_prime239v3

- -PeerKey=ALICE_cf_prime239v3_PUB

- -SharedSecret=4dcc2c67c5993162ed71ebb33077bbb85395b0d3eec2311aa404e45901a0

- -

- -Title=secp112r1 curve tests

- -

- -PrivateKey=ALICE_cf_secp112r1

- ------BEGIN PRIVATE KEY-----

- -MCwCAQAwEAYHKoZIzj0CAQYFK4EEAAYEFTATAgEBBA6zC5ZzEIIdvY4Q7DS0uw==

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_secp112r1_PUB

- ------BEGIN PUBLIC KEY-----

- -MDIwEAYHKoZIzj0CAQYFK4EEAAYDHgAEYIawfjH3qRrJJWwuG3Ys5ZhDJsmdWi34aHgKAA==

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_secp112r1:ALICE_cf_secp112r1_PUB

- -

- -PrivateKey=BOB_cf_secp112r1

- ------BEGIN PRIVATE KEY-----

- -MCwCAQAwEAYHKoZIzj0CAQYFK4EEAAYEFTATAgEBBA6WPx4YxBODium8BKDw0A==

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_secp112r1_PUB

- ------BEGIN PUBLIC KEY-----

- -MDIwEAYHKoZIzj0CAQYFK4EEAAYDHgAEchh3iQdPN1rrzrpdZRQ95G6tvdwEBQ+gfu1tvA==

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_secp112r1:BOB_cf_secp112r1_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_secp112r1

- -PeerKey=BOB_cf_secp112r1_PUB

- -SharedSecret=4ddd1d504b444d4be67ba2e4610a

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_secp112r1

- -PeerKey=ALICE_cf_secp112r1_PUB

- -SharedSecret=4ddd1d504b444d4be67ba2e4610a

- -

- -Title=secp112r2 curve tests

- -

- -PrivateKey=ALICE_cf_secp112r2

- ------BEGIN PRIVATE KEY-----

- -MCwCAQAwEAYHKoZIzj0CAQYFK4EEAAcEFTATAgEBBA4GcvIx97ePHdAiH0Z9EA==

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_secp112r2_PUB

- ------BEGIN PUBLIC KEY-----

- -MDIwEAYHKoZIzj0CAQYFK4EEAAcDHgAEHK9uNAILHBmPZdKKh79/nzYE0HbvC//rA7i0Xw==

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_secp112r2:ALICE_cf_secp112r2_PUB

- -

- -PrivateKey=BOB_cf_secp112r2

- ------BEGIN PRIVATE KEY-----

- -MCwCAQAwEAYHKoZIzj0CAQYFK4EEAAcEFTATAgEBBA4WzpVFZnZv9mvtpnYNyw==

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_secp112r2_PUB

- ------BEGIN PUBLIC KEY-----

- -MDIwEAYHKoZIzj0CAQYFK4EEAAcDHgAEUzBLNQupqUpGgmZl9JVjKBpwusl52rFg5OVFJA==

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_secp112r2:BOB_cf_secp112r2_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_secp112r2

- -PeerKey=BOB_cf_secp112r2_PUB

- -SharedSecret=a6d05c7ba5128a9685c705b5030b

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_secp112r2

- -PeerKey=ALICE_cf_secp112r2_PUB

- -SharedSecret=a6d05c7ba5128a9685c705b5030b

- -

- -# ECC CDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_secp112r2

- -PeerKey=BOB_cf_secp112r2_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=04f3280e92c269d794aa779efcef

- -

- -# ECC CDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_secp112r2

- -PeerKey=ALICE_cf_secp112r2_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=04f3280e92c269d794aa779efcef

- -

- -PublicKey=MALICE_cf_secp112r2_PUB

- ------BEGIN PUBLIC KEY-----

- -MDIwEAYHKoZIzj0CAQYFK4EEAAcDHgAEsf2N4SfUZWtXPrUTmEyr71I/JSn8VtzQsFHuqQ==

- ------END PUBLIC KEY-----

- -

- -# ECC CDH Bob with Malice peer

- -Availablein = default

- -Derive=BOB_cf_secp112r2

- -PeerKey=MALICE_cf_secp112r2_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -# ECC CDH Alice with Malice peer

- -Availablein = default

- -Derive=ALICE_cf_secp112r2

- -PeerKey=MALICE_cf_secp112r2_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -Title=secp128r1 curve tests

- -

- -PrivateKey=ALICE_cf_secp128r1

- ------BEGIN PRIVATE KEY-----

- -MC4CAQAwEAYHKoZIzj0CAQYFK4EEABwEFzAVAgEBBBB+RX18d0+gKpdcKbJJTrEZ

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_secp128r1_PUB

- ------BEGIN PUBLIC KEY-----

- -MDYwEAYHKoZIzj0CAQYFK4EEABwDIgAEG0XMAdrAZOPUW6L9ADU8XK8sZr7dtIcDinSWU1zSV9s=

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_secp128r1:ALICE_cf_secp128r1_PUB

- -

- -PrivateKey=BOB_cf_secp128r1

- ------BEGIN PRIVATE KEY-----

- -MC4CAQAwEAYHKoZIzj0CAQYFK4EEABwEFzAVAgEBBBB/J9/eClt9mimGwOcOsjJF

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_secp128r1_PUB

- ------BEGIN PUBLIC KEY-----

- -MDYwEAYHKoZIzj0CAQYFK4EEABwDIgAE82nknsOS+u8mybP0KJqQhvm83gbPNTZOcvm0ZDVR5sU=

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_secp128r1:BOB_cf_secp128r1_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_secp128r1

- -PeerKey=BOB_cf_secp128r1_PUB

- -SharedSecret=5020f1b759da1f737a61a29a268d7669

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_secp128r1

- -PeerKey=ALICE_cf_secp128r1_PUB

- -SharedSecret=5020f1b759da1f737a61a29a268d7669

- -

- -Title=secp128r2 curve tests

- -

- -PrivateKey=ALICE_cf_secp128r2

- ------BEGIN PRIVATE KEY-----

- -MC4CAQAwEAYHKoZIzj0CAQYFK4EEAB0EFzAVAgEBBBALPaUYCnPgNiLhez93Z1Gi

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_secp128r2_PUB

- ------BEGIN PUBLIC KEY-----

- -MDYwEAYHKoZIzj0CAQYFK4EEAB0DIgAEOKiPRGtZXwxmvTr35NmUkNsAGGk9RKNA4D5BE9ZrjZQ=

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_secp128r2:ALICE_cf_secp128r2_PUB

- -

- -PrivateKey=BOB_cf_secp128r2

- ------BEGIN PRIVATE KEY-----

- -MC4CAQAwEAYHKoZIzj0CAQYFK4EEAB0EFzAVAgEBBBARg3vb436QgyHdyt6l/b6G

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_secp128r2_PUB

- ------BEGIN PUBLIC KEY-----

- -MDYwEAYHKoZIzj0CAQYFK4EEAB0DIgAELph7h27BYjIINC2EddcpIOxKbdz8Xe7h3Az1ZuR9bAI=

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_secp128r2:BOB_cf_secp128r2_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_secp128r2

- -PeerKey=BOB_cf_secp128r2_PUB

- -SharedSecret=8f4d8c75141e9b084328222440eb5dfa

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_secp128r2

- -PeerKey=ALICE_cf_secp128r2_PUB

- -SharedSecret=8f4d8c75141e9b084328222440eb5dfa

- -

- -# ECC CDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_secp128r2

- -PeerKey=BOB_cf_secp128r2_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=baaa0c16e16eef291001475d638e4830

- -

- -# ECC CDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_secp128r2

- -PeerKey=ALICE_cf_secp128r2_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=baaa0c16e16eef291001475d638e4830

- -

- -PublicKey=MALICE_cf_secp128r2_PUB

- ------BEGIN PUBLIC KEY-----

- -MDYwEAYHKoZIzj0CAQYFK4EEAB0DIgAE6h6RzJIp6HLR6RDOPtyzGDurkuE9aAaZqHosPTnkLxQ=

- ------END PUBLIC KEY-----

- -

- -# ECC CDH Bob with Malice peer

- -Availablein = default

- -Derive=BOB_cf_secp128r2

- -PeerKey=MALICE_cf_secp128r2_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -# ECC CDH Alice with Malice peer

- -Availablein = default

- -Derive=ALICE_cf_secp128r2

- -PeerKey=MALICE_cf_secp128r2_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -Title=secp160k1 curve tests

- -

- -PrivateKey=ALICE_cf_secp160k1

- ------BEGIN PRIVATE KEY-----

- -MDMCAQAwEAYHKoZIzj0CAQYFK4EEAAkEHDAaAgEBBBUAlxTBO50KwFwWKPtk1rutu68m+zI=

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_secp160k1_PUB

- ------BEGIN PUBLIC KEY-----

- -MD4wEAYHKoZIzj0CAQYFK4EEAAkDKgAEcVWIjtPZn1cHckclpn5jKDCphQUVHxFN5tSeFG9wsJZT

- -EvqPyLS64w==

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_secp160k1:ALICE_cf_secp160k1_PUB

- -

- -PrivateKey=BOB_cf_secp160k1

- ------BEGIN PRIVATE KEY-----

- -MDMCAQAwEAYHKoZIzj0CAQYFK4EEAAkEHDAaAgEBBBUAdrPkoNkRVUloiuwzruQszSUuwpY=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_secp160k1_PUB

- ------BEGIN PUBLIC KEY-----

- -MD4wEAYHKoZIzj0CAQYFK4EEAAkDKgAESGN41cAj8Fg4pAJM7FUKHiawbCR0b9unMpZWxqOKeW1/

- -bxT/CqEkyw==

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_secp160k1:BOB_cf_secp160k1_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_secp160k1

- -PeerKey=BOB_cf_secp160k1_PUB

- -SharedSecret=b738a0bf17f3271a9a155bfdfe2f0f1d51494d42

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_secp160k1

- -PeerKey=ALICE_cf_secp160k1_PUB

- -SharedSecret=b738a0bf17f3271a9a155bfdfe2f0f1d51494d42

- -

- -Title=secp160r1 curve tests

- -

- -PrivateKey=ALICE_cf_secp160r1

- ------BEGIN PRIVATE KEY-----

- -MDMCAQAwEAYHKoZIzj0CAQYFK4EEAAgEHDAaAgEBBBUAR6m1+jIBuJnSKx9fHmyAYhsnYe8=

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_secp160r1_PUB

- ------BEGIN PUBLIC KEY-----

- -MD4wEAYHKoZIzj0CAQYFK4EEAAgDKgAEO78GZuBaCfJjHK97c9N21z+4mm37b5x7/Hr3Xc4pUbtb

- -OoNj/A+W9w==

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_secp160r1:ALICE_cf_secp160r1_PUB

- -

- -PrivateKey=BOB_cf_secp160r1

- ------BEGIN PRIVATE KEY-----

- -MDMCAQAwEAYHKoZIzj0CAQYFK4EEAAgEHDAaAgEBBBUATqvd54Jj7TbnrLAd2dMYCpExLws=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_secp160r1_PUB

- ------BEGIN PUBLIC KEY-----

- -MD4wEAYHKoZIzj0CAQYFK4EEAAgDKgAEBKDbBSPTwmb00MFvMtJMxQ2YDmcPOZHE8YbVr5hp8s5J

- -Jwy17FaNNg==

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_secp160r1:BOB_cf_secp160r1_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_secp160r1

- -PeerKey=BOB_cf_secp160r1_PUB

- -SharedSecret=1912ea7b9bb1de5b8d3cef83e7a6e7a917816541

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_secp160r1

- -PeerKey=ALICE_cf_secp160r1_PUB

- -SharedSecret=1912ea7b9bb1de5b8d3cef83e7a6e7a917816541

- -

- -Title=secp160r2 curve tests

- -

- -PrivateKey=ALICE_cf_secp160r2

- ------BEGIN PRIVATE KEY-----

- -MDMCAQAwEAYHKoZIzj0CAQYFK4EEAB4EHDAaAgEBBBUA3IsVg4R4paXaPATDHvzfnvM+vjQ=

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_secp160r2_PUB

- ------BEGIN PUBLIC KEY-----

- -MD4wEAYHKoZIzj0CAQYFK4EEAB4DKgAE4V+25YCpVkKF6NF/UPc1SYxohYWcf3qT3JDoPRhnm/rj

- -mSqCCA6gUw==

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_secp160r2:ALICE_cf_secp160r2_PUB

- -

- -PrivateKey=BOB_cf_secp160r2

- ------BEGIN PRIVATE KEY-----

- -MDMCAQAwEAYHKoZIzj0CAQYFK4EEAB4EHDAaAgEBBBUAYT/5C7UpD17DnZm4ObswmGFMI1Q=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_secp160r2_PUB

- ------BEGIN PUBLIC KEY-----

- -MD4wEAYHKoZIzj0CAQYFK4EEAB4DKgAEB7YVzBmzhnIdouvN/nb8VMXCqO8dkhmebyVzoD0oAzuH

- -nN+SfWr6aQ==

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_secp160r2:BOB_cf_secp160r2_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_secp160r2

- -PeerKey=BOB_cf_secp160r2_PUB

- -SharedSecret=ccb9cae5c9487ff60c487bd1b39a62eb4680e9b6

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_secp160r2

- -PeerKey=ALICE_cf_secp160r2_PUB

- -SharedSecret=ccb9cae5c9487ff60c487bd1b39a62eb4680e9b6

- -

- -Title=secp192k1 curve tests

- -

- -PrivateKey=ALICE_cf_secp192k1

- ------BEGIN PRIVATE KEY-----

- -MDYCAQAwEAYHKoZIzj0CAQYFK4EEAB8EHzAdAgEBBBikVZrCZQB7ZtkhNfQYpjKHZ9KxXgooJ90=

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_secp192k1_PUB

- ------BEGIN PUBLIC KEY-----

- -MEYwEAYHKoZIzj0CAQYFK4EEAB8DMgAEyV4EzMZglBXtYdn38hNTrCGflAsJprMkxkOlw58chZ25

- -6EAu7gVvYDTpnRkymKyH

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_secp192k1:ALICE_cf_secp192k1_PUB

- -

- -PrivateKey=BOB_cf_secp192k1

- ------BEGIN PRIVATE KEY-----

- -MDYCAQAwEAYHKoZIzj0CAQYFK4EEAB8EHzAdAgEBBBiJQ/PunKGk9QPUyqIBGMgHKKg+yxJr5io=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_secp192k1_PUB

- ------BEGIN PUBLIC KEY-----

- -MEYwEAYHKoZIzj0CAQYFK4EEAB8DMgAE990Tnmh9QQQHVHuLpfrAsgjvB9R2MJXzhBZN1WvtxLqF

- -OZ2oFMP0Kfcr7HbI7a5j

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_secp192k1:BOB_cf_secp192k1_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_secp192k1

- -PeerKey=BOB_cf_secp192k1_PUB

- -SharedSecret=a46a6bfb279d4dc30cffac585d1fbec905dbe46aca5e3c9d

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_secp192k1

- -PeerKey=ALICE_cf_secp192k1_PUB

- -SharedSecret=a46a6bfb279d4dc30cffac585d1fbec905dbe46aca5e3c9d

- -

- -Title=secp224k1 curve tests

- -

- -PrivateKey=ALICE_cf_secp224k1

- ------BEGIN PRIVATE KEY-----

- -MDsCAQAwEAYHKoZIzj0CAQYFK4EEACAEJDAiAgEBBB0AZPk3TzxGhX7TljBBhJDLBfulAMp6Bh3W

- -w40Qyg==

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_secp224k1_PUB

- ------BEGIN PUBLIC KEY-----

- -ME4wEAYHKoZIzj0CAQYFK4EEACADOgAE4o7LGdJDixqJZ5imnqaX4IeE55NG4W0HEe72LVC7pmn2

- -e3m7uC92ZQhduF9lJli4dXD5en/1wkE=

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_secp224k1:ALICE_cf_secp224k1_PUB

- -

- -PrivateKey=BOB_cf_secp224k1

- ------BEGIN PRIVATE KEY-----

- -MDsCAQAwEAYHKoZIzj0CAQYFK4EEACAEJDAiAgEBBB0AdQ02GguRy3yHOjLkpoWb27QA/L1abfWe

- -q2xUfA==

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_secp224k1_PUB

- ------BEGIN PUBLIC KEY-----

- -ME4wEAYHKoZIzj0CAQYFK4EEACADOgAEzp00m0DaADn1mGiDCT7K1LZnoj/vCxHPowUDC9yQd17K

- -KpJM5sGILrTkkgxqtt5pBeYE1NC1QUQ=

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_secp224k1:BOB_cf_secp224k1_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_secp224k1

- -PeerKey=BOB_cf_secp224k1_PUB

- -SharedSecret=6f7b9d16c9c1d3a5c84b6028f2a4fed9ae8e02455e678a27243bcc48

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_secp224k1

- -PeerKey=ALICE_cf_secp224k1_PUB

- -SharedSecret=6f7b9d16c9c1d3a5c84b6028f2a4fed9ae8e02455e678a27243bcc48

- -

-  Title=secp256k1 curve tests

-  

-  PrivateKey=ALICE_cf_secp256k1

- @@ -1998,1323 +55,6 @@ Derive=BOB_cf_secp256k1

-  PeerKey=ALICE_cf_secp256k1_PUB

-  SharedSecret=a4745cc4d19cabb9e5cb0abdd5c604cab2846a4638ad844ed9175f3cadda2da1

-  

- -Title=sect113r1 curve tests

- -

- -PrivateKey=ALICE_cf_sect113r1

- ------BEGIN PRIVATE KEY-----

- -MC0CAQAwEAYHKoZIzj0CAQYFK4EEAAQEFjAUAgEBBA8ALw9CgsuNBkkhhUHE8bQ=

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_sect113r1_PUB

- ------BEGIN PUBLIC KEY-----

- -MDQwEAYHKoZIzj0CAQYFK4EEAAQDIAAEASO9jcamlg1pRE7JffrTAe9kyRZO2xrymHXoGdnA

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_sect113r1:ALICE_cf_sect113r1_PUB

- -

- -PrivateKey=BOB_cf_sect113r1

- ------BEGIN PRIVATE KEY-----

- -MC0CAQAwEAYHKoZIzj0CAQYFK4EEAAQEFjAUAgEBBA8A/9qbs8sTFNkjS9/4CuM=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_sect113r1_PUB

- ------BEGIN PUBLIC KEY-----

- -MDQwEAYHKoZIzj0CAQYFK4EEAAQDIAAEATykaf/cvJzLOUto1EbbAEz/3++nut6q0dcJOQeV

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_sect113r1:BOB_cf_sect113r1_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_sect113r1

- -PeerKey=BOB_cf_sect113r1_PUB

- -SharedSecret=01ed16f1948dcb368a54004237842d

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_sect113r1

- -PeerKey=ALICE_cf_sect113r1_PUB

- -SharedSecret=01ed16f1948dcb368a54004237842d

- -

- -# ECC CDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_sect113r1

- -PeerKey=BOB_cf_sect113r1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=012e5f3e348c2a8a88d9590a639219

- -

- -# ECC CDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_sect113r1

- -PeerKey=ALICE_cf_sect113r1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=012e5f3e348c2a8a88d9590a639219

- -

- -PublicKey=MALICE_cf_sect113r1_PUB

- ------BEGIN PUBLIC KEY-----

- -MDQwEAYHKoZIzj0CAQYFK4EEAAQDIAAEAAAAAAAAAAAAAAAAAAAAAd+TqiBXnTd/lyA/OFsR

- ------END PUBLIC KEY-----

- -

- -# ECC CDH Bob with Malice peer

- -Availablein = default

- -Derive=BOB_cf_sect113r1

- -PeerKey=MALICE_cf_sect113r1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -# ECC CDH Alice with Malice peer

- -Availablein = default

- -Derive=ALICE_cf_sect113r1

- -PeerKey=MALICE_cf_sect113r1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -Title=sect113r2 curve tests

- -

- -PrivateKey=ALICE_cf_sect113r2

- ------BEGIN PRIVATE KEY-----

- -MC0CAQAwEAYHKoZIzj0CAQYFK4EEAAUEFjAUAgEBBA8AvovirHrqTxoKJ3l+7y0=

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_sect113r2_PUB

- ------BEGIN PUBLIC KEY-----

- -MDQwEAYHKoZIzj0CAQYFK4EEAAUDIAAEAFvQ4JgQTS8kjGeVfuITAS81qNcOQvt3PYa1HuCk

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_sect113r2:ALICE_cf_sect113r2_PUB

- -

- -PrivateKey=BOB_cf_sect113r2

- ------BEGIN PRIVATE KEY-----

- -MC0CAQAwEAYHKoZIzj0CAQYFK4EEAAUEFjAUAgEBBA8ArUjgvp/goxRYb4WuQ80=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_sect113r2_PUB

- ------BEGIN PUBLIC KEY-----

- -MDQwEAYHKoZIzj0CAQYFK4EEAAUDIAAEAUoS3of8y28meYu/NoI5AVdhJZCuDjMqFHTriWY4

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_sect113r2:BOB_cf_sect113r2_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_sect113r2

- -PeerKey=BOB_cf_sect113r2_PUB

- -SharedSecret=0057a287ba1ea05cb4735e673647e1

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_sect113r2

- -PeerKey=ALICE_cf_sect113r2_PUB

- -SharedSecret=0057a287ba1ea05cb4735e673647e1

- -

- -# ECC CDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_sect113r2

- -PeerKey=BOB_cf_sect113r2_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=00fec2454e46732aca42b22b6d4f13

- -

- -# ECC CDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_sect113r2

- -PeerKey=ALICE_cf_sect113r2_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=00fec2454e46732aca42b22b6d4f13

- -

- -PublicKey=MALICE_cf_sect113r2_PUB

- ------BEGIN PUBLIC KEY-----

- -MDQwEAYHKoZIzj0CAQYFK4EEAAUDIAAEAAAAAAAAAAAAAAAAAAAAAR3dbPHrhFekzJ7Azskr

- ------END PUBLIC KEY-----

- -

- -# ECC CDH Bob with Malice peer

- -Availablein = default

- -Derive=BOB_cf_sect113r2

- -PeerKey=MALICE_cf_sect113r2_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -# ECC CDH Alice with Malice peer

- -Availablein = default

- -Derive=ALICE_cf_sect113r2

- -PeerKey=MALICE_cf_sect113r2_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -Title=sect131r1 curve tests

- -

- -PrivateKey=ALICE_cf_sect131r1

- ------BEGIN PRIVATE KEY-----

- -MC8CAQAwEAYHKoZIzj0CAQYFK4EEABYEGDAWAgEBBBEA5C6zHMQM7pXPZ6cJz72Niw==

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_sect131r1_PUB

- ------BEGIN PUBLIC KEY-----

- -MDgwEAYHKoZIzj0CAQYFK4EEABYDJAAEBXCuXD6wOOif91GUlJNKXf8FBNw8crgqi5aEJEZbCdBJ

- -Ag==

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_sect131r1:ALICE_cf_sect131r1_PUB

- -

- -PrivateKey=BOB_cf_sect131r1

- ------BEGIN PRIVATE KEY-----

- -MC8CAQAwEAYHKoZIzj0CAQYFK4EEABYEGDAWAgEBBBEDYZmjiokBJ/SnTv8sskBR3A==

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_sect131r1_PUB

- ------BEGIN PUBLIC KEY-----

- -MDgwEAYHKoZIzj0CAQYFK4EEABYDJAAEB8vGy3OQXwWKcJUSSJbCtpMBjFgJeZxzAaI420+B1B+1

- -5A==

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_sect131r1:BOB_cf_sect131r1_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_sect131r1

- -PeerKey=BOB_cf_sect131r1_PUB

- -SharedSecret=05346248f77f81fff50cc656e119976871

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_sect131r1

- -PeerKey=ALICE_cf_sect131r1_PUB

- -SharedSecret=05346248f77f81fff50cc656e119976871

- -

- -# ECC CDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_sect131r1

- -PeerKey=BOB_cf_sect131r1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=01f151ae26efa507acc2597356baf7e8ab

- -

- -# ECC CDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_sect131r1

- -PeerKey=ALICE_cf_sect131r1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=01f151ae26efa507acc2597356baf7e8ab

- -

- -PublicKey=MALICE_cf_sect131r1_PUB

- ------BEGIN PUBLIC KEY-----

- -MDgwEAYHKoZIzj0CAQYFK4EEABYDJAAEAAAAAAAAAAAAAAAAAAAAAAABfiJEFG0vRzEGxk2BxjmK

- -zw==

- ------END PUBLIC KEY-----

- -

- -# ECC CDH Bob with Malice peer

- -Availablein = default

- -Derive=BOB_cf_sect131r1

- -PeerKey=MALICE_cf_sect131r1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -# ECC CDH Alice with Malice peer

- -Availablein = default

- -Derive=ALICE_cf_sect131r1

- -PeerKey=MALICE_cf_sect131r1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -Title=sect131r2 curve tests

- -

- -PrivateKey=ALICE_cf_sect131r2

- ------BEGIN PRIVATE KEY-----

- -MC8CAQAwEAYHKoZIzj0CAQYFK4EEABcEGDAWAgEBBBEBnZRUKAQetk5kyUwhIaAyxg==

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_sect131r2_PUB

- ------BEGIN PUBLIC KEY-----

- -MDgwEAYHKoZIzj0CAQYFK4EEABcDJAAEA5+Y20L8q989I4jnKknZ7hcGlQ6RUIGni9RahT88kB/d

- -dw==

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_sect131r2:ALICE_cf_sect131r2_PUB

- -

- -PrivateKey=BOB_cf_sect131r2

- ------BEGIN PRIVATE KEY-----

- -MC8CAQAwEAYHKoZIzj0CAQYFK4EEABcEGDAWAgEBBBEBnafx9vcMeoCqj/1YNuflzw==

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_sect131r2_PUB

- ------BEGIN PUBLIC KEY-----

- -MDgwEAYHKoZIzj0CAQYFK4EEABcDJAAEB2G2uNkhQNjjl0/Ov6UYpxoFaWNXO+qy7poV6cdrFN7z

- -pA==

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_sect131r2:BOB_cf_sect131r2_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_sect131r2

- -PeerKey=BOB_cf_sect131r2_PUB

- -SharedSecret=058d8a8be33068ed8c1dc9f551ef2c3f3c

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_sect131r2

- -PeerKey=ALICE_cf_sect131r2_PUB

- -SharedSecret=058d8a8be33068ed8c1dc9f551ef2c3f3c

- -

- -# ECC CDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_sect131r2

- -PeerKey=BOB_cf_sect131r2_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=037b16d85f27c2c878ef96c79a536f89a5

- -

- -# ECC CDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_sect131r2

- -PeerKey=ALICE_cf_sect131r2_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=037b16d85f27c2c878ef96c79a536f89a5

- -

- -PublicKey=MALICE_cf_sect131r2_PUB

- ------BEGIN PUBLIC KEY-----

- -MDgwEAYHKoZIzj0CAQYFK4EEABcDJAAEAAAAAAAAAAAAAAAAAAAAAAAGG5fiIbgziwBZHVzTYqCY

- -1w==

- ------END PUBLIC KEY-----

- -

- -# ECC CDH Bob with Malice peer

- -Availablein = default

- -Derive=BOB_cf_sect131r2

- -PeerKey=MALICE_cf_sect131r2_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -# ECC CDH Alice with Malice peer

- -Availablein = default

- -Derive=ALICE_cf_sect131r2

- -PeerKey=MALICE_cf_sect131r2_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -Title=sect163r1 curve tests

- -

- -PrivateKey=ALICE_cf_sect163r1

- ------BEGIN PRIVATE KEY-----

- -MDMCAQAwEAYHKoZIzj0CAQYFK4EEAAIEHDAaAgEBBBUAlbn4x1UGJnAimsXufB/UvUaxU5U=

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_sect163r1_PUB

- ------BEGIN PUBLIC KEY-----

- -MEAwEAYHKoZIzj0CAQYFK4EEAAIDLAAEA0f195HCcD4D+7wWyl3QuPkRovG/ATy5l7fpMl4BNIg/

- -sbtEXluCzANF

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_sect163r1:ALICE_cf_sect163r1_PUB

- -

- -PrivateKey=BOB_cf_sect163r1

- ------BEGIN PRIVATE KEY-----

- -MDMCAQAwEAYHKoZIzj0CAQYFK4EEAAIEHDAaAgEBBBUAoStq6Fjb7nB2PNL6WrzKKqhCGdE=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_sect163r1_PUB

- ------BEGIN PUBLIC KEY-----

- -MEAwEAYHKoZIzj0CAQYFK4EEAAIDLAAEAul/oBKr9B5MsPHWGF+q07j0JC+WAxj1JzfcIXR98n+r

- -9FHWU5LC5pDM

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_sect163r1:BOB_cf_sect163r1_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_sect163r1

- -PeerKey=BOB_cf_sect163r1_PUB

- -SharedSecret=06135eef489fe613c0d8bd522a2a640ff7ae6fb73d

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_sect163r1

- -PeerKey=ALICE_cf_sect163r1_PUB

- -SharedSecret=06135eef489fe613c0d8bd522a2a640ff7ae6fb73d

- -

- -# ECC CDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_sect163r1

- -PeerKey=BOB_cf_sect163r1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=0580f5e8efb242a19ae1023acbcab8702c799751e7

- -

- -# ECC CDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_sect163r1

- -PeerKey=ALICE_cf_sect163r1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=0580f5e8efb242a19ae1023acbcab8702c799751e7

- -

- -PublicKey=MALICE_cf_sect163r1_PUB

- ------BEGIN PUBLIC KEY-----

- -MEAwEAYHKoZIzj0CAQYFK4EEAAIDLAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJkXolVuGFa8fqmk

- -cs0Bv7iJuVg1

- ------END PUBLIC KEY-----

- -

- -# ECC CDH Bob with Malice peer

- -Availablein = default

- -Derive=BOB_cf_sect163r1

- -PeerKey=MALICE_cf_sect163r1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -# ECC CDH Alice with Malice peer

- -Availablein = default

- -Derive=ALICE_cf_sect163r1

- -PeerKey=MALICE_cf_sect163r1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -Title=sect193r1 curve tests

- -

- -PrivateKey=ALICE_cf_sect193r1

- ------BEGIN PRIVATE KEY-----

- -MDcCAQAwEAYHKoZIzj0CAQYFK4EEABgEIDAeAgEBBBkACmcvidKWLtPFB2xqg76F8VhM1Njzrkgo

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_sect193r1_PUB

- ------BEGIN PUBLIC KEY-----

- -MEgwEAYHKoZIzj0CAQYFK4EEABgDNAAEAeqP0VQobenduwtf4MPmlYQVDjUmxKq50QFHnaBfzwXY

- -1TYShZZgBr0R6a5dUGCbiF0=

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_sect193r1:ALICE_cf_sect193r1_PUB

- -

- -PrivateKey=BOB_cf_sect193r1

- ------BEGIN PRIVATE KEY-----

- -MDcCAQAwEAYHKoZIzj0CAQYFK4EEABgEIDAeAgEBBBkAKlSknQ66vpuLjC1mbQyfHOTdJ5Kw5jMh

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_sect193r1_PUB

- ------BEGIN PUBLIC KEY-----

- -MEgwEAYHKoZIzj0CAQYFK4EEABgDNAAEAaFZVIeqfV9wbPydaBSJKSWJjVyFVSB/QQB5rHonYQmK

- -f40zok8PJS6ratIcZwk/n20=

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_sect193r1:BOB_cf_sect193r1_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_sect193r1

- -PeerKey=BOB_cf_sect193r1_PUB

- -SharedSecret=012b8849991814f8c7ed9d40cf9dc204c3a83e0b10675543a5

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_sect193r1

- -PeerKey=ALICE_cf_sect193r1_PUB

- -SharedSecret=012b8849991814f8c7ed9d40cf9dc204c3a83e0b10675543a5

- -

- -# ECC CDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_sect193r1

- -PeerKey=BOB_cf_sect193r1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=0110180a18844859c52f6f012909522a2d87b5ab143bc80a55

- -

- -# ECC CDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_sect193r1

- -PeerKey=ALICE_cf_sect193r1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=0110180a18844859c52f6f012909522a2d87b5ab143bc80a55

- -

- -PublicKey=MALICE_cf_sect193r1_PUB

- ------BEGIN PUBLIC KEY-----

- -MEgwEAYHKoZIzj0CAQYFK4EEABgDNAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHeX7PX3e5n

- -zROUg6/STkLp1D+L51L9+wY=

- ------END PUBLIC KEY-----

- -

- -# ECC CDH Bob with Malice peer

- -Availablein = default

- -Derive=BOB_cf_sect193r1

- -PeerKey=MALICE_cf_sect193r1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -# ECC CDH Alice with Malice peer

- -Availablein = default

- -Derive=ALICE_cf_sect193r1

- -PeerKey=MALICE_cf_sect193r1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -Title=sect193r2 curve tests

- -

- -PrivateKey=ALICE_cf_sect193r2

- ------BEGIN PRIVATE KEY-----

- -MDcCAQAwEAYHKoZIzj0CAQYFK4EEABkEIDAeAgEBBBkAhjkv8lXK/nPp3Qc4IwL/29JUKWi2VBMp

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_sect193r2_PUB

- ------BEGIN PUBLIC KEY-----

- -MEgwEAYHKoZIzj0CAQYFK4EEABkDNAAEAIn7oSu3adu4ChNXniHKkMIv9gT24rpzzwAeCTDPIkUT

- -kJ+Tit6e4RpgkB/dph4V+uI=

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_sect193r2:ALICE_cf_sect193r2_PUB

- -

- -PrivateKey=BOB_cf_sect193r2

- ------BEGIN PRIVATE KEY-----

- -MDcCAQAwEAYHKoZIzj0CAQYFK4EEABkEIDAeAgEBBBkAwGkR3qSQdfh7Q6KbJ4lH5FShGsX8o/jD

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_sect193r2_PUB

- ------BEGIN PUBLIC KEY-----

- -MEgwEAYHKoZIzj0CAQYFK4EEABkDNAAEAFdSLKI0tlwZDpkndutOLsnHii1aJO8snwEJ0m/AZgMp

- -xiDevOQ/xE9SpMX25W7YqkU=

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_sect193r2:BOB_cf_sect193r2_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_sect193r2

- -PeerKey=BOB_cf_sect193r2_PUB

- -SharedSecret=01e2f66a63c24c1de8a399c484228a5ad5b6d911c6e5e83ae3

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_sect193r2

- -PeerKey=ALICE_cf_sect193r2_PUB

- -SharedSecret=01e2f66a63c24c1de8a399c484228a5ad5b6d911c6e5e83ae3

- -

- -# ECC CDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_sect193r2

- -PeerKey=BOB_cf_sect193r2_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=00bc82d393bd74406683aea003977a86a109f444a833652e43

- -

- -# ECC CDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_sect193r2

- -PeerKey=ALICE_cf_sect193r2_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=00bc82d393bd74406683aea003977a86a109f444a833652e43

- -

- -PublicKey=MALICE_cf_sect193r2_PUB

- ------BEGIN PUBLIC KEY-----

- -MEgwEAYHKoZIzj0CAQYFK4EEABkDNAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFfdLEkrvsO

- -Y7+6QpEvOay9A4MJCUZfZmI=

- ------END PUBLIC KEY-----

- -

- -# ECC CDH Bob with Malice peer

- -Availablein = default

- -Derive=BOB_cf_sect193r2

- -PeerKey=MALICE_cf_sect193r2_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -# ECC CDH Alice with Malice peer

- -Availablein = default

- -Derive=ALICE_cf_sect193r2

- -PeerKey=MALICE_cf_sect193r2_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -Title=sect239k1 curve tests

- -

- -PrivateKey=ALICE_cf_sect239k1

- ------BEGIN PRIVATE KEY-----

- -MDwCAQAwEAYHKoZIzj0CAQYFK4EEAAMEJTAjAgEBBB4G4nbQDUtTnkrPOvDGIlhH9XdjirUSbTI5

- -5z6lf7o=

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_sect239k1_PUB

- ------BEGIN PUBLIC KEY-----

- -MFIwEAYHKoZIzj0CAQYFK4EEAAMDPgAEf5paOMjzcnpVAPMQnIkikE4K2jne3ubX2TD1P3aedknF

- -lUr6tOU4BsiUQJACF90rQ9/KdeR5mYvYHzvI

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_sect239k1:ALICE_cf_sect239k1_PUB

- -

- -PrivateKey=BOB_cf_sect239k1

- ------BEGIN PRIVATE KEY-----

- -MDwCAQAwEAYHKoZIzj0CAQYFK4EEAAMEJTAjAgEBBB4e0F0NpepAF+iNrEtoZeo4TrQFspkUNLcx

- -Ly4Klfg=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_sect239k1_PUB

- ------BEGIN PUBLIC KEY-----

- -MFIwEAYHKoZIzj0CAQYFK4EEAAMDPgAEKnjJ4RHe+EiElXMrF4ou7VGy1pn0ZiO17FouF31Zbvjc

- -TcbhfE6ziXM8sekQJBwcwRKQ9+G/Qzq/2A9x

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_sect239k1:BOB_cf_sect239k1_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_sect239k1

- -PeerKey=BOB_cf_sect239k1_PUB

- -SharedSecret=0ef54c7b7dbf55d4278e7a6924dc4833c63ec708e820d501cacdfb4935d5

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_sect239k1

- -PeerKey=ALICE_cf_sect239k1_PUB

- -SharedSecret=0ef54c7b7dbf55d4278e7a6924dc4833c63ec708e820d501cacdfb4935d5

- -

- -# ECC CDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_sect239k1

- -PeerKey=BOB_cf_sect239k1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=592e4b33ac99624fe7f2f879cf52f12a70f189c5d90785db26a12e0a46c0

- -

- -# ECC CDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_sect239k1

- -PeerKey=ALICE_cf_sect239k1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=592e4b33ac99624fe7f2f879cf52f12a70f189c5d90785db26a12e0a46c0

- -

- -PublicKey=MALICE_cf_sect239k1_PUB

- ------BEGIN PUBLIC KEY-----

- -MFIwEAYHKoZIzj0CAQYFK4EEAAMDPgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAA

- -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB

- ------END PUBLIC KEY-----

- -

- -# ECC CDH Bob with Malice peer

- -Availablein = default

- -Derive=BOB_cf_sect239k1

- -PeerKey=MALICE_cf_sect239k1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -# ECC CDH Alice with Malice peer

- -Availablein = default

- -Derive=ALICE_cf_sect239k1

- -PeerKey=MALICE_cf_sect239k1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -Title=wap-wsg-idm-ecid-wtls10 curve tests

- -

- -PrivateKey=ALICE_cf_wap-wsg-idm-ecid-wtls10

- ------BEGIN PRIVATE KEY-----

- -MDsCAQAwEAYHKoZIzj0CAQYFZysBBAoEJDAiAgEBBB1zvDMHGgcytka5KvlvQvJzTA4l2ts2NzBp

- -SJiGyw==

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_wap-wsg-idm-ecid-wtls10_PUB

- ------BEGIN PUBLIC KEY-----

- -MFIwEAYHKoZIzj0CAQYFZysBBAoDPgAEAZkrhWBz/Q4GB8DY4Ia114ew6H7Eg7ri2uxwxd3rAZs5

- -/ShvunNyndjCt3Qaq8sulBM0nUyERSDakyD+

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_wap-wsg-idm-ecid-wtls10:ALICE_cf_wap-wsg-idm-ecid-wtls10_PUB

- -

- -PrivateKey=BOB_cf_wap-wsg-idm-ecid-wtls10

- ------BEGIN PRIVATE KEY-----

- -MDsCAQAwEAYHKoZIzj0CAQYFZysBBAoEJDAiAgEBBB1SowkHU79PqokOfgllN53rNS8a3h1wFBY0

- -dKPkQg==

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_wap-wsg-idm-ecid-wtls10_PUB

- ------BEGIN PUBLIC KEY-----

- -MFIwEAYHKoZIzj0CAQYFZysBBAoDPgAEAGavw4ChHCoWplAumMEBwJgJ2aYtw+utu4vhWnscAPIT

- -IJ4IiIGj18rCFBap1sgVbpXjhEBLYg6Itwv2

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_wap-wsg-idm-ecid-wtls10:BOB_cf_wap-wsg-idm-ecid-wtls10_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_wap-wsg-idm-ecid-wtls10

- -PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls10_PUB

- -SharedSecret=0194ef5d80fdfe9df366b2273b983c3dbd440faf76964fcfc06c509f289d

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_wap-wsg-idm-ecid-wtls10

- -PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls10_PUB

- -SharedSecret=0194ef5d80fdfe9df366b2273b983c3dbd440faf76964fcfc06c509f289d

- -

- -# ECC CDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_wap-wsg-idm-ecid-wtls10

- -PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls10_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=01bedc5cdf63fbf18c3e2bc9765e12f7990c0c0c64f0267ae7c37b9f49f0

- -

- -# ECC CDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_wap-wsg-idm-ecid-wtls10

- -PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls10_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=01bedc5cdf63fbf18c3e2bc9765e12f7990c0c0c64f0267ae7c37b9f49f0

- -

- -PublicKey=MALICE_cf_wap-wsg-idm-ecid-wtls10_PUB

- ------BEGIN PUBLIC KEY-----

- -MFIwEAYHKoZIzj0CAQYFZysBBAoDPgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAA

- -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB

- ------END PUBLIC KEY-----

- -

- -# ECC CDH Bob with Malice peer

- -Availablein = default

- -Derive=BOB_cf_wap-wsg-idm-ecid-wtls10

- -PeerKey=MALICE_cf_wap-wsg-idm-ecid-wtls10_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -# ECC CDH Alice with Malice peer

- -Availablein = default

- -Derive=ALICE_cf_wap-wsg-idm-ecid-wtls10

- -PeerKey=MALICE_cf_wap-wsg-idm-ecid-wtls10_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -Title=wap-wsg-idm-ecid-wtls11 curve tests

- -

- -PrivateKey=ALICE_cf_wap-wsg-idm-ecid-wtls11

- ------BEGIN PRIVATE KEY-----

- -MDwCAQAwEAYHKoZIzj0CAQYFZysBBAsEJTAjAgEBBB4AkzS3zoqHNCLug/nwoYMQW3UigmZ9t56k

- -5jp+FiY=

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_wap-wsg-idm-ecid-wtls11_PUB

- ------BEGIN PUBLIC KEY-----

- -MFIwEAYHKoZIzj0CAQYFZysBBAsDPgAEABttgKKYeGZRmcH/5UZR56lOSgbU4TH2AuIhvj88AL6H

- -zTCX9elzXpck+u22bnmkuvL2A8XKB5+fabMR

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_wap-wsg-idm-ecid-wtls11:ALICE_cf_wap-wsg-idm-ecid-wtls11_PUB

- -

- -PrivateKey=BOB_cf_wap-wsg-idm-ecid-wtls11

- ------BEGIN PRIVATE KEY-----

- -MDwCAQAwEAYHKoZIzj0CAQYFZysBBAsEJTAjAgEBBB4AWU05mbqPxsB749llNON1//l0w8RJJ3z5

- -h/kzfNM=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_wap-wsg-idm-ecid-wtls11_PUB

- ------BEGIN PUBLIC KEY-----

- -MFIwEAYHKoZIzj0CAQYFZysBBAsDPgAEAL6Xj/KCmXAQAAo847t0bl0wqBrteWRg93OvIJsPAAOE

- -ehdIgJyruc3KsH0RFlipu5QD8pnGSIXvif19

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_wap-wsg-idm-ecid-wtls11:BOB_cf_wap-wsg-idm-ecid-wtls11_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_wap-wsg-idm-ecid-wtls11

- -PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls11_PUB

- -SharedSecret=01ac8a23ddeeafb4d3bb243fe409f2f9c8b1a3fc11d4690da583f2e21637

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_wap-wsg-idm-ecid-wtls11

- -PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls11_PUB

- -SharedSecret=01ac8a23ddeeafb4d3bb243fe409f2f9c8b1a3fc11d4690da583f2e21637

- -

- -# ECC CDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_wap-wsg-idm-ecid-wtls11

- -PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls11_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=01b9992992572d3a59d424f8c9cc195576461ed6c1dadf6fb523717fab19

- -

- -# ECC CDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_wap-wsg-idm-ecid-wtls11

- -PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls11_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=01b9992992572d3a59d424f8c9cc195576461ed6c1dadf6fb523717fab19

- -

- -PublicKey=MALICE_cf_wap-wsg-idm-ecid-wtls11_PUB

- ------BEGIN PUBLIC KEY-----

- -MFIwEAYHKoZIzj0CAQYFZysBBAsDPgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYf4

- -Vie5eHTnR+4x4G1xyq7qUvISU+X5RtBh2pE4

- ------END PUBLIC KEY-----

- -

- -# ECC CDH Bob with Malice peer

- -Availablein = default

- -Derive=BOB_cf_wap-wsg-idm-ecid-wtls11

- -PeerKey=MALICE_cf_wap-wsg-idm-ecid-wtls11_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -# ECC CDH Alice with Malice peer

- -Availablein = default

- -Derive=ALICE_cf_wap-wsg-idm-ecid-wtls11

- -PeerKey=MALICE_cf_wap-wsg-idm-ecid-wtls11_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -Title=wap-wsg-idm-ecid-wtls12 curve tests

- -

- -PrivateKey=ALICE_cf_wap-wsg-idm-ecid-wtls12

- ------BEGIN PRIVATE KEY-----

- -MDoCAQAwEAYHKoZIzj0CAQYFZysBBAwEIzAhAgEBBBxwvll9Eb9mm2Xadq1evIi1zIK+6u0Nv8bP

- -LI9a

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_wap-wsg-idm-ecid-wtls12_PUB

- ------BEGIN PUBLIC KEY-----

- -ME4wEAYHKoZIzj0CAQYFZysBBAwDOgAE0t0WqG/pFsiCt6agmebw3FCEWAzf9BpNLuzoCkPEe0Li

- -bqn5udrckL6s3stwCTVFaZUfY2qS9QE=

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_wap-wsg-idm-ecid-wtls12:ALICE_cf_wap-wsg-idm-ecid-wtls12_PUB

- -

- -PrivateKey=BOB_cf_wap-wsg-idm-ecid-wtls12

- ------BEGIN PRIVATE KEY-----

- -MDoCAQAwEAYHKoZIzj0CAQYFZysBBAwEIzAhAgEBBBz+5P6gpqXxbeXvvaD5W9Ft69BTxcn7zc6q

- -K3Ax

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_wap-wsg-idm-ecid-wtls12_PUB

- ------BEGIN PUBLIC KEY-----

- -ME4wEAYHKoZIzj0CAQYFZysBBAwDOgAEvyxedqaWkoAOMjaV5W3/tJpheiHAR0zV6BlIeUuGP2mx

- -+xsOK9/QB7hzipq9cXx1K/dXu58EoSY=

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_wap-wsg-idm-ecid-wtls12:BOB_cf_wap-wsg-idm-ecid-wtls12_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_wap-wsg-idm-ecid-wtls12

- -PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls12_PUB

- -SharedSecret=a3b3f20af8c33a0f5c246b4b9d9dda1cd40c294d1f53365d18a8b54b

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_wap-wsg-idm-ecid-wtls12

- -PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls12_PUB

- -SharedSecret=a3b3f20af8c33a0f5c246b4b9d9dda1cd40c294d1f53365d18a8b54b

- -

- -Title=wap-wsg-idm-ecid-wtls1 curve tests

- -

- -PrivateKey=ALICE_cf_wap-wsg-idm-ecid-wtls1

- ------BEGIN PRIVATE KEY-----

- -MCwCAQAwEAYHKoZIzj0CAQYFZysBBAEEFTATAgEBBA5ZNASTt4/g6XPQwRiQ0Q==

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_wap-wsg-idm-ecid-wtls1_PUB

- ------BEGIN PUBLIC KEY-----

- -MDQwEAYHKoZIzj0CAQYFZysBBAEDIAAEACBNPI48xxsPVQBy07jRAAcWzbIkMo8BQotxpfGJ

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_wap-wsg-idm-ecid-wtls1:ALICE_cf_wap-wsg-idm-ecid-wtls1_PUB

- -

- -PrivateKey=BOB_cf_wap-wsg-idm-ecid-wtls1

- ------BEGIN PRIVATE KEY-----

- -MCwCAQAwEAYHKoZIzj0CAQYFZysBBAEEFTATAgEBBA6+0x9qk0NIKHSRvlTemQ==

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_wap-wsg-idm-ecid-wtls1_PUB

- ------BEGIN PUBLIC KEY-----

- -MDQwEAYHKoZIzj0CAQYFZysBBAEDIAAEAEeHMSBTx/EtOu+bjBinALHSkQuJyiP3mg1tu+I2

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_wap-wsg-idm-ecid-wtls1:BOB_cf_wap-wsg-idm-ecid-wtls1_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_wap-wsg-idm-ecid-wtls1

- -PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls1_PUB

- -SharedSecret=0040ba2fadc1da97c973e5e59ade31

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_wap-wsg-idm-ecid-wtls1

- -PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls1_PUB

- -SharedSecret=0040ba2fadc1da97c973e5e59ade31

- -

- -# ECC CDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_wap-wsg-idm-ecid-wtls1

- -PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=008919696215a89e03d6c4c9265d6b

- -

- -# ECC CDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_wap-wsg-idm-ecid-wtls1

- -PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=008919696215a89e03d6c4c9265d6b

- -

- -PublicKey=MALICE_cf_wap-wsg-idm-ecid-wtls1_PUB

- ------BEGIN PUBLIC KEY-----

- -MDQwEAYHKoZIzj0CAQYFZysBBAEDIAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB

- ------END PUBLIC KEY-----

- -

- -# ECC CDH Bob with Malice peer

- -Availablein = default

- -Derive=BOB_cf_wap-wsg-idm-ecid-wtls1

- -PeerKey=MALICE_cf_wap-wsg-idm-ecid-wtls1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -# ECC CDH Alice with Malice peer

- -Availablein = default

- -Derive=ALICE_cf_wap-wsg-idm-ecid-wtls1

- -PeerKey=MALICE_cf_wap-wsg-idm-ecid-wtls1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -Title=wap-wsg-idm-ecid-wtls3 curve tests

- -

- -PrivateKey=ALICE_cf_wap-wsg-idm-ecid-wtls3

- ------BEGIN PRIVATE KEY-----

- -MDMCAQAwEAYHKoZIzj0CAQYFZysBBAMEHDAaAgEBBBUDO2cHbqQBUxuJBl6UT9UrasuRVrI=

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_wap-wsg-idm-ecid-wtls3_PUB

- ------BEGIN PUBLIC KEY-----

- -MEAwEAYHKoZIzj0CAQYFZysBBAMDLAAEBRIzvK9o7eO2NGmtPFV/zo9/1mlvBwjG7+e6hbPG1KdI

- -01f8oGBuXMQH

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_wap-wsg-idm-ecid-wtls3:ALICE_cf_wap-wsg-idm-ecid-wtls3_PUB

- -

- -PrivateKey=BOB_cf_wap-wsg-idm-ecid-wtls3

- ------BEGIN PRIVATE KEY-----

- -MDMCAQAwEAYHKoZIzj0CAQYFZysBBAMEHDAaAgEBBBUAhZv9WZ00bDnU9MOaqEegP771nes=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_wap-wsg-idm-ecid-wtls3_PUB

- ------BEGIN PUBLIC KEY-----

- -MEAwEAYHKoZIzj0CAQYFZysBBAMDLAAEAYOspjEbzyZw61jCtUrxARr+w66nBH+73QIvlaRVSG/4

- -hlBUf5kmG4Yn

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_wap-wsg-idm-ecid-wtls3:BOB_cf_wap-wsg-idm-ecid-wtls3_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_wap-wsg-idm-ecid-wtls3

- -PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls3_PUB

- -SharedSecret=0311924428a839b7dcada662722945e62bf1131f4f

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_wap-wsg-idm-ecid-wtls3

- -PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls3_PUB

- -SharedSecret=0311924428a839b7dcada662722945e62bf1131f4f

- -

- -# ECC CDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_wap-wsg-idm-ecid-wtls3

- -PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls3_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=047f1aee6a1a1d7c9c1f0e8dce4349429f737aa658

- -

- -# ECC CDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_wap-wsg-idm-ecid-wtls3

- -PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls3_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=047f1aee6a1a1d7c9c1f0e8dce4349429f737aa658

- -

- -PublicKey=MALICE_cf_wap-wsg-idm-ecid-wtls3_PUB

- ------BEGIN PUBLIC KEY-----

- -MEAwEAYHKoZIzj0CAQYFZysBBAMDLAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

- -AAAAAAAAAAAB

- ------END PUBLIC KEY-----

- -

- -# ECC CDH Bob with Malice peer

- -Availablein = default

- -Derive=BOB_cf_wap-wsg-idm-ecid-wtls3

- -PeerKey=MALICE_cf_wap-wsg-idm-ecid-wtls3_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -# ECC CDH Alice with Malice peer

- -Availablein = default

- -Derive=ALICE_cf_wap-wsg-idm-ecid-wtls3

- -PeerKey=MALICE_cf_wap-wsg-idm-ecid-wtls3_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -Title=wap-wsg-idm-ecid-wtls4 curve tests

- -

- -PrivateKey=ALICE_cf_wap-wsg-idm-ecid-wtls4

- ------BEGIN PRIVATE KEY-----

- -MC0CAQAwEAYHKoZIzj0CAQYFZysBBAQEFjAUAgEBBA8ACFOrBbOh5LjNtJQCuEE=

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_wap-wsg-idm-ecid-wtls4_PUB

- ------BEGIN PUBLIC KEY-----

- -MDQwEAYHKoZIzj0CAQYFZysBBAQDIAAEAW3K4Mus5+KAJVGLzEYrAYuCJSEYXFTo17aW0TwN

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_wap-wsg-idm-ecid-wtls4:ALICE_cf_wap-wsg-idm-ecid-wtls4_PUB

- -

- -PrivateKey=BOB_cf_wap-wsg-idm-ecid-wtls4

- ------BEGIN PRIVATE KEY-----

- -MC0CAQAwEAYHKoZIzj0CAQYFZysBBAQEFjAUAgEBBA8Auz4XRc3Rg0bNcbrray8=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_wap-wsg-idm-ecid-wtls4_PUB

- ------BEGIN PUBLIC KEY-----

- -MDQwEAYHKoZIzj0CAQYFZysBBAQDIAAEAI0F7ixGqOhnYpsuR80nAdTdSXM+YbcUbLe/U/xG

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_wap-wsg-idm-ecid-wtls4:BOB_cf_wap-wsg-idm-ecid-wtls4_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_wap-wsg-idm-ecid-wtls4

- -PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls4_PUB

- -SharedSecret=0077378ddfdadff704a0b6646949e7

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_wap-wsg-idm-ecid-wtls4

- -PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls4_PUB

- -SharedSecret=0077378ddfdadff704a0b6646949e7

- -

- -# ECC CDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_wap-wsg-idm-ecid-wtls4

- -PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls4_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=008f3713fe1ff1fa5d5041899817d1

- -

- -# ECC CDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_wap-wsg-idm-ecid-wtls4

- -PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls4_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=008f3713fe1ff1fa5d5041899817d1

- -

- -PublicKey=MALICE_cf_wap-wsg-idm-ecid-wtls4_PUB

- ------BEGIN PUBLIC KEY-----

- -MDQwEAYHKoZIzj0CAQYFZysBBAQDIAAEAAAAAAAAAAAAAAAAAAAAAd+TqiBXnTd/lyA/OFsR

- ------END PUBLIC KEY-----

- -

- -# ECC CDH Bob with Malice peer

- -Availablein = default

- -Derive=BOB_cf_wap-wsg-idm-ecid-wtls4

- -PeerKey=MALICE_cf_wap-wsg-idm-ecid-wtls4_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -# ECC CDH Alice with Malice peer

- -Availablein = default

- -Derive=ALICE_cf_wap-wsg-idm-ecid-wtls4

- -PeerKey=MALICE_cf_wap-wsg-idm-ecid-wtls4_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -Title=wap-wsg-idm-ecid-wtls5 curve tests

- -

- -PrivateKey=ALICE_cf_wap-wsg-idm-ecid-wtls5

- ------BEGIN PRIVATE KEY-----

- -MDMCAQAwEAYHKoZIzj0CAQYFZysBBAUEHDAaAgEBBBUD9gVh3zbLTA7BuRVVi9T8QKZ1uco=

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_wap-wsg-idm-ecid-wtls5_PUB

- ------BEGIN PUBLIC KEY-----

- -MEAwEAYHKoZIzj0CAQYFZysBBAUDLAAEAH5xyUrvbuN+tWmRhwqrQfFHPHNUBKtAGvJuvSFVwTKk

- -uFzn9fPvIDe6

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_wap-wsg-idm-ecid-wtls5:ALICE_cf_wap-wsg-idm-ecid-wtls5_PUB

- -

- -PrivateKey=BOB_cf_wap-wsg-idm-ecid-wtls5

- ------BEGIN PRIVATE KEY-----

- -MDMCAQAwEAYHKoZIzj0CAQYFZysBBAUEHDAaAgEBBBUAr9ZlmuO7bNfqB42xUivJXyVHKNI=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_wap-wsg-idm-ecid-wtls5_PUB

- ------BEGIN PUBLIC KEY-----

- -MEAwEAYHKoZIzj0CAQYFZysBBAUDLAAEBdXxEk0L2XAVzRNLPcnMxGXXyDfZAoA1Qw2XpOfVWIVR

- -jdoMGRgUuJmO

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_wap-wsg-idm-ecid-wtls5:BOB_cf_wap-wsg-idm-ecid-wtls5_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_wap-wsg-idm-ecid-wtls5

- -PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls5_PUB

- -SharedSecret=0190c68d80e94fbe9f193ae7d9a156bf0b8d097c23

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_wap-wsg-idm-ecid-wtls5

- -PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls5_PUB

- -SharedSecret=0190c68d80e94fbe9f193ae7d9a156bf0b8d097c23

- -

- -# ECC CDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_wap-wsg-idm-ecid-wtls5

- -PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls5_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=00aabc9b45c200e41294aa922ab06da6655731e0ea

- -

- -# ECC CDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_wap-wsg-idm-ecid-wtls5

- -PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls5_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=00aabc9b45c200e41294aa922ab06da6655731e0ea

- -

- -PublicKey=MALICE_cf_wap-wsg-idm-ecid-wtls5_PUB

- ------BEGIN PUBLIC KEY-----

- -MEAwEAYHKoZIzj0CAQYFZysBBAUDLAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8JxepS05nN/piK

- -dhDD3dDKXUih

- ------END PUBLIC KEY-----

- -

- -# ECC CDH Bob with Malice peer

- -Availablein = default

- -Derive=BOB_cf_wap-wsg-idm-ecid-wtls5

- -PeerKey=MALICE_cf_wap-wsg-idm-ecid-wtls5_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -# ECC CDH Alice with Malice peer

- -Availablein = default

- -Derive=ALICE_cf_wap-wsg-idm-ecid-wtls5

- -PeerKey=MALICE_cf_wap-wsg-idm-ecid-wtls5_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -Title=wap-wsg-idm-ecid-wtls6 curve tests

- -

- -PrivateKey=ALICE_cf_wap-wsg-idm-ecid-wtls6

- ------BEGIN PRIVATE KEY-----

- -MCwCAQAwEAYHKoZIzj0CAQYFZysBBAYEFTATAgEBBA4ayMbswPbvYMwpwo80jA==

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_wap-wsg-idm-ecid-wtls6_PUB

- ------BEGIN PUBLIC KEY-----

- -MDIwEAYHKoZIzj0CAQYFZysBBAYDHgAERPw/8Ip/RrXr0gMgLGRQeiQ4Qd6W+Li0ylGKzg==

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_wap-wsg-idm-ecid-wtls6:ALICE_cf_wap-wsg-idm-ecid-wtls6_PUB

- -

- -PrivateKey=BOB_cf_wap-wsg-idm-ecid-wtls6

- ------BEGIN PRIVATE KEY-----

- -MCwCAQAwEAYHKoZIzj0CAQYFZysBBAYEFTATAgEBBA6kbCpFt3tX2hYBQHMXbg==

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_wap-wsg-idm-ecid-wtls6_PUB

- ------BEGIN PUBLIC KEY-----

- -MDIwEAYHKoZIzj0CAQYFZysBBAYDHgAEhJXqpYGxE/l1X/LiBeyRbIcyzqPxUP5Tkv3U3w==

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_wap-wsg-idm-ecid-wtls6:BOB_cf_wap-wsg-idm-ecid-wtls6_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_wap-wsg-idm-ecid-wtls6

- -PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls6_PUB

- -SharedSecret=b4cae255268f11a1e46fecad04c2

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_wap-wsg-idm-ecid-wtls6

- -PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls6_PUB

- -SharedSecret=b4cae255268f11a1e46fecad04c2

- -

- -Title=wap-wsg-idm-ecid-wtls7 curve tests

- -

- -PrivateKey=ALICE_cf_wap-wsg-idm-ecid-wtls7

- ------BEGIN PRIVATE KEY-----

- -MDMCAQAwEAYHKoZIzj0CAQYFZysBBAcEHDAaAgEBBBUABcyzh4ot9ck/j4/3ehK0aYngYoM=

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_wap-wsg-idm-ecid-wtls7_PUB

- ------BEGIN PUBLIC KEY-----

- -MD4wEAYHKoZIzj0CAQYFZysBBAcDKgAEwQLnZ70n45RLqRtAGNzEa3Rl/9nwyjqYUtw2eeHhnNLT

- -feGY4CNH0w==

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_wap-wsg-idm-ecid-wtls7:ALICE_cf_wap-wsg-idm-ecid-wtls7_PUB

- -

- -PrivateKey=BOB_cf_wap-wsg-idm-ecid-wtls7

- ------BEGIN PRIVATE KEY-----

- -MDMCAQAwEAYHKoZIzj0CAQYFZysBBAcEHDAaAgEBBBUAPyrGRY1SR13hKQswS6yXs8w8PUQ=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_wap-wsg-idm-ecid-wtls7_PUB

- ------BEGIN PUBLIC KEY-----

- -MD4wEAYHKoZIzj0CAQYFZysBBAcDKgAEZGN44YbN5r3zcNtOHrvbQLt8/lE7BHp4D/9eKLmwFDn1

- -QneRu3xwPA==

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_wap-wsg-idm-ecid-wtls7:BOB_cf_wap-wsg-idm-ecid-wtls7_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_wap-wsg-idm-ecid-wtls7

- -PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls7_PUB

- -SharedSecret=ae9f5bcc6457c0422866bf855921eabc42b7121a

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_wap-wsg-idm-ecid-wtls7

- -PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls7_PUB

- -SharedSecret=ae9f5bcc6457c0422866bf855921eabc42b7121a

- -

- -Title=wap-wsg-idm-ecid-wtls8 curve tests

- -

- -PrivateKey=ALICE_cf_wap-wsg-idm-ecid-wtls8

- ------BEGIN PRIVATE KEY-----

- -MC0CAQAwEAYHKoZIzj0CAQYFZysBBAgEFjAUAgEBBA8AnkC18b3pH2O5TIYIqAQ=

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_wap-wsg-idm-ecid-wtls8_PUB

- ------BEGIN PUBLIC KEY-----

- -MDIwEAYHKoZIzj0CAQYFZysBBAgDHgAEJD0h4HEfchwxqhp9eMHh9gczQKHX4MtWVoAxKQ==

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_wap-wsg-idm-ecid-wtls8:ALICE_cf_wap-wsg-idm-ecid-wtls8_PUB

- -

- -PrivateKey=BOB_cf_wap-wsg-idm-ecid-wtls8

- ------BEGIN PRIVATE KEY-----

- -MC0CAQAwEAYHKoZIzj0CAQYFZysBBAgEFjAUAgEBBA8AXxPMnqbl3rOuIM5nsvc=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_wap-wsg-idm-ecid-wtls8_PUB

- ------BEGIN PUBLIC KEY-----

- -MDIwEAYHKoZIzj0CAQYFZysBBAgDHgAEZawmRmzr9P+jihImUi6ykOzaSH484JhMKNdrgw==

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_wap-wsg-idm-ecid-wtls8:BOB_cf_wap-wsg-idm-ecid-wtls8_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_wap-wsg-idm-ecid-wtls8

- -PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls8_PUB

- -SharedSecret=48baf4f1f5e8a0eb5dae28ef6290

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_wap-wsg-idm-ecid-wtls8

- -PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls8_PUB

- -SharedSecret=48baf4f1f5e8a0eb5dae28ef6290

- -

- -Title=wap-wsg-idm-ecid-wtls9 curve tests

- -

- -PrivateKey=ALICE_cf_wap-wsg-idm-ecid-wtls9

- ------BEGIN PRIVATE KEY-----

- -MDMCAQAwEAYHKoZIzj0CAQYFZysBBAkEHDAaAgEBBBUALwvuKs3RLthMAsChbqKjXw6vTYo=

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_wap-wsg-idm-ecid-wtls9_PUB

- ------BEGIN PUBLIC KEY-----

- -MD4wEAYHKoZIzj0CAQYFZysBBAkDKgAET0ppOvd9DU4v+tkKDQ5wRBrN1FwD9+F9t5l3Im+mz3rw

- -DB/RYdZuUg==

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=ALICE_cf_wap-wsg-idm-ecid-wtls9:ALICE_cf_wap-wsg-idm-ecid-wtls9_PUB

- -

- -PrivateKey=BOB_cf_wap-wsg-idm-ecid-wtls9

- ------BEGIN PRIVATE KEY-----

- -MDMCAQAwEAYHKoZIzj0CAQYFZysBBAkEHDAaAgEBBBUAgeb/vqEM7X5AAAxyBu3M+C8pWLM=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_wap-wsg-idm-ecid-wtls9_PUB

- ------BEGIN PUBLIC KEY-----

- -MD4wEAYHKoZIzj0CAQYFZysBBAkDKgAEWc37LGt6lt90iF4lhtDYNFdjAqoczebuNgzGff/Uq8ov

- -a3EVJ9yK1A==

- ------END PUBLIC KEY-----

- -

- -Availablein = default

- -PrivPubKeyPair=BOB_cf_wap-wsg-idm-ecid-wtls9:BOB_cf_wap-wsg-idm-ecid-wtls9_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_wap-wsg-idm-ecid-wtls9

- -PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls9_PUB

- -SharedSecret=948d3030e95cead39a1bb3d8a01c2be178517ba7

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_wap-wsg-idm-ecid-wtls9

- -PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls9_PUB

- -SharedSecret=948d3030e95cead39a1bb3d8a01c2be178517ba7

- -

- -# tests: 484

- -

- -Title=zero x-coord regression tests

- -

- -PrivateKey=ALICE_zero_prime192v1

- ------BEGIN PRIVATE KEY-----

- -MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQEEHzAdAgEBBBhaPNk8jG5hSG6y8tUqUoOaNNsZ3APU

- -pps=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_zero_prime192v1_PUB

- ------BEGIN PUBLIC KEY-----

- -MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAe2hWBe5g

- -DLNj216pEvK7XjoKLg5gNg8S

- ------END PUBLIC KEY-----

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_zero_prime192v1

- -PeerKey=BOB_zero_prime192v1_PUB

- -SharedSecret=baaffd49a8399d2ad52cbbe24d47b67afb4b3cf436f1cd65

- -

- -PrivateKey=ALICE_zero_prime192v2

-  -----BEGIN PRIVATE KEY-----

-  MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQIEHzAdAgEBBBj1AIQMJ7jqYIKCvxYAS+qKMmKmH0to

-  41k=

- @@ -3422,72 +162,6 @@ Derive=ALICE_zero_prime256v1

-  PeerKey=BOB_zero_prime256v1_PUB

-  SharedSecret=c4f5607deb8501f1a4ba23fce4122a4343a17ada2c86a9c8e0d03d92d4a4c84c

   

- -PrivateKey=ALICE_zero_secp112r2

- ------BEGIN PRIVATE KEY-----

- -MCwCAQAwEAYHKoZIzj0CAQYFK4EEAAcEFTATAgEBBA4hh3tRkG3tnA0496ffMw==

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_zero_secp112r2_PUB

- ------BEGIN PUBLIC KEY-----

- -MDIwEAYHKoZIzj0CAQYFK4EEAAcDHgAEAAAAAAAAAAAAAAAAAAAS5eEOWDV/Wk7w4djyDQ==

- ------END PUBLIC KEY-----

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_zero_secp112r2

- -PeerKey=BOB_zero_secp112r2_PUB

- -SharedSecret=958cc1cb425713678830a4d7d95e

- -

- -PrivateKey=ALICE_zero_secp128r1

- ------BEGIN PRIVATE KEY-----

- -MC4CAQAwEAYHKoZIzj0CAQYFK4EEABwEFzAVAgEBBBCykSzic/h3T2K6SkSP1SGt

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_zero_secp128r1_PUB

- ------BEGIN PUBLIC KEY-----

- -MDYwEAYHKoZIzj0CAQYFK4EEABwDIgAEAAAAAAAAAAAAAAAAAAAAAABya8M5aeOpNG3z799IdHc=

- ------END PUBLIC KEY-----

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_zero_secp128r1

- -PeerKey=BOB_zero_secp128r1_PUB

- -SharedSecret=5235d452066f126cd7e99eea00fd3068

- -

- -PrivateKey=ALICE_zero_secp160r1

- ------BEGIN PRIVATE KEY-----

- -MDMCAQAwEAYHKoZIzj0CAQYFK4EEAAgEHDAaAgEBBBUACoRnbig69XLlh5VcRexpbbn5zwA=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_zero_secp160r1_PUB

- ------BEGIN PUBLIC KEY-----

- -MD4wEAYHKoZIzj0CAQYFK4EEAAgDKgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAG/w1po29wYlxlygXs

- -MGfbiGg5ng==

- ------END PUBLIC KEY-----

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_zero_secp160r1

- -PeerKey=BOB_zero_secp160r1_PUB

- -SharedSecret=9ccd0ab8d093b6acdb3fe14c3736a0dfe61a4666

- -

- -PrivateKey=ALICE_zero_secp160r2

- ------BEGIN PRIVATE KEY-----

- -MDMCAQAwEAYHKoZIzj0CAQYFK4EEAB4EHDAaAgEBBBUAQFGxInSw1eAvd45E9TUdbXtJGnA=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_zero_secp160r2_PUB

- ------BEGIN PUBLIC KEY-----

- -MD4wEAYHKoZIzj0CAQYFK4EEAB4DKgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAZtSBSZqfmXp47v5z2

- -ZZZl2JFxDg==

- ------END PUBLIC KEY-----

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_zero_secp160r2

- -PeerKey=BOB_zero_secp160r2_PUB

- -SharedSecret=303e0a282ac86f463fe834cb51b0057be42ed5ab

- -

-  PrivateKey=ALICE_zero_secp384r1

-  -----BEGIN PRIVATE KEY-----

-  ME4CAQAwEAYHKoZIzj0CAQYFK4EEACIENzA1AgEBBDD6kgzKbg28zbQyVTdC0IdHbm0UCQt2Rdbi

- @@ -3526,76 +200,6 @@ Derive=ALICE_zero_secp521r1

-  PeerKey=BOB_zero_secp521r1_PUB

-  SharedSecret=003fc3028f61db94b20c7cd177923b6e73f12f0ab067c9ce8866755e3c82abb39c9863cde74fa80b32520bd7dd0eb156c30c08911503b67b2661f1264d09bb231423

-  

- -PrivateKey=ALICE_zero_wap-wsg-idm-ecid-wtls7

- ------BEGIN PRIVATE KEY-----

- -MDMCAQAwEAYHKoZIzj0CAQYFZysBBAcEHDAaAgEBBBUAoGng7WzYr4P9vtdc3BS/UiNWmc0=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_zero_wap-wsg-idm-ecid-wtls7_PUB

- ------BEGIN PUBLIC KEY-----

- -MD4wEAYHKoZIzj0CAQYFZysBBAcDKgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAZtSBSZqfmXp47v5z2

- -ZZZl2JFxDg==

- ------END PUBLIC KEY-----

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_zero_wap-wsg-idm-ecid-wtls7

- -PeerKey=BOB_zero_wap-wsg-idm-ecid-wtls7_PUB

- -SharedSecret=6582fc03bbb340fcf24a5fe8fcdf722655efa8b9

- -

- -# tests: 14

- -

- -Title=prime192v1 curve tests

- -

- -PrivateKey=ALICE_cf_prime192v1

- ------BEGIN PRIVATE KEY-----

- -MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQEEHzAdAgEBBBhQFYLaobJ47BVWWZv/ByY8Ti69m/U9

- -TeI=

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_prime192v1_PUB

- ------BEGIN PUBLIC KEY-----

- -MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEHYbt14KzucSpmKMrlDx1IGz/a28nDs21OjKgx3BK

- -PZ78UrllIr69kgrYUKsRg4sd

- ------END PUBLIC KEY-----

- -

- -PrivPubKeyPair=ALICE_cf_prime192v1:ALICE_cf_prime192v1_PUB

- -

- -PrivateKey=BOB_cf_prime192v1

- ------BEGIN PRIVATE KEY-----

- -MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQEEHzAdAgEBBBhsbmKHAtygIqirkmUXSbniDJOx0/fI

- -CWM=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_prime192v1_PUB

- ------BEGIN PUBLIC KEY-----

- -MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEJA+FQcXq5Axzv8pLDslxq1QVt1hjN2i0TgoO6Yxp

- -bAekMot69VorE8ibSzgJixXJ

- ------END PUBLIC KEY-----

- -

- -PrivPubKeyPair=BOB_cf_prime192v1:BOB_cf_prime192v1_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_prime192v1

- -PeerKey=BOB_cf_prime192v1_PUB

- -SharedSecret=e36cad3b0f8d00f60f090440a76df47896713ae61421c354

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_prime192v1

- -PeerKey=ALICE_cf_prime192v1_PUB

- -SharedSecret=e36cad3b0f8d00f60f090440a76df47896713ae61421c354

- -

- -# ECDH Bob with Alice peer : curves with less than 112 bits of strength cannot

- -# be used for Key agreement in fips mode

- -Availablein = fips

- -Derive=BOB_cf_prime192v1

- -Securitycheck = 1

- -PeerKey=ALICE_cf_prime192v1_PUB

- -SharedSecret=e36cad3b0f8d00f60f090440a76df47896713ae61421c354

- -Result = DERIVE_SET_PEER_ERROR

- -

-  Title=prime256v1 curve tests

-  

-  PrivateKey=ALICE_cf_prime256v1

- @@ -3759,743 +363,3 @@ SharedSecret=01dd4aa9037bb4ad298b420998d

-  Derive=BOB_cf_secp521r1

-  PeerKey=ALICE_cf_secp521r1_PUB

-  SharedSecret=01dd4aa9037bb4ad298b420998dcd32b3a9af1cda8b7919e372aeb4e54ccfb4d2409a340ed896bfbc5dd462f8d96b8784bc17b29db3ca04700e6ec752f9bec777695

- -

- -Title=sect163k1 curve tests

- -

- -PrivateKey=ALICE_cf_sect163k1

- ------BEGIN PRIVATE KEY-----

- -MDMCAQAwEAYHKoZIzj0CAQYFK4EEAAEEHDAaAgEBBBUB905PYfmej8LzbzX6Bg51GJzXQjQ=

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_sect163k1_PUB

- ------BEGIN PUBLIC KEY-----

- -MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEBfvs5A1hD8YySP9O2ub8GEUfotVuBpfRx4GIHdAfx8wV

- -1UVeTRnyAlWU

- ------END PUBLIC KEY-----

- -

- -PrivPubKeyPair=ALICE_cf_sect163k1:ALICE_cf_sect163k1_PUB

- -

- -PrivateKey=BOB_cf_sect163k1

- ------BEGIN PRIVATE KEY-----

- -MDMCAQAwEAYHKoZIzj0CAQYFK4EEAAEEHDAaAgEBBBUCHPtCjJ4/K8ylQBcLlb5VE0bkaUE=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_sect163k1_PUB

- ------BEGIN PUBLIC KEY-----

- -MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEBvgfX1mTRlt6Z4TE1D1MNWo4loH4AoeYa6oowK104LKk

- -nsdg7isQ8XBD

- ------END PUBLIC KEY-----

- -

- -PrivPubKeyPair=BOB_cf_sect163k1:BOB_cf_sect163k1_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_sect163k1

- -PeerKey=BOB_cf_sect163k1_PUB

- -SharedSecret=04d0e40788c5ce5220818055277cae53eac55c1e6b

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_sect163k1

- -PeerKey=ALICE_cf_sect163k1_PUB

- -SharedSecret=04d0e40788c5ce5220818055277cae53eac55c1e6b

- -

- -# ECC CDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_sect163k1

- -PeerKey=BOB_cf_sect163k1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=04c902a91110244d89110034dd2b099c49cbab6c77

- -

- -# ECC CDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_sect163k1

- -PeerKey=ALICE_cf_sect163k1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=04c902a91110244d89110034dd2b099c49cbab6c77

- -

- -PublicKey=MALICE_cf_sect163k1_PUB

- ------BEGIN PUBLIC KEY-----

- -MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

- -AAAAAAAAAAAB

- ------END PUBLIC KEY-----

- -

- -# ECC CDH Bob with Malice peer

- -Availablein = default

- -Derive=BOB_cf_sect163k1

- -PeerKey=MALICE_cf_sect163k1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -# ECC CDH Alice with Malice peer

- -Availablein = default

- -Derive=ALICE_cf_sect163k1

- -PeerKey=MALICE_cf_sect163k1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -Title=sect163r2 curve tests

- -

- -PrivateKey=ALICE_cf_sect163r2

- ------BEGIN PRIVATE KEY-----

- -MDMCAQAwEAYHKoZIzj0CAQYFK4EEAA8EHDAaAgEBBBUBjCs/M3N31jsAueYrOq21vdETwAI=

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_sect163r2_PUB

- ------BEGIN PUBLIC KEY-----

- -MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEBd8Z1/HpA+89hF4I98EST3svWns3BAEbhWmL/fgxk2uu

- -YwVrmqhgqH/C

- ------END PUBLIC KEY-----

- -

- -PrivPubKeyPair=ALICE_cf_sect163r2:ALICE_cf_sect163r2_PUB

- -

- -PrivateKey=BOB_cf_sect163r2

- ------BEGIN PRIVATE KEY-----

- -MDMCAQAwEAYHKoZIzj0CAQYFK4EEAA8EHDAaAgEBBBUBsiouT9Df+mwHWrpPg1JSrY9nqlI=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_sect163r2_PUB

- ------BEGIN PUBLIC KEY-----

- -MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEBULqBZ+nhLhDEMYY8NEEzZ126MdxAcFXWv8zmPEH9505

- -8vT5zU3aq6HV

- ------END PUBLIC KEY-----

- -

- -PrivPubKeyPair=BOB_cf_sect163r2:BOB_cf_sect163r2_PUB

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_sect163r2

- -PeerKey=BOB_cf_sect163r2_PUB

- -SharedSecret=019f829a53c4e6544bdec1395a23082169efaf369d

- -

- -# ECDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_sect163r2

- -PeerKey=ALICE_cf_sect163r2_PUB

- -SharedSecret=019f829a53c4e6544bdec1395a23082169efaf369d

- -

- -# ECC CDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_cf_sect163r2

- -PeerKey=BOB_cf_sect163r2_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=048870d39235ecbc16a000ee478833509b9318a53f

- -

- -# ECC CDH Bob with Alice peer

- -Availablein = default

- -Derive=BOB_cf_sect163r2

- -PeerKey=ALICE_cf_sect163r2_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=048870d39235ecbc16a000ee478833509b9318a53f

- -

- -PublicKey=MALICE_cf_sect163r2_PUB

- ------BEGIN PUBLIC KEY-----

- -MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsJbhbrfiSdZPSHD

- -ZtqJwDlp802l

- ------END PUBLIC KEY-----

- -

- -# ECC CDH Bob with Malice peer

- -Availablein = default

- -Derive=BOB_cf_sect163r2

- -PeerKey=MALICE_cf_sect163r2_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -# ECC CDH Alice with Malice peer

- -Availablein = default

- -Derive=ALICE_cf_sect163r2

- -PeerKey=MALICE_cf_sect163r2_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -Title=sect233k1 curve tests

- -

- -PrivateKey=ALICE_cf_sect233k1

- ------BEGIN PRIVATE KEY-----

- -MDsCAQAwEAYHKoZIzj0CAQYFK4EEABoEJDAiAgEBBB0z/3heNFjJL+2sAT/38yRsN3kt2iXz7u+y

- -Gua8Kw==

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_sect233k1_PUB

- ------BEGIN PUBLIC KEY-----

- -MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEALQyn0zJmOrHm4S2EIjxRe899PadBnfpYjLKWGvpAIzf

- -MEG861Nv1IYJkmkO1xlfNHeeRtqFgsQVFKZh

- ------END PUBLIC KEY-----

- -

- -PrivPubKeyPair=ALICE_cf_sect233k1:ALICE_cf_sect233k1_PUB

- -

- -PrivateKey=BOB_cf_sect233k1

- ------BEGIN PRIVATE KEY-----

- -MDsCAQAwEAYHKoZIzj0CAQYFK4EEABoEJDAiAgEBBB1I0ucrC4d9i6Z+0cbar5r7uKpF5iiQkSJA

- -DFMTUA==

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_sect233k1_PUB

- ------BEGIN PUBLIC KEY-----

- -MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAatdqazxSghJ568CBFyMXhEvVeAiLewOY/jk9H5DAOB4

- -ufNGbdd131KLaKPivB38a6n5Y+2BVSJangow

- ------END PUBLIC KEY-----

- -

- -PrivPubKeyPair=BOB_cf_sect233k1:BOB_cf_sect233k1_PUB

- -

- -# ECDH Alice with Bob peer

- -Derive=ALICE_cf_sect233k1

- -PeerKey=BOB_cf_sect233k1_PUB

- -SharedSecret=012145026e8de65973c154e085456fc5539ba9e25663e7f5816abfcab310

- -

- -# ECDH Bob with Alice peer

- -Derive=BOB_cf_sect233k1

- -PeerKey=ALICE_cf_sect233k1_PUB

- -SharedSecret=012145026e8de65973c154e085456fc5539ba9e25663e7f5816abfcab310

- -

- -# ECC CDH Alice with Bob peer

- -Derive=ALICE_cf_sect233k1

- -PeerKey=BOB_cf_sect233k1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=00ff7d6c6b80f39d2ae68fbd00adbcd75fa599ed0bc1aac0e3f49c1c164d

- -

- -# ECC CDH Bob with Alice peer

- -Derive=BOB_cf_sect233k1

- -PeerKey=ALICE_cf_sect233k1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=00ff7d6c6b80f39d2ae68fbd00adbcd75fa599ed0bc1aac0e3f49c1c164d

- -

- -PublicKey=MALICE_cf_sect233k1_PUB

- ------BEGIN PUBLIC KEY-----

- -MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAA

- -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

- ------END PUBLIC KEY-----

- -

- -# ECC CDH Bob with Malice peer

- -Derive=BOB_cf_sect233k1

- -PeerKey=MALICE_cf_sect233k1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -# ECC CDH Alice with Malice peer

- -Derive=ALICE_cf_sect233k1

- -PeerKey=MALICE_cf_sect233k1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -Title=sect233r1 curve tests

- -

- -PrivateKey=ALICE_cf_sect233r1

- ------BEGIN PRIVATE KEY-----

- -MDwCAQAwEAYHKoZIzj0CAQYFK4EEABsEJTAjAgEBBB4ATcy7zVpIsJ9rl5EIDmzRz5wxjrDIQyDm

- -HP3Pt8Y=

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_sect233r1_PUB

- ------BEGIN PUBLIC KEY-----

- -MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAQMQHiJ44LiCnZkEg1zyww1h+idTbsw8E07P33WUAUfD

- -NeQ4hWEhTXPnytIbEhFKpnd3j/FbyZnJqxh8

- ------END PUBLIC KEY-----

- -

- -PrivPubKeyPair=ALICE_cf_sect233r1:ALICE_cf_sect233r1_PUB

- -

- -PrivateKey=BOB_cf_sect233r1

- ------BEGIN PRIVATE KEY-----

- -MDwCAQAwEAYHKoZIzj0CAQYFK4EEABsEJTAjAgEBBB4ALpOlFn4OfiIAkRAZGOsn7L6W3XoQBSV8

- -mQVC2pw=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_sect233r1_PUB

- ------BEGIN PUBLIC KEY-----

- -MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAJQw+NWqFJXYw4dVMovzvw76OYnYOTaDaEPNW8ECAQbl

- -TzzbBSTp5iqM13mP0/Bo4OO66NS3lA9e/GTO

- ------END PUBLIC KEY-----

- -

- -PrivPubKeyPair=BOB_cf_sect233r1:BOB_cf_sect233r1_PUB

- -

- -# ECDH Alice with Bob peer

- -Derive=ALICE_cf_sect233r1

- -PeerKey=BOB_cf_sect233r1_PUB

- -SharedSecret=00209d2995a63f1e8b7a5c33dee5abb602e32e1835ae8bb57eb264d8d795

- -

- -# ECDH Bob with Alice peer

- -Derive=BOB_cf_sect233r1

- -PeerKey=ALICE_cf_sect233r1_PUB

- -SharedSecret=00209d2995a63f1e8b7a5c33dee5abb602e32e1835ae8bb57eb264d8d795

- -

- -# ECC CDH Alice with Bob peer

- -Derive=ALICE_cf_sect233r1

- -PeerKey=BOB_cf_sect233r1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=00c3cd1d38a65f5e421399409a76cec1136bc84149f054a7f55e7980c612

- -

- -# ECC CDH Bob with Alice peer

- -Derive=BOB_cf_sect233r1

- -PeerKey=ALICE_cf_sect233r1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=00c3cd1d38a65f5e421399409a76cec1136bc84149f054a7f55e7980c612

- -

- -PublicKey=MALICE_cf_sect233r1_PUB

- ------BEGIN PUBLIC KEY-----

- -MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYf4

- -Vie5eHTnR+4x4G1xyq7qUvISU+X5RtBh2pE4

- ------END PUBLIC KEY-----

- -

- -# ECC CDH Bob with Malice peer

- -Derive=BOB_cf_sect233r1

- -PeerKey=MALICE_cf_sect233r1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -# ECC CDH Alice with Malice peer

- -Derive=ALICE_cf_sect233r1

- -PeerKey=MALICE_cf_sect233r1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -Title=sect283k1 curve tests

- -

- -PrivateKey=ALICE_cf_sect283k1

- ------BEGIN PRIVATE KEY-----

- -MEICAQAwEAYHKoZIzj0CAQYFK4EEABAEKzApAgEBBCQAY1Mi9rST7PiP1t03qYRczV/kSZ+VjQu8

- -5EFCgxyvkaLManw=

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_sect283k1_PUB

- ------BEGIN PUBLIC KEY-----

- -MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEBMjBO8WoxHS/vz8po52WZGxS+RK5yolrUe6tfbAMA3Sd

- -5/JjBDVjOz95vM4gUnqzUWHN5nKBQtj6HiU9Q/R+zqg98OiQKTyA

- ------END PUBLIC KEY-----

- -

- -PrivPubKeyPair=ALICE_cf_sect283k1:ALICE_cf_sect283k1_PUB

- -

- -PrivateKey=BOB_cf_sect283k1

- ------BEGIN PRIVATE KEY-----

- -MEICAQAwEAYHKoZIzj0CAQYFK4EEABAEKzApAgEBBCQBCZC8Is+YSjgXJBBDioEl6gu14QpGHllD

- -1J6957vBTPSQdH0=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_sect283k1_PUB

- ------BEGIN PUBLIC KEY-----

- -MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEAGEQKZVHYAlvtjHrFyZVm12qUb5j+T5/WNoC962+kwUM

- -QkBYA5BpuG8Knlugq1iB31whPAgRCZfdLKHpHRPJSfXvKyUIdeUm

- ------END PUBLIC KEY-----

- -

- -PrivPubKeyPair=BOB_cf_sect283k1:BOB_cf_sect283k1_PUB

- -

- -# ECDH Alice with Bob peer

- -Derive=ALICE_cf_sect283k1

- -PeerKey=BOB_cf_sect283k1_PUB

- -SharedSecret=03f67c88bdc230b43773d17fdb4d0a980556d074ceccee726932160e4ed965e3be72803c

- -

- -# ECDH Bob with Alice peer

- -Derive=BOB_cf_sect283k1

- -PeerKey=ALICE_cf_sect283k1_PUB

- -SharedSecret=03f67c88bdc230b43773d17fdb4d0a980556d074ceccee726932160e4ed965e3be72803c

- -

- -# ECC CDH Alice with Bob peer

- -Derive=ALICE_cf_sect283k1

- -PeerKey=BOB_cf_sect283k1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=0677ba01c84d139609ca145cb5b6079fc9ca67f59c9c913e47cad1073f1d1dfaddde0169

- -

- -# ECC CDH Bob with Alice peer

- -Derive=BOB_cf_sect283k1

- -PeerKey=ALICE_cf_sect283k1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=0677ba01c84d139609ca145cb5b6079fc9ca67f59c9c913e47cad1073f1d1dfaddde0169

- -

- -PublicKey=MALICE_cf_sect283k1_PUB

- ------BEGIN PUBLIC KEY-----

- -MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

- -AAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB

- ------END PUBLIC KEY-----

- -

- -# ECC CDH Bob with Malice peer

- -Derive=BOB_cf_sect283k1

- -PeerKey=MALICE_cf_sect283k1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -# ECC CDH Alice with Malice peer

- -Derive=ALICE_cf_sect283k1

- -PeerKey=MALICE_cf_sect283k1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -Title=sect283r1 curve tests

- -

- -PrivateKey=ALICE_cf_sect283r1

- ------BEGIN PRIVATE KEY-----

- -MEICAQAwEAYHKoZIzj0CAQYFK4EEABEEKzApAgEBBCQCQ5pqKvPxDysd1pi2Bv8Z11cFhsRZfuaf

- -4Pi0hpGr4ubZcHE=

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_sect283r1_PUB

- ------BEGIN PUBLIC KEY-----

- -MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEBcsrGDgO7pbGybQX/00gRHtQq3+X9XrGb7Uzv9Nabwc/

- -kntnBMF0I2KU+aaTjQx1GVtmNf7CvFwPLEBnfKjJAjekjsGyIqoq

- ------END PUBLIC KEY-----

- -

- -PrivPubKeyPair=ALICE_cf_sect283r1:ALICE_cf_sect283r1_PUB

- -

- -PrivateKey=BOB_cf_sect283r1

- ------BEGIN PRIVATE KEY-----

- -MEICAQAwEAYHKoZIzj0CAQYFK4EEABEEKzApAgEBBCQDxItnY3cDCrX/jGnVuAKDPaySZCr3E83Q

- -UdFnP6YIykt7+Pg=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_sect283r1_PUB

- ------BEGIN PUBLIC KEY-----

- -MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEBJ2C9BCkX0YRfs2ufgUKvreUXFWp2AGK+iHlZB4N3LqO

- -PKpmAkrAeCMty6mw2mEnOR5HA1d4Ee+z7/NJgJJ80Ra9bFnreOW3

- ------END PUBLIC KEY-----

- -

- -PrivPubKeyPair=BOB_cf_sect283r1:BOB_cf_sect283r1_PUB

- -

- -# ECDH Alice with Bob peer

- -Derive=ALICE_cf_sect283r1

- -PeerKey=BOB_cf_sect283r1_PUB

- -SharedSecret=0424259cf09727574fb863cab7c27d8fe3835e96433110a45a951f94347fc81939ec4773

- -

- -# ECDH Bob with Alice peer

- -Derive=BOB_cf_sect283r1

- -PeerKey=ALICE_cf_sect283r1_PUB

- -SharedSecret=0424259cf09727574fb863cab7c27d8fe3835e96433110a45a951f94347fc81939ec4773

- -

- -# ECC CDH Alice with Bob peer

- -Derive=ALICE_cf_sect283r1

- -PeerKey=BOB_cf_sect283r1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=01c2a542654ce85b17456ed75b6bca6b6eb761580913670debc426a3525f236df0e875c8

- -

- -# ECC CDH Bob with Alice peer

- -Derive=BOB_cf_sect283r1

- -PeerKey=ALICE_cf_sect283r1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=01c2a542654ce85b17456ed75b6bca6b6eb761580913670debc426a3525f236df0e875c8

- -

- -PublicKey=MALICE_cf_sect283r1_PUB

- ------BEGIN PUBLIC KEY-----

- -MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

- -AAAAByvMnFeSsevoGYMIn7b4NaL9IgowRCTKF8CCrhdEKu3pubP2

- ------END PUBLIC KEY-----

- -

- -# ECC CDH Bob with Malice peer

- -Derive=BOB_cf_sect283r1

- -PeerKey=MALICE_cf_sect283r1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -# ECC CDH Alice with Malice peer

- -Derive=ALICE_cf_sect283r1

- -PeerKey=MALICE_cf_sect283r1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -Title=sect409k1 curve tests

- -

- -PrivateKey=ALICE_cf_sect409k1

- ------BEGIN PRIVATE KEY-----

- -MFECAQAwEAYHKoZIzj0CAQYFK4EEACQEOjA4AgEBBDMOthcLahkXFgM0wjOzm767D1A72sFRGlhb

- -bVH+EB7z2WpIcPX4OD+M4Y1pf/a7wSaoSAo=

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_sect409k1_PUB

- ------BEGIN PUBLIC KEY-----

- -MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAbiYYpeFgCMsZFMzQaiwMJDrC+mCMT7KmhYtD5EMMgLW

- -5OvhaqYdpRf49A8LOtVcRT7J5gGcMrXQgmQeS3FenA5owWnB2NIgrTNf5d8AAEtrOupsJ4c3kL6e

- -aAzayZ1+UCEj8skbC9U=

- ------END PUBLIC KEY-----

- -

- -PrivPubKeyPair=ALICE_cf_sect409k1:ALICE_cf_sect409k1_PUB

- -

- -PrivateKey=BOB_cf_sect409k1

- ------BEGIN PRIVATE KEY-----

- -MFECAQAwEAYHKoZIzj0CAQYFK4EEACQEOjA4AgEBBDMO43ldQllTewdZwffH4OEXdzBrLwabKsn4

- -6/hjgIAaYda/pt4yCEQLMp18QgtfMey5ENI=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_sect409k1_PUB

- ------BEGIN PUBLIC KEY-----

- -MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAVTQj6hRizVmOx4Z6vroN/zMkmAY+QhkQ0CnFeJ0AydY

- -Fv+f+/420vMC1Mhqsc9VzPMmIAH6ZrgGKDsd4Ce9JUtYE0rVhGeiG2RaN1U5RlhVK4avkWhFlyQ5

- -vuu4aApQiWE3yQd9v/I=

- ------END PUBLIC KEY-----

- -

- -PrivPubKeyPair=BOB_cf_sect409k1:BOB_cf_sect409k1_PUB

- -

- -# ECDH Alice with Bob peer

- -Derive=ALICE_cf_sect409k1

- -PeerKey=BOB_cf_sect409k1_PUB

- -SharedSecret=01fbe13188588c9d1ac3a8a2680ea9a009b28e4b7d7fa4efcb1a22553876fb7973616819fd87c75e5b8ce6e3628595e4ce12edb0

- -

- -# ECDH Bob with Alice peer

- -Derive=BOB_cf_sect409k1

- -PeerKey=ALICE_cf_sect409k1_PUB

- -SharedSecret=01fbe13188588c9d1ac3a8a2680ea9a009b28e4b7d7fa4efcb1a22553876fb7973616819fd87c75e5b8ce6e3628595e4ce12edb0

- -

- -# ECC CDH Alice with Bob peer

- -Derive=ALICE_cf_sect409k1

- -PeerKey=BOB_cf_sect409k1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=007e9485f7234bb2255bb40e51f4be867cb0ef31f8e489a697b31b51c4d5346daaee51e96ae6f9636e6e3af56095fe28755325ee

- -

- -# ECC CDH Bob with Alice peer

- -Derive=BOB_cf_sect409k1

- -PeerKey=ALICE_cf_sect409k1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=007e9485f7234bb2255bb40e51f4be867cb0ef31f8e489a697b31b51c4d5346daaee51e96ae6f9636e6e3af56095fe28755325ee

- -

- -PublicKey=MALICE_cf_sect409k1_PUB

- ------BEGIN PUBLIC KEY-----

- -MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

- -AAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

- -AAAAAAAAAAAAAAAAAAA=

- ------END PUBLIC KEY-----

- -

- -# ECC CDH Bob with Malice peer

- -Derive=BOB_cf_sect409k1

- -PeerKey=MALICE_cf_sect409k1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -# ECC CDH Alice with Malice peer

- -Derive=ALICE_cf_sect409k1

- -PeerKey=MALICE_cf_sect409k1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -Title=sect409r1 curve tests

- -

- -PrivateKey=ALICE_cf_sect409r1

- ------BEGIN PRIVATE KEY-----

- -MFICAQAwEAYHKoZIzj0CAQYFK4EEACUEOzA5AgEBBDQAxSC9lST5dtfXQI1Ug9VMMoue3GGni5ON

- -+gieyXK2KKbd29KAPs4/AOd8kX2wQDsZPO7E

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_sect409r1_PUB

- ------BEGIN PUBLIC KEY-----

- -MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEASAvXAM15DJerAu1JttpBuMJK1/fEfFohu2iEpt3r7Ui

- -iQoER6HUsWiw1hhcJyTv7WzpJQHFWrOlJMe/KjmQa/CygSc65YHDzG27oUL+KGdQUGc79ZRSwl/q

- -fGZqa3D+bDVMwrhmZto=

- ------END PUBLIC KEY-----

- -

- -PrivPubKeyPair=ALICE_cf_sect409r1:ALICE_cf_sect409r1_PUB

- -

- -PrivateKey=BOB_cf_sect409r1

- ------BEGIN PRIVATE KEY-----

- -MFICAQAwEAYHKoZIzj0CAQYFK4EEACUEOzA5AgEBBDQARen+1P3JQzBgOv0pUYwsZTPRVLpqqDAU

- -7mKL2lk9eH7zSGmtNoMvP2m1S2dBnXxFY/bV

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_sect409r1_PUB

- ------BEGIN PUBLIC KEY-----

- -MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAbDUw066TtdfOpDvrlKosEyqUNEG7rY+AKvDqKw+HOzf

- -sUTYee6cEf71oqJ1sCKPQiYzlwCu/HLQeWPxISE6Uo+53kkeJml2xpMBwoE25Gq/DSS61dR7SRTZ

- -+sUmumbIuGzbrjtMRmw=

- ------END PUBLIC KEY-----

- -

- -PrivPubKeyPair=BOB_cf_sect409r1:BOB_cf_sect409r1_PUB

- -

- -# ECDH Alice with Bob peer

- -Derive=ALICE_cf_sect409r1

- -PeerKey=BOB_cf_sect409r1_PUB

- -SharedSecret=00a751259cdb3b445ce71a40a01a2189dfce70226111190505fc6eabe4e5a05bff7af55f2015e1ffcab6aea7ea9a6e74905da2a1

- -

- -# ECDH Bob with Alice peer

- -Derive=BOB_cf_sect409r1

- -PeerKey=ALICE_cf_sect409r1_PUB

- -SharedSecret=00a751259cdb3b445ce71a40a01a2189dfce70226111190505fc6eabe4e5a05bff7af55f2015e1ffcab6aea7ea9a6e74905da2a1

- -

- -# ECC CDH Alice with Bob peer

- -Derive=ALICE_cf_sect409r1

- -PeerKey=BOB_cf_sect409r1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=0115a31aed416c5089d74a263ec300aff13a5329c6ad27de950ae0b0917b40a3464fccf5691ac9633a51e5177a82b15cfc434aad

- -

- -# ECC CDH Bob with Alice peer

- -Derive=BOB_cf_sect409r1

- -PeerKey=ALICE_cf_sect409r1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=0115a31aed416c5089d74a263ec300aff13a5329c6ad27de950ae0b0917b40a3464fccf5691ac9633a51e5177a82b15cfc434aad

- -

- -PublicKey=MALICE_cf_sect409r1_PUB

- ------BEGIN PUBLIC KEY-----

- -MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

- -AAAAAAAAAAAAAAAAAAAAAAAAAACZNffkdo7i7yL5tKKfU8tdk6su0K185XwbJkn96JWVDPZXZ3My

- -bFKKSOJ7hyrM8Lwl1e8=

- ------END PUBLIC KEY-----

- -

- -# ECC CDH Bob with Malice peer

- -Derive=BOB_cf_sect409r1

- -PeerKey=MALICE_cf_sect409r1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -# ECC CDH Alice with Malice peer

- -Derive=ALICE_cf_sect409r1

- -PeerKey=MALICE_cf_sect409r1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -Title=sect571k1 curve tests

- -

- -PrivateKey=ALICE_cf_sect571k1

- ------BEGIN PRIVATE KEY-----

- -MGYCAQAwEAYHKoZIzj0CAQYFK4EEACYETzBNAgEBBEgB4agvk7Qdf9bVb9aMVdtXL0MuVw6dTleB

- -zrpPMYty/piI5GWkQEGVp4OJSjF1BGgWmtYSYlV0oI8jJ7hfWTjVGfVWix4ipb8=

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_sect571k1_PUB

- ------BEGIN PUBLIC KEY-----

- -MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQDUZq0ZrgYpTXNpOptjExaur0K9FAYHv1j9cvAptwX

- -dcmQf3VqekMkGZCfNdqNeqCajG3QHRkBHe4FZhWr3FXi8whvvr463lUDf+t46un1kE6FTYfhILGa

- -sBZm7OdfkarYd9TXBbmnkFA+XkyPlkM1+6daM3/WmnegK+TYghFDXLgwiyF8s0ElllF7z38Gmc4=

- ------END PUBLIC KEY-----

- -

- -PrivPubKeyPair=ALICE_cf_sect571k1:ALICE_cf_sect571k1_PUB

- -

- -PrivateKey=BOB_cf_sect571k1

- ------BEGIN PRIVATE KEY-----

- -MGYCAQAwEAYHKoZIzj0CAQYFK4EEACYETzBNAgEBBEgA3pINxGOI7L9M+Mil+bm/udPwI4xu7ubJ

- -p3aoOepTXW94laf8wjFLcQnRUwH87Vbq9VLQEfCAFvr2vZoBc+5asnNuDhRNNeQ=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_sect571k1_PUB

- ------BEGIN PUBLIC KEY-----

- -MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQDZRr5GCSq2uzGxmWNB+bED7zye18Rr/KehwXrbn1r

- -rKtR8fe+dg2V15FieC3qZe/wCpMtyp79VmEabGi6iGLlAN/rUE81URsA/K7GVpmklslV5gmwryR0

- -3E7jGKPFesun9iNtmpgM18P9y3aJd4Qr4hMlwW2Nyw187l6QB/W2e/i+8vKXFTLHlz5WLAyAcpA=

- ------END PUBLIC KEY-----

- -

- -PrivPubKeyPair=BOB_cf_sect571k1:BOB_cf_sect571k1_PUB

- -

- -# ECDH Alice with Bob peer

- -Derive=ALICE_cf_sect571k1

- -PeerKey=BOB_cf_sect571k1_PUB

- -SharedSecret=02b79c92cee50dc5b9fdddce36d4fa2e28d7d178cd74e575961f39429496305b38815c840c2e66327435c044ed885ec964068531251a2112717602532e8b6d5411db2fe05c1ac18c

- -

- -# ECDH Bob with Alice peer

- -Derive=BOB_cf_sect571k1

- -PeerKey=ALICE_cf_sect571k1_PUB

- -SharedSecret=02b79c92cee50dc5b9fdddce36d4fa2e28d7d178cd74e575961f39429496305b38815c840c2e66327435c044ed885ec964068531251a2112717602532e8b6d5411db2fe05c1ac18c

- -

- -# ECC CDH Alice with Bob peer

- -Derive=ALICE_cf_sect571k1

- -PeerKey=BOB_cf_sect571k1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=063aea789492c9727a5a6b7f24e8d3d377c70ee8e86b13664e191a53b1905e90e78b85960b1881db5160c7c5cacca0d686d9e104140d565eeeec17426f93d3a7ba639ecd716b43d2

- -

- -# ECC CDH Bob with Alice peer

- -Derive=BOB_cf_sect571k1

- -PeerKey=ALICE_cf_sect571k1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=063aea789492c9727a5a6b7f24e8d3d377c70ee8e86b13664e191a53b1905e90e78b85960b1881db5160c7c5cacca0d686d9e104140d565eeeec17426f93d3a7ba639ecd716b43d2

- -

- -PublicKey=MALICE_cf_sect571k1_PUB

- ------BEGIN PUBLIC KEY-----

- -MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

- -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAA

- -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE=

- ------END PUBLIC KEY-----

- -

- -# ECC CDH Bob with Malice peer

- -Derive=BOB_cf_sect571k1

- -PeerKey=MALICE_cf_sect571k1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -# ECC CDH Alice with Malice peer

- -Derive=ALICE_cf_sect571k1

- -PeerKey=MALICE_cf_sect571k1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -Title=sect571r1 curve tests

- -

- -PrivateKey=ALICE_cf_sect571r1

- ------BEGIN PRIVATE KEY-----

- -MGYCAQAwEAYHKoZIzj0CAQYFK4EEACcETzBNAgEBBEgAxfL2/gUsmJonvDMR95Azq1ySgXMlKSRk

- -+PL+WaS92ZyOo45HaC7RpH5sdkf4b948u6y1BXOxGZuORXy6lgbgZ1Zx2UgL3cI=

- ------END PRIVATE KEY-----

- -

- -PublicKey=ALICE_cf_sect571r1_PUB

- ------BEGIN PUBLIC KEY-----

- -MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQBK5L9ccIWacU2A1srZ35opPu6kcbEOsBPmvj/rlMS

- -fFrdMOcagOYfcD0/ouYHPhvkHbr9k87IlQJfnV6ZNRA4PmWSp/FjkNwETm/fqTCUQHti/qqnKH7R

- -Ed4fYROLFGvz+PX6E20SryOt1vrmoRyC7Z5FVmgMVOQQ1AaBNAHi3+IPtKx41YdXdbqHJxuI5jE=

- ------END PUBLIC KEY-----

- -

- -PrivPubKeyPair=ALICE_cf_sect571r1:ALICE_cf_sect571r1_PUB

- -

- -PrivateKey=BOB_cf_sect571r1

- ------BEGIN PRIVATE KEY-----

- -MGYCAQAwEAYHKoZIzj0CAQYFK4EEACcETzBNAgEBBEgAzcRvASPpWi0ybpOGlj0Lozz01C2a5oDA

- -G5alib1EmZKcpVULxJXn75FQlTKpkUEuWUgA4yk5X5DTiScUuh4LDhaF3AFhsEY=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_cf_sect571r1_PUB

- ------BEGIN PUBLIC KEY-----

- -MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQH3dnL22NajtqDWTX6qD14w1BOlpHFBUPTr24VySlh

- -kiiBlOF95u7hFr/hSb7gm/3f+IVKyE18Sh2kR4KaxWcPWKY5xKTiqiICT7hCistuzNRt8gR+kNOT

- -c1rETMV6ZruZinwzEWWWjwJf6612oy2HG3CX3B8Rm+a3sS0q6IzowEwqmDv6v9bMTFk8bsCv0Fk=

- ------END PUBLIC KEY-----

- -

- -PrivPubKeyPair=BOB_cf_sect571r1:BOB_cf_sect571r1_PUB

- -

- -# ECDH Alice with Bob peer

- -Derive=ALICE_cf_sect571r1

- -PeerKey=BOB_cf_sect571r1_PUB

- -SharedSecret=0031f9879fa75b8c67ba81ee861be634e2b53aa79f834e9a8ca4df7f4461bcb02f083d9fa5b4767f881a710caa6524b58eb626623ba394961d46535204c26d165089e7d4f7be1827

- -

- -# ECDH Bob with Alice peer

- -Derive=BOB_cf_sect571r1

- -PeerKey=ALICE_cf_sect571r1_PUB

- -SharedSecret=0031f9879fa75b8c67ba81ee861be634e2b53aa79f834e9a8ca4df7f4461bcb02f083d9fa5b4767f881a710caa6524b58eb626623ba394961d46535204c26d165089e7d4f7be1827

- -

- -# ECC CDH Alice with Bob peer

- -Derive=ALICE_cf_sect571r1

- -PeerKey=BOB_cf_sect571r1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=012e8c2c1554988fe20c5ae7d11cdcfe15c7c6e8d2b6f46a43a45d724bfc7b415ea7594d5c16f770a95d6e65bbcb1f34619db95e89f4fecbcb0bc6a3f92d52df6a49b0e7773e0ac0

- -

- -# ECC CDH Bob with Alice peer

- -Derive=BOB_cf_sect571r1

- -PeerKey=ALICE_cf_sect571r1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -SharedSecret=012e8c2c1554988fe20c5ae7d11cdcfe15c7c6e8d2b6f46a43a45d724bfc7b415ea7594d5c16f770a95d6e65bbcb1f34619db95e89f4fecbcb0bc6a3f92d52df6a49b0e7773e0ac0

- -

- -PublicKey=MALICE_cf_sect571r1_PUB

- ------BEGIN PUBLIC KEY-----

- -MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

- -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHMtVWZAwgtd1zmgWN/9WC

- -aNQcWRNUKesEHXqhJVkC5jYsSACodKsLYFNrWEYM0gwG8DQONZSn93G+38EM45tkaZsIRDt2HEM=

- ------END PUBLIC KEY-----

- -

- -# ECC CDH Bob with Malice peer

- -Derive=BOB_cf_sect571r1

- -PeerKey=MALICE_cf_sect571r1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- -

- -# ECC CDH Alice with Malice peer

- -Derive=ALICE_cf_sect571r1

- -PeerKey=MALICE_cf_sect571r1_PUB

- -Ctrl=ecdh_cofactor_mode:1

- -Result=DERIVE_ERROR

- -Reason=point at infinity

- diff -up openssl-3.0.0-beta1/test/recipes/30-test_evp_data/evppkey_ecc.txt.remove-ec openssl-3.0.0-beta1/test/recipes/30-test_evp_data/evppkey_ecc.txt

- --- openssl-3.0.0-beta1/test/recipes/30-test_evp_data/evppkey_ecc.txt.remove-ec	2021-06-30 10:51:23.258816802 +0200

- +++ openssl-3.0.0-beta1/test/recipes/30-test_evp_data/evppkey_ecc.txt	2021-06-30 11:25:33.504721672 +0200

- @@ -1,3 +1,4 @@

- +

-  #

-  # Copyright 2001-2021 The OpenSSL Project Authors. All Rights Reserved.

-  #

- @@ -55,151 +56,6 @@ Derive=BOB_cf_secp256k1

-  PeerKey=ALICE_cf_secp256k1_PUB

-  SharedSecret=a4745cc4d19cabb9e5cb0abdd5c604cab2846a4638ad844ed9175f3cadda2da1

-  

- ------BEGIN PRIVATE KEY-----

- -MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQIEHzAdAgEBBBj1AIQMJ7jqYIKCvxYAS+qKMmKmH0to

- -41k=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_zero_prime192v2_PUB

- ------BEGIN PUBLIC KEY-----

- -MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQIDMgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4Gj7Qqt

- -2wx/jwFlKgvE4rnd50LspdMk

- ------END PUBLIC KEY-----

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_zero_prime192v2

- -PeerKey=BOB_zero_prime192v2_PUB

- -SharedSecret=b8f200a4b87064f2e8600685ca3e69b8e661a117aabc770b

- -

- -PrivateKey=ALICE_zero_prime192v3

- ------BEGIN PRIVATE KEY-----

- -MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQMEHzAdAgEBBBh/maLQMSlea9BfLqGy5NPuK0YAH/cz

- -GqI=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_zero_prime192v3_PUB

- ------BEGIN PUBLIC KEY-----

- -MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQMDMgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZEzb63e2

- -3MKatRLR9Y1M5JEdI9jwMocI

- ------END PUBLIC KEY-----

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_zero_prime192v3

- -PeerKey=BOB_zero_prime192v3_PUB

- -SharedSecret=b5de857d355bc5b9e270a4c290ea9728d764d8b243ff5d8d

- -

- -PrivateKey=ALICE_zero_prime239v1

- ------BEGIN PRIVATE KEY-----

- -MD8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQQEJTAjAgEBBB5pYWzRYI+c6O7NXCt0H2kw8XRL3rhe

- -4MrJT8j++CI=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_zero_prime239v1_PUB

- ------BEGIN PUBLIC KEY-----

- -MFUwEwYHKoZIzj0CAQYIKoZIzj0DAQQDPgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

- -Ox02uwNNLFuvDRn5ip8TxvW0W22R7UzJa9Av6/nh

- ------END PUBLIC KEY-----

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_zero_prime239v1

- -PeerKey=BOB_zero_prime239v1_PUB

- -SharedSecret=6b6206408bd05d42daa2cd224c401a1230b44e184f17b82f385f22dac215

- -

- -PrivateKey=ALICE_zero_prime239v2

- ------BEGIN PRIVATE KEY-----

- -MD8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQUEJTAjAgEBBB5l8bB7Cpmr7vyx9FiOT2wEF3YOFbDG

- -bmRr3Vi/xr4=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_zero_prime239v2_PUB

- ------BEGIN PUBLIC KEY-----

- -MFUwEwYHKoZIzj0CAQYIKoZIzj0DAQUDPgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

- -IOg3VJGQ89d1GWg4Igxcj5xpDmJiP8tv+e4mxt5U

- ------END PUBLIC KEY-----

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_zero_prime239v2

- -PeerKey=BOB_zero_prime239v2_PUB

- -SharedSecret=772c2819c960c78f28f21f6542b7409294fad1f84567c44c4b7678dc0e42

- -

- -PrivateKey=ALICE_zero_prime239v3

- ------BEGIN PRIVATE KEY-----

- -MD8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQYEJTAjAgEBBB5HF5FABzUOTYMZg9UdZTx/oRERm/fU

- -M/+otKzpLjA=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_zero_prime239v3_PUB

- ------BEGIN PUBLIC KEY-----

- -MFUwEwYHKoZIzj0CAQYIKoZIzj0DAQYDPgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

- -AsZ4u6r3qQI78EYBpiSgWjqNpoeShjr5piecMBWj

- ------END PUBLIC KEY-----

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_zero_prime239v3

- -PeerKey=BOB_zero_prime239v3_PUB

- -SharedSecret=56a71f5dd1611e8032c3e2d8224d86e5e8c2fc6480d74c0e282282decd43

- -

- -PrivateKey=ALICE_zero_prime256v1

- ------BEGIN PRIVATE KEY-----

- -MEECAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQcEJzAlAgEBBCDXhMb6aR4JR2+l2tmgYqP0r8S4jtym

- -yH++awvF2nGhhg==

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_zero_prime256v1_PUB

- ------BEGIN PUBLIC KEY-----

- -MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

- -AABmSFx4Di+D1yQzvV2EoGu2VBwq8x2uhxcov4VqF0+T9A==

- ------END PUBLIC KEY-----

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_zero_prime256v1

- -PeerKey=BOB_zero_prime256v1_PUB

- -SharedSecret=c4f5607deb8501f1a4ba23fce4122a4343a17ada2c86a9c8e0d03d92d4a4c84c

- -

- -PrivateKey=ALICE_zero_secp384r1

- ------BEGIN PRIVATE KEY-----

- -ME4CAQAwEAYHKoZIzj0CAQYFK4EEACIENzA1AgEBBDD6kgzKbg28zbQyVTdC0IdHbm0UCQt2Rdbi

- -VVHJeYRSnNpFOiFLaOsGOmwoeZzj6jc=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_zero_secp384r1_PUB

- ------BEGIN PUBLIC KEY-----

- -MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

- -AAAAAAAAAAAAAAAAAAAAPPme8E9RpepjC6P5+WDdWToUyb45/SvSFdO0sIqq+Gu/kn8sRuUqsG+3

- -QriFDlIe

- ------END PUBLIC KEY-----

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_zero_secp384r1

- -PeerKey=BOB_zero_secp384r1_PUB

- -SharedSecret=b1cfeaeef51dfd487d3a8b2849f1592e04d63f2d2c88b310a6290ebfe5399f5ffe954eabd0619231393e56c35b242986

- -

- -PrivateKey=ALICE_zero_secp521r1

- ------BEGIN PRIVATE KEY-----

- -MGACAQAwEAYHKoZIzj0CAQYFK4EEACMESTBHAgEBBEIAbddDLMUWbAsY7l3vbNDmntXuAUcDYPg5

- -w/cgUwSCIvrV9MBeSG8AWqT16riHmHlsn+XI5PAJM6eij3JDahnu9Mo=

- ------END PRIVATE KEY-----

- -

- -PublicKey=BOB_zero_secp521r1_PUB

- ------BEGIN PUBLIC KEY-----

- -MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

- -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0g7J/qa1d8ENJsobtEb0CymeZIsa

- -1Qiq0GiJb+4/jmFLxjBU1Xcr8Bpl1BLgvKqOll0vXTMtfzn4RtRArgAfT4c=

- ------END PUBLIC KEY-----

- -

- -# ECDH Alice with Bob peer

- -Availablein = default

- -Derive=ALICE_zero_secp521r1

- -PeerKey=BOB_zero_secp521r1_PUB

- -SharedSecret=003fc3028f61db94b20c7cd177923b6e73f12f0ab067c9ce8866755e3c82abb39c9863cde74fa80b32520bd7dd0eb156c30c08911503b67b2661f1264d09bb231423

- -

-  Title=prime256v1 curve tests

-  

-  PrivateKey=ALICE_cf_prime256v1

- diff -up openssl-3.0.7/test/recipes/15-test_ec.t.skipshort openssl-3.0.7/test/recipes/15-test_ec.t

- --- openssl-3.0.7/test/recipes/15-test_ec.t.skipshort	2022-11-23 12:40:55.324395782 +0100

- +++ openssl-3.0.7/test/recipes/15-test_ec.t	2022-11-23 12:42:12.478094387 +0100

- @@ -90,7 +90,7 @@ subtest 'Ed448 conversions -- public key

-  

-  subtest 'Check loading of fips and non-fips keys' => sub {

-      plan skip_all => "FIPS is disabled"

- -        if $no_fips;

- +        if 1; #Red Hat specific, original value is $no_fips;

-  

-      plan tests => 2;

+  my @prime_curves = qw(

+ -    secp112r1

+ -    secp112r2

+ -    secp128r1

+ -    secp128r2

+ -    secp160k1

+ -    secp160r1

+ -    secp160r2

+ -    secp192k1

+ -    secp224k1

+      secp224r1

+      secp256k1

+      secp384r1

+      secp521r1

+ -    prime192v1

+ -    prime192v2

+ -    prime192v3

+ -    prime239v1

+ -    prime239v2

+ -    prime239v3

+      prime256v1

+ -    wap-wsg-idm-ecid-wtls6

+ -    wap-wsg-idm-ecid-wtls7

+ -    wap-wsg-idm-ecid-wtls8

+ -    wap-wsg-idm-ecid-wtls9

+ -    wap-wsg-idm-ecid-wtls12

+ -    brainpoolP160r1

+ -    brainpoolP160t1

+ -    brainpoolP192r1

+ -    brainpoolP192t1

+ -    brainpoolP224r1

+ -    brainpoolP224t1

+      brainpoolP256r1

+      brainpoolP256t1

+      brainpoolP320r1

+ @@ -136,7 +110,6 @@ push(@other_curves, 'SM2')

+      if !disabled("sm2");

   

+  my @curve_aliases = qw(

+ -    P-192

+      P-224

+      P-256

+      P-384

@@ -0,0 +1,36 @@ 

+ diff -up ./test/recipes/15-test_ec.t.skip-tests ./test/recipes/15-test_ec.t

+ --- ./test/recipes/15-test_ec.t.skip-tests	2023-03-14 13:42:38.865508269 +0100

+ +++ ./test/recipes/15-test_ec.t	2023-03-14 13:43:36.237021635 +0100

+ @@ -90,7 +90,7 @@ subtest 'Ed448 conversions -- public key

+  

+  subtest 'Check loading of fips and non-fips keys' => sub {

+      plan skip_all => "FIPS is disabled"

+ -        if $no_fips;

+ +        if 1; #Red Hat specific, original value is $no_fips;

+  

+      plan tests => 2;

+  

+ diff -up ./test/recipes/65-test_cmp_protect.t.skip-tests ./test/recipes/65-test_cmp_protect.t

+ --- ./test/recipes/65-test_cmp_protect.t.skip-tests	2023-03-14 10:13:11.342056559 +0100

+ +++ ./test/recipes/65-test_cmp_protect.t	2023-03-14 10:14:42.643873496 +0100

+ @@ -27,7 +27,7 @@ plan skip_all => "This test is not suppo

+  plan skip_all => "This test is not supported in a shared library build on Windows"

+      if $^O eq 'MSWin32' && !disabled("shared");

+  

+ -plan tests => 2 + ($no_fips ? 0 : 1); #fips test

+ +plan skip_all => 2 + ($no_fips ? 0 : 1); #fips test

+  

+  my @basic_cmd = ("cmp_protect_test",

+                   data_file("server.pem"),

+ diff -up ./test/recipes/65-test_cmp_vfy.t.skip-tests ./test/recipes/65-test_cmp_vfy.t

+ --- ./test/recipes/65-test_cmp_vfy.t.skip-tests	2023-03-14 10:13:38.106296042 +0100

+ +++ ./test/recipes/65-test_cmp_vfy.t	2023-03-14 10:16:56.496071178 +0100

+ @@ -27,7 +27,7 @@ plan skip_all => "This test is not suppo

+  plan skip_all => "This test is not supported in a no-ec build"

+      if disabled("ec");

+  

+ -plan tests => 2 + ($no_fips ? 0 : 1); #fips test

+ +plan skip_all => 2 + ($no_fips ? 0 : 1); #fips test

+  

+  my @basic_cmd = ("cmp_vfy_test",

+                   data_file("server.crt"),     data_file("client.crt"),

@@ -434,9 +434,9 @@ 

  +                evpkdf_x942_des.txt

  +                evpmac_cmac_des.txt

  +               ) unless $no_des;

+  push @defltfiles, qw(evppkey_brainpool.txt) unless $no_ec;

   push @defltfiles, qw(evppkey_sm2.txt) unless $no_sm2;

   

-  plan tests =>

  diff -up openssl-3.0.1/test/recipes/30-test_evp_data/evpmac_common.txt.fipsmin3 openssl-3.0.1/test/recipes/30-test_evp_data/evpmac_common.txt

  --- openssl-3.0.1/test/recipes/30-test_evp_data/evpmac_common.txt.fipsmin3	2022-05-05 14:46:32.721700697 +0200

  +++ openssl-3.0.1/test/recipes/30-test_evp_data/evpmac_common.txt	2022-05-05 14:51:40.205418897 +0200

file removed
-628
@@ -1,628 +0,0 @@ 

- /*

-  * Copyright 2002-2021 The OpenSSL Project Authors. All Rights Reserved.

-  * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved

-  *

-  * Licensed under the Apache License 2.0 (the "License").  You may not use

-  * this file except in compliance with the License.  You can obtain a copy

-  * in the file LICENSE in the source distribution or at

-  * https://www.openssl.org/source/license.html

-  */

- 

- /*

-  * ECDSA low level APIs are deprecated for public use, but still ok for

-  * internal use.

-  */

- #include "internal/deprecated.h"

- 

- #include <string.h>

- #include "ec_local.h"

- #include <openssl/err.h>

- #include <openssl/obj_mac.h>

- #include <openssl/objects.h>

- #include <openssl/opensslconf.h>

- #include "internal/nelem.h"

- 

- typedef struct {

-     int field_type,             /* either NID_X9_62_prime_field or

-                                  * NID_X9_62_characteristic_two_field */

-      seed_len, param_len;

-     unsigned int cofactor;      /* promoted to BN_ULONG */

- } EC_CURVE_DATA;

- 

- /* the nist prime curves */

- static const struct {

-     EC_CURVE_DATA h;

-     unsigned char data[20 + 28 * 6];

- } _EC_NIST_PRIME_224 = {

-     {

-         NID_X9_62_prime_field, 20, 28, 1

-     },

-     {

-         /* seed */

-         0xBD, 0x71, 0x34, 0x47, 0x99, 0xD5, 0xC7, 0xFC, 0xDC, 0x45, 0xB5, 0x9F,

-         0xA3, 0xB9, 0xAB, 0x8F, 0x6A, 0x94, 0x8B, 0xC5,

-         /* p */

-         0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,

-         0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

-         0x00, 0x00, 0x00, 0x01,

-         /* a */

-         0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,

-         0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,

-         0xFF, 0xFF, 0xFF, 0xFE,

-         /* b */

-         0xB4, 0x05, 0x0A, 0x85, 0x0C, 0x04, 0xB3, 0xAB, 0xF5, 0x41, 0x32, 0x56,

-         0x50, 0x44, 0xB0, 0xB7, 0xD7, 0xBF, 0xD8, 0xBA, 0x27, 0x0B, 0x39, 0x43,

-         0x23, 0x55, 0xFF, 0xB4,

-         /* x */

-         0xB7, 0x0E, 0x0C, 0xBD, 0x6B, 0xB4, 0xBF, 0x7F, 0x32, 0x13, 0x90, 0xB9,

-         0x4A, 0x03, 0xC1, 0xD3, 0x56, 0xC2, 0x11, 0x22, 0x34, 0x32, 0x80, 0xD6,

-         0x11, 0x5C, 0x1D, 0x21,

-         /* y */

-         0xbd, 0x37, 0x63, 0x88, 0xb5, 0xf7, 0x23, 0xfb, 0x4c, 0x22, 0xdf, 0xe6,

-         0xcd, 0x43, 0x75, 0xa0, 0x5a, 0x07, 0x47, 0x64, 0x44, 0xd5, 0x81, 0x99,

-         0x85, 0x00, 0x7e, 0x34,

-         /* order */

-         0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,

-         0xFF, 0xFF, 0x16, 0xA2, 0xE0, 0xB8, 0xF0, 0x3E, 0x13, 0xDD, 0x29, 0x45,

-         0x5C, 0x5C, 0x2A, 0x3D

-     }

- };

- 

- static const struct {

-     EC_CURVE_DATA h;

-     unsigned char data[20 + 48 * 6];

- } _EC_NIST_PRIME_384 = {

-     {

-         NID_X9_62_prime_field, 20, 48, 1

-     },

-     {

-         /* seed */

-         0xA3, 0x35, 0x92, 0x6A, 0xA3, 0x19, 0xA2, 0x7A, 0x1D, 0x00, 0x89, 0x6A,

-         0x67, 0x73, 0xA4, 0x82, 0x7A, 0xCD, 0xAC, 0x73,

-         /* p */

-         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, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF,

-         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,

-         /* a */

-         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, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF,

-         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFC,

-         /* b */

-         0xB3, 0x31, 0x2F, 0xA7, 0xE2, 0x3E, 0xE7, 0xE4, 0x98, 0x8E, 0x05, 0x6B,

-         0xE3, 0xF8, 0x2D, 0x19, 0x18, 0x1D, 0x9C, 0x6E, 0xFE, 0x81, 0x41, 0x12,

-         0x03, 0x14, 0x08, 0x8F, 0x50, 0x13, 0x87, 0x5A, 0xC6, 0x56, 0x39, 0x8D,

-         0x8A, 0x2E, 0xD1, 0x9D, 0x2A, 0x85, 0xC8, 0xED, 0xD3, 0xEC, 0x2A, 0xEF,

-         /* x */

-         0xAA, 0x87, 0xCA, 0x22, 0xBE, 0x8B, 0x05, 0x37, 0x8E, 0xB1, 0xC7, 0x1E,

-         0xF3, 0x20, 0xAD, 0x74, 0x6E, 0x1D, 0x3B, 0x62, 0x8B, 0xA7, 0x9B, 0x98,

-         0x59, 0xF7, 0x41, 0xE0, 0x82, 0x54, 0x2A, 0x38, 0x55, 0x02, 0xF2, 0x5D,

-         0xBF, 0x55, 0x29, 0x6C, 0x3A, 0x54, 0x5E, 0x38, 0x72, 0x76, 0x0A, 0xB7,

-         /* y */

-         0x36, 0x17, 0xde, 0x4a, 0x96, 0x26, 0x2c, 0x6f, 0x5d, 0x9e, 0x98, 0xbf,

-         0x92, 0x92, 0xdc, 0x29, 0xf8, 0xf4, 0x1d, 0xbd, 0x28, 0x9a, 0x14, 0x7c,

-         0xe9, 0xda, 0x31, 0x13, 0xb5, 0xf0, 0xb8, 0xc0, 0x0a, 0x60, 0xb1, 0xce,

-         0x1d, 0x7e, 0x81, 0x9d, 0x7a, 0x43, 0x1d, 0x7c, 0x90, 0xea, 0x0e, 0x5f,

-         /* order */

-         0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,

-         0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,

-         0xC7, 0x63, 0x4D, 0x81, 0xF4, 0x37, 0x2D, 0xDF, 0x58, 0x1A, 0x0D, 0xB2,

-         0x48, 0xB0, 0xA7, 0x7A, 0xEC, 0xEC, 0x19, 0x6A, 0xCC, 0xC5, 0x29, 0x73

-     }

- };

- 

- static const struct {

-     EC_CURVE_DATA h;

-     unsigned char data[20 + 66 * 6];

- } _EC_NIST_PRIME_521 = {

-     {

-         NID_X9_62_prime_field, 20, 66, 1

-     },

-     {

-         /* seed */

-         0xD0, 0x9E, 0x88, 0x00, 0x29, 0x1C, 0xB8, 0x53, 0x96, 0xCC, 0x67, 0x17,

-         0x39, 0x32, 0x84, 0xAA, 0xA0, 0xDA, 0x64, 0xBA,

-         /* p */

-         0x01, 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, 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,

-         /* a */

-         0x01, 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, 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, 0xFC,

-         /* b */

-         0x00, 0x51, 0x95, 0x3E, 0xB9, 0x61, 0x8E, 0x1C, 0x9A, 0x1F, 0x92, 0x9A,

-         0x21, 0xA0, 0xB6, 0x85, 0x40, 0xEE, 0xA2, 0xDA, 0x72, 0x5B, 0x99, 0xB3,

-         0x15, 0xF3, 0xB8, 0xB4, 0x89, 0x91, 0x8E, 0xF1, 0x09, 0xE1, 0x56, 0x19,

-         0x39, 0x51, 0xEC, 0x7E, 0x93, 0x7B, 0x16, 0x52, 0xC0, 0xBD, 0x3B, 0xB1,

-         0xBF, 0x07, 0x35, 0x73, 0xDF, 0x88, 0x3D, 0x2C, 0x34, 0xF1, 0xEF, 0x45,

-         0x1F, 0xD4, 0x6B, 0x50, 0x3F, 0x00,

-         /* x */

-         0x00, 0xC6, 0x85, 0x8E, 0x06, 0xB7, 0x04, 0x04, 0xE9, 0xCD, 0x9E, 0x3E,

-         0xCB, 0x66, 0x23, 0x95, 0xB4, 0x42, 0x9C, 0x64, 0x81, 0x39, 0x05, 0x3F,

-         0xB5, 0x21, 0xF8, 0x28, 0xAF, 0x60, 0x6B, 0x4D, 0x3D, 0xBA, 0xA1, 0x4B,

-         0x5E, 0x77, 0xEF, 0xE7, 0x59, 0x28, 0xFE, 0x1D, 0xC1, 0x27, 0xA2, 0xFF,

-         0xA8, 0xDE, 0x33, 0x48, 0xB3, 0xC1, 0x85, 0x6A, 0x42, 0x9B, 0xF9, 0x7E,

-         0x7E, 0x31, 0xC2, 0xE5, 0xBD, 0x66,

-         /* y */

-         0x01, 0x18, 0x39, 0x29, 0x6a, 0x78, 0x9a, 0x3b, 0xc0, 0x04, 0x5c, 0x8a,

-         0x5f, 0xb4, 0x2c, 0x7d, 0x1b, 0xd9, 0x98, 0xf5, 0x44, 0x49, 0x57, 0x9b,

-         0x44, 0x68, 0x17, 0xaf, 0xbd, 0x17, 0x27, 0x3e, 0x66, 0x2c, 0x97, 0xee,

-         0x72, 0x99, 0x5e, 0xf4, 0x26, 0x40, 0xc5, 0x50, 0xb9, 0x01, 0x3f, 0xad,

-         0x07, 0x61, 0x35, 0x3c, 0x70, 0x86, 0xa2, 0x72, 0xc2, 0x40, 0x88, 0xbe,

-         0x94, 0x76, 0x9f, 0xd1, 0x66, 0x50,

-         /* order */

-         0x01, 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, 0xFA, 0x51, 0x86,

-         0x87, 0x83, 0xBF, 0x2F, 0x96, 0x6B, 0x7F, 0xCC, 0x01, 0x48, 0xF7, 0x09,

-         0xA5, 0xD0, 0x3B, 0xB5, 0xC9, 0xB8, 0x89, 0x9C, 0x47, 0xAE, 0xBB, 0x6F,

-         0xB7, 0x1E, 0x91, 0x38, 0x64, 0x09

-     }

- };

- 

- static const struct {

-     EC_CURVE_DATA h;

-     unsigned char data[20 + 32 * 6];

- } _EC_X9_62_PRIME_256V1 = {

-     {

-         NID_X9_62_prime_field, 20, 32, 1

-     },

-     {

-         /* seed */

-         0xC4, 0x9D, 0x36, 0x08, 0x86, 0xE7, 0x04, 0x93, 0x6A, 0x66, 0x78, 0xE1,

-         0x13, 0x9D, 0x26, 0xB7, 0x81, 0x9F, 0x7E, 0x90,

-         /* p */

-         0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,

-         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,

-         0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,

-         /* a */

-         0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,

-         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,

-         0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC,

-         /* b */

-         0x5A, 0xC6, 0x35, 0xD8, 0xAA, 0x3A, 0x93, 0xE7, 0xB3, 0xEB, 0xBD, 0x55,

-         0x76, 0x98, 0x86, 0xBC, 0x65, 0x1D, 0x06, 0xB0, 0xCC, 0x53, 0xB0, 0xF6,

-         0x3B, 0xCE, 0x3C, 0x3E, 0x27, 0xD2, 0x60, 0x4B,

-         /* x */

-         0x6B, 0x17, 0xD1, 0xF2, 0xE1, 0x2C, 0x42, 0x47, 0xF8, 0xBC, 0xE6, 0xE5,

-         0x63, 0xA4, 0x40, 0xF2, 0x77, 0x03, 0x7D, 0x81, 0x2D, 0xEB, 0x33, 0xA0,

-         0xF4, 0xA1, 0x39, 0x45, 0xD8, 0x98, 0xC2, 0x96,

-         /* y */

-         0x4f, 0xe3, 0x42, 0xe2, 0xfe, 0x1a, 0x7f, 0x9b, 0x8e, 0xe7, 0xeb, 0x4a,

-         0x7c, 0x0f, 0x9e, 0x16, 0x2b, 0xce, 0x33, 0x57, 0x6b, 0x31, 0x5e, 0xce,

-         0xcb, 0xb6, 0x40, 0x68, 0x37, 0xbf, 0x51, 0xf5,

-         /* order */

-         0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,

-         0xFF, 0xFF, 0xFF, 0xFF, 0xBC, 0xE6, 0xFA, 0xAD, 0xA7, 0x17, 0x9E, 0x84,

-         0xF3, 0xB9, 0xCA, 0xC2, 0xFC, 0x63, 0x25, 0x51

-     }

- };

- 

- static const struct {

-     EC_CURVE_DATA h;

-     unsigned char data[0 + 32 * 6];

- } _EC_SECG_PRIME_256K1 = {

-     {

-         NID_X9_62_prime_field, 0, 32, 1

-     },

-     {

-         /* no seed */

-         /* p */

-         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, 0xFE, 0xFF, 0xFF, 0xFC, 0x2F,

-         /* a */

-         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,

-         /* b */

-         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, 0x07,

-         /* x */

-         0x79, 0xBE, 0x66, 0x7E, 0xF9, 0xDC, 0xBB, 0xAC, 0x55, 0xA0, 0x62, 0x95,

-         0xCE, 0x87, 0x0B, 0x07, 0x02, 0x9B, 0xFC, 0xDB, 0x2D, 0xCE, 0x28, 0xD9,

-         0x59, 0xF2, 0x81, 0x5B, 0x16, 0xF8, 0x17, 0x98,

-         /* y */

-         0x48, 0x3a, 0xda, 0x77, 0x26, 0xa3, 0xc4, 0x65, 0x5d, 0xa4, 0xfb, 0xfc,

-         0x0e, 0x11, 0x08, 0xa8, 0xfd, 0x17, 0xb4, 0x48, 0xa6, 0x85, 0x54, 0x19,

-         0x9c, 0x47, 0xd0, 0x8f, 0xfb, 0x10, 0xd4, 0xb8,

-         /* order */

-         0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,

-         0xFF, 0xFF, 0xFF, 0xFE, 0xBA, 0xAE, 0xDC, 0xE6, 0xAF, 0x48, 0xA0, 0x3B,

-         0xBF, 0xD2, 0x5E, 0x8C, 0xD0, 0x36, 0x41, 0x41

-     }

- };

- 

- typedef struct _ec_list_element_st {

-     int nid;

-     const EC_CURVE_DATA *data;

-     const EC_METHOD *(*meth) (void);

-     const char *comment;

- } ec_list_element;

- 

- #ifdef FIPS_MODULE

- static const ec_list_element curve_list[] = {

-     /* prime field curves */

-     /* secg curves */

-     {NID_secp224r1, &_EC_NIST_PRIME_224.h,

- # if !defined(OPENSSL_NO_EC_NISTP_64_GCC_128)

-      EC_GFp_nistp224_method,

- # else

-      0,

- # endif

-      "NIST/SECG curve over a 224 bit prime field"},

-     /* SECG secp256r1 is the same as X9.62 prime256v1 and hence omitted */

-     {NID_secp384r1, &_EC_NIST_PRIME_384.h,

- # if defined(S390X_EC_ASM)

-      EC_GFp_s390x_nistp384_method,

- # else

-      0,

- # endif

-      "NIST/SECG curve over a 384 bit prime field"},

- 

-     {NID_secp521r1, &_EC_NIST_PRIME_521.h,

- # if defined(S390X_EC_ASM)

-      EC_GFp_s390x_nistp521_method,

- # elif !defined(OPENSSL_NO_EC_NISTP_64_GCC_128)

-      EC_GFp_nistp521_method,

- # else

-      0,

- # endif

-      "NIST/SECG curve over a 521 bit prime field"},

- 

-     /* X9.62 curves */

-     {NID_X9_62_prime256v1, &_EC_X9_62_PRIME_256V1.h,

- # if defined(ECP_NISTZ256_ASM)

-      EC_GFp_nistz256_method,

- # elif defined(S390X_EC_ASM)

-      EC_GFp_s390x_nistp256_method,

- # elif !defined(OPENSSL_NO_EC_NISTP_64_GCC_128)

-      EC_GFp_nistp256_method,

- # else

-      0,

- # endif

-      "X9.62/SECG curve over a 256 bit prime field"},

- };

- 

- #else

- 

- static const ec_list_element curve_list[] = {

-     /* prime field curves */

-     /* secg curves */

- # ifndef OPENSSL_NO_EC_NISTP_64_GCC_128

-     {NID_secp224r1, &_EC_NIST_PRIME_224.h, EC_GFp_nistp224_method,

-      "NIST/SECG curve over a 224 bit prime field"},

- # else

-     {NID_secp224r1, &_EC_NIST_PRIME_224.h, 0,

-      "NIST/SECG curve over a 224 bit prime field"},

- # endif

-     {NID_secp256k1, &_EC_SECG_PRIME_256K1.h, 0,

-      "SECG curve over a 256 bit prime field"},

-     /* SECG secp256r1 is the same as X9.62 prime256v1 and hence omitted */

-     {NID_secp384r1, &_EC_NIST_PRIME_384.h,

- # if defined(S390X_EC_ASM)

-      EC_GFp_s390x_nistp384_method,

- # else

-      0,

- # endif

-      "NIST/SECG curve over a 384 bit prime field"},

-     {NID_secp521r1, &_EC_NIST_PRIME_521.h,

- # if defined(S390X_EC_ASM)

-      EC_GFp_s390x_nistp521_method,

- # elif !defined(OPENSSL_NO_EC_NISTP_64_GCC_128)

-      EC_GFp_nistp521_method,

- # else

-      0,

- # endif

-      "NIST/SECG curve over a 521 bit prime field"},

-     /* X9.62 curves */

-     {NID_X9_62_prime256v1, &_EC_X9_62_PRIME_256V1.h,

- # if defined(ECP_NISTZ256_ASM)

-      EC_GFp_nistz256_method,

- # elif defined(S390X_EC_ASM)

-      EC_GFp_s390x_nistp256_method,

- # elif !defined(OPENSSL_NO_EC_NISTP_64_GCC_128)

-      EC_GFp_nistp256_method,

- # else

-      0,

- # endif

-      "X9.62/SECG curve over a 256 bit prime field"},

- };

- #endif /* FIPS_MODULE */

- 

- #define curve_list_length OSSL_NELEM(curve_list)

- 

- static const ec_list_element *ec_curve_nid2curve(int nid)

- {

-     size_t i;

- 

-     if (nid <= 0)

-         return NULL;

- 

-     for (i = 0; i < curve_list_length; i++) {

-         if (curve_list[i].nid == nid)

-             return &curve_list[i];

-     }

-     return NULL;

- }

- 

- static EC_GROUP *ec_group_new_from_data(OSSL_LIB_CTX *libctx,

-                                         const char *propq,

-                                         const ec_list_element curve)

- {

-     EC_GROUP *group = NULL;

-     EC_POINT *P = NULL;

-     BN_CTX *ctx = NULL;

-     BIGNUM *p = NULL, *a = NULL, *b = NULL, *x = NULL, *y = NULL, *order =

-         NULL;

-     int ok = 0;

-     int seed_len, param_len;

-     const EC_METHOD *meth;

-     const EC_CURVE_DATA *data;

-     const unsigned char *params;

- 

-     /* If no curve data curve method must handle everything */

-     if (curve.data == NULL)

-         return ossl_ec_group_new_ex(libctx, propq,

-                                     curve.meth != NULL ? curve.meth() : NULL);

- 

-     if ((ctx = BN_CTX_new_ex(libctx)) == NULL) {

-         ERR_raise(ERR_LIB_EC, ERR_R_MALLOC_FAILURE);

-         goto err;

-     }

- 

-     data = curve.data;

-     seed_len = data->seed_len;

-     param_len = data->param_len;

-     params = (const unsigned char *)(data + 1); /* skip header */

-     params += seed_len;         /* skip seed */

- 

-     if ((p = BN_bin2bn(params + 0 * param_len, param_len, NULL)) == NULL

-         || (a = BN_bin2bn(params + 1 * param_len, param_len, NULL)) == NULL

-         || (b = BN_bin2bn(params + 2 * param_len, param_len, NULL)) == NULL) {

-         ERR_raise(ERR_LIB_EC, ERR_R_BN_LIB);

-         goto err;

-     }

- 

-     if (curve.meth != 0) {

-         meth = curve.meth();

-         if (((group = ossl_ec_group_new_ex(libctx, propq, meth)) == NULL) ||

-             (!(group->meth->group_set_curve(group, p, a, b, ctx)))) {

-             ERR_raise(ERR_LIB_EC, ERR_R_EC_LIB);

-             goto err;

-         }

-     } else if (data->field_type == NID_X9_62_prime_field) {

-         if ((group = EC_GROUP_new_curve_GFp(p, a, b, ctx)) == NULL) {

-             ERR_raise(ERR_LIB_EC, ERR_R_EC_LIB);

-             goto err;

-         }

-     }

- #ifndef OPENSSL_NO_EC2M

-     else {                      /* field_type ==

-                                  * NID_X9_62_characteristic_two_field */

- 

-         if ((group = EC_GROUP_new_curve_GF2m(p, a, b, ctx)) == NULL) {

-             ERR_raise(ERR_LIB_EC, ERR_R_EC_LIB);

-             goto err;

-         }

-     }

- #endif

- 

-     EC_GROUP_set_curve_name(group, curve.nid);

- 

-     if ((P = EC_POINT_new(group)) == NULL) {

-         ERR_raise(ERR_LIB_EC, ERR_R_EC_LIB);

-         goto err;

-     }

- 

-     if ((x = BN_bin2bn(params + 3 * param_len, param_len, NULL)) == NULL

-         || (y = BN_bin2bn(params + 4 * param_len, param_len, NULL)) == NULL) {

-         ERR_raise(ERR_LIB_EC, ERR_R_BN_LIB);

-         goto err;

-     }

-     if (!EC_POINT_set_affine_coordinates(group, P, x, y, ctx)) {

-         ERR_raise(ERR_LIB_EC, ERR_R_EC_LIB);

-         goto err;

-     }

-     if ((order = BN_bin2bn(params + 5 * param_len, param_len, NULL)) == NULL

-         || !BN_set_word(x, (BN_ULONG)data->cofactor)) {

-         ERR_raise(ERR_LIB_EC, ERR_R_BN_LIB);

-         goto err;

-     }

-     if (!EC_GROUP_set_generator(group, P, order, x)) {

-         ERR_raise(ERR_LIB_EC, ERR_R_EC_LIB);

-         goto err;

-     }

-     if (seed_len) {

-         if (!EC_GROUP_set_seed(group, params - seed_len, seed_len)) {

-             ERR_raise(ERR_LIB_EC, ERR_R_EC_LIB);

-             goto err;

-         }

-     }

-     ok = 1;

-  err:

-     if (!ok) {

-         EC_GROUP_free(group);

-         group = NULL;

-     }

-     EC_POINT_free(P);

-     BN_CTX_free(ctx);

-     BN_free(p);

-     BN_free(a);

-     BN_free(b);

-     BN_free(order);

-     BN_free(x);

-     BN_free(y);

-     return group;

- }

- 

- EC_GROUP *EC_GROUP_new_by_curve_name_ex(OSSL_LIB_CTX *libctx, const char *propq,

-                                         int nid)

- {

-     EC_GROUP *ret = NULL;

-     const ec_list_element *curve;

- 

-     if ((curve = ec_curve_nid2curve(nid)) == NULL

-         || (ret = ec_group_new_from_data(libctx, propq, *curve)) == NULL) {

- #ifndef FIPS_MODULE

-         ERR_raise_data(ERR_LIB_EC, EC_R_UNKNOWN_GROUP,

-                        "name=%s", OBJ_nid2sn(nid));

- #else

-         ERR_raise(ERR_LIB_EC, EC_R_UNKNOWN_GROUP);

- #endif

-         return NULL;

-     }

- 

-     return ret;

- }

- 

- #ifndef FIPS_MODULE

- EC_GROUP *EC_GROUP_new_by_curve_name(int nid)

- {

-     return EC_GROUP_new_by_curve_name_ex(NULL, NULL, nid);

- }

- #endif

- 

- size_t EC_get_builtin_curves(EC_builtin_curve *r, size_t nitems)

- {

-     size_t i, min;

- 

-     if (r == NULL || nitems == 0)

-         return curve_list_length;

- 

-     min = nitems < curve_list_length ? nitems : curve_list_length;

- 

-     for (i = 0; i < min; i++) {

-         r[i].nid = curve_list[i].nid;

-         r[i].comment = curve_list[i].comment;

-     }

- 

-     return curve_list_length;

- }

- 

- const char *EC_curve_nid2nist(int nid)

- {

-     return ossl_ec_curve_nid2nist_int(nid);

- }

- 

- int EC_curve_nist2nid(const char *name)

- {

-     return ossl_ec_curve_nist2nid_int(name);

- }

- 

- #define NUM_BN_FIELDS 6

- /*

-  * Validates EC domain parameter data for known named curves.

-  * This can be used when a curve is loaded explicitly (without a curve

-  * name) or to validate that domain parameters have not been modified.

-  *

-  * Returns: The nid associated with the found named curve, or NID_undef

-  *          if not found. If there was an error it returns -1.

-  */

- int ossl_ec_curve_nid_from_params(const EC_GROUP *group, BN_CTX *ctx)

- {

-     int ret = -1, nid, len, field_type, param_len;

-     size_t i, seed_len;

-     const unsigned char *seed, *params_seed, *params;

-     unsigned char *param_bytes = NULL;

-     const EC_CURVE_DATA *data;

-     const EC_POINT *generator = NULL;

-     const BIGNUM *cofactor = NULL;

-     /* An array of BIGNUMs for (p, a, b, x, y, order) */

-     BIGNUM *bn[NUM_BN_FIELDS] = {NULL, NULL, NULL, NULL, NULL, NULL};

- 

-     /* Use the optional named curve nid as a search field */

-     nid = EC_GROUP_get_curve_name(group);

-     field_type = EC_GROUP_get_field_type(group);

-     seed_len = EC_GROUP_get_seed_len(group);

-     seed = EC_GROUP_get0_seed(group);

-     cofactor = EC_GROUP_get0_cofactor(group);

- 

-     BN_CTX_start(ctx);

- 

-     /*

-      * The built-in curves contains data fields (p, a, b, x, y, order) that are

-      * all zero-padded to be the same size. The size of the padding is

-      * determined by either the number of bytes in the field modulus (p) or the

-      * EC group order, whichever is larger.

-      */

-     param_len = BN_num_bytes(group->order);

-     len = BN_num_bytes(group->field);

-     if (len > param_len)

-         param_len = len;

- 

-     /* Allocate space to store the padded data for (p, a, b, x, y, order)  */

-     param_bytes = OPENSSL_malloc(param_len * NUM_BN_FIELDS);

-     if (param_bytes == NULL)

-         goto end;

- 

-     /* Create the bignums */

-     for (i = 0; i < NUM_BN_FIELDS; ++i) {

-         if ((bn[i] = BN_CTX_get(ctx)) == NULL)

-             goto end;

-     }

-     /*

-      * Fill in the bn array with the same values as the internal curves

-      * i.e. the values are p, a, b, x, y, order.

-      */

-     /* Get p, a & b */

-     if (!(EC_GROUP_get_curve(group, bn[0], bn[1], bn[2], ctx)

-         && ((generator = EC_GROUP_get0_generator(group)) != NULL)

-         /* Get x & y */

-         && EC_POINT_get_affine_coordinates(group, generator, bn[3], bn[4], ctx)

-         /* Get order */

-         && EC_GROUP_get_order(group, bn[5], ctx)))

-         goto end;

- 

-    /*

-      * Convert the bignum array to bytes that are joined together to form

-      * a single buffer that contains data for all fields.

-      * (p, a, b, x, y, order) are all zero padded to be the same size.

-      */

-     for (i = 0; i < NUM_BN_FIELDS; ++i) {

-         if (BN_bn2binpad(bn[i], &param_bytes[i*param_len], param_len) <= 0)

-             goto end;

-     }

- 

-     for (i = 0; i < curve_list_length; i++) {

-         const ec_list_element curve = curve_list[i];

- 

-         data = curve.data;

-         /* Get the raw order byte data */

-         params_seed = (const unsigned char *)(data + 1); /* skip header */

-         params = params_seed + data->seed_len;

- 

-         /* Look for unique fields in the fixed curve data */

-         if (data->field_type == field_type

-             && param_len == data->param_len

-             && (nid <= 0 || nid == curve.nid)

-             /* check the optional cofactor (ignore if its zero) */

-             && (BN_is_zero(cofactor)

-                 || BN_is_word(cofactor, (const BN_ULONG)curve.data->cofactor))

-             /* Check the optional seed (ignore if its not set) */

-             && (data->seed_len == 0 || seed_len == 0

-                 || ((size_t)data->seed_len == seed_len

-                      && memcmp(params_seed, seed, seed_len) == 0))

-             /* Check that the groups params match the built-in curve params */

-             && memcmp(param_bytes, params, param_len * NUM_BN_FIELDS)

-                              == 0) {

-             ret = curve.nid;

-             goto end;

-         }

-     }

-     /* Gets here if the group was not found */

-     ret = NID_undef;

- end:

-     OPENSSL_free(param_bytes);

-     BN_CTX_end(ctx);

-     return ret;

- }

file removed
-2311
@@ -1,2311 +0,0 @@ 

- /*

-  * Copyright 2001-2021 The OpenSSL Project Authors. All Rights Reserved.

-  * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved

-  *

-  * Licensed under the Apache License 2.0 (the "License").  You may not use

-  * this file except in compliance with the License.  You can obtain a copy

-  * in the file LICENSE in the source distribution or at

-  * https://www.openssl.org/source/license.html

-  */

- 

- /*

-  * EC_KEY low level APIs are deprecated for public use, but still ok for

-  * internal use.

-  */

- #include "internal/deprecated.h"

- 

- #include <string.h>

- #include "internal/nelem.h"

- #include "testutil.h"

- 

- #include <openssl/ec.h>

- #ifndef OPENSSL_NO_ENGINE

- # include <openssl/engine.h>

- #endif

- #include <openssl/err.h>

- #include <openssl/obj_mac.h>

- #include <openssl/objects.h>

- #include <openssl/rand.h>

- #include <openssl/bn.h>

- #include <openssl/opensslconf.h>

- #include <openssl/core_names.h>

- #include <openssl/param_build.h>

- #include <openssl/evp.h>

- 

- static size_t crv_len = 0;

- static EC_builtin_curve *curves = NULL;

- 

- /* test multiplication with group order, long and negative scalars */

- static int group_order_tests(EC_GROUP *group)

- {

-     BIGNUM *n1 = NULL, *n2 = NULL, *order = NULL;

-     EC_POINT *P = NULL, *Q = NULL, *R = NULL, *S = NULL;

-     const EC_POINT *G = NULL;

-     BN_CTX *ctx = NULL;

-     int i = 0, r = 0;

- 

-     if (!TEST_ptr(n1 = BN_new())

-         || !TEST_ptr(n2 = BN_new())

-         || !TEST_ptr(order = BN_new())

-         || !TEST_ptr(ctx = BN_CTX_new())

-         || !TEST_ptr(G = EC_GROUP_get0_generator(group))

-         || !TEST_ptr(P = EC_POINT_new(group))

-         || !TEST_ptr(Q = EC_POINT_new(group))

-         || !TEST_ptr(R = EC_POINT_new(group))

-         || !TEST_ptr(S = EC_POINT_new(group)))

-         goto err;

- 

-     if (!TEST_true(EC_GROUP_get_order(group, order, ctx))

-         || !TEST_true(EC_POINT_mul(group, Q, order, NULL, NULL, ctx))

-         || !TEST_true(EC_POINT_is_at_infinity(group, Q))

- #ifndef OPENSSL_NO_DEPRECATED_3_0

-         || !TEST_true(EC_GROUP_precompute_mult(group, ctx))

- #endif

-         || !TEST_true(EC_POINT_mul(group, Q, order, NULL, NULL, ctx))

-         || !TEST_true(EC_POINT_is_at_infinity(group, Q))

-         || !TEST_true(EC_POINT_copy(P, G))

-         || !TEST_true(BN_one(n1))

-         || !TEST_true(EC_POINT_mul(group, Q, n1, NULL, NULL, ctx))

-         || !TEST_int_eq(0, EC_POINT_cmp(group, Q, P, ctx))

-         || !TEST_true(BN_sub(n1, order, n1))

-         || !TEST_true(EC_POINT_mul(group, Q, n1, NULL, NULL, ctx))

-         || !TEST_true(EC_POINT_invert(group, Q, ctx))

-         || !TEST_int_eq(0, EC_POINT_cmp(group, Q, P, ctx)))

-         goto err;

- 

-     for (i = 1; i <= 2; i++) {

- #ifndef OPENSSL_NO_DEPRECATED_3_0

-         const BIGNUM *scalars[6];

-         const EC_POINT *points[6];

- #endif

- 

-         if (!TEST_true(BN_set_word(n1, i))

-             /*

-              * If i == 1, P will be the predefined generator for which

-              * EC_GROUP_precompute_mult has set up precomputation.

-              */

-             || !TEST_true(EC_POINT_mul(group, P, n1, NULL, NULL, ctx))

-             || (i == 1 && !TEST_int_eq(0, EC_POINT_cmp(group, P, G, ctx)))

-             || !TEST_true(BN_one(n1))

-             /* n1 = 1 - order */

-             || !TEST_true(BN_sub(n1, n1, order))

-             || !TEST_true(EC_POINT_mul(group, Q, NULL, P, n1, ctx))

-             || !TEST_int_eq(0, EC_POINT_cmp(group, Q, P, ctx))

- 

-             /* n2 = 1 + order */

-             || !TEST_true(BN_add(n2, order, BN_value_one()))

-             || !TEST_true(EC_POINT_mul(group, Q, NULL, P, n2, ctx))

-             || !TEST_int_eq(0, EC_POINT_cmp(group, Q, P, ctx))

- 

-             /* n2 = (1 - order) * (1 + order) = 1 - order^2 */

-             || !TEST_true(BN_mul(n2, n1, n2, ctx))

-             || !TEST_true(EC_POINT_mul(group, Q, NULL, P, n2, ctx))

-             || !TEST_int_eq(0, EC_POINT_cmp(group, Q, P, ctx)))

-             goto err;

- 

-         /* n2 = order^2 - 1 */

-         BN_set_negative(n2, 0);

-         if (!TEST_true(EC_POINT_mul(group, Q, NULL, P, n2, ctx))

-             /* Add P to verify the result. */

-             || !TEST_true(EC_POINT_add(group, Q, Q, P, ctx))

-             || !TEST_true(EC_POINT_is_at_infinity(group, Q))

-             || !TEST_false(EC_POINT_is_at_infinity(group, P)))

-             goto err;

- 

- #ifndef OPENSSL_NO_DEPRECATED_3_0

-         /* Exercise EC_POINTs_mul, including corner cases. */

-         scalars[0] = scalars[1] = BN_value_one();

-         points[0]  = points[1]  = P;

- 

-         if (!TEST_true(EC_POINTs_mul(group, R, NULL, 2, points, scalars, ctx))

-             || !TEST_true(EC_POINT_dbl(group, S, points[0], ctx))

-             || !TEST_int_eq(0, EC_POINT_cmp(group, R, S, ctx)))

-             goto err;

- 

-         scalars[0] = n1;

-         points[0] = Q;          /* => infinity */

-         scalars[1] = n2;

-         points[1] = P;          /* => -P */

-         scalars[2] = n1;

-         points[2] = Q;          /* => infinity */

-         scalars[3] = n2;

-         points[3] = Q;          /* => infinity */

-         scalars[4] = n1;

-         points[4] = P;          /* => P */

-         scalars[5] = n2;

-         points[5] = Q;          /* => infinity */

-         if (!TEST_true(EC_POINTs_mul(group, P, NULL, 6, points, scalars, ctx))

-             || !TEST_true(EC_POINT_is_at_infinity(group, P)))

-             goto err;

- #endif

-     }

- 

-     r = 1;

- err:

-     if (r == 0 && i != 0)

-         TEST_info(i == 1 ? "allowing precomputation" :

-                            "without precomputation");

-     EC_POINT_free(P);

-     EC_POINT_free(Q);

-     EC_POINT_free(R);

-     EC_POINT_free(S);

-     BN_free(n1);

-     BN_free(n2);

-     BN_free(order);

-     BN_CTX_free(ctx);

-     return r;

- }

- 

- static int prime_field_tests(void)

- {

-     BN_CTX *ctx = NULL;

-     BIGNUM *p = NULL, *a = NULL, *b = NULL, *scalar3 = NULL;

-     EC_GROUP *group = NULL;

-     EC_POINT *P = NULL, *Q = NULL, *R = NULL;

-     BIGNUM *x = NULL, *y = NULL, *z = NULL, *yplusone = NULL;

- #ifndef OPENSSL_NO_DEPRECATED_3_0

-     const EC_POINT *points[4];

-     const BIGNUM *scalars[4];

- #endif

-     unsigned char buf[100];

-     size_t len, r = 0;

-     int k;

- 

-     if (!TEST_ptr(ctx = BN_CTX_new())

-         || !TEST_ptr(p = BN_new())

-         || !TEST_ptr(a = BN_new())

-         || !TEST_ptr(b = BN_new())

-         /*

-          * applications should use EC_GROUP_new_curve_GFp so

-          * that the library gets to choose the EC_METHOD

-          */

-         || !TEST_ptr(group = EC_GROUP_new(EC_GFp_mont_method())))

-         goto err;

- 

-     buf[0] = 0;

-     if (!TEST_ptr(P = EC_POINT_new(group))

-         || !TEST_ptr(Q = EC_POINT_new(group))

-         || !TEST_ptr(R = EC_POINT_new(group))

-         || !TEST_ptr(x = BN_new())

-         || !TEST_ptr(y = BN_new())

-         || !TEST_ptr(z = BN_new())

-         || !TEST_ptr(yplusone = BN_new()))

-         goto err;

- 

-     /* Curve P-224 (FIPS PUB 186-2, App. 6) */

- 

-     if (!TEST_true(BN_hex2bn(&p,         "FFFFFFFFFFFFFFFFFFFFFFFF"

-                                     "FFFFFFFF000000000000000000000001"))

-         || !TEST_int_eq(1, BN_check_prime(p, ctx, NULL))

-         || !TEST_true(BN_hex2bn(&a,         "FFFFFFFFFFFFFFFFFFFFFFFF"

-                                     "FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFE"))

-         || !TEST_true(BN_hex2bn(&b,         "B4050A850C04B3ABF5413256"

-                                     "5044B0B7D7BFD8BA270B39432355FFB4"))

-         || !TEST_true(EC_GROUP_set_curve(group, p, a, b, ctx))

-         || !TEST_true(BN_hex2bn(&x,         "B70E0CBD6BB4BF7F321390B9"

-                                     "4A03C1D356C21122343280D6115C1D21"))

-         || !TEST_true(EC_POINT_set_compressed_coordinates(group, P, x, 0, ctx))

-         || !TEST_int_gt(EC_POINT_is_on_curve(group, P, ctx), 0)

-         || !TEST_true(BN_hex2bn(&z,         "FFFFFFFFFFFFFFFFFFFFFFFF"

-                                     "FFFF16A2E0B8F03E13DD29455C5C2A3D"))

-         || !TEST_true(EC_GROUP_set_generator(group, P, z, BN_value_one()))

-         || !TEST_true(EC_POINT_get_affine_coordinates(group, P, x, y, ctx)))

-         goto err;

- 

-     TEST_info("NIST curve P-224 -- Generator");

-     test_output_bignum("x", x);

-     test_output_bignum("y", y);

-     /* G_y value taken from the standard: */

-     if (!TEST_true(BN_hex2bn(&z,         "BD376388B5F723FB4C22DFE6"

-                                  "CD4375A05A07476444D5819985007E34"))

-         || !TEST_BN_eq(y, z)

-         || !TEST_true(BN_add(yplusone, y, BN_value_one()))

-     /*

-      * When (x, y) is on the curve, (x, y + 1) is, as it happens, not,

-      * and therefore setting the coordinates should fail.

-      */

-         || !TEST_false(EC_POINT_set_affine_coordinates(group, P, x, yplusone,

-                                                        ctx))

-         || !TEST_int_eq(EC_GROUP_get_degree(group), 224)

-         || !group_order_tests(group)

- 

-     /* Curve P-256 (FIPS PUB 186-2, App. 6) */

- 

-         || !TEST_true(BN_hex2bn(&p, "FFFFFFFF000000010000000000000000"

-                                     "00000000FFFFFFFFFFFFFFFFFFFFFFFF"))

-         || !TEST_int_eq(1, BN_check_prime(p, ctx, NULL))

-         || !TEST_true(BN_hex2bn(&a, "FFFFFFFF000000010000000000000000"

-                                     "00000000FFFFFFFFFFFFFFFFFFFFFFFC"))

-         || !TEST_true(BN_hex2bn(&b, "5AC635D8AA3A93E7B3EBBD55769886BC"

-                                     "651D06B0CC53B0F63BCE3C3E27D2604B"))

-         || !TEST_true(EC_GROUP_set_curve(group, p, a, b, ctx))

- 

-         || !TEST_true(BN_hex2bn(&x, "6B17D1F2E12C4247F8BCE6E563A440F2"

-                                     "77037D812DEB33A0F4A13945D898C296"))

-         || !TEST_true(EC_POINT_set_compressed_coordinates(group, P, x, 1, ctx))

-         || !TEST_int_gt(EC_POINT_is_on_curve(group, P, ctx), 0)

-         || !TEST_true(BN_hex2bn(&z, "FFFFFFFF00000000FFFFFFFFFFFFFFFF"

-                                     "BCE6FAADA7179E84F3B9CAC2FC632551"))

-         || !TEST_true(EC_GROUP_set_generator(group, P, z, BN_value_one()))

-         || !TEST_true(EC_POINT_get_affine_coordinates(group, P, x, y, ctx)))

-         goto err;

- 

-     TEST_info("NIST curve P-256 -- Generator");

-     test_output_bignum("x", x);

-     test_output_bignum("y", y);

-     /* G_y value taken from the standard: */

-     if (!TEST_true(BN_hex2bn(&z, "4FE342E2FE1A7F9B8EE7EB4A7C0F9E16"

-                                  "2BCE33576B315ECECBB6406837BF51F5"))

-         || !TEST_BN_eq(y, z)

-         || !TEST_true(BN_add(yplusone, y, BN_value_one()))

-     /*

-      * When (x, y) is on the curve, (x, y + 1) is, as it happens, not,

-      * and therefore setting the coordinates should fail.

-      */

-         || !TEST_false(EC_POINT_set_affine_coordinates(group, P, x, yplusone,

-                                                        ctx))

-         || !TEST_int_eq(EC_GROUP_get_degree(group), 256)

-         || !group_order_tests(group)

- 

-     /* Curve P-384 (FIPS PUB 186-2, App. 6) */

- 

-         || !TEST_true(BN_hex2bn(&p, "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"

-                                     "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE"

-                                     "FFFFFFFF0000000000000000FFFFFFFF"))

-         || !TEST_int_eq(1, BN_check_prime(p, ctx, NULL))

-         || !TEST_true(BN_hex2bn(&a, "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"

-                                     "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE"

-                                     "FFFFFFFF0000000000000000FFFFFFFC"))

-         || !TEST_true(BN_hex2bn(&b, "B3312FA7E23EE7E4988E056BE3F82D19"

-                                     "181D9C6EFE8141120314088F5013875A"

-                                     "C656398D8A2ED19D2A85C8EDD3EC2AEF"))

-         || !TEST_true(EC_GROUP_set_curve(group, p, a, b, ctx))

- 

-         || !TEST_true(BN_hex2bn(&x, "AA87CA22BE8B05378EB1C71EF320AD74"

-                                     "6E1D3B628BA79B9859F741E082542A38"

-                                     "5502F25DBF55296C3A545E3872760AB7"))

-         || !TEST_true(EC_POINT_set_compressed_coordinates(group, P, x, 1, ctx))

-         || !TEST_int_gt(EC_POINT_is_on_curve(group, P, ctx), 0)

-         || !TEST_true(BN_hex2bn(&z, "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"

-                                     "FFFFFFFFFFFFFFFFC7634D81F4372DDF"

-                                     "581A0DB248B0A77AECEC196ACCC52973"))

-         || !TEST_true(EC_GROUP_set_generator(group, P, z, BN_value_one()))

-         || !TEST_true(EC_POINT_get_affine_coordinates(group, P, x, y, ctx)))

-         goto err;

- 

-     TEST_info("NIST curve P-384 -- Generator");

-     test_output_bignum("x", x);

-     test_output_bignum("y", y);

-     /* G_y value taken from the standard: */

-     if (!TEST_true(BN_hex2bn(&z, "3617DE4A96262C6F5D9E98BF9292DC29"

-                                  "F8F41DBD289A147CE9DA3113B5F0B8C0"

-                                  "0A60B1CE1D7E819D7A431D7C90EA0E5F"))

-         || !TEST_BN_eq(y, z)

-         || !TEST_true(BN_add(yplusone, y, BN_value_one()))

-     /*

-      * When (x, y) is on the curve, (x, y + 1) is, as it happens, not,

-      * and therefore setting the coordinates should fail.

-      */

-         || !TEST_false(EC_POINT_set_affine_coordinates(group, P, x, yplusone,

-                                                        ctx))

-         || !TEST_int_eq(EC_GROUP_get_degree(group), 384)

-         || !group_order_tests(group)

- 

-     /* Curve P-521 (FIPS PUB 186-2, App. 6) */

-         || !TEST_true(BN_hex2bn(&p,                              "1FF"

-                                     "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"

-                                     "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"

-                                     "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"

-                                     "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"))

-         || !TEST_int_eq(1, BN_check_prime(p, ctx, NULL))

-         || !TEST_true(BN_hex2bn(&a,                              "1FF"

-                                     "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"

-                                     "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"

-                                     "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"

-                                     "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC"))

-         || !TEST_true(BN_hex2bn(&b,                              "051"

-                                     "953EB9618E1C9A1F929A21A0B68540EE"

-                                     "A2DA725B99B315F3B8B489918EF109E1"

-                                     "56193951EC7E937B1652C0BD3BB1BF07"

-                                     "3573DF883D2C34F1EF451FD46B503F00"))

-         || !TEST_true(EC_GROUP_set_curve(group, p, a, b, ctx))

-         || !TEST_true(BN_hex2bn(&x,                               "C6"

-                                     "858E06B70404E9CD9E3ECB662395B442"

-                                     "9C648139053FB521F828AF606B4D3DBA"

-                                     "A14B5E77EFE75928FE1DC127A2FFA8DE"

-                                     "3348B3C1856A429BF97E7E31C2E5BD66"))

-         || !TEST_true(EC_POINT_set_compressed_coordinates(group, P, x, 0, ctx))

-         || !TEST_int_gt(EC_POINT_is_on_curve(group, P, ctx), 0)

-         || !TEST_true(BN_hex2bn(&z,                              "1FF"

-                                     "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"

-                                     "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA"

-                                     "51868783BF2F966B7FCC0148F709A5D0"

-                                     "3BB5C9B8899C47AEBB6FB71E91386409"))

-         || !TEST_true(EC_GROUP_set_generator(group, P, z, BN_value_one()))

-         || !TEST_true(EC_POINT_get_affine_coordinates(group, P, x, y, ctx)))

-         goto err;

- 

-     TEST_info("NIST curve P-521 -- Generator");

-     test_output_bignum("x", x);

-     test_output_bignum("y", y);

-     /* G_y value taken from the standard: */

-     if (!TEST_true(BN_hex2bn(&z,                              "118"

-                                  "39296A789A3BC0045C8A5FB42C7D1BD9"

-                                  "98F54449579B446817AFBD17273E662C"

-                                  "97EE72995EF42640C550B9013FAD0761"

-                                  "353C7086A272C24088BE94769FD16650"))

-         || !TEST_BN_eq(y, z)

-         || !TEST_true(BN_add(yplusone, y, BN_value_one()))

-     /*

-      * When (x, y) is on the curve, (x, y + 1) is, as it happens, not,

-      * and therefore setting the coordinates should fail.

-      */

-         || !TEST_false(EC_POINT_set_affine_coordinates(group, P, x, yplusone,

-                                                        ctx))

-         || !TEST_int_eq(EC_GROUP_get_degree(group), 521)

-         || !group_order_tests(group)

- 

-     /* more tests using the last curve */

- 

-     /* Restore the point that got mangled in the (x, y + 1) test. */

-         || !TEST_true(EC_POINT_set_affine_coordinates(group, P, x, y, ctx))

-         || !TEST_true(EC_POINT_copy(Q, P))

-         || !TEST_false(EC_POINT_is_at_infinity(group, Q))

-         || !TEST_true(EC_POINT_dbl(group, P, P, ctx))

-         || !TEST_int_gt(EC_POINT_is_on_curve(group, P, ctx), 0)

-         || !TEST_true(EC_POINT_invert(group, Q, ctx))       /* P = -2Q */

-         || !TEST_true(EC_POINT_add(group, R, P, Q, ctx))

-         || !TEST_true(EC_POINT_add(group, R, R, Q, ctx))

-         || !TEST_true(EC_POINT_is_at_infinity(group, R))    /* R = P + 2Q */

-         || !TEST_false(EC_POINT_is_at_infinity(group, Q)))

-         goto err;

- 

- #ifndef OPENSSL_NO_DEPRECATED_3_0

-     TEST_note("combined multiplication ...");

-     points[0] = Q;

-     points[1] = Q;

-     points[2] = Q;

-     points[3] = Q;

- 

-     if (!TEST_true(EC_GROUP_get_order(group, z, ctx))

-         || !TEST_true(BN_add(y, z, BN_value_one()))

-         || !TEST_BN_even(y)

-         || !TEST_true(BN_rshift1(y, y)))

-         goto err;

- 

-     scalars[0] = y;         /* (group order + 1)/2, so y*Q + y*Q = Q */

-     scalars[1] = y;

- 

-     /* z is still the group order */

-     if (!TEST_true(EC_POINTs_mul(group, P, NULL, 2, points, scalars, ctx))

-         || !TEST_true(EC_POINTs_mul(group, R, z, 2, points, scalars, ctx))

-         || !TEST_int_eq(0, EC_POINT_cmp(group, P, R, ctx))

-         || !TEST_int_eq(0, EC_POINT_cmp(group, R, Q, ctx))

-         || !TEST_true(BN_rand(y, BN_num_bits(y), 0, 0))

-         || !TEST_true(BN_add(z, z, y)))

-         goto err;

-     BN_set_negative(z, 1);

-     scalars[0] = y;

-     scalars[1] = z;         /* z = -(order + y) */

- 

-     if (!TEST_true(EC_POINTs_mul(group, P, NULL, 2, points, scalars, ctx))

-         || !TEST_true(EC_POINT_is_at_infinity(group, P))

-         || !TEST_true(BN_rand(x, BN_num_bits(y) - 1, 0, 0))

-         || !TEST_true(BN_add(z, x, y)))

-         goto err;

-     BN_set_negative(z, 1);

-     scalars[0] = x;

-     scalars[1] = y;

-     scalars[2] = z;         /* z = -(x+y) */

- 

-     if (!TEST_ptr(scalar3 = BN_new()))

-         goto err;

-     BN_zero(scalar3);

-     scalars[3] = scalar3;

- 

-     if (!TEST_true(EC_POINTs_mul(group, P, NULL, 4, points, scalars, ctx))

-         || !TEST_true(EC_POINT_is_at_infinity(group, P)))

-         goto err;

- #endif

-     TEST_note(" ok\n");

-     r = 1;

- err:

-     BN_CTX_free(ctx);

-     BN_free(p);

-     BN_free(a);

-     BN_free(b);

-     EC_GROUP_free(group);

-     EC_POINT_free(P);

-     EC_POINT_free(Q);

-     EC_POINT_free(R);

-     BN_free(x);

-     BN_free(y);

-     BN_free(z);

-     BN_free(yplusone);

-     BN_free(scalar3);

-     return r;

- }

- 

- static int internal_curve_test(int n)

- {

-     EC_GROUP *group = NULL;

-     int nid = curves[n].nid;

- 

-     if (!TEST_ptr(group = EC_GROUP_new_by_curve_name(nid))) {

-         TEST_info("EC_GROUP_new_curve_name() failed with curve %s\n",

-                   OBJ_nid2sn(nid));

-         return 0;

-     }

-     if (!TEST_true(EC_GROUP_check(group, NULL))) {

-         TEST_info("EC_GROUP_check() failed with curve %s\n", OBJ_nid2sn(nid));

-         EC_GROUP_free(group);

-         return 0;

-     }

-     EC_GROUP_free(group);

-     return 1;

- }

- 

- static int internal_curve_test_method(int n)

- {

-     int r, nid = curves[n].nid;

-     EC_GROUP *group;

- 

-     if (!TEST_ptr(group = EC_GROUP_new_by_curve_name(nid))) {

-         TEST_info("Curve %s failed\n", OBJ_nid2sn(nid));

-         return 0;

-     }

-     r = group_order_tests(group);

-     EC_GROUP_free(group);

-     return r;

- }

- 

- static int group_field_test(void)

- {

-     int r = 1;

-     BIGNUM *secp521r1_field = NULL;

-     BIGNUM *sect163r2_field = NULL;

-     EC_GROUP *secp521r1_group = NULL;

-     EC_GROUP *sect163r2_group = NULL;

- 

-     BN_hex2bn(&secp521r1_field,

-                 "01FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"

-                 "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"

-                 "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"

-                 "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"

-                 "FFFF");

- 

- 

-     BN_hex2bn(&sect163r2_field,

-                 "08000000000000000000000000000000"

-                 "00000000C9");

- 

-     secp521r1_group = EC_GROUP_new_by_curve_name(NID_secp521r1);

-     if (BN_cmp(secp521r1_field, EC_GROUP_get0_field(secp521r1_group)))

-       r = 0;

- 

-     # ifndef OPENSSL_NO_EC2M

-     sect163r2_group = EC_GROUP_new_by_curve_name(NID_sect163r2);

-     if (BN_cmp(sect163r2_field, EC_GROUP_get0_field(sect163r2_group)))

-       r = 0;

-     # endif

- 

-     EC_GROUP_free(secp521r1_group);

-     EC_GROUP_free(sect163r2_group);

-     BN_free(secp521r1_field);

-     BN_free(sect163r2_field);

-     return r;

- }

- /*

-  * nistp_test_params contains magic numbers for testing

-  * several NIST curves with characteristic > 3.

-  */

- struct nistp_test_params {

-     const int nid;

-     int degree;

-     /*

-      * Qx, Qy and D are taken from

-      * http://csrc.nist.gov/groups/ST/toolkit/documents/Examples/ECDSA_Prime.pdf

-      * Otherwise, values are standard curve parameters from FIPS 180-3

-      */

-     const char *p, *a, *b, *Qx, *Qy, *Gx, *Gy, *order, *d;

- };

- 

- static const struct nistp_test_params nistp_tests_params[] = {

-     {

-      /* P-224 */

-      NID_secp224r1,

-      224,

-      /* p */

-      "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000001",

-      /* a */

-      "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFE",

-      /* b */

-      "B4050A850C04B3ABF54132565044B0B7D7BFD8BA270B39432355FFB4",

-      /* Qx */

-      "E84FB0B8E7000CB657D7973CF6B42ED78B301674276DF744AF130B3E",

-      /* Qy */

-      "4376675C6FC5612C21A0FF2D2A89D2987DF7A2BC52183B5982298555",

-      /* Gx */

-      "B70E0CBD6BB4BF7F321390B94A03C1D356C21122343280D6115C1D21",

-      /* Gy */

-      "BD376388B5F723FB4C22DFE6CD4375A05A07476444D5819985007E34",

-      /* order */

-      "FFFFFFFFFFFFFFFFFFFFFFFFFFFF16A2E0B8F03E13DD29455C5C2A3D",

-      /* d */

-      "3F0C488E987C80BE0FEE521F8D90BE6034EC69AE11CA72AA777481E8",

-      },

-     {

-      /* P-256 */

-      NID_X9_62_prime256v1,

-      256,

-      /* p */

-      "ffffffff00000001000000000000000000000000ffffffffffffffffffffffff",

-      /* a */

-      "ffffffff00000001000000000000000000000000fffffffffffffffffffffffc",

-      /* b */

-      "5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b",

-      /* Qx */

-      "b7e08afdfe94bad3f1dc8c734798ba1c62b3a0ad1e9ea2a38201cd0889bc7a19",

-      /* Qy */

-      "3603f747959dbf7a4bb226e41928729063adc7ae43529e61b563bbc606cc5e09",

-      /* Gx */

-      "6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296",

-      /* Gy */

-      "4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5",

-      /* order */

-      "ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551",

-      /* d */

-      "c477f9f65c22cce20657faa5b2d1d8122336f851a508a1ed04e479c34985bf96",

-      },

-     {

-      /* P-521 */

-      NID_secp521r1,

-      521,

-      /* p */

-                                                                   "1ff"

-      "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"

-      "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",

-      /* a */

-                                                                   "1ff"

-      "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"

-      "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc",

-      /* b */

-                                                                   "051"

-      "953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e1"

-      "56193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00",

-      /* Qx */

-                                                                  "0098"

-      "e91eef9a68452822309c52fab453f5f117c1da8ed796b255e9ab8f6410cca16e"

-      "59df403a6bdc6ca467a37056b1e54b3005d8ac030decfeb68df18b171885d5c4",

-      /* Qy */

-                                                                  "0164"

-      "350c321aecfc1cca1ba4364c9b15656150b4b78d6a48d7d28e7f31985ef17be8"

-      "554376b72900712c4b83ad668327231526e313f5f092999a4632fd50d946bc2e",

-      /* Gx */

-                                                                    "c6"

-      "858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dba"

-      "a14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66",

-      /* Gy */

-                                                                   "118"

-      "39296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c"

-      "97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650",

-      /* order */

-                                                                   "1ff"

-      "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa"

-      "51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409",

-      /* d */

-                                                                  "0100"

-      "085f47b8e1b8b11b7eb33028c0b2888e304bfc98501955b45bba1478dc184eee"

-      "df09b86a5f7c21994406072787205e69a63709fe35aa93ba333514b24f961722",

-      },

- };

- 

- static int nistp_single_test(int idx)

- {

-     const struct nistp_test_params *test = nistp_tests_params + idx;

-     BN_CTX *ctx = NULL;

-     BIGNUM *p = NULL, *a = NULL, *b = NULL, *x = NULL, *y = NULL;

-     BIGNUM *n = NULL, *m = NULL, *order = NULL, *yplusone = NULL;

-     EC_GROUP *NISTP = NULL;

-     EC_POINT *G = NULL, *P = NULL, *Q = NULL, *Q_CHECK = NULL;

-     int r = 0;

- 

-     TEST_note("NIST curve P-%d (optimised implementation):",

-               test->degree);

-     if (!TEST_ptr(ctx = BN_CTX_new())

-         || !TEST_ptr(p = BN_new())

-         || !TEST_ptr(a = BN_new())

-         || !TEST_ptr(b = BN_new())

-         || !TEST_ptr(x = BN_new())

-         || !TEST_ptr(y = BN_new())

-         || !TEST_ptr(m = BN_new())

-         || !TEST_ptr(n = BN_new())

-         || !TEST_ptr(order = BN_new())

-         || !TEST_ptr(yplusone = BN_new())

- 

-         || !TEST_ptr(NISTP = EC_GROUP_new_by_curve_name(test->nid))

-         || !TEST_true(BN_hex2bn(&p, test->p))

-         || !TEST_int_eq(1, BN_check_prime(p, ctx, NULL))

-         || !TEST_true(BN_hex2bn(&a, test->a))

-         || !TEST_true(BN_hex2bn(&b, test->b))

-         || !TEST_true(EC_GROUP_set_curve(NISTP, p, a, b, ctx))

-         || !TEST_ptr(G = EC_POINT_new(NISTP))

-         || !TEST_ptr(P = EC_POINT_new(NISTP))

-         || !TEST_ptr(Q = EC_POINT_new(NISTP))

-         || !TEST_ptr(Q_CHECK = EC_POINT_new(NISTP))

-         || !TEST_true(BN_hex2bn(&x, test->Qx))

-         || !TEST_true(BN_hex2bn(&y, test->Qy))

-         || !TEST_true(BN_add(yplusone, y, BN_value_one()))

-     /*

-      * When (x, y) is on the curve, (x, y + 1) is, as it happens, not,

-      * and therefore setting the coordinates should fail.

-      */

-         || !TEST_false(EC_POINT_set_affine_coordinates(NISTP, Q_CHECK, x,

-                                                        yplusone, ctx))

-         || !TEST_true(EC_POINT_set_affine_coordinates(NISTP, Q_CHECK, x, y,

-                                                       ctx))

-         || !TEST_true(BN_hex2bn(&x, test->Gx))

-         || !TEST_true(BN_hex2bn(&y, test->Gy))

-         || !TEST_true(EC_POINT_set_affine_coordinates(NISTP, G, x, y, ctx))

-         || !TEST_true(BN_hex2bn(&order, test->order))

-         || !TEST_true(EC_GROUP_set_generator(NISTP, G, order, BN_value_one()))

-         || !TEST_int_eq(EC_GROUP_get_degree(NISTP), test->degree))

-         goto err;

- 

-     TEST_note("NIST test vectors ... ");

-     if (!TEST_true(BN_hex2bn(&n, test->d)))

-         goto err;

-     /* fixed point multiplication */

-     EC_POINT_mul(NISTP, Q, n, NULL, NULL, ctx);

-     if (!TEST_int_eq(0, EC_POINT_cmp(NISTP, Q, Q_CHECK, ctx)))

-         goto err;

-     /* random point multiplication */

-     EC_POINT_mul(NISTP, Q, NULL, G, n, ctx);

-     if (!TEST_int_eq(0, EC_POINT_cmp(NISTP, Q, Q_CHECK, ctx))

- 

-         /* set generator to P = 2*G, where G is the standard generator */

-         || !TEST_true(EC_POINT_dbl(NISTP, P, G, ctx))

-         || !TEST_true(EC_GROUP_set_generator(NISTP, P, order, BN_value_one()))

-         /* set the scalar to m=n/2, where n is the NIST test scalar */

-         || !TEST_true(BN_rshift(m, n, 1)))

-         goto err;

- 

-     /* test the non-standard generator */

-     /* fixed point multiplication */

-     EC_POINT_mul(NISTP, Q, m, NULL, NULL, ctx);

-     if (!TEST_int_eq(0, EC_POINT_cmp(NISTP, Q, Q_CHECK, ctx)))

-         goto err;

-     /* random point multiplication */

-     EC_POINT_mul(NISTP, Q, NULL, P, m, ctx);

-     if (!TEST_int_eq(0, EC_POINT_cmp(NISTP, Q, Q_CHECK, ctx))

- #ifndef OPENSSL_NO_DEPRECATED_3_0

-         /* We have not performed precomp so this should be false */

-         || !TEST_false(EC_GROUP_have_precompute_mult(NISTP))

-         /* now repeat all tests with precomputation */

-         || !TEST_true(EC_GROUP_precompute_mult(NISTP, ctx))

- #endif

-         )

-         goto err;

- 

-     /* fixed point multiplication */

-     EC_POINT_mul(NISTP, Q, m, NULL, NULL, ctx);

-     if (!TEST_int_eq(0, EC_POINT_cmp(NISTP, Q, Q_CHECK, ctx)))

-         goto err;

-     /* random point multiplication */

-     EC_POINT_mul(NISTP, Q, NULL, P, m, ctx);

-     if (!TEST_int_eq(0, EC_POINT_cmp(NISTP, Q, Q_CHECK, ctx))

- 

-     /* reset generator */

-         || !TEST_true(EC_GROUP_set_generator(NISTP, G, order, BN_value_one())))

-         goto err;

-     /* fixed point multiplication */

-     EC_POINT_mul(NISTP, Q, n, NULL, NULL, ctx);

-     if (!TEST_int_eq(0, EC_POINT_cmp(NISTP, Q, Q_CHECK, ctx)))

-         goto err;

-     /* random point multiplication */

-     EC_POINT_mul(NISTP, Q, NULL, G, n, ctx);

-     if (!TEST_int_eq(0, EC_POINT_cmp(NISTP, Q, Q_CHECK, ctx)))

-         goto err;

- 

-     /* regression test for felem_neg bug */

-     if (!TEST_true(BN_set_word(m, 32))

-         || !TEST_true(BN_set_word(n, 31))

-         || !TEST_true(EC_POINT_copy(P, G))

-         || !TEST_true(EC_POINT_invert(NISTP, P, ctx))

-         || !TEST_true(EC_POINT_mul(NISTP, Q, m, P, n, ctx))

-         || !TEST_int_eq(0, EC_POINT_cmp(NISTP, Q, G, ctx)))

-       goto err;

- 

-     r = 1;

- err:

-     EC_GROUP_free(NISTP);

-     EC_POINT_free(G);

-     EC_POINT_free(P);

-     EC_POINT_free(Q);

-     EC_POINT_free(Q_CHECK);

-     BN_free(n);

-     BN_free(m);

-     BN_free(p);

-     BN_free(a);

-     BN_free(b);

-     BN_free(x);

-     BN_free(y);

-     BN_free(order);

-     BN_free(yplusone);

-     BN_CTX_free(ctx);

-     return r;

- }

- 

- static const unsigned char p521_named[] = {

-     0x06, 0x05, 0x2b, 0x81, 0x04, 0x00, 0x23,

- };

- 

- static const unsigned char p521_explicit[] = {

-     0x30, 0x82, 0x01, 0xc3, 0x02, 0x01, 0x01, 0x30, 0x4d, 0x06, 0x07, 0x2a,

-     0x86, 0x48, 0xce, 0x3d, 0x01, 0x01, 0x02, 0x42, 0x01, 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, 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, 0x30, 0x81, 0x9f, 0x04, 0x42, 0x01, 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, 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,

-     0xfc, 0x04, 0x42, 0x00, 0x51, 0x95, 0x3e, 0xb9, 0x61, 0x8e, 0x1c, 0x9a,

-     0x1f, 0x92, 0x9a, 0x21, 0xa0, 0xb6, 0x85, 0x40, 0xee, 0xa2, 0xda, 0x72,

-     0x5b, 0x99, 0xb3, 0x15, 0xf3, 0xb8, 0xb4, 0x89, 0x91, 0x8e, 0xf1, 0x09,

-     0xe1, 0x56, 0x19, 0x39, 0x51, 0xec, 0x7e, 0x93, 0x7b, 0x16, 0x52, 0xc0,

-     0xbd, 0x3b, 0xb1, 0xbf, 0x07, 0x35, 0x73, 0xdf, 0x88, 0x3d, 0x2c, 0x34,

-     0xf1, 0xef, 0x45, 0x1f, 0xd4, 0x6b, 0x50, 0x3f, 0x00, 0x03, 0x15, 0x00,

-     0xd0, 0x9e, 0x88, 0x00, 0x29, 0x1c, 0xb8, 0x53, 0x96, 0xcc, 0x67, 0x17,

-     0x39, 0x32, 0x84, 0xaa, 0xa0, 0xda, 0x64, 0xba, 0x04, 0x81, 0x85, 0x04,

-     0x00, 0xc6, 0x85, 0x8e, 0x06, 0xb7, 0x04, 0x04, 0xe9, 0xcd, 0x9e, 0x3e,

-     0xcb, 0x66, 0x23, 0x95, 0xb4, 0x42, 0x9c, 0x64, 0x81, 0x39, 0x05, 0x3f,

-     0xb5, 0x21, 0xf8, 0x28, 0xaf, 0x60, 0x6b, 0x4d, 0x3d, 0xba, 0xa1, 0x4b,

-     0x5e, 0x77, 0xef, 0xe7, 0x59, 0x28, 0xfe, 0x1d, 0xc1, 0x27, 0xa2, 0xff,

-     0xa8, 0xde, 0x33, 0x48, 0xb3, 0xc1, 0x85, 0x6a, 0x42, 0x9b, 0xf9, 0x7e,

-     0x7e, 0x31, 0xc2, 0xe5, 0xbd, 0x66, 0x01, 0x18, 0x39, 0x29, 0x6a, 0x78,

-     0x9a, 0x3b, 0xc0, 0x04, 0x5c, 0x8a, 0x5f, 0xb4, 0x2c, 0x7d, 0x1b, 0xd9,

-     0x98, 0xf5, 0x44, 0x49, 0x57, 0x9b, 0x44, 0x68, 0x17, 0xaf, 0xbd, 0x17,

-     0x27, 0x3e, 0x66, 0x2c, 0x97, 0xee, 0x72, 0x99, 0x5e, 0xf4, 0x26, 0x40,

-     0xc5, 0x50, 0xb9, 0x01, 0x3f, 0xad, 0x07, 0x61, 0x35, 0x3c, 0x70, 0x86,

-     0xa2, 0x72, 0xc2, 0x40, 0x88, 0xbe, 0x94, 0x76, 0x9f, 0xd1, 0x66, 0x50,

-     0x02, 0x42, 0x01, 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, 0xfa,

-     0x51, 0x86, 0x87, 0x83, 0xbf, 0x2f, 0x96, 0x6b, 0x7f, 0xcc, 0x01, 0x48,

-     0xf7, 0x09, 0xa5, 0xd0, 0x3b, 0xb5, 0xc9, 0xb8, 0x89, 0x9c, 0x47, 0xae,

-     0xbb, 0x6f, 0xb7, 0x1e, 0x91, 0x38, 0x64, 0x09, 0x02, 0x01, 0x01,

- };

- 

- /*

-  * This test validates a named curve's group parameters using

-  * EC_GROUP_check_named_curve(). It also checks that modifying any of the

-  * group parameters results in the curve not being valid.

-  */

- static int check_named_curve_test(int id)

- {

-     int ret = 0, nid, field_nid, has_seed;

-     EC_GROUP *group = NULL, *gtest = NULL;

-     const EC_POINT *group_gen = NULL;

-     EC_POINT *other_gen = NULL;

-     BIGNUM *group_p = NULL, *group_a = NULL, *group_b = NULL;

-     BIGNUM *other_p = NULL, *other_a = NULL, *other_b = NULL;

-     BIGNUM *group_cofactor = NULL, *other_cofactor = NULL;

-     BIGNUM *other_order = NULL;

-     const BIGNUM *group_order = NULL;

-     BN_CTX *bn_ctx = NULL;

-     static const unsigned char invalid_seed[] = "THIS IS NOT A VALID SEED";

-     static size_t invalid_seed_len = sizeof(invalid_seed);

- 

-     /* Do some setup */

-     nid = curves[id].nid;

-     if (!TEST_ptr(bn_ctx = BN_CTX_new())

-         || !TEST_ptr(group = EC_GROUP_new_by_curve_name(nid))

-         || !TEST_ptr(gtest = EC_GROUP_dup(group))

-         || !TEST_ptr(group_p = BN_new())

-         || !TEST_ptr(group_a = BN_new())

-         || !TEST_ptr(group_b = BN_new())

-         || !TEST_ptr(group_cofactor = BN_new())

-         || !TEST_ptr(group_gen = EC_GROUP_get0_generator(group))

-         || !TEST_ptr(group_order = EC_GROUP_get0_order(group))

-         || !TEST_true(EC_GROUP_get_cofactor(group, group_cofactor, NULL))

-         || !TEST_true(EC_GROUP_get_curve(group, group_p, group_a, group_b, NULL))

-         || !TEST_ptr(other_gen = EC_POINT_dup(group_gen, group))

-         || !TEST_true(EC_POINT_add(group, other_gen, group_gen, group_gen, NULL))

-         || !TEST_ptr(other_order = BN_dup(group_order))

-         || !TEST_true(BN_add_word(other_order, 1))

-         || !TEST_ptr(other_a = BN_dup(group_a))

-         || !TEST_true(BN_add_word(other_a, 1))

-         || !TEST_ptr(other_b = BN_dup(group_b))

-         || !TEST_true(BN_add_word(other_b, 1))

-         || !TEST_ptr(other_cofactor = BN_dup(group_cofactor))

-         || !TEST_true(BN_add_word(other_cofactor, 1)))

-         goto err;

- 

-     /* Determine if the built-in curve has a seed field set */

-     has_seed = (EC_GROUP_get_seed_len(group) > 0);

-     field_nid = EC_GROUP_get_field_type(group);

-     if (field_nid == NID_X9_62_characteristic_two_field) {

-         if (!TEST_ptr(other_p = BN_dup(group_p))

-             || !TEST_true(BN_lshift1(other_p, other_p)))

-             goto err;

-     } else {

-         if (!TEST_ptr(other_p = BN_dup(group_p)))

-             goto err;

-         /*

-          * Just choosing any arbitrary prime does not work..

-          * Setting p via ec_GFp_nist_group_set_curve() needs the prime to be a

-          * nist prime. So only select one of these as an alternate prime.

-          */

-         if (!TEST_ptr(BN_copy(other_p,

-                               BN_ucmp(BN_get0_nist_prime_192(), other_p) == 0 ?

-                                       BN_get0_nist_prime_256() :

-                                       BN_get0_nist_prime_192())))

-             goto err;

-     }

- 

-     /* Passes because this is a valid curve */

-     if (!TEST_int_eq(EC_GROUP_check_named_curve(group, 0, NULL), nid)

-         /* Only NIST curves pass */

-         || !TEST_int_eq(EC_GROUP_check_named_curve(group, 1, NULL),

-                         EC_curve_nid2nist(nid) != NULL ? nid : NID_undef))

-         goto err;

- 

-     /* Fail if the curve name doesn't match the parameters */

-     EC_GROUP_set_curve_name(group, nid + 1);

-     ERR_set_mark();

-     if (!TEST_int_le(EC_GROUP_check_named_curve(group, 0, NULL), 0))

-         goto err;

-     ERR_pop_to_mark();

- 

-     /* Restore curve name and ensure it's passing */

-     EC_GROUP_set_curve_name(group, nid);

-     if (!TEST_int_eq(EC_GROUP_check_named_curve(group, 0, NULL), nid))

-         goto err;

- 

-     if (!TEST_int_eq(EC_GROUP_set_seed(group, invalid_seed, invalid_seed_len),

-                      invalid_seed_len))

-         goto err;

- 

-     if (has_seed) {

-         /*

-          * If the built-in curve has a seed and we set the seed to another value

-          * then it will fail the check.

-          */

-         if (!TEST_int_eq(EC_GROUP_check_named_curve(group, 0, NULL), 0))

-             goto err;

-     } else {

-         /*

-          * If the built-in curve does not have a seed then setting the seed will

-          * pass the check (as the seed is optional).

-          */

-         if (!TEST_int_eq(EC_GROUP_check_named_curve(group, 0, NULL), nid))

-             goto err;

-     }

-     /* Pass if the seed is unknown (as it is optional) */

-     if (!TEST_int_eq(EC_GROUP_set_seed(group, NULL, 0), 1)

-         || !TEST_int_eq(EC_GROUP_check_named_curve(group, 0, NULL), nid))

-         goto err;

- 

-     /* Check that a duped group passes */

-     if (!TEST_int_eq(EC_GROUP_check_named_curve(gtest, 0, NULL), nid))

-         goto err;

- 

-     /* check that changing any generator parameter fails */

-     if (!TEST_true(EC_GROUP_set_generator(gtest, other_gen, group_order,

-                                           group_cofactor))

-         || !TEST_int_eq(EC_GROUP_check_named_curve(gtest, 0, NULL), 0)

-         || !TEST_true(EC_GROUP_set_generator(gtest, group_gen, other_order,

-                                              group_cofactor))

-         || !TEST_int_eq(EC_GROUP_check_named_curve(gtest, 0, NULL), 0)

-         /* The order is not an optional field, so this should fail */

-         || !TEST_false(EC_GROUP_set_generator(gtest, group_gen, NULL,

-                                               group_cofactor))

-         || !TEST_true(EC_GROUP_set_generator(gtest, group_gen, group_order,

-                                              other_cofactor))

-         || !TEST_int_eq(EC_GROUP_check_named_curve(gtest, 0, NULL), 0)

-         /* Check that if the cofactor is not set then it still passes */

-         || !TEST_true(EC_GROUP_set_generator(gtest, group_gen, group_order,

-                                              NULL))

-         || !TEST_int_eq(EC_GROUP_check_named_curve(gtest, 0, NULL), nid)

-         /* check that restoring the generator passes */

-         || !TEST_true(EC_GROUP_set_generator(gtest, group_gen, group_order,

-                                              group_cofactor))

-         || !TEST_int_eq(EC_GROUP_check_named_curve(gtest, 0, NULL), nid))

-         goto err;

- 

-     /*

-      * check that changing any curve parameter fails

-      *

-      * Setting arbitrary p, a or b might fail for some EC_GROUPs

-      * depending on the internal EC_METHOD implementation, hence run

-      * these tests conditionally to the success of EC_GROUP_set_curve().

-      */

-     ERR_set_mark();

-     if (EC_GROUP_set_curve(gtest, other_p, group_a, group_b, NULL)) {

-         if (!TEST_int_le(EC_GROUP_check_named_curve(gtest, 0, NULL), 0))

-             goto err;

-     } else {

-         /* clear the error stack if EC_GROUP_set_curve() failed */

-         ERR_pop_to_mark();

-         ERR_set_mark();

-     }

-     if (EC_GROUP_set_curve(gtest, group_p, other_a, group_b, NULL)) {

-         if (!TEST_int_le(EC_GROUP_check_named_curve(gtest, 0, NULL), 0))

-             goto err;

-     } else {

-         /* clear the error stack if EC_GROUP_set_curve() failed */

-         ERR_pop_to_mark();

-         ERR_set_mark();

-     }

-     if (EC_GROUP_set_curve(gtest, group_p, group_a, other_b, NULL)) {

-         if (!TEST_int_le(EC_GROUP_check_named_curve(gtest, 0, NULL), 0))

-             goto err;

-     } else {

-         /* clear the error stack if EC_GROUP_set_curve() failed */

-         ERR_pop_to_mark();

-         ERR_set_mark();

-     }

-     ERR_pop_to_mark();

- 

-     /* Check that restoring the curve parameters passes */

-     if (!TEST_true(EC_GROUP_set_curve(gtest, group_p, group_a, group_b, NULL))

-         || !TEST_int_eq(EC_GROUP_check_named_curve(gtest, 0, NULL), nid))

-         goto err;

- 

-     ret = 1;

- err:

-     BN_free(group_p);

-     BN_free(other_p);

-     BN_free(group_a);

-     BN_free(other_a);

-     BN_free(group_b);

-     BN_free(other_b);

-     BN_free(group_cofactor);

-     BN_free(other_cofactor);

-     BN_free(other_order);

-     EC_POINT_free(other_gen);

-     EC_GROUP_free(gtest);

-     EC_GROUP_free(group);

-     BN_CTX_free(bn_ctx);

-     return ret;

- }

- 

- /*

-  * This checks the lookup capability of EC_GROUP_check_named_curve()

-  * when the given group was created with explicit parameters.

-  *

-  * It is possible to retrieve an alternative alias that does not match

-  * the original nid in this case.

-  */

- static int check_named_curve_lookup_test(int id)

- {

-     int ret = 0, nid, rv = 0;

-     EC_GROUP *g = NULL , *ga = NULL;

-     ECPARAMETERS *p = NULL, *pa = NULL;

-     BN_CTX *ctx = NULL;

- 

-     /* Do some setup */

-     nid = curves[id].nid;

-     if (!TEST_ptr(ctx = BN_CTX_new())

-         || !TEST_ptr(g = EC_GROUP_new_by_curve_name(nid))

-         || !TEST_ptr(p = EC_GROUP_get_ecparameters(g, NULL)))

-         goto err;

- 

-     /* replace with group from explicit parameters */

-     EC_GROUP_free(g);

-     if (!TEST_ptr(g = EC_GROUP_new_from_ecparameters(p)))

-         goto err;

- 

-     if (!TEST_int_gt(rv = EC_GROUP_check_named_curve(g, 0, NULL), 0))

-         goto err;

-     if (rv != nid) {

-         /*

-          * Found an alias:

-          * fail if the returned nid is not an alias of the original group.

-          *

-          * The comparison here is done by comparing two explicit

-          * parameter EC_GROUPs with EC_GROUP_cmp(), to ensure the

-          * comparison happens with unnamed EC_GROUPs using the same

-          * EC_METHODs.

-          */

-         if (!TEST_ptr(ga = EC_GROUP_new_by_curve_name(rv))

-                 || !TEST_ptr(pa = EC_GROUP_get_ecparameters(ga, NULL)))

-             goto err;

- 

-         /* replace with group from explicit parameters, then compare */

-         EC_GROUP_free(ga);

-         if (!TEST_ptr(ga = EC_GROUP_new_from_ecparameters(pa))

-                 || !TEST_int_eq(EC_GROUP_cmp(g, ga, ctx), 0))

-             goto err;

-     }

- 

-     ret = 1;

- 

-  err:

-     EC_GROUP_free(g);

-     EC_GROUP_free(ga);

-     ECPARAMETERS_free(p);

-     ECPARAMETERS_free(pa);

-     BN_CTX_free(ctx);

- 

-     return ret;

- }

- 

- /*

-  * Sometime we cannot compare nids for equality, as the built-in curve table

-  * includes aliases with different names for the same curve.

-  *

-  * This function returns TRUE (1) if the checked nids are identical, or if they

-  * alias to the same curve. FALSE (0) otherwise.

-  */

- static ossl_inline

- int are_ec_nids_compatible(int n1d, int n2d)

- {

-     int ret = 0;

-     switch (n1d) {

- #ifndef OPENSSL_NO_EC2M

-         case NID_sect113r1:

-         case NID_wap_wsg_idm_ecid_wtls4:

-             ret = (n2d == NID_sect113r1 || n2d == NID_wap_wsg_idm_ecid_wtls4);

-             break;

-         case NID_sect163k1:

-         case NID_wap_wsg_idm_ecid_wtls3:

-             ret = (n2d == NID_sect163k1 || n2d == NID_wap_wsg_idm_ecid_wtls3);

-             break;

-         case NID_sect233k1:

-         case NID_wap_wsg_idm_ecid_wtls10:

-             ret = (n2d == NID_sect233k1 || n2d == NID_wap_wsg_idm_ecid_wtls10);

-             break;

-         case NID_sect233r1:

-         case NID_wap_wsg_idm_ecid_wtls11:

-             ret = (n2d == NID_sect233r1 || n2d == NID_wap_wsg_idm_ecid_wtls11);

-             break;

-         case NID_X9_62_c2pnb163v1:

-         case NID_wap_wsg_idm_ecid_wtls5:

-             ret = (n2d == NID_X9_62_c2pnb163v1

-                    || n2d == NID_wap_wsg_idm_ecid_wtls5);

-             break;

- #endif /* OPENSSL_NO_EC2M */

-         case NID_secp112r1:

-         case NID_wap_wsg_idm_ecid_wtls6:

-             ret = (n2d == NID_secp112r1 || n2d == NID_wap_wsg_idm_ecid_wtls6);

-             break;

-         case NID_secp160r2:

-         case NID_wap_wsg_idm_ecid_wtls7:

-             ret = (n2d == NID_secp160r2 || n2d == NID_wap_wsg_idm_ecid_wtls7);

-             break;

- #ifdef OPENSSL_NO_EC_NISTP_64_GCC_128

-         case NID_secp224r1:

-         case NID_wap_wsg_idm_ecid_wtls12:

-             ret = (n2d == NID_secp224r1 || n2d == NID_wap_wsg_idm_ecid_wtls12);

-             break;

- #else

-         /*

-          * For SEC P-224 we want to ensure that the SECP nid is returned, as

-          * that is associated with a specialized method.

-          */

-         case NID_wap_wsg_idm_ecid_wtls12:

-             ret = (n2d == NID_secp224r1);

-             break;

- #endif /* def(OPENSSL_NO_EC_NISTP_64_GCC_128) */

- 

-         default:

-             ret = (n1d == n2d);

-     }

-     return ret;

- }

- 

- /*

-  * This checks that EC_GROUP_bew_from_ecparameters() returns a "named"

-  * EC_GROUP for built-in curves.

-  *

-  * Note that it is possible to retrieve an alternative alias that does not match

-  * the original nid.

-  *

-  * Ensure that the OPENSSL_EC_EXPLICIT_CURVE ASN1 flag is set.

-  */

- static int check_named_curve_from_ecparameters(int id)

- {

-     int ret = 0, nid, tnid;

-     EC_GROUP *group = NULL, *tgroup = NULL, *tmpg = NULL;

-     const EC_POINT *group_gen = NULL;

-     EC_POINT *other_gen = NULL;

-     BIGNUM *group_cofactor = NULL, *other_cofactor = NULL;

-     BIGNUM *other_gen_x = NULL, *other_gen_y = NULL;

-     const BIGNUM *group_order = NULL;

-     BIGNUM *other_order = NULL;

-     BN_CTX *bn_ctx = NULL;

-     static const unsigned char invalid_seed[] = "THIS IS NOT A VALID SEED";

-     static size_t invalid_seed_len = sizeof(invalid_seed);

-     ECPARAMETERS *params = NULL, *other_params = NULL;

-     EC_GROUP *g_ary[8] = {NULL};

-     EC_GROUP **g_next = &g_ary[0];

-     ECPARAMETERS *p_ary[8] = {NULL};

-     ECPARAMETERS **p_next = &p_ary[0];

- 

-     /* Do some setup */

-     nid = curves[id].nid;

-     TEST_note("Curve %s", OBJ_nid2sn(nid));

-     if (!TEST_ptr(bn_ctx = BN_CTX_new()))

-         return ret;

-     BN_CTX_start(bn_ctx);

- 

-     if (/* Allocations */

-         !TEST_ptr(group_cofactor = BN_CTX_get(bn_ctx))

-         || !TEST_ptr(other_gen_x = BN_CTX_get(bn_ctx))

-         || !TEST_ptr(other_gen_y = BN_CTX_get(bn_ctx))

-         || !TEST_ptr(other_order = BN_CTX_get(bn_ctx))

-         || !TEST_ptr(other_cofactor = BN_CTX_get(bn_ctx))

-         /* Generate reference group and params */

-         || !TEST_ptr(group = EC_GROUP_new_by_curve_name(nid))

-         || !TEST_ptr(params = EC_GROUP_get_ecparameters(group, NULL))

-         || !TEST_ptr(group_gen = EC_GROUP_get0_generator(group))

-         || !TEST_ptr(group_order = EC_GROUP_get0_order(group))

-         || !TEST_true(EC_GROUP_get_cofactor(group, group_cofactor, NULL))

-         /* compute `other_*` values */

-         || !TEST_ptr(tmpg = EC_GROUP_dup(group))

-         || !TEST_ptr(other_gen = EC_POINT_dup(group_gen, group))

-         || !TEST_true(EC_POINT_add(group, other_gen, group_gen, group_gen, NULL))

-         || !TEST_true(EC_POINT_get_affine_coordinates(group, other_gen,

-                       other_gen_x, other_gen_y, bn_ctx))

-         || !TEST_true(BN_copy(other_order, group_order))

-         || !TEST_true(BN_add_word(other_order, 1))

-         || !TEST_true(BN_copy(other_cofactor, group_cofactor))

-         || !TEST_true(BN_add_word(other_cofactor, 1)))

-         goto err;

- 

-     EC_POINT_free(other_gen);

-     other_gen = NULL;

- 

-     if (!TEST_ptr(other_gen = EC_POINT_new(tmpg))

-         || !TEST_true(EC_POINT_set_affine_coordinates(tmpg, other_gen,

-                                                       other_gen_x, other_gen_y,

-                                                       bn_ctx)))

-         goto err;

- 

-     /*

-      * ###########################

-      * # Actual tests start here #

-      * ###########################

-      */

- 

-     /*

-      * Creating a group from built-in explicit parameters returns a

-      * "named" EC_GROUP

-      */

-     if (!TEST_ptr(tgroup = *g_next++ = EC_GROUP_new_from_ecparameters(params))

-         || !TEST_int_ne((tnid = EC_GROUP_get_curve_name(tgroup)), NID_undef))

-         goto err;

-     /*

-      * We cannot always guarantee the names match, as the built-in table

-      * contains aliases for the same curve with different names.

-      */

-     if (!TEST_true(are_ec_nids_compatible(nid, tnid))) {

-         TEST_info("nid = %s, tnid = %s", OBJ_nid2sn(nid), OBJ_nid2sn(tnid));

-         goto err;

-     }

-     /* Ensure that the OPENSSL_EC_EXPLICIT_CURVE ASN1 flag is set. */

-     if (!TEST_int_eq(EC_GROUP_get_asn1_flag(tgroup), OPENSSL_EC_EXPLICIT_CURVE))

-         goto err;

- 

-     /*

-      * An invalid seed in the parameters should be ignored: expect a "named"

-      * group.

-      */

-     if (!TEST_int_eq(EC_GROUP_set_seed(tmpg, invalid_seed, invalid_seed_len),

-                      invalid_seed_len)

-             || !TEST_ptr(other_params = *p_next++ =

-                          EC_GROUP_get_ecparameters(tmpg, NULL))

-             || !TEST_ptr(tgroup = *g_next++ =

-                           EC_GROUP_new_from_ecparameters(other_params))

-             || !TEST_int_ne((tnid = EC_GROUP_get_curve_name(tgroup)), NID_undef)

-             || !TEST_true(are_ec_nids_compatible(nid, tnid))

-             || !TEST_int_eq(EC_GROUP_get_asn1_flag(tgroup),

-                             OPENSSL_EC_EXPLICIT_CURVE)) {

-         TEST_info("nid = %s, tnid = %s", OBJ_nid2sn(nid), OBJ_nid2sn(tnid));

-         goto err;

-     }

- 

-     /*

-      * A null seed in the parameters should be ignored, as it is optional:

-      * expect a "named" group.

-      */

-     if (!TEST_int_eq(EC_GROUP_set_seed(tmpg, NULL, 0), 1)

-             || !TEST_ptr(other_params = *p_next++ =

-                          EC_GROUP_get_ecparameters(tmpg, NULL))

-             || !TEST_ptr(tgroup = *g_next++ =

-                           EC_GROUP_new_from_ecparameters(other_params))

-             || !TEST_int_ne((tnid = EC_GROUP_get_curve_name(tgroup)), NID_undef)

-             || !TEST_true(are_ec_nids_compatible(nid, tnid))

-             || !TEST_int_eq(EC_GROUP_get_asn1_flag(tgroup),

-                             OPENSSL_EC_EXPLICIT_CURVE)) {

-         TEST_info("nid = %s, tnid = %s", OBJ_nid2sn(nid), OBJ_nid2sn(tnid));

-         goto err;

-     }

- 

-     /*

-      * Check that changing any of the generator parameters does not yield a

-      * match with the built-in curves

-      */

-     if (/* Other gen, same group order & cofactor */

-         !TEST_true(EC_GROUP_set_generator(tmpg, other_gen, group_order,

-                                           group_cofactor))

-         || !TEST_ptr(other_params = *p_next++ =

-                      EC_GROUP_get_ecparameters(tmpg, NULL))

-         || !TEST_ptr(tgroup = *g_next++ =

-                       EC_GROUP_new_from_ecparameters(other_params))

-         || !TEST_int_eq((tnid = EC_GROUP_get_curve_name(tgroup)), NID_undef)

-         /* Same gen & cofactor, different order */

-         || !TEST_true(EC_GROUP_set_generator(tmpg, group_gen, other_order,

-                                              group_cofactor))

-         || !TEST_ptr(other_params = *p_next++ =

-                      EC_GROUP_get_ecparameters(tmpg, NULL))

-         || !TEST_ptr(tgroup = *g_next++ =

-                       EC_GROUP_new_from_ecparameters(other_params))

-         || !TEST_int_eq((tnid = EC_GROUP_get_curve_name(tgroup)), NID_undef)

-         /* The order is not an optional field, so this should fail */

-         || !TEST_false(EC_GROUP_set_generator(tmpg, group_gen, NULL,

-                                               group_cofactor))

-         /* Check that a wrong cofactor is ignored, and we still match */

-         || !TEST_true(EC_GROUP_set_generator(tmpg, group_gen, group_order,

-                                              other_cofactor))

-         || !TEST_ptr(other_params = *p_next++ =

-                      EC_GROUP_get_ecparameters(tmpg, NULL))

-         || !TEST_ptr(tgroup = *g_next++ =

-                       EC_GROUP_new_from_ecparameters(other_params))

-         || !TEST_int_ne((tnid = EC_GROUP_get_curve_name(tgroup)), NID_undef)

-         || !TEST_true(are_ec_nids_compatible(nid, tnid))

-         || !TEST_int_eq(EC_GROUP_get_asn1_flag(tgroup),

-                         OPENSSL_EC_EXPLICIT_CURVE)

-         /* Check that if the cofactor is not set then it still matches */

-         || !TEST_true(EC_GROUP_set_generator(tmpg, group_gen, group_order,

-                                              NULL))

-         || !TEST_ptr(other_params = *p_next++ =

-                      EC_GROUP_get_ecparameters(tmpg, NULL))

-         || !TEST_ptr(tgroup = *g_next++ =

-                       EC_GROUP_new_from_ecparameters(other_params))

-         || !TEST_int_ne((tnid = EC_GROUP_get_curve_name(tgroup)), NID_undef)

-         || !TEST_true(are_ec_nids_compatible(nid, tnid))

-         || !TEST_int_eq(EC_GROUP_get_asn1_flag(tgroup),

-                         OPENSSL_EC_EXPLICIT_CURVE)

-         /* check that restoring the generator passes */

-         || !TEST_true(EC_GROUP_set_generator(tmpg, group_gen, group_order,

-                                              group_cofactor))

-         || !TEST_ptr(other_params = *p_next++ =

-                      EC_GROUP_get_ecparameters(tmpg, NULL))

-         || !TEST_ptr(tgroup = *g_next++ =

-                       EC_GROUP_new_from_ecparameters(other_params))

-         || !TEST_int_ne((tnid = EC_GROUP_get_curve_name(tgroup)), NID_undef)

-         || !TEST_true(are_ec_nids_compatible(nid, tnid))

-         || !TEST_int_eq(EC_GROUP_get_asn1_flag(tgroup),

-                         OPENSSL_EC_EXPLICIT_CURVE))

-         goto err;

- 

-     ret = 1;

- err:

-     for (g_next = &g_ary[0]; g_next < g_ary + OSSL_NELEM(g_ary); g_next++)

-         EC_GROUP_free(*g_next);

-     for (p_next = &p_ary[0]; p_next < p_ary + OSSL_NELEM(g_ary); p_next++)

-         ECPARAMETERS_free(*p_next);

-     ECPARAMETERS_free(params);

-     EC_POINT_free(other_gen);

-     EC_GROUP_free(tmpg);

-     EC_GROUP_free(group);

-     BN_CTX_end(bn_ctx);

-     BN_CTX_free(bn_ctx);

-     return ret;

- }

- 

- 

- static int parameter_test(void)

- {

-     EC_GROUP *group = NULL, *group2 = NULL;

-     ECPARAMETERS *ecparameters = NULL;

-     unsigned char *buf = NULL;

-     int r = 0, len;

-     if (!TEST_ptr(group = EC_GROUP_new_by_curve_name(NID_secp384r1))

-         || !TEST_ptr(ecparameters = EC_GROUP_get_ecparameters(group, NULL))

-         || !TEST_ptr(group2 = EC_GROUP_new_from_ecparameters(ecparameters))

-         || !TEST_int_eq(EC_GROUP_cmp(group, group2, NULL), 0))

-         goto err;

- 

-     EC_GROUP_free(group);

-     group = NULL;

- 

-     /* Test the named curve encoding, which should be default. */

-     if (!TEST_ptr(group = EC_GROUP_new_by_curve_name(NID_secp521r1))

-         || !TEST_true((len = i2d_ECPKParameters(group, &buf)) >= 0)

-         || !TEST_mem_eq(buf, len, p521_named, sizeof(p521_named)))

-         goto err;

- 

-     OPENSSL_free(buf);

-     buf = NULL;

- 

-     /*

-      * Test the explicit encoding. P-521 requires correctly zero-padding the

-      * curve coefficients.

-      */

-     EC_GROUP_set_asn1_flag(group, OPENSSL_EC_EXPLICIT_CURVE);

-     if (!TEST_true((len = i2d_ECPKParameters(group, &buf)) >= 0)

-         || !TEST_mem_eq(buf, len, p521_explicit, sizeof(p521_explicit)))

-         goto err;

- 

-     r = 1;

- err:

-     EC_GROUP_free(group);

-     EC_GROUP_free(group2);

-     ECPARAMETERS_free(ecparameters);

-     OPENSSL_free(buf);

-     return r;

- }

- 

- /*-

-  * random 256-bit explicit parameters curve, cofactor absent

-  * order:    0x0c38d96a9f892b88772ec2e39614a82f4f (132 bit)

-  * cofactor:   0x12bc94785251297abfafddf1565100da (125 bit)

-  */

- static const unsigned char params_cf_pass[] = {

-     0x30, 0x81, 0xcd, 0x02, 0x01, 0x01, 0x30, 0x2c, 0x06, 0x07, 0x2a, 0x86,

-     0x48, 0xce, 0x3d, 0x01, 0x01, 0x02, 0x21, 0x00, 0xe5, 0x00, 0x1f, 0xc5,

-     0xca, 0x71, 0x9d, 0x8e, 0xf7, 0x07, 0x4b, 0x48, 0x37, 0xf9, 0x33, 0x2d,

-     0x71, 0xbf, 0x79, 0xe7, 0xdc, 0x91, 0xc2, 0xff, 0xb6, 0x7b, 0xc3, 0x93,

-     0x44, 0x88, 0xe6, 0x91, 0x30, 0x44, 0x04, 0x20, 0xe5, 0x00, 0x1f, 0xc5,

-     0xca, 0x71, 0x9d, 0x8e, 0xf7, 0x07, 0x4b, 0x48, 0x37, 0xf9, 0x33, 0x2d,

-     0x71, 0xbf, 0x79, 0xe7, 0xdc, 0x91, 0xc2, 0xff, 0xb6, 0x7b, 0xc3, 0x93,

-     0x44, 0x88, 0xe6, 0x8e, 0x04, 0x20, 0x18, 0x8c, 0x59, 0x57, 0xc4, 0xbc,

-     0x85, 0x57, 0xc3, 0x66, 0x9f, 0x89, 0xd5, 0x92, 0x0d, 0x7e, 0x42, 0x27,

-     0x07, 0x64, 0xaa, 0x26, 0xed, 0x89, 0xc4, 0x09, 0x05, 0x4d, 0xc7, 0x23,

-     0x47, 0xda, 0x04, 0x41, 0x04, 0x1b, 0x6b, 0x41, 0x0b, 0xf9, 0xfb, 0x77,

-     0xfd, 0x50, 0xb7, 0x3e, 0x23, 0xa3, 0xec, 0x9a, 0x3b, 0x09, 0x31, 0x6b,

-     0xfa, 0xf6, 0xce, 0x1f, 0xff, 0xeb, 0x57, 0x93, 0x24, 0x70, 0xf3, 0xf4,

-     0xba, 0x7e, 0xfa, 0x86, 0x6e, 0x19, 0x89, 0xe3, 0x55, 0x6d, 0x5a, 0xe9,

-     0xc0, 0x3d, 0xbc, 0xfb, 0xaf, 0xad, 0xd4, 0x7e, 0xa6, 0xe5, 0xfa, 0x1a,

-     0x58, 0x07, 0x9e, 0x8f, 0x0d, 0x3b, 0xf7, 0x38, 0xca, 0x02, 0x11, 0x0c,

-     0x38, 0xd9, 0x6a, 0x9f, 0x89, 0x2b, 0x88, 0x77, 0x2e, 0xc2, 0xe3, 0x96,

-     0x14, 0xa8, 0x2f, 0x4f

- };

- 

- /*-

-  * random 256-bit explicit parameters curve, cofactor absent

-  * order:    0x045a75c0c17228ebd9b169a10e34a22101 (131 bit)

-  * cofactor:   0x2e134b4ede82649f67a2e559d361e5fe (126 bit)

-  */

- static const unsigned char params_cf_fail[] = {

-     0x30, 0x81, 0xcd, 0x02, 0x01, 0x01, 0x30, 0x2c, 0x06, 0x07, 0x2a, 0x86,

-     0x48, 0xce, 0x3d, 0x01, 0x01, 0x02, 0x21, 0x00, 0xc8, 0x95, 0x27, 0x37,

-     0xe8, 0xe1, 0xfd, 0xcc, 0xf9, 0x6e, 0x0c, 0xa6, 0x21, 0xc1, 0x7d, 0x6b,

-     0x9d, 0x44, 0x42, 0xea, 0x73, 0x4e, 0x04, 0xb6, 0xac, 0x62, 0x50, 0xd0,

-     0x33, 0xc2, 0xea, 0x13, 0x30, 0x44, 0x04, 0x20, 0xc8, 0x95, 0x27, 0x37,

-     0xe8, 0xe1, 0xfd, 0xcc, 0xf9, 0x6e, 0x0c, 0xa6, 0x21, 0xc1, 0x7d, 0x6b,

-     0x9d, 0x44, 0x42, 0xea, 0x73, 0x4e, 0x04, 0xb6, 0xac, 0x62, 0x50, 0xd0,

-     0x33, 0xc2, 0xea, 0x10, 0x04, 0x20, 0xbf, 0xa6, 0xa8, 0x05, 0x1d, 0x09,

-     0xac, 0x70, 0x39, 0xbb, 0x4d, 0xb2, 0x90, 0x8a, 0x15, 0x41, 0x14, 0x1d,

-     0x11, 0x86, 0x9f, 0x13, 0xa2, 0x63, 0x1a, 0xda, 0x95, 0x22, 0x4d, 0x02,

-     0x15, 0x0a, 0x04, 0x41, 0x04, 0xaf, 0x16, 0x71, 0xf9, 0xc4, 0xc8, 0x59,

-     0x1d, 0xa3, 0x6f, 0xe7, 0xc3, 0x57, 0xa1, 0xfa, 0x9f, 0x49, 0x7c, 0x11,

-     0x27, 0x05, 0xa0, 0x7f, 0xff, 0xf9, 0xe0, 0xe7, 0x92, 0xdd, 0x9c, 0x24,

-     0x8e, 0xc7, 0xb9, 0x52, 0x71, 0x3f, 0xbc, 0x7f, 0x6a, 0x9f, 0x35, 0x70,

-     0xe1, 0x27, 0xd5, 0x35, 0x8a, 0x13, 0xfa, 0xa8, 0x33, 0x3e, 0xd4, 0x73,

-     0x1c, 0x14, 0x58, 0x9e, 0xc7, 0x0a, 0x87, 0x65, 0x8d, 0x02, 0x11, 0x04,

-     0x5a, 0x75, 0xc0, 0xc1, 0x72, 0x28, 0xeb, 0xd9, 0xb1, 0x69, 0xa1, 0x0e,

-     0x34, 0xa2, 0x21, 0x01

- };

- 

- /*-

-  * Test two random 256-bit explicit parameters curves with absent cofactor.

-  * The two curves are chosen to roughly straddle the bounds at which the lib

-  * can compute the cofactor automatically, roughly 4*sqrt(p). So test that:

-  *

-  * - params_cf_pass: order is sufficiently close to p to compute cofactor

-  * - params_cf_fail: order is too far away from p to compute cofactor

-  *

-  * For standards-compliant curves, cofactor is chosen as small as possible.

-  * So you can see neither of these curves are fit for cryptographic use.

-  *

-  * Some standards even mandate an upper bound on the cofactor, e.g. SECG1 v2:

-  * h <= 2**(t/8) where t is the security level of the curve, for which the lib

-  * will always succeed in computing the cofactor. Neither of these curves

-  * conform to that -- this is just robustness testing.

-  */

- static int cofactor_range_test(void)

- {

-     EC_GROUP *group = NULL;

-     BIGNUM *cf = NULL;

-     int ret = 0;

-     const unsigned char *b1 = (const unsigned char *)params_cf_fail;

-     const unsigned char *b2 = (const unsigned char *)params_cf_pass;

- 

-     if (!TEST_ptr(group = d2i_ECPKParameters(NULL, &b1, sizeof(params_cf_fail)))

-         || !TEST_BN_eq_zero(EC_GROUP_get0_cofactor(group))

-         || !TEST_ptr(group = d2i_ECPKParameters(&group, &b2,

-                                                 sizeof(params_cf_pass)))

-         || !TEST_int_gt(BN_hex2bn(&cf, "12bc94785251297abfafddf1565100da"), 0)

-         || !TEST_BN_eq(cf, EC_GROUP_get0_cofactor(group)))

-         goto err;

-     ret = 1;

-  err:

-     BN_free(cf);

-     EC_GROUP_free(group);

-     return ret;

- }

- 

- /*-

-  * For named curves, test that:

-  * - the lib correctly computes the cofactor if passed a NULL or zero cofactor

-  * - a nonsensical cofactor throws an error (negative test)

-  * - nonsensical orders throw errors (negative tests)

-  */

- static int cardinality_test(int n)

- {

-     int ret = 0, is_binary = 0;

-     int nid = curves[n].nid;

-     BN_CTX *ctx = NULL;

-     EC_GROUP *g1 = NULL, *g2 = NULL;

-     EC_POINT *g2_gen = NULL;

-     BIGNUM *g1_p = NULL, *g1_a = NULL, *g1_b = NULL, *g1_x = NULL, *g1_y = NULL,

-            *g1_order = NULL, *g1_cf = NULL, *g2_cf = NULL;

- 

-     TEST_info("Curve %s cardinality test", OBJ_nid2sn(nid));

- 

-     if (!TEST_ptr(ctx = BN_CTX_new())

-         || !TEST_ptr(g1 = EC_GROUP_new_by_curve_name(nid))) {

-         BN_CTX_free(ctx);

-         return 0;

-     }

- 

-     is_binary = (EC_GROUP_get_field_type(g1) == NID_X9_62_characteristic_two_field);

- 

-     BN_CTX_start(ctx);

-     g1_p = BN_CTX_get(ctx);

-     g1_a = BN_CTX_get(ctx);

-     g1_b = BN_CTX_get(ctx);

-     g1_x = BN_CTX_get(ctx);

-     g1_y = BN_CTX_get(ctx);

-     g1_order = BN_CTX_get(ctx);

-     g1_cf = BN_CTX_get(ctx);

- 

-     if (!TEST_ptr(g2_cf = BN_CTX_get(ctx))

-         /* pull out the explicit curve parameters */

-         || !TEST_true(EC_GROUP_get_curve(g1, g1_p, g1_a, g1_b, ctx))

-         || !TEST_true(EC_POINT_get_affine_coordinates(g1,

-                       EC_GROUP_get0_generator(g1), g1_x, g1_y, ctx))

-         || !TEST_true(BN_copy(g1_order, EC_GROUP_get0_order(g1)))

-         || !TEST_true(EC_GROUP_get_cofactor(g1, g1_cf, ctx))

-         /* construct g2 manually with g1 parameters */

- #ifndef OPENSSL_NO_EC2M

-         || !TEST_ptr(g2 = (is_binary) ?

-                            EC_GROUP_new_curve_GF2m(g1_p, g1_a, g1_b, ctx) :

-                            EC_GROUP_new_curve_GFp(g1_p, g1_a, g1_b, ctx))

- #else

-         || !TEST_int_eq(0, is_binary)

-         || !TEST_ptr(g2 = EC_GROUP_new_curve_GFp(g1_p, g1_a, g1_b, ctx))

- #endif

-         || !TEST_ptr(g2_gen = EC_POINT_new(g2))

-         || !TEST_true(EC_POINT_set_affine_coordinates(g2, g2_gen, g1_x, g1_y, ctx))

-         /* pass NULL cofactor: lib should compute it */

-         || !TEST_true(EC_GROUP_set_generator(g2, g2_gen, g1_order, NULL))

-         || !TEST_true(EC_GROUP_get_cofactor(g2, g2_cf, ctx))

-         || !TEST_BN_eq(g1_cf, g2_cf)

-         /* pass zero cofactor: lib should compute it */

-         || !TEST_true(BN_set_word(g2_cf, 0))

-         || !TEST_true(EC_GROUP_set_generator(g2, g2_gen, g1_order, g2_cf))

-         || !TEST_true(EC_GROUP_get_cofactor(g2, g2_cf, ctx))

-         || !TEST_BN_eq(g1_cf, g2_cf)

-         /* negative test for invalid cofactor */

-         || !TEST_true(BN_set_word(g2_cf, 0))

-         || !TEST_true(BN_sub(g2_cf, g2_cf, BN_value_one()))

-         || !TEST_false(EC_GROUP_set_generator(g2, g2_gen, g1_order, g2_cf))

-         /* negative test for NULL order */

-         || !TEST_false(EC_GROUP_set_generator(g2, g2_gen, NULL, NULL))

-         /* negative test for zero order */

-         || !TEST_true(BN_set_word(g1_order, 0))

-         || !TEST_false(EC_GROUP_set_generator(g2, g2_gen, g1_order, NULL))

-         /* negative test for negative order */

-         || !TEST_true(BN_set_word(g2_cf, 0))

-         || !TEST_true(BN_sub(g2_cf, g2_cf, BN_value_one()))

-         || !TEST_false(EC_GROUP_set_generator(g2, g2_gen, g1_order, NULL))

-         /* negative test for too large order */

-         || !TEST_true(BN_lshift(g1_order, g1_p, 2))

-         || !TEST_false(EC_GROUP_set_generator(g2, g2_gen, g1_order, NULL)))

-         goto err;

-     ret = 1;

-  err:

-     EC_POINT_free(g2_gen);

-     EC_GROUP_free(g1);

-     EC_GROUP_free(g2);

-     BN_CTX_end(ctx);

-     BN_CTX_free(ctx);

-     return ret;

- }

- 

- static int check_ec_key_field_public_range_test(int id)

- {

-     int ret = 0, type = 0;

-     const EC_POINT *pub = NULL;

-     const EC_GROUP *group = NULL;

-     const BIGNUM *field = NULL;

-     BIGNUM *x = NULL, *y = NULL;

-     EC_KEY *key = NULL;

- 

-     if (!TEST_ptr(x = BN_new())

-             || !TEST_ptr(y = BN_new())

-             || !TEST_ptr(key = EC_KEY_new_by_curve_name(curves[id].nid))

-             || !TEST_ptr(group = EC_KEY_get0_group(key))

-             || !TEST_ptr(field = EC_GROUP_get0_field(group))

-             || !TEST_int_gt(EC_KEY_generate_key(key), 0)

-             || !TEST_int_gt(EC_KEY_check_key(key), 0)

-             || !TEST_ptr(pub = EC_KEY_get0_public_key(key))

-             || !TEST_int_gt(EC_POINT_get_affine_coordinates(group, pub, x, y,

-                                                             NULL), 0))

-         goto err;

- 

-     /*

-      * Make the public point out of range by adding the field (which will still

-      * be the same point on the curve). The add is different for char2 fields.

-      */

-     type = EC_GROUP_get_field_type(group);

- #ifndef OPENSSL_NO_EC2M

-     if (type == NID_X9_62_characteristic_two_field) {

-         /* test for binary curves */

-         if (!TEST_true(BN_GF2m_add(x, x, field)))

-             goto err;

-     } else

- #endif

-     if (type == NID_X9_62_prime_field) {

-         /* test for prime curves */

-         if (!TEST_true(BN_add(x, x, field)))

-             goto err;

-     } else {

-         /* this should never happen */

-         TEST_error("Unsupported EC_METHOD field_type");

-         goto err;

-     }

-     if (!TEST_int_le(EC_KEY_set_public_key_affine_coordinates(key, x, y), 0))

-         goto err;

- 

-     ret = 1;

- err:

-     BN_free(x);

-     BN_free(y);

-     EC_KEY_free(key);

-     return ret;

- }

- 

- /*

-  * Helper for ec_point_hex2point_test

-  *

-  * Self-tests EC_POINT_point2hex() against EC_POINT_hex2point() for the given

-  * (group,P) pair.

-  *

-  * If P is NULL use point at infinity.

-  */

- static ossl_inline

- int ec_point_hex2point_test_helper(const EC_GROUP *group, const EC_POINT *P,

-                                    point_conversion_form_t form,

-                                    BN_CTX *bnctx)

- {

-     int ret = 0;

-     EC_POINT *Q = NULL, *Pinf = NULL;

-     char *hex = NULL;

- 

-     if (P == NULL) {

-         /* If P is NULL use point at infinity. */

-         if (!TEST_ptr(Pinf = EC_POINT_new(group))

-                 || !TEST_true(EC_POINT_set_to_infinity(group, Pinf)))

-             goto err;

-         P = Pinf;

-     }

- 

-     if (!TEST_ptr(hex = EC_POINT_point2hex(group, P, form, bnctx))

-             || !TEST_ptr(Q = EC_POINT_hex2point(group, hex, NULL, bnctx))

-             || !TEST_int_eq(0, EC_POINT_cmp(group, Q, P, bnctx)))

-         goto err;

- 

-     /*

-      * The next check is most likely superfluous, as EC_POINT_cmp should already

-      * cover this.

-      * Nonetheless it increases the test coverage for EC_POINT_is_at_infinity,

-      * so we include it anyway!

-      */

-     if (Pinf != NULL

-             && !TEST_true(EC_POINT_is_at_infinity(group, Q)))

-         goto err;

- 

-     ret = 1;

- 

-  err:

-     EC_POINT_free(Pinf);

-     OPENSSL_free(hex);

-     EC_POINT_free(Q);

- 

-     return ret;

- }

- 

- /*

-  * This test self-validates EC_POINT_hex2point() and EC_POINT_point2hex()

-  */

- static int ec_point_hex2point_test(int id)

- {

-     int ret = 0, nid;

-     EC_GROUP *group = NULL;

-     const EC_POINT *G = NULL;

-     EC_POINT *P = NULL;

-     BN_CTX * bnctx = NULL;

- 

-     /* Do some setup */

-     nid = curves[id].nid;

-     if (!TEST_ptr(bnctx = BN_CTX_new())

-             || !TEST_ptr(group = EC_GROUP_new_by_curve_name(nid))

-             || !TEST_ptr(G = EC_GROUP_get0_generator(group))

-             || !TEST_ptr(P = EC_POINT_dup(G, group)))

-         goto err;

- 

-     if (!TEST_true(ec_point_hex2point_test_helper(group, P,

-                                                   POINT_CONVERSION_COMPRESSED,

-                                                   bnctx))

-             || !TEST_true(ec_point_hex2point_test_helper(group, NULL,

-                                                          POINT_CONVERSION_COMPRESSED,

-                                                          bnctx))

-             || !TEST_true(ec_point_hex2point_test_helper(group, P,

-                                                          POINT_CONVERSION_UNCOMPRESSED,

-                                                          bnctx))

-             || !TEST_true(ec_point_hex2point_test_helper(group, NULL,

-                                                          POINT_CONVERSION_UNCOMPRESSED,

-                                                          bnctx))

-             || !TEST_true(ec_point_hex2point_test_helper(group, P,

-                                                          POINT_CONVERSION_HYBRID,

-                                                          bnctx))

-             || !TEST_true(ec_point_hex2point_test_helper(group, NULL,

-                                                          POINT_CONVERSION_HYBRID,

-                                                          bnctx)))

-         goto err;

- 

-     ret = 1;

- 

-  err:

-     EC_POINT_free(P);

-     EC_GROUP_free(group);

-     BN_CTX_free(bnctx);

- 

-     return ret;

- }

- 

- static int do_test_custom_explicit_fromdata(EC_GROUP *group, BN_CTX *ctx,

-                                             unsigned char *gen, int gen_size)

- {

-     int ret = 0, i_out;

-     EVP_PKEY_CTX *pctx = NULL;

-     EVP_PKEY *pkeyparam = NULL;

-     OSSL_PARAM_BLD *bld = NULL;

-     const char *field_name;

-     OSSL_PARAM *params = NULL;

-     const OSSL_PARAM *gettable;

-     BIGNUM *p, *a, *b;

-     BIGNUM *p_out = NULL, *a_out = NULL, *b_out = NULL;

-     BIGNUM *order_out = NULL, *cofactor_out = NULL;

-     char name[80];

-     unsigned char buf[1024];

-     size_t buf_len, name_len;

- #ifndef OPENSSL_NO_EC2M

-     unsigned int k1 = 0, k2 = 0, k3 = 0;

-     const char *basis_name = NULL;

- #endif

- 

-     p = BN_CTX_get(ctx);

-     a = BN_CTX_get(ctx);

-     b = BN_CTX_get(ctx);

- 

-     if (!TEST_ptr(b)

-         || !TEST_ptr(bld = OSSL_PARAM_BLD_new()))

-         goto err;

- 

-     if (EC_GROUP_get_field_type(group) == NID_X9_62_prime_field) {

-         field_name = SN_X9_62_prime_field;

-     } else {

-         field_name = SN_X9_62_characteristic_two_field;

- #ifndef OPENSSL_NO_EC2M

-         if (EC_GROUP_get_basis_type(group) == NID_X9_62_tpBasis) {

-             basis_name = SN_X9_62_tpBasis;

-             if (!TEST_true(EC_GROUP_get_trinomial_basis(group, &k1)))

-                 goto err;

-         } else {

-             basis_name = SN_X9_62_ppBasis;

-             if (!TEST_true(EC_GROUP_get_pentanomial_basis(group, &k1, &k2, &k3)))

-                 goto err;

-         }

- #endif /* OPENSSL_NO_EC2M */

-     }

-     if (!TEST_true(EC_GROUP_get_curve(group, p, a, b, ctx))

-         || !TEST_true(OSSL_PARAM_BLD_push_utf8_string(bld,

-                           OSSL_PKEY_PARAM_EC_FIELD_TYPE, field_name, 0))

-         || !TEST_true(OSSL_PARAM_BLD_push_BN(bld, OSSL_PKEY_PARAM_EC_P, p))

-         || !TEST_true(OSSL_PARAM_BLD_push_BN(bld, OSSL_PKEY_PARAM_EC_A, a))

-         || !TEST_true(OSSL_PARAM_BLD_push_BN(bld, OSSL_PKEY_PARAM_EC_B, b)))

-         goto err;

- 

-     if (EC_GROUP_get0_seed(group) != NULL) {

-         if (!TEST_true(OSSL_PARAM_BLD_push_octet_string(bld,

-                            OSSL_PKEY_PARAM_EC_SEED, EC_GROUP_get0_seed(group),

-                            EC_GROUP_get_seed_len(group))))

-             goto err;

-     }

-     if (EC_GROUP_get0_cofactor(group) != NULL) {

-         if (!TEST_true(OSSL_PARAM_BLD_push_BN(bld, OSSL_PKEY_PARAM_EC_COFACTOR,

-                                               EC_GROUP_get0_cofactor(group))))

-             goto err;

-     }

- 

-     if (!TEST_true(OSSL_PARAM_BLD_push_octet_string(bld,

-                        OSSL_PKEY_PARAM_EC_GENERATOR, gen, gen_size))

-         || !TEST_true(OSSL_PARAM_BLD_push_BN(bld, OSSL_PKEY_PARAM_EC_ORDER,

-                                              EC_GROUP_get0_order(group))))

-         goto err;

- 

-     if (!TEST_ptr(params = OSSL_PARAM_BLD_to_param(bld))

-         || !TEST_ptr(pctx = EVP_PKEY_CTX_new_from_name(NULL, "EC", NULL))

-         || !TEST_int_gt(EVP_PKEY_fromdata_init(pctx), 0)

-         || !TEST_int_gt(EVP_PKEY_fromdata(pctx, &pkeyparam,

-                                           EVP_PKEY_KEY_PARAMETERS, params), 0))

-         goto err;

- 

-     /*- Check that all the set values are retrievable -*/

- 

-     /* There should be no match to a group name since the generator changed */

-     if (!TEST_false(EVP_PKEY_get_utf8_string_param(pkeyparam,

-                         OSSL_PKEY_PARAM_GROUP_NAME, name, sizeof(name),

-                         &name_len)))

-         goto err;

- 

-     /* The encoding should be explicit as it has no group */

-     if (!TEST_true(EVP_PKEY_get_utf8_string_param(pkeyparam,

-                        OSSL_PKEY_PARAM_EC_ENCODING,

-                        name, sizeof(name), &name_len))

-         || !TEST_str_eq(name, OSSL_PKEY_EC_ENCODING_EXPLICIT))

-         goto err;

- 

-     if (!TEST_true(EVP_PKEY_get_utf8_string_param(pkeyparam,

-                        OSSL_PKEY_PARAM_EC_FIELD_TYPE, name, sizeof(name),

-                        &name_len))

-         || !TEST_str_eq(name, field_name))

-         goto err;

- 

-     if (!TEST_true(EVP_PKEY_get_octet_string_param(pkeyparam,

-                        OSSL_PKEY_PARAM_EC_GENERATOR, buf, sizeof(buf), &buf_len))

-         || !TEST_mem_eq(buf, (int)buf_len, gen, gen_size))

-         goto err;

- 

-     if (!TEST_true(EVP_PKEY_get_bn_param(pkeyparam, OSSL_PKEY_PARAM_EC_P, &p_out))

-         || !TEST_BN_eq(p_out, p)

-         || !TEST_true(EVP_PKEY_get_bn_param(pkeyparam, OSSL_PKEY_PARAM_EC_A,

-                                             &a_out))

-         || !TEST_BN_eq(a_out, a)

-         || !TEST_true(EVP_PKEY_get_bn_param(pkeyparam, OSSL_PKEY_PARAM_EC_B,

-                                             &b_out))

-         || !TEST_BN_eq(b_out, b)

-         || !TEST_true(EVP_PKEY_get_bn_param(pkeyparam, OSSL_PKEY_PARAM_EC_ORDER,

-                                             &order_out))

-         || !TEST_BN_eq(order_out, EC_GROUP_get0_order(group)))

-         goto err;

- 

-     if (EC_GROUP_get0_cofactor(group) != NULL) {

-         if (!TEST_true(EVP_PKEY_get_bn_param(pkeyparam,

-                            OSSL_PKEY_PARAM_EC_COFACTOR, &cofactor_out))

-             || !TEST_BN_eq(cofactor_out, EC_GROUP_get0_cofactor(group)))

-             goto err;

-     }

-     if (EC_GROUP_get0_seed(group) != NULL) {

-         if (!TEST_true(EVP_PKEY_get_octet_string_param(pkeyparam,

-                            OSSL_PKEY_PARAM_EC_SEED, buf, sizeof(buf), &buf_len))

-             || !TEST_mem_eq(buf, buf_len, EC_GROUP_get0_seed(group),

-                             EC_GROUP_get_seed_len(group)))

-             goto err;

-     }

- 

-     if (EC_GROUP_get_field_type(group) == NID_X9_62_prime_field) {

-         /* No extra fields should be set for a prime field */

-         if (!TEST_false(EVP_PKEY_get_int_param(pkeyparam,

-                             OSSL_PKEY_PARAM_EC_CHAR2_M, &i_out))

-             || !TEST_false(EVP_PKEY_get_int_param(pkeyparam,

-                                OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS, &i_out))

-             || !TEST_false(EVP_PKEY_get_int_param(pkeyparam,

-                                OSSL_PKEY_PARAM_EC_CHAR2_PP_K1, &i_out))

-             || !TEST_false(EVP_PKEY_get_int_param(pkeyparam,

-                                OSSL_PKEY_PARAM_EC_CHAR2_PP_K2, &i_out))

-             || !TEST_false(EVP_PKEY_get_int_param(pkeyparam,

-                                OSSL_PKEY_PARAM_EC_CHAR2_PP_K3, &i_out))

-             || !TEST_false(EVP_PKEY_get_utf8_string_param(pkeyparam,

-                                OSSL_PKEY_PARAM_EC_CHAR2_TYPE, name, sizeof(name),

-                                &name_len)))

-             goto err;

-     } else {

- #ifndef OPENSSL_NO_EC2M

-         if (!TEST_true(EVP_PKEY_get_int_param(pkeyparam,

-                            OSSL_PKEY_PARAM_EC_CHAR2_M, &i_out))

-             || !TEST_int_eq(EC_GROUP_get_degree(group), i_out)

-             || !TEST_true(EVP_PKEY_get_utf8_string_param(pkeyparam,

-                               OSSL_PKEY_PARAM_EC_CHAR2_TYPE, name, sizeof(name),

-                               &name_len))

-             || !TEST_str_eq(name, basis_name))

-             goto err;

- 

-         if (EC_GROUP_get_basis_type(group) == NID_X9_62_tpBasis) {

-             if (!TEST_true(EVP_PKEY_get_int_param(pkeyparam,

-                                OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS, &i_out))

-                 || !TEST_int_eq(k1, i_out)

-                 || !TEST_false(EVP_PKEY_get_int_param(pkeyparam,

-                                    OSSL_PKEY_PARAM_EC_CHAR2_PP_K1, &i_out))

-                 || !TEST_false(EVP_PKEY_get_int_param(pkeyparam,

-                                    OSSL_PKEY_PARAM_EC_CHAR2_PP_K2, &i_out))

-                 || !TEST_false(EVP_PKEY_get_int_param(pkeyparam,

-                                    OSSL_PKEY_PARAM_EC_CHAR2_PP_K3, &i_out)))

-                 goto err;

-         } else {

-             if (!TEST_false(EVP_PKEY_get_int_param(pkeyparam,

-                                 OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS, &i_out))

-                 || !TEST_true(EVP_PKEY_get_int_param(pkeyparam,

-                                   OSSL_PKEY_PARAM_EC_CHAR2_PP_K1, &i_out))

-                 || !TEST_int_eq(k1, i_out)

-                 || !TEST_true(EVP_PKEY_get_int_param(pkeyparam,

-                                   OSSL_PKEY_PARAM_EC_CHAR2_PP_K2, &i_out))

-                 || !TEST_int_eq(k2, i_out)

-                 || !TEST_true(EVP_PKEY_get_int_param(pkeyparam,

-                                   OSSL_PKEY_PARAM_EC_CHAR2_PP_K3, &i_out))

-                 || !TEST_int_eq(k3, i_out))

-                 goto err;

-         }

- #endif /* OPENSSL_NO_EC2M */

-     }

-     if (!TEST_ptr(gettable = EVP_PKEY_gettable_params(pkeyparam))

-         || !TEST_ptr(OSSL_PARAM_locate_const(gettable, OSSL_PKEY_PARAM_GROUP_NAME))

-         || !TEST_ptr(OSSL_PARAM_locate_const(gettable, OSSL_PKEY_PARAM_EC_ENCODING))

-         || !TEST_ptr(OSSL_PARAM_locate_const(gettable, OSSL_PKEY_PARAM_EC_FIELD_TYPE))

-         || !TEST_ptr(OSSL_PARAM_locate_const(gettable, OSSL_PKEY_PARAM_EC_P))

-         || !TEST_ptr(OSSL_PARAM_locate_const(gettable, OSSL_PKEY_PARAM_EC_A))

-         || !TEST_ptr(OSSL_PARAM_locate_const(gettable, OSSL_PKEY_PARAM_EC_B))

-         || !TEST_ptr(OSSL_PARAM_locate_const(gettable, OSSL_PKEY_PARAM_EC_GENERATOR))

-         || !TEST_ptr(OSSL_PARAM_locate_const(gettable, OSSL_PKEY_PARAM_EC_ORDER))

-         || !TEST_ptr(OSSL_PARAM_locate_const(gettable, OSSL_PKEY_PARAM_EC_COFACTOR))

-         || !TEST_ptr(OSSL_PARAM_locate_const(gettable, OSSL_PKEY_PARAM_EC_SEED))

- #ifndef OPENSSL_NO_EC2M

-         || !TEST_ptr(OSSL_PARAM_locate_const(gettable, OSSL_PKEY_PARAM_EC_CHAR2_M))

-         || !TEST_ptr(OSSL_PARAM_locate_const(gettable, OSSL_PKEY_PARAM_EC_CHAR2_TYPE))

-         || !TEST_ptr(OSSL_PARAM_locate_const(gettable, OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS))

-         || !TEST_ptr(OSSL_PARAM_locate_const(gettable, OSSL_PKEY_PARAM_EC_CHAR2_PP_K1))

-         || !TEST_ptr(OSSL_PARAM_locate_const(gettable, OSSL_PKEY_PARAM_EC_CHAR2_PP_K2))

-         || !TEST_ptr(OSSL_PARAM_locate_const(gettable, OSSL_PKEY_PARAM_EC_CHAR2_PP_K3))

- #endif

-         )

-         goto err;

-     ret = 1;

- err:

-     BN_free(order_out);

-     BN_free(cofactor_out);

-     BN_free(a_out);

-     BN_free(b_out);

-     BN_free(p_out);

-     OSSL_PARAM_free(params);

-     OSSL_PARAM_BLD_free(bld);

-     EVP_PKEY_free(pkeyparam);

-     EVP_PKEY_CTX_free(pctx);

-     return ret;

- }

- 

- /*

-  * check the EC_METHOD respects the supplied EC_GROUP_set_generator G

-  */

- static int custom_generator_test(int id)

- {

-     int ret = 0, nid, bsize;

-     EC_GROUP *group = NULL;

-     EC_POINT *G2 = NULL, *Q1 = NULL, *Q2 = NULL;

-     BN_CTX *ctx = NULL;

-     BIGNUM *k = NULL;

-     unsigned char *b1 = NULL, *b2 = NULL;

- 

-     /* Do some setup */

-     nid = curves[id].nid;

-     TEST_note("Curve %s", OBJ_nid2sn(nid));

-     if (!TEST_ptr(ctx = BN_CTX_new()))

-         return 0;

- 

-     BN_CTX_start(ctx);

- 

-     if (!TEST_ptr(group = EC_GROUP_new_by_curve_name(nid)))

-         goto err;

- 

-     /* expected byte length of encoded points */

-     bsize = (EC_GROUP_get_degree(group) + 7) / 8;

-     bsize = 1 + 2 * bsize; /* UNCOMPRESSED_POINT format */

- 

-     if (!TEST_ptr(k = BN_CTX_get(ctx))

-         /* fetch a testing scalar k != 0,1 */

-         || !TEST_true(BN_rand(k, EC_GROUP_order_bits(group) - 1,

-                               BN_RAND_TOP_ONE, BN_RAND_BOTTOM_ANY))

-         /* make k even */

-         || !TEST_true(BN_clear_bit(k, 0))

-         || !TEST_ptr(G2 = EC_POINT_new(group))

-         || !TEST_ptr(Q1 = EC_POINT_new(group))

-         /* Q1 := kG */

-         || !TEST_true(EC_POINT_mul(group, Q1, k, NULL, NULL, ctx))

-         /* pull out the bytes of that */

-         || !TEST_int_eq(EC_POINT_point2oct(group, Q1,

-                                            POINT_CONVERSION_UNCOMPRESSED, NULL,

-                                            0, ctx), bsize)

-         || !TEST_ptr(b1 = OPENSSL_malloc(bsize))

-         || !TEST_int_eq(EC_POINT_point2oct(group, Q1,

-                                            POINT_CONVERSION_UNCOMPRESSED, b1,

-                                            bsize, ctx), bsize)

-         /* new generator is G2 := 2G */

-         || !TEST_true(EC_POINT_dbl(group, G2, EC_GROUP_get0_generator(group),

-                                    ctx))

-         || !TEST_true(EC_GROUP_set_generator(group, G2,

-                                              EC_GROUP_get0_order(group),

-                                              EC_GROUP_get0_cofactor(group)))

-         || !TEST_ptr(Q2 = EC_POINT_new(group))

-         || !TEST_true(BN_rshift1(k, k))

-         /* Q2 := k/2 G2 */

-         || !TEST_true(EC_POINT_mul(group, Q2, k, NULL, NULL, ctx))

-         || !TEST_int_eq(EC_POINT_point2oct(group, Q2,

-                                            POINT_CONVERSION_UNCOMPRESSED, NULL,

-                                            0, ctx), bsize)

-         || !TEST_ptr(b2 = OPENSSL_malloc(bsize))

-         || !TEST_int_eq(EC_POINT_point2oct(group, Q2,

-                                            POINT_CONVERSION_UNCOMPRESSED, b2,

-                                            bsize, ctx), bsize)

-         /* Q1 = kG = k/2 G2 = Q2 should hold */

-         || !TEST_mem_eq(b1, bsize, b2, bsize))

-         goto err;

- 

-     if (!do_test_custom_explicit_fromdata(group, ctx, b1, bsize))

-         goto err;

- 

-     ret = 1;

- 

-  err:

-     EC_POINT_free(Q1);

-     EC_POINT_free(Q2);

-     EC_POINT_free(G2);

-     EC_GROUP_free(group);

-     BN_CTX_end(ctx);

-     BN_CTX_free(ctx);

-     OPENSSL_free(b1);

-     OPENSSL_free(b2);

- 

-     return ret;

- }

- 

- /*

-  * check creation of curves from explicit params through the public API

-  */

- static int custom_params_test(int id)

- {

-     int ret = 0, nid, bsize;

-     const char *curve_name = NULL;

-     EC_GROUP *group = NULL, *altgroup = NULL;

-     EC_POINT *G2 = NULL, *Q1 = NULL, *Q2 = NULL;

-     const EC_POINT *Q = NULL;

-     BN_CTX *ctx = NULL;

-     BIGNUM *k = NULL;

-     unsigned char *buf1 = NULL, *buf2 = NULL;

-     const BIGNUM *z = NULL, *cof = NULL, *priv1 = NULL;

-     BIGNUM *p = NULL, *a = NULL, *b = NULL;

-     int is_prime = 0;

-     EC_KEY *eckey1 = NULL, *eckey2 = NULL;

-     EVP_PKEY *pkey1 = NULL, *pkey2 = NULL;

-     EVP_PKEY_CTX *pctx1 = NULL, *pctx2 = NULL;

-     size_t sslen, t;

-     unsigned char *pub1 = NULL , *pub2 = NULL;

-     OSSL_PARAM_BLD *param_bld = NULL;

-     OSSL_PARAM *params1 = NULL, *params2 = NULL;

- 

-     /* Do some setup */

-     nid = curves[id].nid;

-     curve_name = OBJ_nid2sn(nid);

-     TEST_note("Curve %s", curve_name);

- 

-     if (nid == NID_sm2)

-         return TEST_skip("custom params not supported with SM2");

- 

-     if (!TEST_ptr(ctx = BN_CTX_new()))

-         return 0;

- 

-     if (!TEST_ptr(group = EC_GROUP_new_by_curve_name(nid)))

-         goto err;

- 

-     is_prime = EC_GROUP_get_field_type(group) == NID_X9_62_prime_field;

- #ifdef OPENSSL_NO_EC2M

-     if (!is_prime) {

-         ret = TEST_skip("binary curves not supported in this build");

-         goto err;

-     }

- #endif

- 

-     BN_CTX_start(ctx);

-     if (!TEST_ptr(p = BN_CTX_get(ctx))

-             || !TEST_ptr(a = BN_CTX_get(ctx))

-             || !TEST_ptr(b = BN_CTX_get(ctx))

-             || !TEST_ptr(k = BN_CTX_get(ctx)))

-         goto err;

- 

-     /* expected byte length of encoded points */

-     bsize = (EC_GROUP_get_degree(group) + 7) / 8;

-     bsize = 1 + 2 * bsize; /* UNCOMPRESSED_POINT format */

- 

-     /* extract parameters from built-in curve */

-     if (!TEST_true(EC_GROUP_get_curve(group, p, a, b, ctx))

-             || !TEST_ptr(G2 = EC_POINT_new(group))

-             /* new generator is G2 := 2G */

-             || !TEST_true(EC_POINT_dbl(group, G2,

-                                        EC_GROUP_get0_generator(group), ctx))

-             /* pull out the bytes of that */

-             || !TEST_int_eq(EC_POINT_point2oct(group, G2,

-                                                POINT_CONVERSION_UNCOMPRESSED,

-                                                NULL, 0, ctx), bsize)

-             || !TEST_ptr(buf1 = OPENSSL_malloc(bsize))

-             || !TEST_int_eq(EC_POINT_point2oct(group, G2,

-                                                POINT_CONVERSION_UNCOMPRESSED,

-                                                buf1, bsize, ctx), bsize)

-             || !TEST_ptr(z = EC_GROUP_get0_order(group))

-             || !TEST_ptr(cof = EC_GROUP_get0_cofactor(group))

-         )

-         goto err;

- 

-     /* create a new group using same params (but different generator) */

-     if (is_prime) {

-         if (!TEST_ptr(altgroup = EC_GROUP_new_curve_GFp(p, a, b, ctx)))

-             goto err;

-     }

- #ifndef OPENSSL_NO_EC2M

-     else {

-         if (!TEST_ptr(altgroup = EC_GROUP_new_curve_GF2m(p, a, b, ctx)))

-             goto err;

-     }

- #endif

- 

-     /* set 2*G as the generator of altgroup */

-     EC_POINT_free(G2); /* discard G2 as it refers to the original group */

-     if (!TEST_ptr(G2 = EC_POINT_new(altgroup))

-             || !TEST_true(EC_POINT_oct2point(altgroup, G2, buf1, bsize, ctx))

-             || !TEST_int_eq(EC_POINT_is_on_curve(altgroup, G2, ctx), 1)

-             || !TEST_true(EC_GROUP_set_generator(altgroup, G2, z, cof))

-        )

-         goto err;

- 

-     /* verify math checks out */

-     if (/* allocate temporary points on group and altgroup */

-             !TEST_ptr(Q1 = EC_POINT_new(group))

-             || !TEST_ptr(Q2 = EC_POINT_new(altgroup))

-             /* fetch a testing scalar k != 0,1 */

-             || !TEST_true(BN_rand(k, EC_GROUP_order_bits(group) - 1,

-                                   BN_RAND_TOP_ONE, BN_RAND_BOTTOM_ANY))

-             /* make k even */

-             || !TEST_true(BN_clear_bit(k, 0))

-             /* Q1 := kG on group */

-             || !TEST_true(EC_POINT_mul(group, Q1, k, NULL, NULL, ctx))

-             /* pull out the bytes of that */

-             || !TEST_int_eq(EC_POINT_point2oct(group, Q1,

-                                                POINT_CONVERSION_UNCOMPRESSED,

-                                                NULL, 0, ctx), bsize)

-             || !TEST_int_eq(EC_POINT_point2oct(group, Q1,

-                                                POINT_CONVERSION_UNCOMPRESSED,

-                                                buf1, bsize, ctx), bsize)

-             /* k := k/2 */

-             || !TEST_true(BN_rshift1(k, k))

-             /* Q2 := k/2 G2 on altgroup */

-             || !TEST_true(EC_POINT_mul(altgroup, Q2, k, NULL, NULL, ctx))

-             /* pull out the bytes of that */

-             || !TEST_int_eq(EC_POINT_point2oct(altgroup, Q2,

-                                                POINT_CONVERSION_UNCOMPRESSED,

-                                                NULL, 0, ctx), bsize)

-             || !TEST_ptr(buf2 = OPENSSL_malloc(bsize))

-             || !TEST_int_eq(EC_POINT_point2oct(altgroup, Q2,

-                                                POINT_CONVERSION_UNCOMPRESSED,

-                                                buf2, bsize, ctx), bsize)

-             /* Q1 = kG = k/2 G2 = Q2 should hold */

-             || !TEST_mem_eq(buf1, bsize, buf2, bsize))

-         goto err;

- 

-     /* create two `EC_KEY`s on altgroup */

-     if (!TEST_ptr(eckey1 = EC_KEY_new())

-             || !TEST_true(EC_KEY_set_group(eckey1, altgroup))

-             || !TEST_true(EC_KEY_generate_key(eckey1))

-             || !TEST_ptr(eckey2 = EC_KEY_new())

-             || !TEST_true(EC_KEY_set_group(eckey2, altgroup))

-             || !TEST_true(EC_KEY_generate_key(eckey2)))

-         goto err;

- 

-     /* retrieve priv1 for later */

-     if (!TEST_ptr(priv1 = EC_KEY_get0_private_key(eckey1)))

-         goto err;

- 

-     /*

-      * retrieve bytes for pub1 for later

-      *

-      * We compute the pub key in the original group as we will later use it to

-      * define a provider key in the built-in group.

-      */

-     if (!TEST_true(EC_POINT_mul(group, Q1, priv1, NULL, NULL, ctx))

-             || !TEST_int_eq(EC_POINT_point2oct(group, Q1,

-                                                POINT_CONVERSION_UNCOMPRESSED,

-                                                NULL, 0, ctx), bsize)

-             || !TEST_ptr(pub1 = OPENSSL_malloc(bsize))

-             || !TEST_int_eq(EC_POINT_point2oct(group, Q1,

-                                                POINT_CONVERSION_UNCOMPRESSED,

-                                                pub1, bsize, ctx), bsize))

-         goto err;

- 

-     /* retrieve bytes for pub2 for later */

-     if (!TEST_ptr(Q = EC_KEY_get0_public_key(eckey2))

-             || !TEST_int_eq(EC_POINT_point2oct(altgroup, Q,

-                                                POINT_CONVERSION_UNCOMPRESSED,

-                                                NULL, 0, ctx), bsize)

-             || !TEST_ptr(pub2 = OPENSSL_malloc(bsize))

-             || !TEST_int_eq(EC_POINT_point2oct(altgroup, Q,

-                                                POINT_CONVERSION_UNCOMPRESSED,

-                                                pub2, bsize, ctx), bsize))

-         goto err;

- 

-     /* create two `EVP_PKEY`s from the `EC_KEY`s */

-     if(!TEST_ptr(pkey1 = EVP_PKEY_new())

-             || !TEST_int_eq(EVP_PKEY_assign_EC_KEY(pkey1, eckey1), 1))

-         goto err;

-     eckey1 = NULL; /* ownership passed to pkey1 */

-     if(!TEST_ptr(pkey2 = EVP_PKEY_new())

-             || !TEST_int_eq(EVP_PKEY_assign_EC_KEY(pkey2, eckey2), 1))

-         goto err;

-     eckey2 = NULL; /* ownership passed to pkey2 */

- 

-     /* Compute keyexchange in both directions */

-     if (!TEST_ptr(pctx1 = EVP_PKEY_CTX_new(pkey1, NULL))

-             || !TEST_int_eq(EVP_PKEY_derive_init(pctx1), 1)

-             || !TEST_int_eq(EVP_PKEY_derive_set_peer(pctx1, pkey2), 1)

-             || !TEST_int_eq(EVP_PKEY_derive(pctx1, NULL, &sslen), 1)

-             || !TEST_int_gt(bsize, sslen)

-             || !TEST_int_eq(EVP_PKEY_derive(pctx1, buf1, &sslen), 1))

-         goto err;

-     if (!TEST_ptr(pctx2 = EVP_PKEY_CTX_new(pkey2, NULL))

-             || !TEST_int_eq(EVP_PKEY_derive_init(pctx2), 1)

-             || !TEST_int_eq(EVP_PKEY_derive_set_peer(pctx2, pkey1), 1)

-             || !TEST_int_eq(EVP_PKEY_derive(pctx2, NULL, &t), 1)

-             || !TEST_int_gt(bsize, t)

-             || !TEST_int_le(sslen, t)

-             || !TEST_int_eq(EVP_PKEY_derive(pctx2, buf2, &t), 1))

-         goto err;

- 

-     /* Both sides should expect the same shared secret */

-     if (!TEST_mem_eq(buf1, sslen, buf2, t))

-         goto err;

- 

-     /* Build parameters for provider-native keys */

-     if (!TEST_ptr(param_bld = OSSL_PARAM_BLD_new())

-             || !TEST_true(OSSL_PARAM_BLD_push_utf8_string(param_bld,

-                                                           OSSL_PKEY_PARAM_GROUP_NAME,

-                                                           curve_name, 0))

-             || !TEST_true(OSSL_PARAM_BLD_push_octet_string(param_bld,

-                                                            OSSL_PKEY_PARAM_PUB_KEY,

-                                                            pub1, bsize))

-             || !TEST_true(OSSL_PARAM_BLD_push_BN(param_bld,

-                                                  OSSL_PKEY_PARAM_PRIV_KEY,

-                                                  priv1))

-             || !TEST_ptr(params1 = OSSL_PARAM_BLD_to_param(param_bld)))

-         goto err;

- 

-     OSSL_PARAM_BLD_free(param_bld);

-     if (!TEST_ptr(param_bld = OSSL_PARAM_BLD_new())

-             || !TEST_true(OSSL_PARAM_BLD_push_utf8_string(param_bld,

-                                                           OSSL_PKEY_PARAM_GROUP_NAME,

-                                                           curve_name, 0))

-             || !TEST_true(OSSL_PARAM_BLD_push_octet_string(param_bld,

-                                                            OSSL_PKEY_PARAM_PUB_KEY,

-                                                            pub2, bsize))

-             || !TEST_ptr(params2 = OSSL_PARAM_BLD_to_param(param_bld)))

-         goto err;

- 

-     /* create two new provider-native `EVP_PKEY`s */

-     EVP_PKEY_CTX_free(pctx2);

-     if (!TEST_ptr(pctx2 = EVP_PKEY_CTX_new_from_name(NULL, "EC", NULL))

-             || !TEST_true(EVP_PKEY_fromdata_init(pctx2))

-             || !TEST_true(EVP_PKEY_fromdata(pctx2, &pkey1, EVP_PKEY_KEYPAIR,

-                                             params1))

-             || !TEST_true(EVP_PKEY_fromdata(pctx2, &pkey2, EVP_PKEY_PUBLIC_KEY,

-                                             params2)))

-         goto err;

- 

-     /* compute keyexchange once more using the provider keys */

-     EVP_PKEY_CTX_free(pctx1);

-     if (!TEST_ptr(pctx1 = EVP_PKEY_CTX_new(pkey1, NULL))

-             || !TEST_int_eq(EVP_PKEY_derive_init(pctx1), 1)

-             || !TEST_int_eq(EVP_PKEY_derive_set_peer(pctx1, pkey2), 1)

-             || !TEST_int_eq(EVP_PKEY_derive(pctx1, NULL, &t), 1)

-             || !TEST_int_gt(bsize, t)

-             || !TEST_int_le(sslen, t)

-             || !TEST_int_eq(EVP_PKEY_derive(pctx1, buf1, &t), 1)

-             /* compare with previous result */

-             || !TEST_mem_eq(buf1, t, buf2, sslen))

-         goto err;

- 

-     ret = 1;

- 

-  err:

-     BN_CTX_end(ctx);

-     BN_CTX_free(ctx);

-     OSSL_PARAM_BLD_free(param_bld);

-     OSSL_PARAM_free(params1);

-     OSSL_PARAM_free(params2);

-     EC_POINT_free(Q1);

-     EC_POINT_free(Q2);

-     EC_POINT_free(G2);

-     EC_GROUP_free(group);

-     EC_GROUP_free(altgroup);

-     OPENSSL_free(buf1);

-     OPENSSL_free(buf2);

-     OPENSSL_free(pub1);

-     OPENSSL_free(pub2);

-     EC_KEY_free(eckey1);

-     EC_KEY_free(eckey2);

-     EVP_PKEY_free(pkey1);

-     EVP_PKEY_free(pkey2);

-     EVP_PKEY_CTX_free(pctx1);

-     EVP_PKEY_CTX_free(pctx2);

- 

-     return ret;

- }

- 

- int setup_tests(void)

- {

-     crv_len = EC_get_builtin_curves(NULL, 0);

-     if (!TEST_ptr(curves = OPENSSL_malloc(sizeof(*curves) * crv_len))

-         || !TEST_true(EC_get_builtin_curves(curves, crv_len)))

-         return 0;

- 

-     ADD_TEST(parameter_test);

-     /*ADD_TEST(cofactor_range_test);*/

-     ADD_ALL_TESTS(cardinality_test, crv_len);

-     ADD_TEST(prime_field_tests);

- #ifndef OPENSSL_NO_EC2M

-     ADD_TEST(char2_field_tests);

-     ADD_ALL_TESTS(char2_curve_test, OSSL_NELEM(char2_curve_tests));

- #endif

-     ADD_ALL_TESTS(nistp_single_test, OSSL_NELEM(nistp_tests_params));

-     ADD_ALL_TESTS(internal_curve_test, crv_len);

-     ADD_ALL_TESTS(internal_curve_test_method, crv_len);

-     ADD_TEST(group_field_test);

-     ADD_ALL_TESTS(check_named_curve_test, crv_len);

-     ADD_ALL_TESTS(check_named_curve_lookup_test, crv_len);

-     ADD_ALL_TESTS(check_ec_key_field_public_range_test, crv_len);

-     ADD_ALL_TESTS(check_named_curve_from_ecparameters, crv_len);

-     ADD_ALL_TESTS(ec_point_hex2point_test, crv_len);

-     /* ADD_ALL_TESTS(custom_generator_test, crv_len);

-     ADD_ALL_TESTS(custom_params_test, crv_len); */

-     return 1;

- }

- 

- void cleanup_tests(void)

- {

-     OPENSSL_free(curves);

- }

file removed
-40
@@ -1,40 +0,0 @@ 

- #!/bin/sh

- 

- # Quit out if anything fails.

- set -e

- 

- # Clean out patent-or-otherwise-encumbered code.

- # MDC-2: 4,908,861 13/03/2007 - expired, we do not remove it but do not enable it anyway

- # IDEA:  5,214,703 07/01/2012 - expired, we do not remove it anymore

- # RC5:   5,724,428 01/11/2015 - expired, we do not remove it anymore

- # EC:    ????????? ??/??/2020

- # SRP:   ????????? ??/??/2017 - expired, we do not remove it anymore

- 

- # Remove assembler portions of IDEA, MDC2, and RC5.

- # (find crypto/rc5/asm -type f | xargs -r rm -fv)

- 

- for c in `find crypto/bn -name "*gf2m.c"`; do

- 	echo Destroying $c

- 	> $c

- done

- 

- for c in `find crypto/ec -name "ec2*.c" -o -name "ec_curve.c"`; do

- 	echo Destroying $c

- 	> $c

- done

- 

- for c in `find test -name "ectest.c"`; do

- 	echo Destroying $c

- 	> $c

- done

- 

- for h in `find crypto ssl apps test -name "*.h"` ; do

- 	echo Removing EC2M references from $h

- 	cat $h | \

- 	awk    'BEGIN {ech=1;} \

- 		/^#[ \t]*ifndef.*NO_EC2M/ {ech--; next;} \

-                 /^#[ \t]*if/ {if(ech < 1) ech--;} \

- 		{if(ech>0) {;print $0};} \

- 		/^#[ \t]*endif/ {if(ech < 1) ech++;}' > $h.hobbled && \

- 	mv $h.hobbled $h

- done

file modified
+21 -15
@@ -29,13 +29,9 @@ 

  Summary: Utilities from the general purpose cryptography library with TLS implementation

  Name: openssl

  Version: 3.0.8

- Release: 1%{?dist}

+ Release: 2%{?dist}

  Epoch: 1

- # We have to remove certain patented algorithms from the openssl source

- # tarball with the hobble-openssl script which is included below.

- # The original openssl upstream tarball cannot be shipped in the .src.rpm.

- Source: openssl-%{version}-hobbled.tar.gz

- Source1: hobble-openssl

+ Source: openssl-%{version}.tar.gz

  Source2: Makefile.certificate

  Source3: genpatches

  Source4: openssl.rpmlintrc
@@ -43,8 +39,6 @@ 

  Source7: renew-dummy-cert

  Source9: configuration-switch.h

  Source10: configuration-prefix.h

- Source12: ec_curve.c

- Source13: ectest.c

  Source14: 0025-for-tests.patch

  

  # Patches exported from source git
@@ -66,11 +60,16 @@ 

  Patch8: 0008-Add-FIPS_mode-compatibility-macro.patch

  # Add check to see if fips flag is enabled in kernel

  Patch9: 0009-Add-Kernel-FIPS-mode-flag-support.patch

+ # Instead of replacing ectest.c and ec_curve.c, add the changes as a patch so

+ # that new modifications made to these files by upstream are not lost. 

+ Patch10: 0010-Add-changes-to-ectest-and-eccurve.patch

  # remove unsupported EC curves

  Patch11: 0011-Remove-EC-curves.patch

  # Disable explicit EC curves

  # https://bugzilla.redhat.com/show_bug.cgi?id=2066412

  Patch12: 0012-Disable-explicit-ec.patch

+ #Skipped tests from former 0011-Remove-EC-curves.patch

+ Patch13: 0013-skipped-tests-EC-curves.patch

  # Instructions to load legacy provider in openssl.cnf

  Patch24: 0024-load-legacy-prov.patch

  # Tmp: test name change
@@ -211,13 +210,6 @@ 

  %prep

  %autosetup -S git -n %{name}-%{version}

  

- # The hobble_openssl is called here redundantly, just to be sure.

- # The tarball has already the sources removed.

- %{SOURCE1} > /dev/null

- 

- cp %{SOURCE12} crypto/ec/

- cp %{SOURCE13} test/

- 

  %build

  # Figure out which flags we want to use.

  # default
@@ -491,6 +483,20 @@ 

  %ldconfig_scriptlets libs

  

  %changelog

+ * Tue Mar 21 2023 Sahana Prasad <sahana@redhat.com> - 1:3.0.8-2

+ - Upload new upstream sources without manually hobbling them.

+ - Remove the hobbling script as it is redundant. It is now allowed to ship

+   the sources of patented EC curves, however it is still made unavailable to use

+   by compiling with the 'no-ec2m' Configure option. The additional forbidden

+   curves such as P-160, P-192, wap-tls curves are manually removed by updating

+   0011-Remove-EC-curves.patch.

+ - Enable Brainpool curves.

+ - Apply the changes to ec_curve.c and  ectest.c as a new patch

+   0010-Add-changes-to-ectest-and-eccurve.patch instead of replacing them.

+ - Modify 0011-Remove-EC-curves.patch to allow Brainpool curves.

+ - Modify 0011-Remove-EC-curves.patch to allow code under macro OPENSSL_NO_EC2M.

+   Resolves: rhbz#2130618, rhbz#2141672

+ 

  * Thu Feb 09 2023 Dmitry Belyavskiy <dbelyavs@redhat.com> - 1:3.0.8-1

  - Rebase to upstream version 3.0.8

    Resolves: CVE-2022-4203

file modified
+1 -1
@@ -1,1 +1,1 @@ 

- SHA512 (openssl-3.0.8-hobbled.tar.gz) = 42f2a59aa8c39c21b66b528329ace126b870f6d7c3a1da2f2ee18ab875923c5bcf3d9046f884201556799a8ab1d915112a1f124cfaf1ab77b2eac834d1f88c60

+ SHA512 (openssl-3.0.8.tar.gz) = 6c5651e1ed66a567238948b306aa9140c407a153da9c6afe14268c830748df252c955819fac4eb0759dae4dcbc9ec98f5cc2a4a90bb575747b1b040e104c7ffd

  • Remove the hobbling script as it is redundant. It is now allowed to ship
    the sources of patented EC curves, however it is still made unavailable to use
    by compiling with the 'no-ec2m' Configure option. The additional forbidden
    curves such as P-160, P-192, wap-tls curves are manually removed by updating
    0011-Remove-EC-curves.patch.
  • Apply the changes to ec_curve.c and ectest.c as a new patch
    0010-Add-changes-to-ectest-and-eccurve.patch instead of replacing them.
  • Modify 0011-Remove-EC-curves.patch to allow Brainpool curves.
  • Modify 0011-Remove-EC-curves.patch to allow code under macro OPENSSL_NO_EC2M.
    Resolves: rhbz#2130618

Signed-off-by: Sahana Prasad sahana@redhat.com

rebased onto 601042e74413b992af237ebed94478dbdf5e52d6

a year ago

Are we leaving the IPSec curves in, or keeping them out? At the moment it seems this would enable them? Can you ask Hubert for his opinion on those?

Also, did we not want to remove short brainpool curves, too, and only keep the longer ones?

Build succeeded.
https://fedora.softwarefactory-project.io/zuul/buildset/8ac611cbdc1049f895f32bd0ed66f6a3

rebased onto 2ec39a2155ea1348fb2f70f73061af14e505b7fd

a year ago

Build succeeded.
https://fedora.softwarefactory-project.io/zuul/buildset/69cfb6b06f434bb7999c441fc13f5aa7

rebased onto 477bb5e

a year ago

Are we leaving the IPSec curves in, or keeping them out? At the moment it seems this would enable them? Can you ask Hubert for his opinion on those?

Also, did we not want to remove short brainpool curves, too, and only keep the longer ones?

I have removed the IPSec curves and short brainpool curves.

Build succeeded.
https://fedora.softwarefactory-project.io/zuul/buildset/a71de51e3d5d49f8a524ea126e3494b3

Pull-Request has been merged by saprasad

a year ago