35 lines
		
	
	
		
			833 B
		
	
	
	
		
			Go
		
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			833 B
		
	
	
	
		
			Go
		
	
	
| // Copyright 2018 The GoPacket Authors. All rights reserved.
 | |
| //
 | |
| // Use of this source code is governed by a BSD-style license
 | |
| // that can be found in the LICENSE file in the root of the source
 | |
| // tree.
 | |
| 
 | |
| package etls
 | |
| 
 | |
| import (
 | |
| 	"errors"
 | |
| 
 | |
| 	"github.com/google/gopacket"
 | |
| )
 | |
| 
 | |
| // ETLSAppDataRecord contains all the information that each AppData Record types should have
 | |
| type ETLSAppDataRecord struct {
 | |
| 	ETLSRecordHeader
 | |
| 	Payload []byte
 | |
| }
 | |
| 
 | |
| // DecodeFromBytes decodes the slice into the ETLS struct.
 | |
| func (t *ETLSAppDataRecord) decodeFromBytes(h ETLSRecordHeader, data []byte, df gopacket.DecodeFeedback) error {
 | |
| 	// ETLS Record Header
 | |
| 	t.ContentType = h.ContentType
 | |
| 	t.Version = h.Version
 | |
| 	t.Length = h.Length
 | |
| 
 | |
| 	if len(data) != int(t.Length) {
 | |
| 		return errors.New("ETLS Application Data length mismatch")
 | |
| 	}
 | |
| 
 | |
| 	t.Payload = data
 | |
| 	return nil
 | |
| }
 |