From 0ba5c8b599ce1de91caf40208286fba682a593c5 Mon Sep 17 00:00:00 2001 From: Sudhi Herle Date: Thu, 23 Jan 2020 12:24:27 +0530 Subject: [PATCH] don't die if blksize is too large; clamp it to max allowed. --- sign/encrypt.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/sign/encrypt.go b/sign/encrypt.go index 5fc55fd..f410615 100644 --- a/sign/encrypt.go +++ b/sign/encrypt.go @@ -79,13 +79,15 @@ type Encryptor struct { // signing any recipient keys. If 'sk' is nil, then ephmeral Curve25519 keys // are generated and used with recipient's public key. func NewEncryptor(sk *PrivateKey, blksize uint64) (*Encryptor, error) { - if blksize >= uint64(maxChunkSize) { - return nil, fmt.Errorf("encrypt: Blocksize is too large (max 16M)") - } + var blksz uint32 - blksz := uint32(blksize) - if blksz == 0 { + switch { + case blksize == 0: blksz = chunkSize + case blksize > uint64(maxChunkSize): + blksz = maxChunkSize + default: + blksz = uint32(blksize) } e := &Encryptor{