Class: Origami::Encryption::RC4

Inherits:
Object
  • Object
show all
Defined in:
lib/origami/encryption.rb

Overview

Class wrapper for the RC4 algorithm.

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(key) ⇒ RC4

Creates and initialises a new RC4 generator using given key



614
615
616
# File 'lib/origami/encryption.rb', line 614

def initialize(key)
    @key = key
end

Class Method Details

.decrypt(key, data) ⇒ Object

Decrypts data using the given key



607
608
609
# File 'lib/origami/encryption.rb', line 607

def RC4.decrypt(key, data)
    RC4.new(key).decrypt(data)
end

.encrypt(key, data) ⇒ Object

Encrypts data using the given key



600
601
602
# File 'lib/origami/encryption.rb', line 600

def RC4.encrypt(key, data)
    RC4.new(key).encrypt(data)
end

Instance Method Details

#cipher(data) ⇒ Object Also known as: encrypt, decrypt

Encrypt/decrypt data with the RC4 encryption algorithm



621
622
623
624
625
626
627
628
629
# File 'lib/origami/encryption.rb', line 621

def cipher(data)
    return '' if data.empty?

    rc4 = OpenSSL::Cipher::RC4.new.encrypt
    rc4.key_len = @key.length
    rc4.key = @key

    rc4.update(data) + rc4.final
end