On Sep 18, 2007, at 2:15 AM, Venkat Bagam wrote:

> Hi Folks,
>
>              Yesterday, in my ruby application, I was needed to
> encrypt/decrypt a file. I searched for a 2-way encryption technique  
> and
> ended up with ezcrypto gem. I thought to give it a test. I was able to
> encrypt the content and store it in a file but getting errors while
> decrypting the file content and writing to console. I couldn't figure
> out the problem. here is my code
>
>   require 'rubygems'
>   require 'ezcrypto'
>
>   @key = EzCrypto::Key.with_password "private documents","salted hash"
>   file1 = File.new("crypto.txt", "w")
>   @encrypted = @key.encrypt "These are private documents"
>   file1.puts @encrypted
>   file1.close
>   puts "Here is the content"
>   file2 = File.read("crypto.txt")
>   puts @key.decrypt file2

I think puts is adding a "\n" at the end of the file you write out as  
crypto.txt. So from the point of view of @key.decrypt the file has  
been corrupted. Try the following:

<untested>
@key = EzCrypto::Key.with_password "private documents","salted hash"
File.open("crypto.txt", "w") do |file1|
    @encrypted = @key.encrypt "These are private documents"
    file1.write @encrypted
end
puts "Here is the content"
file2 = File.read("crypto.txt")
puts @key.decrypt file2
</untested>

I couldn't test the above code because I don't have the ezcrypt gem.

Regards, Morton