|
View:
New views
4 Messages
—
Rating Filter:
Alert me
|
|
|
RSA cross platformI 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/. |
|
|
Re: RSA cross platformI 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/. |
|
|
Re: RSA cross platformAshikali 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/. |
|
|
Re: RSA cross platform |
| Free embeddable forum powered by Nabble | Forum Help |