From 6e32ee04f31e6c51b37f205f825cc8ae124561d4 Mon Sep 17 00:00:00 2001 From: Keith Barrette Date: Fri, 4 Nov 2016 14:48:01 -0400 Subject: [PATCH] Add Ruby mask implementation --- lib/websocket/mask.rb | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 lib/websocket/mask.rb diff --git a/lib/websocket/mask.rb b/lib/websocket/mask.rb new file mode 100644 index 0000000..7883e7b --- /dev/null +++ b/lib/websocket/mask.rb @@ -0,0 +1,14 @@ +module WebSocket + module Mask + def self.mask(payload, mask) + return payload if mask.nil? || payload.empty? + + payload.tap do |result| + payload.bytesize.times do |i| + result.setbyte(i, payload.getbyte(i) ^ mask.getbyte(i % 4)) + end + end + end + + end +end