@@ -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 _ ,
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