/[imapfilter]/imapfilter/cert.c
ViewVC logotype

Diff of /imapfilter/cert.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by lefcha, Thu Jul 31 15:46:02 2003 UTC revision 1.1.2.1 by lefcha, Fri Aug 8 00:28:29 2003 UTC
# Line 2  Line 2 
2  #include <string.h>  #include <string.h>
3  #include <ctype.h>  #include <ctype.h>
4  #include <limits.h>  #include <limits.h>
 #include <sys/types.h>  
5  #include <sys/stat.h>  #include <sys/stat.h>
 #include <fcntl.h>  
6    
7  #include "config.h"  #include "config.h"
8  #include "imapfilter.h"  #include "imapfilter.h"
9  #include "pathnames.h"  #include "pathnames.h"
10    
11  #ifdef SSL_TLS  #ifdef SSL_TLS
 #include <openssl/ssl.h>  
12  #include <openssl/x509.h>  #include <openssl/x509.h>
13    #include <openssl/ssl.h>
14  #include <openssl/pem.h>  #include <openssl/pem.h>
15    #include <openssl/evp.h>
16    
17    
18    extern char *home;
19  extern unsigned int options;  extern unsigned int options;
20  extern unsigned int flags;  extern unsigned int flags;
21    
# Line 80  check_cert(X509 * pcert, unsigned char * Line 80  check_cert(X509 * pcert, unsigned char *
80  {  {
81          int r;          int r;
82          FILE *fd;          FILE *fd;
83            char certf[PATH_MAX];
84          X509 *cert;          X509 *cert;
85          unsigned char md[EVP_MAX_MD_SIZE];          unsigned char md[EVP_MAX_MD_SIZE];
86          unsigned int mdlen;          unsigned int mdlen;
# Line 87  check_cert(X509 * pcert, unsigned char * Line 88  check_cert(X509 * pcert, unsigned char *
88          r = SSL_CERT_NONEXISTENT;          r = SSL_CERT_NONEXISTENT;
89          cert = NULL;          cert = NULL;
90    
91          if (!exists_file(PATHNAME_CERT_FILE))          snprintf(certf, PATH_MAX, "%s/%s", home, PATHNAME_CERT_FILE);
92            if (!exists_file(certf))
93                  return SSL_CERT_NONEXISTENT;                  return SSL_CERT_NONEXISTENT;
94    
95          fd = fopen(PATHNAME_CERT_FILE, "r");          fd = fopen(certf, "r");
96          if (fd == NULL)          if (fd == NULL)
97                  return ERROR_FILE_OPEN;                  return ERROR_FILE_OPEN;
98    
# Line 149  write_cert(X509 * cert) Line 151  write_cert(X509 * cert)
151  {  {
152          FILE *fd;          FILE *fd;
153          char c, buf[LINE_MAX];          char c, buf[LINE_MAX];
154            char certf[PATH_MAX];
155    
156          do {          do {
157                  printf("(R)eject, accept (t)emporarily or "                  printf("(R)eject, accept (t)emporarily or "
# Line 162  write_cert(X509 * cert) Line 165  write_cert(X509 * cert)
165          else if (c == 't')          else if (c == 't')
166                  return SSL_CERT_ACTION_ACCEPT;                  return SSL_CERT_ACTION_ACCEPT;
167    
168          create_file(PATHNAME_CERT_FILE, S_IRUSR | S_IWUSR);          snprintf(certf, PATH_MAX, "%s/%s", home, PATHNAME_CERT_FILE);
169            create_file(certf, S_IRUSR | S_IWUSR);
170    
171          fd = fopen(PATHNAME_CERT_FILE, "a");          fd = fopen(certf, "a");
172          if (fd == NULL)          if (fd == NULL)
173                  return SSL_CERT_ACTION_REJECT;                  return SSL_CERT_ACTION_REJECT;
174    

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.1.2.1

webmaster@linux.gr
ViewVC Help
Powered by ViewVC 1.1.26