示例#1
0
        internal object GetCacheItem(string key)
        {
            Krb5Credential cred = this.FindCredential(key);

            if (cred is null)
            {
                return(cred);
            }

            return(new KerberosClientCacheEntry
            {
                KdcResponse = new KrbTgsRep
                {
                    Ticket = KrbTicket.DecodeApplication(cred.Ticket),
                    CName = KrbPrincipalName.FromString(cred.Client.FullyQualifiedName),
                    CRealm = cred.Client.Realm,
                    EncPart = new KrbEncryptedData {
                    }
                },
                SessionKey = new KrbEncryptionKey
                {
                    EType = cred.KeyBlock.Key,
                    KeyValue = cred.KeyBlock.Value
                },
                Flags = cred.Flags,
                SName = KrbPrincipalName.FromString(cred.Server.FullyQualifiedName)
            });
        }
示例#2
0
 private static object CredToCacheEntry(Krb5Credential cred)
 {
     return(new KerberosClientCacheEntry
     {
         KdcResponse = new KrbTgsRep
         {
             Ticket = KrbTicket.DecodeApplication(cred.Ticket),
             CName = KrbPrincipalName.FromString(cred.Client.FullyQualifiedName, cred.Client.Type),
             CRealm = cred.Client.Realm,
             EncPart = new KrbEncryptedData {
             }
         },
         SessionKey = new KrbEncryptionKey
         {
             EType = cred.KeyBlock.Key,
             KeyValue = cred.KeyBlock.Value
         },
         Flags = cred.Flags,
         SName = KrbPrincipalName.FromString(cred.Server.FullyQualifiedName),
         AuthTime = cred.AuthTime,
         StartTime = cred.StartTime,
         EndTime = cred.EndTime,
         RenewTill = cred.RenewTill <= DateTimeOffset.MinValue ? null : cred.RenewTill
     });
 }
示例#3
0
        private static KrbTicket TryParseTicket(ReadOnlyMemory <byte> ticket)
        {
            if (ticket.Length <= 0)
            {
                return(null);
            }

            try
            {
                return(KrbTicket.DecodeApplication(ticket));
            }
            catch (CryptographicException)
            {
            }

            return(null);
        }