Skip to content

Diffie-Hellman MODP-14 is not implemented on Linux/Unix, preventing PKINIT from working #433

Description

@Vladislav52

Is your feature request related to a problem? Please describe.

When using PKINIT on Linux, Kerberos.NET throws a PlatformNotSupportedException when attempting to create a Diffie-Hellman MODP-14 key agreement:
System.PlatformNotSupportedException: A crypto implementation of DH-MODP-14 does not exist for Unix
The exception originates from:
Kerberos.NET.Crypto.LinuxCryptoPal.DiffieHellmanModp14()

On Windows, DiffieHellmanModp14() is implemented using BCryptDiffieHellmanOakleyGroup14 / Windows CNG. However, the corresponding methods in LinuxCryptoPal are currently not implemented and throw PlatformNotSupportedException.

As a result, PKINIT scenarios that require DH MODP-14 cannot currently be used on Linux. This is particularly relevant for certificate-based Kerberos authentication scenarios where a service account authenticates using an X.509 certificate/PFX.

Describe the solution you'd like
Would it be possible to provide a cross-platform Unix implementation of DiffieHellmanModp14()? This could potentially be implemented using managed BigInteger.ModPow, OpenSSL, or another platform-independent/system cryptographic API.

Additional context
Environment:

  • OS: Debian
  • Kerberos.NET: 4.6.168
  • KDC: Active Directory
  • Authentication: PKINIT
  • Certificate: X.509 certificate / PFX

Expected behavior:
PKINIT should be able to perform DH MODP-14 key agreement on Unix/Linux.

Actual behavior:
LinuxCryptoPal.DiffieHellmanModp14() throws PlatformNotSupportedException.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions