struct gss_api_mech;
+typedef int (*digest_hash)(
+ struct ahash_request *req, rawobj_t *hdr,
+ int msgcnt, rawobj_t *msgs,
+ int iovcnt, lnet_kiov_t *iovs);
+
/* The mechanism-independent gss-api context: */
struct gss_ctx {
- struct gss_api_mech *mech_type;
- void *internal_ctx_id;
+ struct gss_api_mech *mech_type;
+ void *internal_ctx_id;
+ digest_hash hash_func;
};
#define GSS_C_NO_BUFFER ((rawobj_t) 0)
struct gss_ctx **ctx_new);
__u32 lgss_inquire_context(
struct gss_ctx *ctx,
- unsigned long *endtime);
+ time64_t *endtime);
__u32 lgss_get_mic(
struct gss_ctx *ctx,
int msgcnt,
/* Each mechanism is described by the following struct: */
struct gss_api_mech {
- cfs_list_t gm_list;
- cfs_module_t *gm_owner;
- char *gm_name;
- rawobj_t gm_oid;
- cfs_atomic_t gm_count;
- struct gss_api_ops *gm_ops;
- int gm_sf_num;
- struct subflavor_desc *gm_sfs;
+ struct list_head gm_list;
+ struct module *gm_owner;
+ char *gm_name;
+ rawobj_t gm_oid;
+ atomic_t gm_count;
+ struct gss_api_ops *gm_ops;
+ int gm_sf_num;
+ struct subflavor_desc *gm_sfs;
};
/* and must provide the following operations: */
struct gss_ctx *ctx_new);
__u32 (*gss_inquire_context)(
struct gss_ctx *ctx,
- unsigned long *endtime);
+ time64_t *endtime);
__u32 (*gss_get_mic)(
struct gss_ctx *ctx,
int msgcnt,