# OpenSSL with Ruby

**URL:** <https://www.ruby-forum.com/t/openssl-with-ruby/135005>\
**Category:** Ruby\
**Created:** [April 17, 2008, 12:17am UTC](https://www.ruby-forum.com/t/openssl-with-ruby/135005 "2008-04-17T00:17:40Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![vaibhavb](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/439d5e/32.png) [@vaibhavb](https://www.ruby-forum.com/u/vaibhavb)\
**Post date:** [April 17, 2008, 12:17am UTC](https://www.ruby-forum.com/t/openssl-with-ruby/135005/1 "2008-04-17T00:17:40Z")

</div>

hi all -

I’m not sure if this is the correct forum but i was wondering if  
anyone has successfully done RSA-SHA1 signing with Ruby OpenSSL and  
interoperated with Java Servers.

I’m using the following code but i’m not sure if the “sign” method on  
works properly -

@key = OpenSSL::PKey::RSA.new(2048)  
#sign  
@key.send(“sign”, OpenSSL::Digest.::SHA1.new, “text to sign”)

The expected signature from above “sign” is not what i know the Java  
crytpo api likes.

Thanks in advance.

regards,  
Vaibhav

---

<div class="post-metadata">

**Author:** ![vaibhavb](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/439d5e/32.png) [@vaibhavb](https://www.ruby-forum.com/u/vaibhavb)\
**Post date:** [April 17, 2008, 12:34am UTC](https://www.ruby-forum.com/t/openssl-with-ruby/135005/2 "2008-04-17T00:34:41Z")

</div>

On Apr 16, 2008, at 6:16 PM, vaibhavb wrote:

> #sign  
> @key.send(“sign”, OpenSSL::Digest.::SHA1.new, “text to sign”)
> 
> The expected signature from above “sign” is not what i know the Java  
> crytpo api likes.
> 
> Thanks in advance.

after digging forums and searching through the source, this is what  
i’m doing to sign:

digest = OpenSSL::Digest::SHA1.new(text\_to\_sign)  
sign = key.private\_encrypt(digest)

# sign is what you want, if you need it in Base64:

enc\_sign = Base64.encode64(sign)

> regards,  
> Vaibhav

regards,

---

<div class="post-metadata">

**Author:** ![vaibhavb](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/439d5e/32.png) [@vaibhavb](https://www.ruby-forum.com/u/vaibhavb)\
**Post date:** [April 17, 2008, 12:51am UTC](https://www.ruby-forum.com/t/openssl-with-ruby/135005/3 "2008-04-17T00:51:04Z")

</div>

I tried the above but it still is not same as Java output - I want to  
be able to sign and update each byte of the text instead of string  
(thats what Java does) … any ideas?

Thanks in advance.

regards,  
Vaibhav

---

<div class="post-metadata">

**Author:** ![vaibhavb](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/439d5e/32.png) [@vaibhavb](https://www.ruby-forum.com/u/vaibhavb)\
**Post date:** [April 17, 2008, 12:41am UTC](https://www.ruby-forum.com/t/openssl-with-ruby/135005/4 "2008-04-17T00:41:41Z")

</div>

> enc\_sign = Base64.encode64(sign)

Bawse64.encode64 is deprecated. Check out String#pack instead  
(specifically the “m\*” option).

---

<div class="post-metadata">

**Author:** ![vaibhavb](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/439d5e/32.png) [@vaibhavb](https://www.ruby-forum.com/u/vaibhavb)\
**Post date:** [April 27, 2008, 12:31am UTC](https://www.ruby-forum.com/t/openssl-with-ruby/135005/5 "2008-04-27T00:31:16Z")

</div>

Hi Vaibhav,

Any chance you’re dealing with a character encoding issue? By default  
Java uses UTF-16. And you may be using UTF-8 with Ruby. Just a  
thought…

## Eric

Are you interested in on-site Ruby and/or Ruby on Rails training that  
uses  
well-designed, real-world, hands-on exercises? [http://LearnRuby.com](http://LearnRuby.com)
