| 1717 purple_debug_info("certificate", |
1717 purple_debug_info("certificate", |
| 1718 "CertificatePool %s unregistered\n", |
1718 "CertificatePool %s unregistered\n", |
| 1719 pool->name); |
1719 pool->name); |
| 1720 return TRUE; |
1720 return TRUE; |
| 1721 } |
1721 } |
| |
1722 |
| |
1723 /****************************************************************************/ |
| |
1724 /* Scheme-specific functions */ |
| |
1725 /****************************************************************************/ |
| |
1726 |
| |
1727 void |
| |
1728 purple_certificate_display_x509(PurpleCertificate *crt) |
| |
1729 { |
| |
1730 gchar *sha_asc; |
| |
1731 GByteArray *sha_bin; |
| |
1732 gchar *cn; |
| |
1733 time_t activation, expiration; |
| |
1734 /* Length of these buffers is dictated by 'man ctime_r' */ |
| |
1735 gchar activ_str[26], expir_str[26]; |
| |
1736 gchar *title, *primary, *secondary; |
| |
1737 |
| |
1738 /* Pull out the SHA1 checksum */ |
| |
1739 sha_bin = purple_certificate_get_fingerprint_sha1(crt); |
| |
1740 /* Now decode it for display */ |
| |
1741 sha_asc = purple_base16_encode_chunked(sha_bin->data, |
| |
1742 sha_bin->len); |
| |
1743 |
| |
1744 /* Get the cert Common Name */ |
| |
1745 /* TODO: Will break on CA certs */ |
| |
1746 cn = purple_certificate_get_subject_name(crt); |
| |
1747 |
| |
1748 /* Get the certificate times */ |
| |
1749 /* TODO: Check the times against localtime */ |
| |
1750 /* TODO: errorcheck? */ |
| |
1751 g_assert(purple_certificate_get_times(crt, &activation, &expiration)); |
| |
1752 ctime_r(&activation, activ_str); |
| |
1753 ctime_r(&expiration, expir_str); |
| |
1754 |
| |
1755 /* Make messages */ |
| |
1756 title = g_strdup_printf(_("Certificate: %s"), cn); |
| |
1757 primary = NULL; |
| |
1758 secondary = g_strdup_printf(_("Common name: %s\n\n" |
| |
1759 "Fingerprint (SHA1): %s\n\n" |
| |
1760 "Activation date: %s\n" |
| |
1761 "Expiration date: %s\n"), |
| |
1762 cn, sha_asc, activ_str, expir_str); |
| |
1763 |
| |
1764 /* Make a semi-pretty display */ |
| |
1765 purple_notify_info( |
| |
1766 NULL, /* TODO: Find what the handle ought to be */ |
| |
1767 title, |
| |
1768 primary, |
| |
1769 secondary); |
| |
1770 |
| |
1771 /* Cleanup */ |
| |
1772 g_free(cn); |
| |
1773 g_free(title); |
| |
1774 g_free(primary); |
| |
1775 g_free(secondary); |
| |
1776 g_free(sha_asc); |
| |
1777 g_byte_array_free(sha_bin, TRUE); |
| |
1778 } |
| |
1779 |
| |
1780 |
| |
1781 |
| |
1782 |