Skip to content

Commit 89a6c16

Browse files
author
Diaa Fathalla
committed
Adding optional param KrbEncryptionKey to GenerateWrappedServiceTicket and GenerateServiceTicket
1 parent 49c8ff7 commit 89a6c16

1 file changed

Lines changed: 11 additions & 3 deletions

File tree

Kerberos.NET/Entities/Krb/KrbKdcRep.cs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,11 @@ public KrbKdcRep()
2222
internal const TicketFlags DefaultFlags = TicketFlags.Renewable |
2323
TicketFlags.Forwardable;
2424

25-
public static KrbCred GenerateWrappedServiceTicket(ServiceTicketRequest request)
25+
public static KrbCred GenerateWrappedServiceTicket(ServiceTicketRequest request, KrbEncryptionKey encryptionKey = null)
2626
{
2727
GenerateServiceTicket<KrbTgsRep>(
2828
request,
29+
encryptionKey,
2930
out KrbEncTicketPart encTicketPart,
3031
out KrbTicket ticket,
3132
out _,
@@ -36,7 +37,7 @@ out _
3637
return KrbCred.WrapTicket(ticket, encTicketPart);
3738
}
3839

39-
public static T GenerateServiceTicket<T>(ServiceTicketRequest request)
40+
public static T GenerateServiceTicket<T>(ServiceTicketRequest request, KrbEncryptionKey encryptionKey = null)
4041
where T : KrbKdcRep, new()
4142
{
4243
if (request.EncryptedPartKey == null)
@@ -46,6 +47,7 @@ public static T GenerateServiceTicket<T>(ServiceTicketRequest request)
4647

4748
request = GenerateServiceTicket<T>(
4849
request,
50+
encryptionKey,
4951
out KrbEncTicketPart encTicketPart,
5052
out KrbTicket ticket,
5153
out KrbEncKdcRepPart encKdcRepPart,
@@ -72,6 +74,7 @@ out MessageType messageType
7274

7375
private static ServiceTicketRequest GenerateServiceTicket<T>(
7476
ServiceTicketRequest request,
77+
KrbEncryptionKey encryptionKey,
7578
out KrbEncTicketPart encTicketPart,
7679
out KrbTicket ticket,
7780
out KrbEncKdcRepPart encKdcRepPart,
@@ -102,7 +105,12 @@ out MessageType messageType
102105

103106
var authz = GenerateAuthorizationData(request);
104107

105-
var sessionKey = KrbEncryptionKey.Generate(request.PreferredClientEType ?? request.ServicePrincipalKey.EncryptionType);
108+
var sessionKey = encryptionKey;
109+
110+
if (sessionKey == null)
111+
{
112+
sessionKey = KrbEncryptionKey.Generate(request.PreferredClientEType ?? request.ServicePrincipalKey.EncryptionType);
113+
}
106114

107115
encTicketPart = CreateEncTicketPart(request, authz.ToArray(), sessionKey);
108116
bool appendRealm = false;

0 commit comments

Comments
 (0)