mirror of
https://github.com/TalAloni/SMBLibrary.git
synced 2025-04-30 10:47:48 +02:00
GSSAPI: SimpleProtectedNegotiationTokenInit: Add GetMechanismTypeListBytes method
This commit is contained in:
parent
2667b5439e
commit
ca718e343e
1 changed files with 16 additions and 0 deletions
|
@ -191,6 +191,11 @@ namespace SMBLibrary.Authentication.GSSAPI
|
||||||
int constructionLength = 1 + sequenceLengthFieldSize + sequenceLength;
|
int constructionLength = 1 + sequenceLengthFieldSize + sequenceLength;
|
||||||
ByteWriter.WriteByte(buffer, ref offset, MechanismTypeListTag);
|
ByteWriter.WriteByte(buffer, ref offset, MechanismTypeListTag);
|
||||||
DerEncodingHelper.WriteLength(buffer, ref offset, constructionLength);
|
DerEncodingHelper.WriteLength(buffer, ref offset, constructionLength);
|
||||||
|
WriteMechanismTypeListSequence(buffer, ref offset, mechanismTypeList, sequenceLength);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected static void WriteMechanismTypeListSequence(byte[] buffer, ref int offset, List<byte[]> mechanismTypeList, int sequenceLength)
|
||||||
|
{
|
||||||
ByteWriter.WriteByte(buffer, ref offset, (byte)DerEncodingTag.Sequence);
|
ByteWriter.WriteByte(buffer, ref offset, (byte)DerEncodingTag.Sequence);
|
||||||
DerEncodingHelper.WriteLength(buffer, ref offset, sequenceLength);
|
DerEncodingHelper.WriteLength(buffer, ref offset, sequenceLength);
|
||||||
foreach (byte[] mechanismType in mechanismTypeList)
|
foreach (byte[] mechanismType in mechanismTypeList)
|
||||||
|
@ -221,6 +226,17 @@ namespace SMBLibrary.Authentication.GSSAPI
|
||||||
ByteWriter.WriteBytes(buffer, ref offset, mechanismListMIC);
|
ByteWriter.WriteBytes(buffer, ref offset, mechanismListMIC);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static byte[] GetMechanismTypeListBytes(List<byte[]> mechanismTypeList)
|
||||||
|
{
|
||||||
|
int sequenceLength = GetMechanismTypeListSequenceLength(mechanismTypeList);
|
||||||
|
int sequenceLengthFieldSize = DerEncodingHelper.GetLengthFieldSize(sequenceLength);
|
||||||
|
int constructionLength = 1 + sequenceLengthFieldSize + sequenceLength;
|
||||||
|
byte[] buffer = new byte[constructionLength];
|
||||||
|
int offset = 0;
|
||||||
|
WriteMechanismTypeListSequence(buffer, ref offset, mechanismTypeList, sequenceLength);
|
||||||
|
return buffer;
|
||||||
|
}
|
||||||
|
|
||||||
private static int GetEncodedMechanismTypeListLength(List<byte[]> mechanismTypeList)
|
private static int GetEncodedMechanismTypeListLength(List<byte[]> mechanismTypeList)
|
||||||
{
|
{
|
||||||
if (mechanismTypeList == null)
|
if (mechanismTypeList == null)
|
||||||
|
|
Loading…
Add table
Reference in a new issue