#define KRB5_AUTHDATA_SESAME 65
#define KRB5_AUTHDATA_WIN2K_PAC 128
#define KRB5_AUTHDATA_ETYPE_NEGOTIATION 129 /* RFC 4537 */
-
+#define KRB5_AUTHDATA_FX_ARMOR 71
/* password change constants */
#define KRB5_KPASSWD_SUCCESS 0
krb5_pa_data * tmppa;
krb5_ap_req * apreq;
krb5_error_code retval;
+ krb5_authdata **authdata = NULL;
krb5_data scratch1;
krb5_data * scratch = NULL;
krb5_boolean foreign_server = FALSE;
&authenticator)))
goto cleanup_auth_context;
+ retval = krb5int_find_authdata(kdc_context,
+ (*ticket)->enc_part2->authorization_data,
+ authenticator->authorization_data,
+ KRB5_AUTHDATA_FX_ARMOR, &authdata);
+ if (retval != 0)
+ goto cleanup_auth_context;
+ if (authdata&& authdata[0]) {
+ krb5_set_error_message(kdc_context, KRB5KDC_ERR_POLICY,
+ "ticket valid only as FAST armor");
+ retval = KRB5KDC_ERR_POLICY;
+ krb5_free_authdata(kdc_context, authdata);
+ goto cleanup_auth_context;
+ }
+ krb5_free_authdata(kdc_context, authdata);
+
+
/* Check for a checksum */
if (!(his_cksum = authenticator->checksum)) {
retval = KRB5KRB_AP_ERR_INAPP_CKSUM;