GSSProvider: Marked core methods as virtual to improve extensibility

This commit is contained in:
Tal Aloni 2017-06-25 17:50:42 +03:00
parent 1b024acf65
commit 42f6e23107

View file

@ -51,7 +51,7 @@ namespace SMBLibrary.Authentication.GSSAPI
return SimpleProtectedNegotiationToken.GetTokenBytes(token); return SimpleProtectedNegotiationToken.GetTokenBytes(token);
} }
public NTStatus AcceptSecurityContext(ref GSSContext context, byte[] inputToken, out byte[] outputToken) public virtual NTStatus AcceptSecurityContext(ref GSSContext context, byte[] inputToken, out byte[] outputToken)
{ {
outputToken = null; outputToken = null;
SimpleProtectedNegotiationToken spnegoToken = SimpleProtectedNegotiationToken.ReadToken(inputToken, 0); SimpleProtectedNegotiationToken spnegoToken = SimpleProtectedNegotiationToken.ReadToken(inputToken, 0);
@ -140,7 +140,7 @@ namespace SMBLibrary.Authentication.GSSAPI
return NTStatus.SEC_E_INVALID_TOKEN; return NTStatus.SEC_E_INVALID_TOKEN;
} }
public object GetContextAttribute(GSSContext context, GSSAttributeName attributeName) public virtual object GetContextAttribute(GSSContext context, GSSAttributeName attributeName)
{ {
if (context == null) if (context == null)
{ {
@ -150,7 +150,7 @@ namespace SMBLibrary.Authentication.GSSAPI
return mechanism.GetContextAttribute(context.MechanismContext, attributeName); return mechanism.GetContextAttribute(context.MechanismContext, attributeName);
} }
public bool DeleteSecurityContext(ref GSSContext context) public virtual bool DeleteSecurityContext(ref GSSContext context)
{ {
if (context != null) if (context != null)
{ {
@ -163,7 +163,7 @@ namespace SMBLibrary.Authentication.GSSAPI
/// <summary> /// <summary>
/// Helper method for legacy implementation. /// Helper method for legacy implementation.
/// </summary> /// </summary>
public NTStatus GetNTLMChallengeMessage(out GSSContext context, NegotiateMessage negotiateMessage, out ChallengeMessage challengeMessage) public virtual NTStatus GetNTLMChallengeMessage(out GSSContext context, NegotiateMessage negotiateMessage, out ChallengeMessage challengeMessage)
{ {
IGSSMechanism ntlmAuthenticationProvider = FindMechanism(NTLMSSPIdentifier); IGSSMechanism ntlmAuthenticationProvider = FindMechanism(NTLMSSPIdentifier);
if (ntlmAuthenticationProvider != null) if (ntlmAuthenticationProvider != null)
@ -185,7 +185,7 @@ namespace SMBLibrary.Authentication.GSSAPI
/// <summary> /// <summary>
/// Helper method for legacy implementation. /// Helper method for legacy implementation.
/// </summary> /// </summary>
public NTStatus NTLMAuthenticate(GSSContext context, AuthenticateMessage authenticateMessage) public virtual NTStatus NTLMAuthenticate(GSSContext context, AuthenticateMessage authenticateMessage)
{ {
if (context != null && ByteUtils.AreByteArraysEqual(context.Mechanism.Identifier, NTLMSSPIdentifier)) if (context != null && ByteUtils.AreByteArraysEqual(context.Mechanism.Identifier, NTLMSSPIdentifier))
{ {