memcpy(&ecc_pub.Gy, pub->params[4], sizeof(mpz_t));
memcpy(&ecc_pub.pubkey.x, pub->params[5], sizeof(mpz_t));
memcpy(&ecc_pub.pubkey.y, pub->params[6], sizeof(mpz_t));
- memcpy(&ecc_pub.pubkey.z, pub->params[7], sizeof(mpz_t));
+ mpz_init_set_ui(ecc_pub.pubkey.z, 1);
ecc_priv.type = PK_PRIVATE;
memcpy(&ecc_priv.prime, priv->params[0], sizeof(mpz_t));
memcpy(&ecc_priv.Gy, priv->params[4], sizeof(mpz_t));
memcpy(&ecc_priv.pubkey.x, priv->params[5], sizeof(mpz_t));
memcpy(&ecc_priv.pubkey.y, priv->params[6], sizeof(mpz_t));
- memcpy(&ecc_priv.pubkey.z, priv->params[7], sizeof(mpz_t));
- memcpy(&ecc_priv.k, priv->params[8], sizeof(mpz_t));
+ memcpy(&ecc_priv.k, priv->params[7], sizeof(mpz_t));
+ mpz_init_set_ui(ecc_pub.pubkey.z, 1);
sz = ECC_BUF_SIZE;
out->data = gnutls_malloc(sz);
mpz_set(TOMPZ(params->params[4]), key.Gy);
mpz_set(TOMPZ(params->params[5]), key.pubkey.x);
mpz_set(TOMPZ(params->params[6]), key.pubkey.y);
- mpz_set(TOMPZ(params->params[7]), key.pubkey.z);
- mpz_set(TOMPZ(params->params[8]), key.k);
+ mpz_set(TOMPZ(params->params[7]), key.k);
ecc_fail:
ecc_free(&key);
/* parameters should not be larger than this limit */
#define DSA_PUBLIC_PARAMS 4
#define RSA_PUBLIC_PARAMS 2
-#define ECC_PUBLIC_PARAMS 8
+#define ECC_PUBLIC_PARAMS 7
#define MAX_PRIV_PARAMS_SIZE GNUTLS_MAX_PK_PARAMS /* ok for RSA and DSA */
/* parameters should not be larger than this limit */
#define DSA_PRIVATE_PARAMS 5
#define RSA_PRIVATE_PARAMS 8
-#define ECC_PRIVATE_PARAMS 9
+#define ECC_PRIVATE_PARAMS 8
#if MAX_PRIV_PARAMS_SIZE - RSA_PRIVATE_PARAMS < 0
#error INCREASE MAX_PRIV_PARAMS