aes.go 761 B

1234567891011121314151617181920212223242526
  1. package crypto
  2. import (
  3. "crypto/aes"
  4. "crypto/cipher"
  5. )
  6. // NewAesDecryptionStream creates a new AES encryption stream based on given key and IV.
  7. // Caller must ensure the length of key and IV is either 16, 24 or 32 bytes.
  8. func NewAesDecryptionStream(key []byte, iv []byte) cipher.Stream {
  9. aesBlock, err := aes.NewCipher(key)
  10. if err != nil {
  11. panic(err)
  12. }
  13. return cipher.NewCFBDecrypter(aesBlock, iv)
  14. }
  15. // NewAesEncryptionStream creates a new AES description stream based on given key and IV.
  16. // Caller must ensure the length of key and IV is either 16, 24 or 32 bytes.
  17. func NewAesEncryptionStream(key []byte, iv []byte) cipher.Stream {
  18. aesBlock, err := aes.NewCipher(key)
  19. if err != nil {
  20. panic(err)
  21. }
  22. return cipher.NewCFBEncrypter(aesBlock, iv)
  23. }