Changeset 34
- Timestamp:
- 07/03/07 17:07:18 (17 months ago)
- Location:
- trunk/src
- Files:
-
- 2 modified
-
match_opensc.c (modified) (3 diffs)
-
pam_p11.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/match_opensc.c
r2 r34 12 12 #include <openssl/x509.h> 13 13 14 static void add_cert(X509 * cert, X509 ***certs, int *ncerts)14 static void add_cert(X509 * cert, X509 *** certs, int *ncerts) 15 15 { 16 16 X509 **certs2; … … 67 67 return -1; 68 68 69 snprintf(filename, PATH_MAX, "%s/.eid/authorized_certificates", pw->pw_dir); 69 snprintf(filename, PATH_MAX, "%s/.eid/authorized_certificates", 70 pw->pw_dir); 70 71 71 72 in = BIO_new(BIO_s_file()); … … 73 74 return -1; 74 75 75 rc = BIO_read_filename(in, filename);76 if (rc != 1) {77 syslog(LOG_ERR,"BIO_read_filename from %s failed\n",filename);78 return -1;79 }76 rc = BIO_read_filename(in, filename); 77 if (rc != 1) { 78 syslog(LOG_ERR, "BIO_read_filename from %s failed\n", filename); 79 return -1; 80 } 80 81 81 ncerts=0; certs=NULL; 82 ncerts = 0; 83 certs = NULL; 82 84 for (;;) { 83 85 X509 *cert = PEM_read_bio_X509(in, NULL, 0, NULL); 84 86 if (cert) 85 87 add_cert(cert, &certs, &ncerts); 86 else 88 else 87 89 break; 88 90 } 89 91 90 BIO_free(in);92 BIO_free(in); 91 93 92 94 for (i = 0; i < ncerts; i++) { 93 if (X509_cmp(certs[i], x509) == 0)95 if (X509_cmp(certs[i], x509) == 0) 94 96 return 1; /* FOUND */ 95 97 } -
trunk/src/pam_p11.c
r31 r34 118 118 } 119 119 120 /* get all slots */ 120 /* get all slots */ 121 121 rv = PKCS11_enumerate_slots(ctx, &slots, &nslots); 122 122 if (rv) { … … 140 140 goto out; 141 141 } 142 if (ncerts <= 0) {142 if (ncerts <= 0) { 143 143 syslog(LOG_ERR, "no certificates found"); 144 144 rv = PAM_AUTHINFO_UNAVAIL;
