Hi,
thanks for your advices,

1. Is there any way to generate the RSA Key with e, d and n? (instead
of using the pem file?

2. The output that I'm geetting is out of the "regular" character
range ... Im getting some weird characters. I guess it is normal when
crypting, but with the javascript RSA model I don't get any "weird
character". Anyway to limit the output? This is the output in a
browser:
http://i108.photobucket.com/albums/n27/jverger/rsaRuby.png

3. Finally ... when using this code i get a different encrypted string
every time I run the code! :) How can that be? I mean, given the same
.pem file, i get a different encryption, although then, the
verification is fine.

private_key = PKey::RSA.new(File.open("key.pem").read, nil)
@pwdOriginal = "uno_dos_tres"
@pwdCrypted_PubPriv = private_key.public_encrypt(@pwdOriginal)
@pwdDecrypted_PubPriv = private_key.private_decrypt(@pwdCrypted_PubPriv)


thanks again for your help,

Jean

On 9/5/06, Jan Svitok <jan.svitok / gmail.com> wrote:
> On 9/4/06, Jean Verger <jean.verger / gmail.com> wrote:
> > Hi all,
> > I've been reading in this list about crypting with RSA but I don't get
> > it to work.
> >
> > I beg your help. I believe one of the problems I'm having is that the
> > different values (.e , .n , .d ) are being given in decimal format,
> > while the java function will need hexaedcimal format.
> >
> > Please, any hint or idea on how to encrypt/verify based on RSA with
> > Ruby? any other library? Or ... how can I create an RSA private key
> > based on hexadecimal values of n, e and d? How can I convert decimal
> > values to hex?
> >
> > thanks a lot,
> >
> > Jean
> >
> > Some code:
> > In the client javascript to encrypt the password (based on www.ohdave.com/rsa)
> >
> > In the server, the following code:
> >
> >   # key.pem is generated with "openssl genrsa  -out key512.pem 512" in the
> >   # command line
> >   private_key = PKey::RSA.new(File.open("key.pem").read, nil)
> >
> >   # Crypting with the public, decrypting with the private
> >   @pwdOriginal = "uno_dos_tres"
> >   @pwdCrypted_PubPriv = private_key.public_encrypt(@pwdOriginal)
> >   @pwdDecrypted_PubPriv = private_key.private_decrypt(@pwdCrypted_PubPriv)
> >
> >   # This values are generated out the .pem file
> >   @f_e = private_key.e
> >   @f_d = private_key.d.to_s
> >   @f_n = private_key.n
> >   @f_public = private_key.public_key
> >   @f_private = private_key.to_s
>
> Hi,
>
> 1. your code seems to work fine (if you fix the file name, add require
> 'openssl' and include OpenSSL, alternatively prefix Pkey with
> OpenSSL::)
>
> 2. dec-> hex:
>   "%x" % 123 #=> "7b"
>   "%X" % 123 #=> "7B"
>
> 3. Just a note: Java and Javascript are two different languages
>
> 4. Are you sure you want to send the private key over the wire?
>
> 5. The private key has another components besides e,d,n that speed up
> the decryption/signature generation significantly.
>
>