int peer_certificate_list_size = 0;
gnutls_datum_t tmp, akey = { NULL, 0 };
gnutls_openpgp_keyid_t subkey_id;
- void* selected_subkey = NULL;
+ unsigned int subkey_id_set = 0;
cred = (gnutls_certificate_credentials_t)
_gnutls_get_cred (session->key, GNUTLS_CRD_CERTIFICATE, NULL);
p++;
DECR_LEN (dsize, 1);
memcpy( subkey_id, p, sizeof( subkey_id));
+
+ subkey_id_set = 1;
p+= sizeof( subkey_id);
DECR_LEN (dsize, sizeof( subkey_id));
-
- selected_subkey = &subkey_id;
}
/* read the actual key or fingerprint */
if ((ret =
_gnutls_openpgp_raw_crt_to_gcert (&peer_certificate_list[0],
- &tmp, selected_subkey)) < 0)
+ &tmp, subkey_id_set?subkey_id:NULL)) < 0)
{
gnutls_assert ();
goto cleanup;
return _gnutls_x509_raw_cert_to_gcert (gcert, &info->raw_certificate_list[0], flags);
#ifdef ENABLE_OPENPGP
case GNUTLS_CRT_OPENPGP:
- if (info->use_subkey)
- return _gnutls_openpgp_raw_crt_to_gcert (gcert, &info->raw_certificate_list[0], info->subkey_id);
- else
- return _gnutls_openpgp_raw_crt_to_gcert (gcert, &info->raw_certificate_list[0], NULL);
+ return _gnutls_openpgp_raw_crt_to_gcert (gcert, &info->raw_certificate_list[0], info->use_subkey?info->subkey_id:NULL);
#endif
default:
gnutls_assert ();
-*/
int
_gnutls_openpgp_raw_crt_to_gcert (gnutls_cert * gcert,
- const gnutls_datum_t * raw, const gnutls_openpgp_keyid_t *keyid)
+ const gnutls_datum_t * raw, const gnutls_openpgp_keyid_t keyid)
{
gnutls_openpgp_crt_t pcrt;
int ret;
if (keyid != NULL)
{
- ret = gnutls_openpgp_crt_set_preferred_key_id( pcrt, *keyid);
+ ret = gnutls_openpgp_crt_set_preferred_key_id( pcrt, keyid);
if (ret < 0)
{
gnutls_assert();
/* internal */
int _gnutls_openpgp_raw_crt_to_gcert (gnutls_cert * cert,
- const gnutls_datum_t * raw, const gnutls_openpgp_keyid_t*);
+ const gnutls_datum_t * raw, const gnutls_openpgp_keyid_t);
int
_gnutls_openpgp_raw_privkey_to_gkey (gnutls_privkey * pkey,