1.6 has common code for this, but not 1.4....
Keep the calls conditional on the presence of a krb5 library.
Change-Id: I5a1bcd515cb56a410f94de0a0f3614a8c8312b19
bozo_rxsc[1] = (struct rx_securityClass *)0;
bozo_rxsc[2] =
rxkad_NewServerSecurityObject(0, tdir, afsconf_GetKey, NULL);
+#ifdef USE_RXKAD_KEYTAB
+ if (rxkad_InitKeytabDecrypt(AFSDIR_SERVER_RXKAD_KEYTAB_FILEPATH) == 0)
+ rxkad_BindKeytabDecrypt(bozo_rxsc[2]);
+#endif
/* Disable jumbograms */
rx_SetNoJumbo();
sca[RX_SCINDEX_KAD] =
rxkad_NewServerSecurityObject(rxkad_clear, BU_conf, afsconf_GetKey,
NULL);
+#ifdef USE_RXKAD_KEYTAB
+ if (rxkad_InitKeytabDecrypt(AFSDIR_SERVER_RXKAD_KEYTAB_FILEPATH) == 0)
+ rxkad_BindKeytabDecrypt(sca[RX_SCINDEX_KAD]);
+#endif
/* Disable jumbograms */
rx_SetNoJumbo();
sc[1] = 0;
if (kerberosKeys) {
sc[2] = rxkad_NewServerSecurityObject(0, prdir, afsconf_GetKey, NULL);
+#ifdef USE_RXKAD_KEYTAB
+ if (rxkad_InitKeytabDecrypt(AFSDIR_SERVER_RXKAD_KEYTAB_FILEPATH) == 0)
+ rxkad_BindKeytabDecrypt(sc[2]);
+#endif
} else
sc[2] = sc[0];
rxkad_NewServerSecurityObject(rxkad_clear, cdir, afsconf_GetKey, 0);
if (securityObjects[2] == (struct rx_securityClass *)0)
Quit("rxkad_NewServerSecurityObject");
-
+#ifdef USE_RXKAD_KEYTAB
+ if (rxkad_InitKeytabDecrypt(AFSDIR_SERVER_RXKAD_KEYTAB_FILEPATH) == 0)
+ rxkad_BindKeytabDecrypt(securityObjects[2]);
+#endif
/* Instantiate a single UPDATE service. The rxgen-generated procedure
* which is called to decode requests is passed in here
* (UPDATE_ExecuteRequest). */
sc[1] = 0; /* rxvab_NewServerSecurityObject(key1, 0) */
sc[2] = rxkad_NewServerSecurityObject(rxkad_clear, NULL, get_key, NULL);
sc[3] = rxkad_NewServerSecurityObject(rxkad_crypt, NULL, get_key, NULL);
+#ifdef USE_RXKAD_KEYTAB
+ if (rxkad_InitKeytabDecrypt(AFSDIR_SERVER_RXKAD_KEYTAB_FILEPATH) == 0) {
+ rxkad_BindKeytabDecrypt(sc[2]);
+ rxkad_BindKeytabDecrypt(sc[3]);
+ }
+#endif
tservice = rx_NewServiceHost(rx_bindhost, /* port */ 0, /* service id */
1, /*service name */
"AFS",
sc[0] = rxnull_NewServerSecurityObject();
sc[1] = (struct rx_securityClass *)0;
sc[2] = rxkad_NewServerSecurityObject(0, tdir, afsconf_GetKey, NULL);
-
+#ifdef USE_RXKAD_KEYTAB
+ if (rxkad_InitKeytabDecrypt(AFSDIR_SERVER_RXKAD_KEYTAB_FILEPATH) == 0)
+ rxkad_BindKeytabDecrypt(sc[2]);
+#endif
tservice =
rx_NewServiceHost(host, 0, USER_SERVICE_ID, "Vldb server", sc, 3,
VL_ExecuteRequest);
rxkad_NewServerSecurityObject(0, tdir, afsconf_GetKey, NULL);
if (securityObjects[0] == (struct rx_securityClass *)0)
Abort("rxnull_NewServerSecurityObject");
+#ifdef USE_RXKAD_KEYTAB
+ if (securityObjects[2] != NULL && rxkad_InitKeytabDecrypt(AFSDIR_SERVER_RXKAD_KEYTAB_FILEPATH) == 0)
+ rxkad_BindKeytabDecrypt(securityObjects[2]);
+#endif
service =
rx_NewServiceHost(host, 0, VOLSERVICE_ID, "VOLSER", securityObjects, 3,
AFSVolExecuteRequest);