diff options
Diffstat (limited to 'lib/trunk/storage.rb')
| -rw-r--r-- | lib/trunk/storage.rb | 62 |
1 files changed, 0 insertions, 62 deletions
diff --git a/lib/trunk/storage.rb b/lib/trunk/storage.rb index a041f60..7adaa35 100644 --- a/lib/trunk/storage.rb +++ b/lib/trunk/storage.rb @@ -1,66 +1,4 @@ module Trunk - class CompositeSerializer - def initialize(serializers = []) - @serializers = serializers - end - - def add(serializer) - @serializers.push(serializer) - end - - def serialize(value) - @serializers.each do |x| - value = x.serialize(value) - end - value - end - - def deserialize(value) - puts "deserialize" - @serializers.reverse.each do |x| - puts x.class - value = x.deserialize(value) - end - value - end - end - - class Base64Serializer - def serialize(value) - Base64.strict_encode64(value) - end - - def deserialize(value) - Base64.decode64(value) - end - end - - class SymmetricCrypto - attr_reader :private_key, :algorithm - - def initialize(private_key, algorithm: 'AES-256-CBC') - @private_key = private_key - @algorithm = algorithm - end - - def serialize(plain_text) - cipher = OpenSSL::Cipher.new(algorithm) - cipher.encrypt - cipher.key = private_key - cipher.random_iv + cipher.update(plain_text) + cipher.final - end - - def deserialize(cipher_text) - cipher = OpenSSL::Cipher.new(algorithm) - cipher.decrypt - iv = cipher_text[0..cipher.iv_len - 1] - data = cipher_text[cipher.iv_len..-1] - cipher.key = private_key - cipher.iv = iv - cipher.update(data) + cipher.final - end - end - class Storage def initialize(hash, serializer) @hash = hash |
