1111 *
1212 *
1313 * IDENTIFICATION
14- * $PostgreSQL: pgsql/src/interfaces/libpq/fe-secure.c,v 1.93 2007/02/16 02:59:41 momjian Exp $
14+ * $PostgreSQL: pgsql/src/interfaces/libpq/fe-secure.c,v 1.94 2007/02/16 17:07:00 tgl Exp $
1515 *
1616 * NOTES
1717 * [ Most of these notes are wrong/obsolete, but perhaps not all ]
@@ -619,7 +619,7 @@ client_cert_cb(SSL *ssl, X509 **x509, EVP_PKEY **pkey)
619619 char * engine_env = getenv ("PGSSLKEY" );
620620 char * engine_colon = strchr (engine_env , ':' );
621621 char * engine_str ;
622- ENGINE * engine_ptr = NULL ;
622+ ENGINE * engine_ptr ;
623623
624624 if (!engine_colon )
625625 {
@@ -630,34 +630,38 @@ client_cert_cb(SSL *ssl, X509 **x509, EVP_PKEY **pkey)
630630
631631 engine_str = malloc (engine_colon - engine_env + 1 );
632632 strlcpy (engine_str , engine_env , engine_colon - engine_env + 1 );
633- if ((engine_ptr = ENGINE_by_id (engine_str )) == NULL )
633+ engine_ptr = ENGINE_by_id (engine_str );
634+ if (engine_ptr == NULL )
634635 {
635636 char * err = SSLerrmessage ();
636637
637638 printfPQExpBuffer (& conn -> errorMessage ,
638- libpq_gettext ("could not load SSL engine \"%s\":%s\n" ), engine_str , err );
639- free ( engine_str );
639+ libpq_gettext ("could not load SSL engine \"%s\": %s\n" ),
640+ engine_str , err );
640641 SSLerrfree (err );
642+ free (engine_str );
641643 return 0 ;
642644 }
643- if ((* pkey = ENGINE_load_private_key (engine_ptr ,
644- engine_colon + 1 , NULL , NULL )) == NULL )
645+
646+ * pkey = ENGINE_load_private_key (engine_ptr , engine_colon + 1 ,
647+ NULL , NULL );
648+ if (* pkey == NULL )
645649 {
646650 char * err = SSLerrmessage ();
647651
648652 printfPQExpBuffer (& conn -> errorMessage ,
649- libpq_gettext ("could not read private SSL key %s from engine \"%s\": %s\n" ),
650- engine_colon + 1 , engine_str , err );
653+ libpq_gettext ("could not read private SSL key \"%s\" from engine \"%s\": %s\n" ),
654+ engine_colon + 1 , engine_str , err );
651655 SSLerrfree (err );
652656 free (engine_str );
653657 return 0 ;
654658 }
655659 free (engine_str );
656660 }
657661 else
658- #endif
662+ #endif /* use PGSSLKEY */
659663 {
660- /* read the user key from file*/
664+ /* read the user key from file */
661665 snprintf (fnbuf , sizeof (fnbuf ), "%s/%s" , homedir , USER_KEY_FILE );
662666 if (stat (fnbuf , & buf ) == -1 )
663667 {
@@ -666,7 +670,7 @@ client_cert_cb(SSL *ssl, X509 **x509, EVP_PKEY **pkey)
666670 fnbuf );
667671 return 0 ;
668672 }
669- #ifndef WIN32
673+ #ifndef WIN32
670674 if (!S_ISREG (buf .st_mode ) || (buf .st_mode & 0077 ) ||
671675 buf .st_uid != geteuid ())
672676 {
@@ -675,23 +679,23 @@ client_cert_cb(SSL *ssl, X509 **x509, EVP_PKEY **pkey)
675679 fnbuf );
676680 return 0 ;
677681 }
678- #endif
682+ #endif
679683 if ((fp = fopen (fnbuf , "r" )) == NULL )
680684 {
681685 printfPQExpBuffer (& conn -> errorMessage ,
682686 libpq_gettext ("could not open private key file \"%s\": %s\n" ),
683687 fnbuf , pqStrerror (errno , sebuf , sizeof (sebuf )));
684688 return 0 ;
685689 }
686- #ifndef WIN32
690+ #ifndef WIN32
687691 if (fstat (fileno (fp ), & buf2 ) == -1 ||
688692 buf .st_dev != buf2 .st_dev || buf .st_ino != buf2 .st_ino )
689693 {
690694 printfPQExpBuffer (& conn -> errorMessage ,
691695 libpq_gettext ("private key file \"%s\" changed during execution\n" ), fnbuf );
692696 return 0 ;
693697 }
694- #endif
698+ #endif
695699 if (PEM_read_PrivateKey (fp , pkey , NULL , NULL ) == NULL )
696700 {
697701 char * err = SSLerrmessage ();
@@ -705,6 +709,7 @@ client_cert_cb(SSL *ssl, X509 **x509, EVP_PKEY **pkey)
705709 }
706710 fclose (fp );
707711 }
712+
708713 /* verify that the cert and key go together */
709714 if (!X509_check_private_key (* x509 , * pkey ))
710715 {
@@ -788,7 +793,7 @@ init_ssl_system(PGconn *conn)
788793 {
789794 if (pq_initssllib )
790795 {
791- #if ( SSLEAY_VERSION_NUMBER >= 0x00907000L )
796+ #if SSLEAY_VERSION_NUMBER >= 0x00907000L
792797 OPENSSL_config (NULL );
793798#endif
794799 SSL_library_init ();
0 commit comments