static void silcpurple_buddy_showkey(PurpleBlistNode *node, gpointer data) { PurpleBuddy *b; PurpleConnection *gc; SilcPurple sg; SilcPublicKey public_key; const char *pkfile; g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node)); b = (PurpleBuddy *) node; gc = purple_account_get_connection(b->account); sg = gc->proto_data; pkfile = purple_blist_node_get_string(node, "public-key"); if (!silc_pkcs_load_public_key(pkfile, &public_key, SILC_PKCS_FILE_PEM) && !silc_pkcs_load_public_key(pkfile, &public_key, SILC_PKCS_FILE_BIN)) { purple_notify_error(gc, _("Show Public Key"), _("Could not load public key"), NULL); return; } silcpurple_show_public_key(sg, b->name, public_key, NULL, NULL); silc_pkcs_public_key_free(public_key); }
static void silcpurple_verify_details(PublicKeyVerify verify, gint id) { PurpleConnection *gc = verify->client->application; SilcPurple sg = gc->proto_data; silcpurple_show_public_key(sg, verify->entity_name, verify->public_key, G_CALLBACK(silcpurple_verify_details_cb), verify); }