Ver Fonte

linting

Jonathan Turner há 7 anos atrás
pai
commit
46e0011dbd
3 ficheiros alterados com 12 adições e 4 exclusões
  1. 7 0
      client/TGSExchange.go
  2. 4 4
      messages/KDCReq.go
  3. 1 0
      pac/pac_type.go

+ 7 - 0
client/TGSExchange.go

@@ -34,6 +34,7 @@ func (cl *Client) TGSExchange(spn types.PrincipalName, kdcRealm string, tgt mess
 	return
 }
 
+// TGSREQ exchanges the provides TGS_REQ with the KDC to retrieve a TGS_REP
 func (cl *Client) TGSREQ(tgsReq messages.TGSReq, kdcRealm string, tgt messages.Ticket, sessionKey types.EncryptionKey, referral int) (messages.TGSReq, messages.TGSRep, error) {
 	tgsRep, err := cl.tgsExchange(tgsReq, kdcRealm, sessionKey)
 	if err != nil {
@@ -51,8 +52,14 @@ func (cl *Client) TGSREQ(tgsReq messages.TGSReq, kdcRealm string, tgt messages.T
 		referral++
 		if types.IsFlagSet(&tgsReq.ReqBody.KDCOptions, flags.EncTktInSkey) && len(tgsReq.ReqBody.AdditionalTickets) > 0 {
 			tgsReq, err = messages.NewUser2UserTGSReq(cl.Credentials.CName, kdcRealm, cl.Config, tgt, sessionKey, tgsReq.ReqBody.SName, tgsReq.Renewal, tgsReq.ReqBody.AdditionalTickets[0])
+			if err != nil {
+				return tgsReq, tgsRep, err
+			}
 		}
 		tgsReq, err = messages.NewTGSReq(cl.Credentials.CName, kdcRealm, cl.Config, tgt, sessionKey, tgsReq.ReqBody.SName, tgsReq.Renewal)
+		if err != nil {
+			return tgsReq, tgsRep, err
+		}
 		return cl.TGSREQ(tgsReq, realm, tgsRep.Ticket, tgsRep.DecryptedEncPart.Key, referral)
 	}
 	return tgsReq, tgsRep, err

+ 4 - 4
messages/KDCReq.go

@@ -226,9 +226,9 @@ func tgsReq(cname, sname types.PrincipalName, kdcRealm string, renewal bool, c *
 	}, nil
 }
 
-func (a *TGSReq) setPAData(tgt Ticket, sessionKey types.EncryptionKey) error {
+func (k *TGSReq) setPAData(tgt Ticket, sessionKey types.EncryptionKey) error {
 	// Marshal the request and calculate checksum
-	b, err := a.ReqBody.Marshal()
+	b, err := k.ReqBody.Marshal()
 	if err != nil {
 		return krberror.Errorf(err, krberror.EncodingError, "error marshaling TGS_REQ body")
 	}
@@ -243,7 +243,7 @@ func (a *TGSReq) setPAData(tgt Ticket, sessionKey types.EncryptionKey) error {
 
 	// Form PAData for TGS_REQ
 	// Create authenticator
-	auth, err := types.NewAuthenticator(tgt.Realm, a.ReqBody.CName)
+	auth, err := types.NewAuthenticator(tgt.Realm, k.ReqBody.CName)
 	if err != nil {
 		return krberror.Errorf(err, krberror.KRBMsgError, "error generating new authenticator")
 	}
@@ -260,7 +260,7 @@ func (a *TGSReq) setPAData(tgt Ticket, sessionKey types.EncryptionKey) error {
 	if err != nil {
 		return krberror.Errorf(err, krberror.EncodingError, "error marshaling AP_REQ for pre-authentication data")
 	}
-	a.PAData = types.PADataSequence{
+	k.PAData = types.PADataSequence{
 		types.PAData{
 			PADataType:  patype.PA_TGS_REQ,
 			PADataValue: apb,

+ 1 - 0
pac/pac_type.go

@@ -84,6 +84,7 @@ func (pac *PACType) Unmarshal(b []byte) (err error) {
 	return nil
 }
 
+// PACInfoMandatoryBuffers processes the mandatory PAC Info Buffers that must be present in the PAC.
 func (pac *PACType) PACInfoMandatoryBuffers(key types.EncryptionKey) error {
 	for _, buf := range pac.Buffers {
 		p := make([]byte, buf.CBBufferSize, buf.CBBufferSize)