goto error;
}
}
+
/* fixup will generate exp1 and exp2 that are not
* available here.
*/
gnutls_datum_t * plaintext)
{
int result, i;
- bigint_t params[MAX_PUBLIC_PARAMS_SIZE];
- int params_size = MAX_PUBLIC_PARAMS_SIZE;
+ bigint_t params[MAX_PRIV_PARAMS_SIZE];
+ int params_size = MAX_PRIV_PARAMS_SIZE;
int pk_algorithm;
gnutls_openpgp_keyid_t keyid;
KEYID_IMPORT (kid, keyid);
result = _gnutls_openpgp_privkey_get_mpis (key, kid,
params, ¶ms_size);
+
+ i = gnutls_openpgp_privkey_get_subkey_idx (key, keyid);
+
+ pk_algorithm = gnutls_openpgp_privkey_get_subkey_pk_algorithm (key, i, NULL);
}
else
{
+ pk_algorithm = gnutls_openpgp_privkey_get_pk_algorithm (key, NULL);
+
result = _gnutls_openpgp_privkey_get_mpis (key, NULL,
params, ¶ms_size);
+
}
if (result < 0)
return result;
}
- pk_algorithm = gnutls_openpgp_privkey_get_pk_algorithm (key, NULL);
-
if (pk_algorithm != GNUTLS_PK_RSA)
{
gnutls_assert ();