libpurple/protocols/gg/lib/events.c

branch
soc.2012.gg
changeset 33286
98d449073931
parent 33285
32cbdbf016bd
child 35369
7e15c82f7d71
equal deleted inserted replaced
33285:32cbdbf016bd 33286:98d449073931
1 /* $Id: events.c 1105 2011-05-25 21:34:50Z wojtekka $ */ 1 /* $Id: events.c 1144 2011-07-09 15:43:00Z wojtekka $ */
2 2
3 /* 3 /*
4 * (C) Copyright 2001-2006 Wojtek Kaniewski <wojtekka@irc.pl> 4 * (C) Copyright 2001-2006 Wojtek Kaniewski <wojtekka@irc.pl>
5 * Robert J. Woźny <speedy@ziew.org> 5 * Robert J. Woźny <speedy@ziew.org>
6 * Arkadiusz Miśkiewicz <arekm@pld-linux.org> 6 * Arkadiusz Miśkiewicz <arekm@pld-linux.org>
804 if (gnutls_certificate_type_get(GG_SESSION_GNUTLS(sess)) == GNUTLS_CRT_X509) { 804 if (gnutls_certificate_type_get(GG_SESSION_GNUTLS(sess)) == GNUTLS_CRT_X509) {
805 unsigned int peer_count; 805 unsigned int peer_count;
806 const gnutls_datum_t *peers; 806 const gnutls_datum_t *peers;
807 gnutls_x509_crt_t cert; 807 gnutls_x509_crt_t cert;
808 808
809 if (gnutls_x509_crt_init(&cert) >= 0) { 809 if (gnutls_x509_crt_init(&cert) == 0) {
810 peers = gnutls_certificate_get_peers(GG_SESSION_GNUTLS(sess), &peer_count); 810 peers = gnutls_certificate_get_peers(GG_SESSION_GNUTLS(sess), &peer_count);
811 811
812 if (peers != NULL) { 812 if (peers != NULL) {
813 char buf[256]; 813 char buf[256];
814 size_t size; 814 size_t size;
815 815
816 if (gnutls_x509_crt_import(cert, &peers[0], GNUTLS_X509_FMT_DER) >= 0) { 816 if (gnutls_x509_crt_import(cert, &peers[0], GNUTLS_X509_FMT_DER) == 0) {
817 size = sizeof(buf); 817 size = sizeof(buf);
818 gnutls_x509_crt_get_dn(cert, buf, &size); 818 gnutls_x509_crt_get_dn(cert, buf, &size);
819 gg_debug_session(sess, GG_DEBUG_MISC, "// cert subject: %s\n", buf); 819 gg_debug_session(sess, GG_DEBUG_MISC, "// cert subject: %s\n", buf);
820 size = sizeof(buf); 820 size = sizeof(buf);
821 gnutls_x509_crt_get_issuer_dn(cert, buf, &size); 821 gnutls_x509_crt_get_issuer_dn(cert, buf, &size);
822 gg_debug_session(sess, GG_DEBUG_MISC, "// cert issuer: %s\n", buf); 822 gg_debug_session(sess, GG_DEBUG_MISC, "// cert issuer: %s\n", buf);
823 } 823 }
824 } 824 }
825
826 gnutls_x509_crt_deinit(cert);
825 } 827 }
826 } 828 }
827 829
828 sess->state = GG_STATE_READING_KEY; 830 sess->state = GG_STATE_READING_KEY;
829 sess->check = GG_CHECK_READ; 831 sess->check = GG_CHECK_READ;

mercurial