You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

39 lines
758 B
Go

package aes
import (
// Standard
"crypto/aes"
"crypto/cipher"
"encoding/base64"
)
// Decrypt
func (Algorithm) Decrypt(data string, key []byte) ([]byte, error) {
// Decoded Data
decodedData, err := base64.RawStdEncoding.DecodeString(data)
// Handle Error
if err != nil {
return []byte(""), err
}
// Block
block, err := aes.NewCipher(key)
// Handle Error
if err != nil {
return []byte(""), err
}
// GCM
gcm, err := cipher.NewGCM(block)
// Handle Error
if err != nil {
return []byte(""), err
}
// Decrypted Data
decryptedData, err := gcm.Open(nil, decodedData[:gcm.NonceSize()], decodedData[gcm.NonceSize():], nil)
// Handle Error
if err != nil {
return []byte(""), err
}
// Return Decrypted Data
return decryptedData, err
}