Ruby Issue Tracking System: Issues
https://redmine.ruby-lang.org/
https://redmine.ruby-lang.org/favicon.ico?1711330511
2014-04-18T20:47:43Z
Ruby Issue Tracking System
Redmine
Ruby master - Feature #9758 (Closed): Allow setting SSLContext#extra_chain_cert in Net::HTTP
https://redmine.ruby-lang.org/issues/9758
2014-04-18T20:47:43Z
stouset (Stephen Touset)
stephen@touset.org
<p>Currently, <code>Net::HTTP</code> can only send a single SSL certificate when it<br>
establishes a connection. Some use-cases involve sending an entire<br>
certificate chain to the destination; for this, <code>SSLContext</code> supports<br>
assigning to <code>#extra_chain_cert=</code>.</p>
<p>This adds support in <code>Net::HTTP</code> for exposing this underlying <code>SSLContext</code><br>
property to end-users.</p>
Ruby master - Feature #6980 (Closed): OpenSSL support for AEAD additional authenticated data and ...
https://redmine.ruby-lang.org/issues/6980
2012-09-05T04:11:43Z
stouset (Stephen Touset)
stephen@touset.org
<p>=begin<br>
I've added support to OpenSSL::Cipher to support AEAD modes of operation. AEAD modes allow for plaintext additional authentication data to be combined with a ciphertext to generate a "tag" (e.g., a MAC). This tag can then be verified during decryption to ensure the secret key, nonce (IV), additional authentication data, ciphertext, and tag have not been changed or manipulated.</p>
<p>Usage can be inferred through documentation and tests.</p>
<p>cipher = OpenSSL::Cipher.new('aes-256-gcm')<br>
cipher.encrypt<br>
cipher.key = 'key'<br>
cipher.iv = 'iv'<br>
cipher.aad = 'aad'</p>
<p>ct = cipher.update('plain')<br>
tag = cipher.gcm_tag</p>
<p>cipher.reset<br>
cipher.decrypt<br>
cipher.key = 'key'<br>
cipher.iv = 'iv'<br>
cipher.gcm_tag = 'tag'<br>
cipher.aad = 'aad'</p>
<p>cipher.update(ct) + cipher.verify + cipher.final # => 'plain'</p>
<p>cipher.reset<br>
cipher.decrypt<br>
cipher.key = 'key'<br>
cipher.iv = 'iv'<br>
cipher.gcm_tag = 'tag'<br>
cipher.aad = 'aad'</p>
<p>cipher.update(ct[0..-2] << ct[-1].succ) + cipher.verify + cipherfinal # => OpenSSL::Cipher::CipherError<br>
=end</p>
Ruby master - Feature #3478 (Closed): Excruciatingly slow pathname implementation
https://redmine.ruby-lang.org/issues/3478
2010-06-25T05:33:43Z
stouset (Stephen Touset)
stephen@touset.org
<p>=begin<br>
In writing a pure-Ruby git implementation, I discovered with rprof that using Pathname was the source of a huge proportion of my library's running time. Recently, Rails contributor José Valim discovered a similar situation in Rails. Anecdotally, removing Pathname resulted in a speedup from 6s to 3s on a single request. Here's his commit removing some Pathname usage from Rails:</p>
<pre><code> http://github.com/rails/rails/commit/69abbe893413c99808c8cebd2f1d468c7921c573
</code></pre>
<p>I have rewritten Pathname, and the project is on GitHub.</p>
<pre><code> http://github.com/stouset/pathname3/
</code></pre>
<p>I've included the rewrite as a patch. It's backwards-compatible with the existing Pathname class, and passes RubySpec and MRI tests.<br>
=end</p>
Backport187 - Bug #3070 (Closed): Delegator#method_missing doesn't pass along block args
https://redmine.ruby-lang.org/issues/3070
2010-04-01T02:40:28Z
stouset (Stephen Touset)
stephen@touset.org
<p>=begin<br>
The particular instance of this bug I'm running up against is that Tempfile delegates to File. I've written a method on File which accepts a block, but any time it's called from a Tempfile, Ruby raises a LocalJumpError, because the block argument hasn't been passed.</p>
<p>Seems like a pretty easy fix.</p>
<p>def method_missing(m, *args, &block)<br>
target = self.<strong>getobj</strong><br>
unless target.respond_to?(m)<br>
super(m, *args, &block)<br>
end<br>
target.<strong>send</strong>(m, *args, &block)<br>
end<br>
=end</p>