diff options
author | xuri <xuri.me@gmail.com> | 2022-01-23 00:32:34 +0800 |
---|---|---|
committer | xuri <xuri.me@gmail.com> | 2022-01-23 00:48:26 +0800 |
commit | 3ee3c38f9c63de3782fad21aae9c05ee0530fc32 (patch) | |
tree | 153928b23d79d259f6030cd902c836162f84e345 /crypt.go | |
parent | 74f6ea94eae45c8fb89a23cc94802e57ce279a84 (diff) |
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`
Diffstat (limited to 'crypt.go')
-rw-r--r-- | crypt.go | 29 |
1 files changed, 16 insertions, 13 deletions
@@ -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 } |