From 3ee3c38f9c63de3782fad21aae9c05ee0530fc32 Mon Sep 17 00:00:00 2001 From: xuri Date: Sun, 23 Jan 2022 00:32:34 +0800 Subject: Fix file corrupted in some cases, check file extension and format code Fix file corrupted when save as in XLAM / XLSM / XLTM / XLTX extension in some case New exported error ErrWorkbookExt has been added, and check file extension on save the workbook Format source code with `gofumpt` --- crypt.go | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) (limited to 'crypt.go') diff --git a/crypt.go b/crypt.go index 91beab2..9912a67 100644 --- a/crypt.go +++ b/crypt.go @@ -168,16 +168,20 @@ func Encrypt(raw []byte, opt *Options) (packageBuf []byte, err error) { HashAlgorithm: "SHA512", SaltValue: base64.StdEncoding.EncodeToString(keyDataSaltValue), }, - KeyEncryptors: KeyEncryptors{KeyEncryptor: []KeyEncryptor{{ - EncryptedKey: EncryptedKey{SpinCount: 100000, KeyData: KeyData{ - CipherAlgorithm: "AES", - CipherChaining: "ChainingModeCBC", - HashAlgorithm: "SHA512", - HashSize: 64, - BlockSize: 16, - KeyBits: 256, - SaltValue: base64.StdEncoding.EncodeToString(keyEncryptors)}, - }}}, + KeyEncryptors: KeyEncryptors{ + KeyEncryptor: []KeyEncryptor{{ + EncryptedKey: EncryptedKey{ + SpinCount: 100000, KeyData: KeyData{ + CipherAlgorithm: "AES", + CipherChaining: "ChainingModeCBC", + HashAlgorithm: "SHA512", + HashSize: 64, + BlockSize: 16, + KeyBits: 256, + SaltValue: base64.StdEncoding.EncodeToString(keyEncryptors), + }, + }, + }}, }, } @@ -481,7 +485,7 @@ func convertPasswdToKey(passwd string, blockKey []byte, encryption Encryption) ( // hashing data by specified hash algorithm. func hashing(hashAlgorithm string, buffer ...[]byte) (key []byte) { - var hashMap = map[string]hash.Hash{ + hashMap := map[string]hash.Hash{ "md4": md4.New(), "md5": md5.New(), "ripemd-160": ripemd160.New(), @@ -535,8 +539,7 @@ func crypt(encrypt bool, cipherAlgorithm, cipherChaining string, key, iv, input // cryptPackage encrypt / decrypt package by given packageKey and encryption // info. func cryptPackage(encrypt bool, packageKey, input []byte, encryption Encryption) (outputChunks []byte, err error) { - encryptedKey := encryption.KeyData - var offset = packageOffset + encryptedKey, offset := encryption.KeyData, packageOffset if encrypt { offset = 0 } -- cgit v1.2.1