| 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; |