[#89088] More questions about =~ — GGarramuno@... (GGarramuno)

irb(main):006:1* class String

14 messages 2004/01/01

[#89119] Loop/Iterator questions — GGarramuno@... (GGarramuno)

1) Is there anything like Perl's continue block available? This is

15 messages 2004/01/02

[#89189] Best way to send mail in ruby — Bauduin Raphael <rb@...>

Hi,

11 messages 2004/01/03

[#89193] Simple Ruby DB apps/programs ... — Useko Netsumi <usenets@...>

I was wondering if there are some example of small Ruby(1.8.1) Database

14 messages 2004/01/03

[#89261] class Time doesn't pass year 2038? — Jean-Baptiste <temuphaey0@...>

15 messages 2004/01/05

[#89339] Compression (besides Huffman) and Ruby — "Josef 'Jupp' SCHUGT" <jupp@...>

Hi!

14 messages 2004/01/07

[#89367] Database applications and OOness — Tim Bates <tim@...>

People,

63 messages 2004/01/07
[#89455] Re: Database applications and OOness — "dhtapp" <dhtapp@...> 2004/01/08

I've been watching this thread with a great deal of interest. I'm

[#89456] block delimiting — Pete Yadlowsky <pmy@...> 2004/01/08

[#89465] Re: block delimiting — Austin Ziegler <austin@...> 2004/01/08

On Fri, 9 Jan 2004 04:33:15 +0900, Pete y wrote:

[#89453] ruby 1.8.1 windows installer — KONTRA Gergely <kgergely@...>

Hi!

26 messages 2004/01/08
[#89716] Re: ruby 1.8.1 windows installer — intc_ctor@... (Phil Tomson) 2004/01/12

>

[#89860] Re: ruby 1.8.1 windows installer — Alan Davies <NOSPAMcs96and@...> 2004/01/14

> Since the first edition of the Pickaxe book didn't exactly fly off the

[#89460] Re: block delimiting — "Mike Wilson" <wmwilson01@...>

21 messages 2004/01/08

[#89590] regex to NOT match? — Ruby Baby <ruby@...>

Sorry it seems like the smallest thing, but I'm stuck on this.

16 messages 2004/01/10

[#89611] Converting a string to an array of tokens — "John W. Long" <ws@...>

Is there a fast way to convert a string into a list of tokens?

17 messages 2004/01/11

[#89672] faster integer arithmetics & arbitrary precision floating number — David Garamond <lists@...6.isreserved.com>

1. Is there a way in Ruby to speed up 32bit integer arithmetics (only

43 messages 2004/01/12
[#89686] Re: faster integer arithmetics & arbitrary precision floating number — Ara.T.Howard@... 2004/01/12

On Tue, 13 Jan 2004, David Garamond wrote:

[#89709] Re: faster integer arithmetics & arbitrary precision floating number — Charles Mills <boson@...> 2004/01/12

What abouts Rubys design would make integer arithmetic slower than integer

[#89710] Re: faster integer arithmetics & arbitrary precision floating number — Dave Thomas <dave@...> 2004/01/12

[#89711] Re: faster integer arithmetics & arbitrary precision floating number — Charles Mills <boson@...> 2004/01/12

On Tue, 13 Jan 2004, Dave Thomas wrote:

[#89718] Getting the tail of a list? — Carsten Eckelmann <careck@...42.com>

Hi everybody,

19 messages 2004/01/12

[#89796] Ruby OS mentioned on /. — intc_ctor@... (Phil Tomson)

http://developers.slashdot.org/developers/04/01/13/0123250.shtml?tid=185&tid=190

20 messages 2004/01/13
[#89805] Re: Ruby OS mentioned on /. — Paul William <maillist@...> 2004/01/13

./ normally does not have vaporware... are a bunch of ruby (a very high

[#89806] Re: Ruby OS mentioned on /. — "Zach Dennis" <zdennis@...> 2004/01/13

Somehow i have this strange feeling that not all ruby peeps are strictly

[#89975] drb, firewall, ssh tunneling, and yield — Joel VanderWerf <vjoel@...>

14 messages 2004/01/16
[#89976] Re: drb, firewall, ssh tunneling, and yield — Nathaniel Talbott <nathaniel@...> 2004/01/16

On Jan 15, 2004, at 19:10, Joel VanderWerf wrote:

[#90013] Fighting Ruby's bad fame — gabriele renzi <surrender_it@...1.vip.ukl.yahoo.com>

Hi gurus and nubys,

42 messages 2004/01/16
[#90097] Re: Fighting Ruby's bad fame — ptkwt@... (Phil Tomson) 2004/01/18

In article <af53b0ba.0401171921.7cf9b9b7@posting.google.com>,

[#90023] Installing a program Unix-like — Malte Milatz <malteDELETETHIS@...>

Users of Linux, FreeBSD etc. are used to downloading an archive,

13 messages 2004/01/16

[#90077] long expression syntax — rick.hu@... (Rick Hu)

why do I get a syntax error for

13 messages 2004/01/17

[#90086] is Ruby the right language for these projects? — Ruby Baby <ruby@...>

Please forgive my self-centered question. I've been learning all about Ruby

16 messages 2004/01/18

[#90139] segfaults on mandrake... — Ferenc Engard <ferenc@...>

Hello,

16 messages 2004/01/18

[#90200] regex help — Chris Morris <chrismo@...>

I need a re such that:

18 messages 2004/01/19

[#90228] Re: New to Python: my impression v. Perl/Ruby — ptkwt@... (Phil Tomson)

In article <mailman.493.1074484056.12720.python-list@python.org>,

36 messages 2004/01/20
[#90292] Re: New to Python: my impression v. Perl/Ruby — Ville Vainio <ville.spamstermeister.vainio@...> 2004/01/20

>>>>> "Phil" == Phil Tomson <ptkwt@aracnet.com> writes:

[#90294] Re: New to Python: my impression v. Perl/Ruby — "Zach Dennis" <zdennis@...> 2004/01/20

Ville>Though "sending messages" to int literals is a syntax error.

[#90332] Re: New to Python: my impression v. Perl/Ruby — GGarramuno@... (GGarramuno) 2004/01/21

"Zach Dennis" <zdennis@mktec.com> wrote in message news:<AKEKIKLMCFIHPEAHKAAICEOHHFAA.zdennis@mktec.com>...

[#90333] Re: New to Python: my impression v. Perl/Ruby — Gregory Millam <walker@...> 2004/01/21

Received: Wed, 21 Jan 2004 16:59:59 +0900

[#90317] Re: Proposal for programming language of the year — "Volkmann, Mark" <Mark.Volkmann@...>

I think one of the main points of learning a new language each year is that

18 messages 2004/01/21

[#90354] Modules as namespace — gm@... (George Moschovitis)

Hello everyone,

16 messages 2004/01/21

[#90405] Very basic Ruby docs/books/tutorial? — Robert Feldt <feldt@...>

Hello,

12 messages 2004/01/22

[#90472] Ruby/Extensions v0.3 released — Gavin Sinclair <gsinclair@...>

A new version of Ruby/Extensions, a suite of useful methods added to

17 messages 2004/01/23

[#90505] Why is to_a going to be obsolete? — Patrick Bennett <patrick.bennett@...>

I find it immensely useful when dealing with arrays to be able to

25 messages 2004/01/23
[#90507] Re: Why is to_a going to be obsolete? — Gennady <gfb@...> 2004/01/23

Patrick Bennett wrote:

[#90510] Re: Why is to_a going to be obsolete? — Patrick Bennett <patrick.bennett@...> 2004/01/23

Hmmm, thanks, but it's a bit 'non-obvious' to casual Ruby programmers

[#90512] Re: Why is to_a going to be obsolete? — Gennady <gfb@...> 2004/01/23

[#90524] Re: Why is to_a going to be obsolete? — "T. Onoma" <transami@...> 2004/01/23

On Friday 23 January 2004 06:43 pm, Gennady wrote:

[#90598] perl bug File::Basename and Perl's nature — xah@... (Xah Lee)

Just bumped into another irresponsibility in perl.

19 messages 2004/01/25

[#90667] ruby-math and "why is ** not abelian?" — vanjac12@... (Van Jacques)

I was reading the 1st thread in the ruby-math discussion at

11 messages 2004/01/26

[#90750] choosing ruby? — Piergiuliano Bossi <p_bossi_AGAINST_SPAM@...>

We are on the way to start a new project, a web application with a bunch

20 messages 2004/01/27

[#90756] Editor — Safran von Twesla <me@...>

Hi,

20 messages 2004/01/27

[#90770] newbee question about "missing" hash methods +, += and << — benny <linux@...>

Hi,

25 messages 2004/01/27

[#90913] vimrc for Ruby or rubytidy — Theodore Knab <tjk@...>

Does someone have a '.vimrc' file they will share

17 messages 2004/01/29
[#90914] Re: vimrc for Ruby or rubytidy — "Gavin Sinclair" <gsinclair@...> 2004/01/29

> Does someone have a '.vimrc' file they will share

[#90971] time comparison — tony summerfelt <snowzone5@...>

i want to parse and trim a log file. the date format log file looks like:

13 messages 2004/01/29

[#91005] Ruby and Perl Integration — "John W. Long" <ws@...>

All this talk about RJNI has gotten me thinking. Has anyone attempted to

17 messages 2004/01/30
[#91007] Re: Ruby and Perl Integration — Thomas Adam <thomas_adam16@...> 2004/01/30

--- "John W. Long" <ws@johnwlong.com> wrote:

[#91056] principle of most suprise — tony summerfelt <snowzone5@...>

gah, ruby is doing it to me again:

31 messages 2004/01/30

[#91071] Accesing to private attributes — "Imobach =?iso-8859-15?q?Gonz=E1lez_Sosa?=" <imodev@...>

Hi all,

14 messages 2004/01/30

[#91088] flip flop operator and assignment — ptkwt@... (Phil Tomson)

I'm working on the pattern matching section for

25 messages 2004/01/31

[#91089] No difference between .. and ... flip/flop operators? — ptkwt@... (Phil Tomson)

50 messages 2004/01/31

[#91099] Ruby 1.8.1 REXML performance — Steven Jenkins <steven.jenkins@...>

I have a script that uses REXML to stream parse an XML file and load a

27 messages 2004/01/31

[#91104] graphics lib? — Alwin Blok <alwinblok@...>

Hello,

38 messages 2004/01/31
[#91262] Re: graphics lib? — Simon Strandgaard <neoneye@...> 2004/02/02

On Sun, 01 Feb 2004 16:18:50 -0600, Charles Comstock wrote:

[#91362] Re: graphics lib? — Charles Comstock <cc1@...> 2004/02/03

Simon Strandgaard wrote:

Re: drbssl problem with certificates

From: "NAKAMURA, Hiroshi" <nahi@...>
Date: 2004-01-15 04:02:46 UTC
List: ruby-talk #89917
Hi,

> From: "Joel VanderWerf" <vjoel@PATH.Berkeley.EDU>
> Sent: Wednesday, January 14, 2004 5:54 PM

> > Maybe, the next issue might be "how to generate key and certificate"
> > -> "how to create CA (certificate authority)" -> "how to setup
> > drbssl client/server with key/certificate".  If you are really a
> > ssl newbie (sorry), it's rather a long road.  Do you really need
> > SSL?
> 
> Well, maybe not. In my distributed app, users have passwords that they 
> use in their drb clients to access their own data in the server. The 
> data itself is not critical, though, so a stolen password is not the end 
> of the world (and the server itself will be SAFE enough not to do any 
> harm). I was hoping SSL would be easy to plug in to drb, and generating 
> keys would be as easy as it is for SSH (maybe it is?).

Unfortunately, no.  You'll know...

> > I'll be able to post setup log of this tomorrow or the next if you
> > want.  Though I've not used drb with ssl yet.
> 
> Only if you feel like it, NaHi. But I have a feeling the next step is 
> for me to read the openssl man page....

Setting CA up with openssl command line sample can be found
from Google.  But I love ruby.  I feel like it.  Here we go.


###
## Get setup scripts.
#
0$ mkdir ~/drbssldemo
0$ cd ~/drbssldemo
0$ wget http://rrr.jin.gr.jp/dav/NaHi/casetupssample/casetupsample_20040115.tar.gz
--12:05:08--  http://rrr.jin.gr.jp/dav/NaHi/casetupssample/casetupsample_20040115.tar.gz
           => `casetupsample_20040115.tar.gz'
Resolving rrr.jin.gr.jp... 61.120.18.100
Connecting to rrr.jin.gr.jp[61.120.18.100]:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3,038 [application/x-tar]

100%[====================================>] 3,038         --.--K/s

12:05:09 (28.97 MB/s) - `casetupsample_20040115.tar.gz' saved [3038/3038]

0$ gzip -dc casetupsample_20040115.tar.gz | tar xvf -
ca_config.rb    # CA configuration file
drbssl_c.rb     # DRb SSL server sample based on drb/sample/drbssl_s.rb
drbssl_s.rb     # DRb SSL client sample based on drb/sample/drbssl_c.rb
gen_cert.rb     # generates certificate
gen_rsakey.rb   # generates RSA keypair
init_ca.rb      # initializes files for CA


###
## Setup CA
#
0$ mkdir ~/demoCA
0$ cd ~/demoCA
0$ cp -p ~/drbssldemo/ca_config.rb .
0$ cat ca_config.rb
class CAConfig
  BASE_DIR = "/home/nakahiro/demoCA"
  KEYPAIR_FILE = "#{BASE_DIR}/private/cakeypair.pem"
  CERT_FILE = "#{BASE_DIR}/cacert.pem"
  SERIAL_FILE = "#{BASE_DIR}/serial"
  NEW_CERTS_DIR = "#{BASE_DIR}/newcerts"
  NEW_KEYPAIR_DIR = "#{BASE_DIR}/private/keypair_backup"
  CRL_DIR = "#{BASE_DIR}/crl"

  NAME = [['C', 'JP'], ['O', 'JIN.GR.JP'], ['OU', 'RRR']]
  CA_CERT_DAYS = 5 * 365
  CA_RSA_KEY_LENGTH = 2048

  CERT_DAYS = 365
  CERT_KEY_LENGTH_MIN = 1024
  CERT_KEY_LENGTH_MAX = 2048
  CDP_LOCATION = nil
  OCSP_LOCATION = nil

  CRL_FILE = "#{CRL_DIR}/rrr.crl"
  CRL_PEM_FILE = "#{CRL_DIR}/rrr.pem"
  CRL_DAYS = 14

  PASSWD_CB = Proc.new { |flag|
    print "Enter password: "
    pass = $stdin.gets.chop!
    # when the flag is true, this passphrase
    # will be used to perform encryption; otherwise it will
    # be used to perform decryption.
    if flag
      print "Verify password: "
      pass2 = $stdin.gets.chop!
      raise "verify failed." if pass != pass2
    end
    pass
  }
end
0$ vi ca_config.rb      # Edit for your env.
                        # BASE_DIR is a must.  NAME should be changed once
                        # after you succeeded initial setup.
0$ ~/drbssldemo/init_ca.rb
Generating CA keypair: ............................................................
Writing keypair.
Enter password: 1234    # Set a password for CA's private key.  Don't forget
                        # this password.  The private key cannot be activated
                        # without this password.  You can't do anything without
                        # the private key activated.
Verify password: 1234   # Input again.
Writing /home/nakahiro/demoCA/cacert.pem.
DONE. (Generated certificate for '/C=JP/O=JIN.GR.JP/OU=RRR/CN=CA')
0$ ls                   # init_ca.rb generates following files.
ca_config.rb  cacert.pem  crl/  newcerts/  private/  serial


###
## Generate SSL server certificate
#

## Create private/public keypair

0$ mkdir ~/demoserver
0$ cd ~/demoserver
0$ ~/drbssldemo/gen_rsakey.rb keypair.pem
Generating CA keypair: .....................................................
Writing keypair.
Enter password: 5678    # Set a password for SSL server's private key.  You
                        # need this password to activate the private key.  SSL
                        # server requires private key activated at running.
                        # So you must type this password each time to wake SSL
                        # server up.
Verify password: 5678   # Input again.

## Create CSR: Certificate Signing Request

0$ ~/cvs/ruby/HEAD/sample/openssl/gen_csr.rb --key keypair.pem /C=JP/O=JIN.GR.JP/OU=RRR/OU=CA/CN=localhost      # Creates
"localhost" server certificate.
                                # You can specify hostname here.
                                # gen_csr.rb is included in ruby package.
Enter PEM pass phrase: 5678     # To create CSR, you must use private key to
                                # show your identity.  So you need to type the
                                # password here.
Generating CSR for [["C", "JP"], ["O", "JIN.GR.JP"], ["OU", "RRR"], ["OU", "CA"], ["CN", "localhost"]]
Writing csr.pem...

## Send CSR to CA

0$ cp -p csr.pem ~/demoCA/csr_localhost.pem

## CA creates a certificate from CSR

0$ cd ~/demoCA
0$ ~/drbssldemo/gen_cert.rb --type server --out cert_localhost.pem csr_localhost.pem
Reading CA cert (from /home/nakahiro/demoCA/cacert.pem)
Reading CA keypair (from /home/nakahiro/demoCA/private/cakeypair.pem)
Enter password: 1234    # To create certificate, you need to type the password
                        # of CA.
Writing cert.pem...
DONE. (Generated certificate for '/C=JP/O=JIN.GR.JP/OU=RRR/OU=CA/CN=localhost')

## Send back the certificate to SSL server

0$ mv cert_localhost.pem ~/demoserver
0$ cp -p cacert.pem ~/demoserver


###
## Genertes SSL client certificate
#
0$ mkdir ~/democlient
0$ cd ~/democlient

## At the SSL server certificate section, I generated a keypair then pass it to
## gen_csr.rb with --key option.  gen_csr.rb can do it at once as below.  But
## bear in mind that the private key which gen_csr.rb generates is not
## protected by a password so anyone who get the keypair.pem file can use the
## private key without any protect.

0$ ~/cvs/ruby/HEAD/sample/openssl/gen_csr.rb /C=JP/O=JIN.GR.JP/OU=RRR/OU=CA/CN=NaHi/emailAddress=nahi@keynauts.com
[["C", "JP"], ["O", "JIN.GR.JP"], ["OU", "RRR"], ["OU", "CA"], ["CN", "NaHi"], ["emailAddress", "nahi@keynauts.com"]]
...........................................................
Writing keypair.pem...
Generating CSR for [["C", "JP"], ["O", "JIN.GR.JP"], ["OU", "RRR"], ["OU", "CA"], ["CN", "NaHi"], ["emailAddress",
"nahi@keynauts.com"]]
Writing csr.pem...
0$ ls
csr.pem  keypair.pem
0$ cp -p csr.pem ~/demoCA/csr_nahi.pem
0$ cd ~/demoCA
0$ ~/drbssldemo/gen_cert.rb --type client --out cert_nahi.pem csr_nahi.pem
Reading CA cert (from /home/nakahiro/demoCA/cacert.pem)
Reading CA keypair (from /home/nakahiro/demoCA/private/cakeypair.pem)
Enter password: 1234
Writing cert.pem...
DONE. (Generated certificate for '/C=JP/O=JIN.GR.JP/OU=RRR/OU=CA/CN=NaHi/emailAddress=nahi@keynauts.com')
0$ mv cert_nahi.pem ~/democlient
0$ cp -p cacert.pem ~/democlient


###
## Run DRb SSL server
#
0$ cd ~/demoserver
0$ cp -p ~/drbssldemo/drbssl_s.rb .
0$ cat drbssl_s.rb
#!/usr/bin/env ruby

require 'drb'
require 'drb/ssl'

here = ARGV.shift || "drbssl://localhost:3456"

class HelloWorld
  include DRbUndumped

  def hello(name)
    "Hello, #{name}."
  end
end

config = Hash.new
config[:verbose] = true
config[:SSLPrivateKey] = OpenSSL::PKey::RSA.new(File.read("keypair.pem"))
config[:SSLCertificate] =
  OpenSSL::X509::Certificate.new(File.read("cert_localhost.pem"))

DRb.start_service(here, HelloWorld.new, config)
puts DRb.uri
$stdin.gets
DRb.stop_service
0$ ruby drbssl_s.rb
Enter PEM pass phrase:
drbssl://localhost:3456


###
## Run DRb SSL client (on another terminal)
#
0$ cd ~/democlient
0$ cp -p ~/drbssldemo/drbssl_c.rb .
0$ cat drbssl_c.rb
#!/usr/bin/env ruby

require 'drb'
require 'drb/ssl'

there = ARGV.shift || "drbssl://localhost:3456"

config = Hash.new
config[:SSLVerifyMode] = OpenSSL::SSL::VERIFY_PEER
config[:SSLCACertificateFile] = "cacert.pem"
# config[:SSLPrivateKey] = OpenSSL::PKey::RSA.new(File.read("keypair.pem"))
# config[:SSLCertificate] =
#  OpenSSL::X509::Certificate.new(File.read("cert_nahi.pem"))
config[:SSLVerifyCallback] = lambda { |ok, store|
  p [ok, store.error_string]
  ok
}

DRb.start_service(nil,nil,config)
h = DRbObject.new(nil, there)
while line = gets
  p h.hello(line.chomp)
end
0$ ruby drbssl_c.rb
# Type something here and see the result.


Above example does not use SSL client certificate for authentication.
Here is the DRb SSL server which requires client certificate to
connect.  Try to connect with drbssl_c.rb.

====
#!/usr/bin/env ruby

require 'drb'
require 'drb/ssl'

here = ARGV.shift || "drbssl://localhost:3456"

class HelloWorld
  include DRbUndumped

  def hello(name)
    "Hello, #{name}."
  end
end

config = Hash.new
config[:verbose] = true
config[:SSLVerifyMode] = OpenSSL::SSL::VERIFY_PEER | OpenSSL::SSL::VERIFY_FAIL_IF_NO_PEER_CERT
config[:SSLCACertificateFile] = "cacert.pem"
config[:SSLPrivateKey] = OpenSSL::PKey::RSA.new(File.read("keypair.pem"))
config[:SSLCertificate] =
  OpenSSL::X509::Certificate.new(File.read("cert_localhost.pem"))
config[:SSLVerifyCallback] = lambda { |ok, store|
  p [ok, store.error_string]
  ok
}

DRb.start_service(here, HelloWorld.new, config)
puts DRb.uri
$stdin.gets
DRb.stop_service
====


You'll know if you try, current DRb SSL server implementation
hangs when SSLError raises.  It's not good maybe.  I'll talk to
the author.

Regards,
// NaHi

In This Thread