Changeset 7
- Timestamp:
- 09/01/05 17:52:41 (3 years ago)
- Files:
-
- 1 modified
-
trunk/src/pam_p11.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/pam_p11.c
r2 r7 75 75 76 76 PKCS11_CTX *ctx; 77 PKCS11_SLOT *slot ;77 PKCS11_SLOT *slot, *slots; 78 78 PKCS11_CERT *certs; 79 unsigned int n certs;79 unsigned int nslots, ncerts; 80 80 PKCS11_KEY *authkey; 81 81 PKCS11_CERT *authcert; … … 90 90 /* open log */ 91 91 openlog(LOGNAME, LOG_CONS | LOG_PID, LOG_AUTHPRIV); 92 93 /* check parameters */ 94 if (argc != 2) { 95 syslog(LOG_ERR, "%s failed: need pkcs11 module as argument", 96 argv[0]); 97 return PAM_ABORT; 98 } 92 99 93 100 /* init openssl */ … … 107 114 /* load pkcs #11 module */ 108 115 rv = PKCS11_CTX_load(ctx, argv[0]); 109 110 116 if (rv) { 111 117 syslog(LOG_ERR, "loading pkcs11 engine failed"); … … 113 119 } 114 120 115 /* get first slot with a token */ 116 slot = PKCS11_find_token(ctx); 121 /* get all slots */ 122 rv = PKCS11_enumerate_slots(ctx, &slots, &nslots); 123 if (rv) { 124 syslog(LOG_ERR, "listing slots failed"); 125 return PAM_AUTHINFO_UNAVAIL; 126 } 127 128 /* search for the first slot with a token */ 129 slot = PKCS11_find_token(ctx, slots, nslots); 117 130 if (!slot || !slot->token) { 118 131 syslog(LOG_ERR, "no token available"); … … 284 297 285 298 out: 299 PKCS11_release_all_slots(ctx, slots, nslots); 286 300 PKCS11_CTX_unload(ctx); 287 301 PKCS11_CTX_free(ctx);
