public KrbEncryptionKey AuthenticateServiceResponse(string asRepEncoded) { var apRep = KrbApRep.DecodeApplication(Convert.FromBase64String(asRepEncoded)); var decrypted = new DecryptedKrbApRep(apRep) { CTime = CTime, CuSec = CuSec, SequenceNumber = SequenceNumber }; decrypted.Decrypt(SessionKey.AsKey()); decrypted.Validate(ValidationActions.TokenWindow); return(decrypted.Response.SubSessionKey ?? SessionKey); }
public KrbEncryptionKey AuthenticateServiceResponse(ReadOnlyMemory <byte> apRepBytes) { var apRep = KrbApRep.DecodeApplication(apRepBytes); var decrypted = new DecryptedKrbApRep(apRep) { CTime = this.CTime, CuSec = this.CuSec, SequenceNumber = this.SequenceNumber }; decrypted.Decrypt(this.SessionKey.AsKey()); decrypted.Validate(ValidationActions.TokenWindow); return(decrypted.Response.SubSessionKey ?? this.SessionKey); }
private static DecryptedKrbApRep CreateResponseMessage(DateTimeOffset ctime, int cusec, int sequence, KerberosKey sessionKey) { var apRepPart = new KrbEncApRepPart { CTime = ctime, CuSec = cusec, SequenceNumber = sequence }; var apRep = new KrbApRep { EncryptedPart = KrbEncryptedData.Encrypt( apRepPart.EncodeApplication(), sessionKey, KeyUsage.EncApRepPart ) }; var decrypted = new DecryptedKrbApRep(apRep); decrypted.Decrypt(sessionKey); return(decrypted); }
public DecryptedKrbApRep(KrbApRep response) { this.response = response ?? throw new ArgumentNullException(nameof(response)); }
public DecryptedKrbApRep(KrbApRep response) { this.response = response; }