github.com/viant/toolbox@v0.34.5/kms/contract.go (about) 1 package kms 2 3 import "errors" 4 5 type Resource struct { 6 URL string 7 Parameter string 8 Data []byte 9 } 10 11 type EncryptRequest struct { 12 Key string 13 *Resource 14 TargetURL string 15 } 16 17 type EncryptResponse struct { 18 EncryptedData []byte 19 EncryptedText string 20 } 21 22 type DecryptRequest struct { 23 Key string 24 *Resource 25 } 26 27 type DecryptResponse struct { 28 Data []byte 29 Text string 30 } 31 32 func (r *EncryptRequest) Validate() error { 33 if r.Key == "" { 34 return errors.New("key was empty") 35 } 36 if r.Resource == nil { 37 return errors.New("nothing to encrypt") 38 } 39 return nil 40 } 41 42 func (r *DecryptRequest) Validate() error { 43 if r.Key == "" { 44 return errors.New("key was empty") 45 } 46 if r.Resource == nil { 47 return errors.New("nothing to decrypt") 48 } 49 return nil 50 51 }