BiCrypt

require 'bicrypt'

Encrypt string.

e = BiCrypt.new("akey")

m = e.encrypt_string("This is a message!")

m.assert! == "This is a message!"

Decrypt string.

d = BiCrypt.new("akey")

r = d.decrypt_string(m)

r.assert == "This is a message!"

Encrypt file.

e = BiCrypt.new("akey")

e.encrypt_file('README.rdoc', 'tmp/secret.txt')

File.read('README.rdoc').assert! == File.read('tmp/secret.txt')

Decrypt file.

d = BiCrypt.new("akey")

d.decrypt_file('tmp/secret.txt', 'tmp/README.rdoc')

File.read('README.rdoc').assert == File.read('tmp/README.rdoc')

Both the string and the file methods are built on top of the general stream methods.

plainIO = StringIO.new("This is the message!")
cryptIO = StringIO.new('')

e = BiCrypt.new("akey")

e.encrypt_stream(plainIO, cryptIO)

Decrypt IO stream.

crypt2IO = StringIO.new(cryptIO.string)
resultIO = StringIO.new('')

d = BiCrypt.new("akey")

d.decrypt_stream(crypt2IO, resultIO)

resultIO.string.assert == "This is the message!"