github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/openstack/kms/v1/keys/Decrypt.go (about) 1 package keys 2 3 import ( 4 golangsdk "github.com/opentelekomcloud/gophertelekomcloud" 5 "github.com/opentelekomcloud/gophertelekomcloud/internal/build" 6 "github.com/opentelekomcloud/gophertelekomcloud/internal/extract" 7 ) 8 9 type DecryptDataOpts struct { 10 CipherText string `json:"cipher_text" required:"true"` 11 KeyID string `json:"key_id,omitempty"` 12 EncryptionAlgorithm string `json:"encryption_algorithm,omitempty"` 13 Sequence string `json:"sequence,omitempty"` 14 } 15 16 func DecryptData(client *golangsdk.ServiceClient, opts DecryptDataOpts) (*DecryptResp, error) { 17 b, err := build.RequestBody(opts, "") 18 if err != nil { 19 return nil, err 20 } 21 22 raw, err := client.Post(client.ServiceURL("kms", "decrypt-data"), b, nil, 23 &golangsdk.RequestOpts{OkCodes: []int{200}}) 24 if err != nil { 25 return nil, err 26 } 27 var res DecryptResp 28 err = extract.Into(raw.Body, &res) 29 return &res, err 30 } 31 32 type DecryptResp struct { 33 KeyID string `json:"key_id"` 34 PlainText string `json:"plain_text"` 35 PlainTextBase64 string `json:"plain_text_base64"` 36 }