aes.go 606 B

123456789101112131415161718192021222324252627
  1. package io
  2. import (
  3. "crypto/aes"
  4. "crypto/cipher"
  5. "io"
  6. )
  7. func NewAesDecryptReader(key []byte, iv []byte, reader io.Reader) (*CryptionReader, error) {
  8. aesBlock, err := aes.NewCipher(key)
  9. if err != nil {
  10. return nil, err
  11. }
  12. aesStream := cipher.NewCFBDecrypter(aesBlock, iv)
  13. return NewCryptionReader(aesStream, reader), nil
  14. }
  15. func NewAesEncryptWriter(key []byte, iv []byte, writer io.Writer) (*CryptionWriter, error) {
  16. aesBlock, err := aes.NewCipher(key)
  17. if err != nil {
  18. return nil, err
  19. }
  20. aesStream := cipher.NewCFBEncrypter(aesBlock, iv)
  21. return NewCryptionWriter(aesStream, writer), nil
  22. }