Browse Source

fix aes decrypt panic

ls 2 years ago
parent
commit
267c98bf15
1 changed files with 4 additions and 0 deletions
  1. 4 0
      crypto.go

+ 4 - 0
crypto.go

@@ -4,6 +4,7 @@ import (
 	"bytes"
 	"crypto/aes"
 	"crypto/cipher"
+	"errors"
 )
 
 var (
@@ -63,6 +64,9 @@ func (a *AesCrypto) Decrypt(crypted []byte) ([]byte, error) {
 		return nil, err
 	}
 	blockSize := block.BlockSize()
+	if len(crypted)%blockSize != 0 {
+		return nil, errors.New(`crypto/cipher: input not full blocks`)
+	}
 	blockMode := cipher.NewCBCDecrypter(block, a.IV[:blockSize])
 	origData := make([]byte, len(crypted))
 	blockMode.CryptBlocks(origData, crypted)