diff --git a/src/crypt.zig b/src/crypt.zig index 950f2a2..26bf332 100644 --- a/src/crypt.zig +++ b/src/crypt.zig @@ -105,7 +105,11 @@ pub fn decryptWithKey(allocator: std.mem.Allocator, key: [key_size]u8, data: []c // deal with final block, PKCS#7 padding in = @ptrCast(*const [block_size]u8, data[(current_block * block_size)..(((current_block + 1) * block_size) - 1)]); ctx.decrypt(out[0..], in.*[0..]); - std.debug.assert(out[block_size - 1] <= block_size); + // Assertion was triggering when data was plain text + if (out[block_size - 1] > block_size) { + return error.DecryptionFailed; + } + // std.debug.assert(out[block_size - 1] <= block_size); try decrypted.appendSlice(out[0 .. block_size - out[block_size - 1]]); return decrypted.toOwnedSlice(); }