components/pam_pkcs11/patches/03-module_ISA_fix.patch
author Rich Burridge <rich.burridge@oracle.com>
Thu, 06 Oct 2016 07:58:29 -0700
changeset 7061 6e4d359501b9
parent 6731 d80c638073cb
permissions -rw-r--r--
24809230 astroid is missing a couple of dependencies for wrapt and lazy-object-proxy
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6731
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
     1
#
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
     2
# This patch is to add the ISA (Instruction Set Architecture) support to 
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
     3
# module paths in the pam_pkcs11.conf configuration file of the PAM_PKCS11
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
     4
# component, so that the PAM_PKCS11 module can be used for both 32 and 
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
     5
# 64 bit applications at the same time. This patch is for Solaris only. 
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
     6
#
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
     7
--- pam_pkcs11-0.6.8_ORIG/src/common/strings.h	Sat Oct 23 11:36:36 2010
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
     8
+++ pam_pkcs11-0.6.8_NEW/src/common/strings.h	Thu Sep  1 13:47:52 2016
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
     9
@@ -125,6 +125,16 @@
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    10
  */
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    11
 M_EXTERN char *trim(const char *str);
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    12
 
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    13
+#ifdef MODULE_ISA_FIX
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    14
+/**
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    15
+ * Expand PAM_ISA ("/$ISA/") in a path. 
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    16
+ * For example, /usr/lib/$ISA/libpkcs11.so will be expanded to 
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    17
+ * /usr/lib/64/libpkcs11.so for 64 bit applications and to 
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    18
+ * /usr/lib/32/libpkcs11.so for 32 bit applications. 
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    19
+ */
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    20
+M_EXTERN  int expand_isa_path(const char *in, char *out, size_t out_len);
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    21
+#endif
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    22
+
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    23
 #undef M_EXTERN
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    24
 
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    25
 #endif
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    26
--- pam_pkcs11-0.6.8_ORIG/src/common/strings.c	Sat Oct 23 11:36:36 2010
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    27
+++ pam_pkcs11-0.6.8_NEW/src/common/strings.c	Fri Sep  2 10:08:11 2016
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    28
@@ -34,6 +34,17 @@
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    29
 #include <unistd.h>
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    30
 #include "strings.h"
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    31
 
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    32
+#ifdef MODULE_ISA_FIX
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    33
+#include <sys/param.h>
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    34
+
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    35
+#define	PAM_ISA		"/$ISA/"
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    36
+#ifdef	_LP64
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    37
+#define	PAM_ISA_DIR	"/64/"
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    38
+#else	/* !_LP64 */
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    39
+#define	PAM_ISA_DIR	"/32/"
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    40
+#endif	/* _LP64 */
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    41
+#endif
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    42
+
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    43
 /*
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    44
 check for null or blank string
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    45
 */
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    46
@@ -182,4 +193,33 @@
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    47
         return res;
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    48
 }
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    49
 
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    50
+
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    51
+#ifdef MODULE_ISA_FIX
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    52
+/*
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    53
+ * Expand PAM_ISA ("/$ISA/") in a module path. 
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    54
+ */
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    55
+int expand_isa_path(const char *in, char *out, size_t out_len) {
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    56
+        char *isa;
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    57
+        char buf[MAXPATHLEN];
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    58
+
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    59
+        if (strlcpy(buf, in, sizeof (buf)) >= sizeof (buf)) { /* too long */
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    60
+                return 1;
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    61
+	}
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    62
+
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    63
+	/* Check for Instruction Set Architecture indicator */
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    64
+	if ((isa = strstr(buf, PAM_ISA)) != NULL) {
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    65
+		*isa = '\000';
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    66
+		isa += strlen(PAM_ISA);
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    67
+		if (snprintf(out, out_len, "%s%s%s", buf, PAM_ISA_DIR,
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    68
+		    isa) >= out_len) {
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    69
+		        return 1;
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    70
+		}
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    71
+	} else if (strlcpy(out, in, out_len) >= out_len) {
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    72
+		return 1;
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    73
+	}
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    74
+
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    75
+	return 0;
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    76
+}
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    77
+#endif
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    78
+
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    79
 #endif /* __STRINGS_C_ */
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    80
--- pam_pkcs11-0.6.8_ORIG/src/pam_pkcs11/pam_pkcs11.c	Sat Apr  7 09:55:19 2012
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    81
+++ pam_pkcs11-0.6.8_NEW/src/pam_pkcs11/pam_pkcs11.c	Thu Sep  1 13:54:27 2016
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    82
@@ -57,6 +57,10 @@
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    83
 #endif
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    84
 #define LOGNAME   "PAM-PKCS11"  /* name for log-file entries */
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    85
 
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    86
+#ifdef MODULE_ISA_FIX
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    87
+#include <sys/param.h>
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    88
+#endif
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    89
+
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    90
 /*
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    91
 * comodity function that returns 1 on null, empty o spaced string
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    92
 */
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    93
@@ -198,6 +202,9 @@
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    94
   char env_temp[256] = "";
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    95
   char **issuer, **serial;
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    96
   const char *login_token_name = NULL;
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    97
+#ifdef MODULE_ISA_FIX
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    98
+  char real_pkcs11_modulepath[MAXPATHLEN];
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    99
+#endif
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   100
 
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   101
   pam_prompt(pamh, PAM_TEXT_INFO , NULL, _("Smartcard authentification starts"));
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   102
 
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   103
@@ -315,9 +322,28 @@
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   104
     return PAM_IGNORE;
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   105
   }
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   106
 
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   107
+#ifdef MODULE_ISA_FIX
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   108
+  /* get the real pkcs11 module path */  
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   109
+  rv = expand_isa_path(configuration->pkcs11_modulepath,
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   110
+      real_pkcs11_modulepath, sizeof (real_pkcs11_modulepath));
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   111
+  if (rv) {
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   112
+          pam_syslog(pamh, LOG_ERR, 
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   113
+              "load_pkcs11_module(): problem with pkcs11 module path");
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   114
+	  return PAM_AUTHINFO_UNAVAIL;
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   115
+  } else {
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   116
+          DBG1("The real PKCS11 module path is %s", real_pkcs11_modulepath);
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   117
+  }
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   118
+#endif
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   119
+
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   120
   /* load pkcs #11 module */
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   121
   DBG("loading pkcs #11 module...");
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   122
+
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   123
+#ifdef MODULE_ISA_FIX
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   124
+  rv = load_pkcs11_module(real_pkcs11_modulepath, &ph);
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   125
+#else
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   126
   rv = load_pkcs11_module(configuration->pkcs11_modulepath, &ph);
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   127
+#endif
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   128
+
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   129
   if (rv != 0) {
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   130
     ERR2("load_pkcs11_module() failed loading %s: %s",
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   131
 		configuration->pkcs11_modulepath, get_error());
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   132
--- pam_pkcs11-0.6.8_ORIG/src/pam_pkcs11/mapper_mgr.c	Sat Jul  9 05:20:48 2011
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   133
+++ pam_pkcs11-0.6.8_NEW/src/pam_pkcs11/mapper_mgr.c	Thu Sep  1 13:57:17 2016
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   134
@@ -38,6 +38,10 @@
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   135
 #include "../mappers/mapperlist.h"
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   136
 #include "mapper_mgr.h"
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   137
 
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   138
+#ifdef MODULE_ISA_FIX
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   139
+#include <sys/param.h>
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   140
+#endif
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   141
+
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   142
 struct mapper_listitem *root_mapper_list;
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   143
 
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   144
 /*
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   145
@@ -54,6 +58,9 @@
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   146
 	int old_level=get_debug_level();
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   147
 	const char *libname = NULL;
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   148
 	mapper_module * res = NULL;
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   149
+#ifdef MODULE_ISA_FIX
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   150
+	char real_libname[MAXPATHLEN];
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   151
+#endif
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   152
 
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   153
 	/* get module info */
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   154
 	root = scconf_find_block(ctx,NULL,"pam_pkcs11");
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   155
@@ -93,7 +100,17 @@
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   156
 	    }
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   157
 	} else if (blk) { /* assume dynamic module */
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   158
 	    DBG1("Loading dynamic module for mapper '%s'",name);
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   159
+#ifdef MODULE_ISA_FIX
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   160
+	    if (expand_isa_path(libname, real_libname, sizeof (real_libname))) {
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   161
+	        DBG1("Problem in module path %s", libname);
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   162
+                return NULL;
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   163
+	    } else {
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   164
+	        DBG1("Module path is %s", real_libname);
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   165
+	    }
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   166
+	    handler= dlopen(real_libname, RTLD_NOW);
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   167
+#else
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   168
 	    handler= dlopen(libname,RTLD_NOW);
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   169
+#endif
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   170
 	    if (!handler) {
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   171
 		DBG3("dlopen failed for module:  %s path: %s Error: %s",name,libname,dlerror());
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   172
 		return NULL;
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   173
--- pam_pkcs11-0.6.8_ORIG/src/tools/pkcs11_inspect.c	Fri Apr  6 13:08:25 2012
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   174
+++ pam_pkcs11-0.6.8_NEW/src/tools/pkcs11_inspect.c	Thu Sep  1 13:58:46 2016
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   175
@@ -32,6 +32,10 @@
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   176
 #include "../pam_pkcs11/pam_config.h"
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   177
 #include "../pam_pkcs11/mapper_mgr.h"
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   178
 
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   179
+#ifdef MODULE_ISA_FIX
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   180
+#include <sys/param.h>
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   181
+#endif
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   182
+
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   183
 int main(int argc, const char **argv) {
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   184
   int i, rv;
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   185
   pkcs11_handle_t *ph;
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   186
@@ -39,6 +43,9 @@
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   187
   unsigned int slot_num = 0;
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   188
   cert_object_t **certs;
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   189
   int cert_count;
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   190
+#ifdef MODULE_ISA_FIX
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   191
+  char real_pkcs11_modulepath[MAXPATHLEN];
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   192
+#endif
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   193
 
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   194
   /* first of all check whether debugging should be enabled */
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   195
   for (i = 0; i < argc; i++)
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   196
@@ -67,7 +74,19 @@
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   197
 
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   198
   /* load pkcs #11 module */
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   199
   DBG("loading pkcs #11 module...");
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   200
+
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   201
+#ifdef MODULE_ISA_FIX
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   202
+  rv = expand_isa_path(configuration->pkcs11_modulepath,
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   203
+      real_pkcs11_modulepath, sizeof (real_pkcs11_modulepath));
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   204
+  if (rv) {
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   205
+      ERR("Error in the PKCS11 module path");
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   206
+      return 1;
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   207
+  }
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   208
+  rv = load_pkcs11_module(real_pkcs11_modulepath, &ph);
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   209
+#else
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   210
   rv = load_pkcs11_module(configuration->pkcs11_modulepath, &ph);
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   211
+#endif
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   212
+
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   213
   if (rv != 0) {
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   214
     ERR2("load_pkcs11_module(%s) failed: %s", configuration->pkcs11_modulepath,
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   215
       get_error());
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   216
--- pam_pkcs11-0.6.8_ORIG/src/tools/pklogin_finder.c	Fri Apr  6 13:08:25 2012
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   217
+++ pam_pkcs11-0.6.8_NEW/src/tools/pklogin_finder.c	Thu Sep  1 13:59:18 2016
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   218
@@ -32,6 +32,10 @@
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   219
 #include "../pam_pkcs11/pam_config.h"
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   220
 #include "../pam_pkcs11/mapper_mgr.h"
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   221
 
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   222
+#ifdef MODULE_ISA_FIX
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   223
+#include <sys/param.h>
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   224
+#endif
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   225
+
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   226
 int main(int argc, const char **argv) {
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   227
   int i, rv;
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   228
   char *user = NULL;
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   229
@@ -40,6 +44,9 @@
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   230
   cert_object_t **certs;
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   231
   int cert_count;
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   232
   unsigned int slot_num = 0;
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   233
+#ifdef MODULE_ISA_FIX
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   234
+  char real_pkcs11_modulepath[MAXPATHLEN];
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   235
+#endif
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   236
 
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   237
 
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   238
   /* first of all check whether debugging should be enabled */
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   239
@@ -69,7 +76,19 @@
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   240
 
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   241
   /* load pkcs #11 module */
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   242
   DBG("loading pkcs #11 module...");
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   243
+
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   244
+#ifdef MODULE_ISA_FIX
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   245
+  rv = expand_isa_path(configuration->pkcs11_modulepath,
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   246
+      real_pkcs11_modulepath, sizeof (real_pkcs11_modulepath));
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   247
+  if (rv) {
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   248
+      ERR("Error in the PKCS11 module path");
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   249
+      return 1;
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   250
+  }
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   251
+  rv = load_pkcs11_module(real_pkcs11_modulepath, &ph);
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   252
+#else
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   253
   rv = load_pkcs11_module(configuration->pkcs11_modulepath, &ph);
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   254
+#endif
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   255
+
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   256
   if (rv != 0) {
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   257
     DBG1("load_pkcs11_module() failed: %s", get_error());
d80c638073cb PSARC/2016/513 ISA specification for pam_pkcs11.conf
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   258
     return 1;