1package s3crypto 2 3import ( 4 "encoding/json" 5) 6 7// MaterialDescription is used to identify how and what master 8// key has been used. 9type MaterialDescription map[string]*string 10 11// Clone returns a copy of the MaterialDescription 12func (md MaterialDescription) Clone() (clone MaterialDescription) { 13 if md == nil { 14 return nil 15 } 16 clone = make(MaterialDescription, len(md)) 17 for k, v := range md { 18 clone[k] = copyPtrString(v) 19 } 20 return clone 21} 22 23func (md *MaterialDescription) encodeDescription() ([]byte, error) { 24 v, err := json.Marshal(&md) 25 return v, err 26} 27 28func (md *MaterialDescription) decodeDescription(b []byte) error { 29 return json.Unmarshal(b, &md) 30} 31 32func copyPtrString(v *string) *string { 33 if v == nil { 34 return nil 35 } 36 ns := *v 37 return &ns 38} 39