RSA cross platform

Discussion in 'Ruby' started by Ashikali Ashikali, Feb 20, 2009.

  1. I am using Debian OS and ruby 1.8 version .

    I have attached .pfx certificate file . Which was created using openssl
    command as follows ,
    # create a file containing key and self-signed certificate
    openssl req \
    -x509 -nodes -days 365 \
    -newkey rsa:1024 -keyout mycert.pem -out mycert.pem

    # export mycert.pem as PKCS#12 file, mycert.pfx
    openssl pkcs12 -export \
    -out mycert.pfx -in mycert.pem \
    -name "My Certificate"

    Using the openssl library in ruby I am able to do encryption and
    decryption . Apart from this . I encrypted data in C#( windows ) using
    this .pfx file . The c# coding is ,
    public string GetEncryptedText(string PlainStringToEncrypt)

    {

    X509Certificate2 x509_2 = new X509Certificate2("C:/mycert.pfx",
    "paymate",X509KeyStorageFlags.MachineKeySet);

    X509Store store = new X509Store(StoreLocation.CurrentUser);

    store.Open(OpenFlags.ReadWrite);

    foreach (X509Certificate2 cert in store.Certificates)

    {

    if
    (cert.SubjectName.Name.Contains(DigitalCertificateName))

    {

    x509_2 = cert;

    break;

    }

    }



    if (x509_2 == null)

    throw new Exception("No Certificate could be found in
    name " + DigitalCertificateName);

    try

    {

    string PlainString = PlainStringToEncrypt.Trim();

    byte[] cipherbytes =
    ASCIIEncoding.ASCII.GetBytes(PlainString);

    RSACryptoServiceProvider rsa =
    (RSACryptoServiceProvider)x509_2.PublicKey.Key;

    byte[] cipher = rsa.Encrypt(cipherbytes, false);

    return Convert.ToBase64String(cipher);

    }

    catch (Exception e)

    {

    throw e;

    }

    }
    Encrypted Data is :
    "qLH9NZcxGL2vwuee4uryO8xphinBdE7XWttQmWfLhmOXVv5kFHW3JHTR0MiDfvONcHtPtvzKaCvgKlThd2XoNQm3K0EfRMKyokvDSWITQjTjHMOKyNGRCknsfm1dTrlZKU5eYNV+Qzn+MDdJ2gAb4vldbjFchgMFs2Qb2RJz3f4="

    This encrypted data was created in C#(windows) using above code but
    mycert.pfx was created in linux machine . Now I want to do
    decryption in ruby linux .
    I followed following decryption methods in ruby ,
    create the privatekey.pem using openssl command is ,
    openssl pkcs12 -in mycert.pfx -out private.pem -nodes
    #give the password as "paymate"


    ruby coding to decrypting is ,
    private_key = OpenSSL::pKey::RSA.new(File.read("./private.pem"))
    private_key.private_decrypt(Base64.decode64("qLH9NZcxGL2vwuee4uryO8xphinBdE7XWttQmWfLhmOXVv5kFHW3JHTR0MiDfvONcHtPtvzKaCvgKlThd2XoNQm3K0EfRMKyokvDSWITQjTjHMOKyNGRCknsfm1dTrlZKU5eYNV+Qzn+MDdJ2gAb4vldbjFchgMFs2Qb2RJz3f4="
    ))

    #But it through me error

    kindly provide me any other solution in ruby

    Attachments:
    http://www.ruby-forum.com/attachment/3325/mycert.pfx

    --
    Posted via http://www.ruby-forum.com/.
     
    Ashikali Ashikali, Feb 20, 2009
    #1
    1. Advertising

  2. I have wrongly used the key .

    use instead of private.pem , what you have created key file using
    openssl .

    But it has been working fine . No problem at all .

    Above steps are useful for doing encryption in windows and decryption in
    Linux especially on UNIX based opearating systems .

    cheers,
    ashikali .
    --
    Posted via http://www.ruby-forum.com/.
     
    Ashikali Ashikali, Jul 9, 2009
    #2
    1. Advertising

  3. Ashikali Ashikali wrote:
    >
    > I have wrongly used the key .
    >
    > use instead of private.pem , what you have created key file using
    > openssl .
    >
    > But it has been working fine . No problem at all .
    >
    > Above steps are useful for doing encryption in windows and decryption in
    > Linux especially on UNIX based opearating systems .
    >
    > cheers,
    > ashikali .


    Yeah, It is working fine

    With regards,
    Veeramani. N
    --
    Posted via http://www.ruby-forum.com/.
     
    Ashikali Ashikali, Jul 9, 2009
    #3
  4. Ashikali Ashikali, Jul 9, 2009
    #4
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Timothy V

    cross-platform

    Timothy V, Aug 23, 2003, in forum: ASP .Net
    Replies:
    1
    Views:
    1,099
    Herman Eldering
    Aug 24, 2003
  2. gg
    Replies:
    0
    Views:
    2,788
  3. jcc
    Replies:
    15
    Views:
    4,769
    Nigel Wade
    May 12, 2006
  4. Coca
    Replies:
    15
    Views:
    678
    Alan Balmer
    Jan 14, 2004
  5. Kaspar Schiess

    platform.rb (was: PLATFORM tests)

    Kaspar Schiess, Nov 25, 2005, in forum: Ruby
    Replies:
    0
    Views:
    141
    Kaspar Schiess
    Nov 25, 2005
Loading...

Share This Page