+ result_xml_tag_start (&state, "key", NULL);
+ result_add_value (&state, "revoked", key->revoked);
+ result_add_value (&state, "expired", key->expired);
+ result_add_value (&state, "disabled", key->disabled);
+ result_add_value (&state, "invalid", key->invalid);
+ result_add_value (&state, "can-encrypt", key->can_encrypt);
+ result_add_value (&state, "can-sign", key->can_sign);
+ result_add_value (&state, "can-certify", key->can_certify);
+ result_add_value (&state, "can-authenticate", key->can_authenticate);
+ result_add_value (&state, "is-qualified", key->is_qualified);
+ result_add_value (&state, "secret", key->secret);
+ result_add_protocol (&state, "protocol", key->protocol);
+ result_xml_tag_start (&state, "issuer", NULL);
+ result_add_string (&state, "serial", key->issuer_serial);
+ result_add_string (&state, "name", key->issuer_name);
+ result_xml_tag_end (&state); /* issuer */
+ result_add_string (&state, "chain-id", key->chain_id);
+ result_add_validity (&state, "owner-trust", key->owner_trust);
+ result_xml_tag_start (&state, "subkeys", NULL);
+ subkey = key->subkeys;
+ while (subkey) {
+ result_xml_tag_start (&state, "subkey", NULL);
+ /* FIXME: more data */
+ result_add_fpr (&state, "fpr", subkey->fpr);
+ result_xml_tag_end (&state); /* subkey */
+ subkey = subkey->next;
+ }
+ result_xml_tag_end (&state); /* subkeys */
+ result_xml_tag_start (&state, "uids", NULL);
+ uid = key->uids;
+ while (uid) {
+ result_xml_tag_start (&state, "uid", NULL);
+ /* FIXME: more data */
+ result_add_string (&state, "uid", uid->uid);
+ result_add_string (&state, "name", uid->name);
+ result_add_string (&state, "email", uid->email);
+ result_add_string (&state, "comment", uid->comment);
+ result_xml_tag_end (&state); /* uid */
+ uid = uid->next;
+ }
+ result_xml_tag_end (&state); /* uids */
+ result_xml_tag_end (&state); /* key */