]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
SUNRPC: Remove wrap/unwrap function pointers from enctype table
authorChuck Lever <chuck.lever@oracle.com>
Mon, 27 Apr 2026 13:50:56 +0000 (09:50 -0400)
committerChuck Lever <cel@kernel.org>
Tue, 9 Jun 2026 20:32:59 +0000 (16:32 -0400)
Every enctype points .wrap and .unwrap at gss_krb5_wrap_v2()
and gss_krb5_unwrap_v2(). As with get_mic/verify_mic, the
indirection dates from when v1 enctypes had different wrap
implementations. Call the functions directly and remove the
pointers from struct gss_krb5_enctype.

Assisted-by: Claude:claude-opus-4-6
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Acked-by: Anna Schumaker <anna.schumaker@hammerspace.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
net/sunrpc/auth_gss/gss_krb5_internal.h
net/sunrpc/auth_gss/gss_krb5_mech.c

index a63f8d465b63e70a11ea5f4ac4657bfc89e58424..92b0baed920cea0211563a129c73a179e09433c9 100644 (file)
@@ -44,11 +44,6 @@ struct gss_krb5_enctype {
                       struct xdr_buf *buf, struct page **pages);
        u32 (*decrypt)(struct krb5_ctx *kctx, u32 offset, u32 len,
                       struct xdr_buf *buf, u32 *headskip, u32 *tailskip);
-       u32 (*wrap)(struct krb5_ctx *kctx, int offset,
-                   struct xdr_buf *buf, struct page **pages);
-       u32 (*unwrap)(struct krb5_ctx *kctx, int offset, int len,
-                     struct xdr_buf *buf, unsigned int *slack,
-                     unsigned int *align);
 };
 
 /* krb5_ctx flags definitions */
index 511e19e0e78637489cbaae9ed6987025b53f5227..d027ddab132f75b0484204bc953fa8e2b436c8e2 100644 (file)
@@ -46,9 +46,6 @@ static const struct gss_krb5_enctype supported_gss_krb5_enctypes[] = {
          .encrypt = gss_krb5_aead_encrypt,
          .decrypt = gss_krb5_aead_decrypt,
 
-         .wrap = gss_krb5_wrap_v2,
-         .unwrap = gss_krb5_unwrap_v2,
-
          .signalg = -1,
          .sealalg = -1,
          .keybytes = 16,
@@ -73,9 +70,6 @@ static const struct gss_krb5_enctype supported_gss_krb5_enctypes[] = {
          .encrypt = gss_krb5_aead_encrypt,
          .decrypt = gss_krb5_aead_decrypt,
 
-         .wrap = gss_krb5_wrap_v2,
-         .unwrap = gss_krb5_unwrap_v2,
-
          .signalg = -1,
          .sealalg = -1,
          .keybytes = 32,
@@ -110,8 +104,6 @@ static const struct gss_krb5_enctype supported_gss_krb5_enctypes[] = {
                .encrypt        = gss_krb5_aead_encrypt,
                .decrypt        = gss_krb5_aead_decrypt,
 
-               .wrap           = gss_krb5_wrap_v2,
-               .unwrap         = gss_krb5_unwrap_v2,
        },
        /*
         * Camellia-256 with CMAC (RFC 6803)
@@ -134,8 +126,6 @@ static const struct gss_krb5_enctype supported_gss_krb5_enctypes[] = {
                .encrypt        = gss_krb5_aead_encrypt,
                .decrypt        = gss_krb5_aead_decrypt,
 
-               .wrap           = gss_krb5_wrap_v2,
-               .unwrap         = gss_krb5_unwrap_v2,
        },
 #endif
 
@@ -161,8 +151,6 @@ static const struct gss_krb5_enctype supported_gss_krb5_enctypes[] = {
                .encrypt        = gss_krb5_aead_encrypt,
                .decrypt        = gss_krb5_aead_decrypt,
 
-               .wrap           = gss_krb5_wrap_v2,
-               .unwrap         = gss_krb5_unwrap_v2,
        },
        /*
         * AES-256 with SHA-384 (RFC 8009)
@@ -185,8 +173,6 @@ static const struct gss_krb5_enctype supported_gss_krb5_enctypes[] = {
                .encrypt        = gss_krb5_aead_encrypt,
                .decrypt        = gss_krb5_aead_decrypt,
 
-               .wrap           = gss_krb5_wrap_v2,
-               .unwrap         = gss_krb5_unwrap_v2,
        },
 #endif
 };
@@ -631,7 +617,7 @@ static u32 gss_krb5_wrap(struct gss_ctx *gctx, int offset,
 {
        struct krb5_ctx *kctx = gctx->internal_ctx_id;
 
-       return kctx->gk5e->wrap(kctx, offset, buf, pages);
+       return gss_krb5_wrap_v2(kctx, offset, buf, pages);
 }
 
 /**
@@ -653,7 +639,7 @@ static u32 gss_krb5_unwrap(struct gss_ctx *gctx, int offset,
 {
        struct krb5_ctx *kctx = gctx->internal_ctx_id;
 
-       return kctx->gk5e->unwrap(kctx, offset, len, buf,
+       return gss_krb5_unwrap_v2(kctx, offset, len, buf,
                                  &gctx->slack, &gctx->align);
 }