# README
aws-decryption-go
Decrypt AWS Encryption SDK formatted blobs using a custom private key.
This repo implements part of the AWS Encryption SDK spec in go. It is presently limitted in scope:
- Decryption only
- Framed data body only
- Algorithm Suite 0x0378 only (see this spec page)
This is sufficient to decrypt encrypted customer input generated by the Amazon Connect platform.
Usage
package main
import (
decrypt "github.com/infinityworks/aws-decryption-go"
)
func main () {
key, err := ioutil.ReadFile("./private.key")
if err != nil {
log.Fatalf("error reading key file: %s", err)
}
ciphertext, err := ioutil.ReadFile("./ciphertext_base64")
if err != nil {
log.Fatalf("error reading key file: %s", err)
}
dataBytes, err := base64.StdEncoding.DecodeString(ciphertext)
if err != nil {
log.Fatalf("error decoding base64 ciphertext: %s", err)
}
decrypter, err := decrypt.New(key)
if err != nil {
log.Fatalf("error creating decrypter: %s", err)
}
result, err := decrypter.Decrypt(dataBytes)
if err != nil {
log.Fatalf("error decrypting data: %s", err)
}
fmt.Println("decrypted data: %s", string(result))
}