Skip to content

Commit 058e868

Browse files
author
Hiroshi Nakamura
committed
Updates for 1.9.3
1 parent 767b851 commit 058e868

File tree

25 files changed

+79
-67
lines changed

25 files changed

+79
-67
lines changed

rubykaigi2006/1_basic/11_encryption/111_aes+ecb/decrypt.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
require 'openssl'
22

33
# load SECRET key
4-
key = File.read("seckey.bin")
4+
key = File.binread("seckey.bin")
55

66
# create AES engine
77
cipher = OpenSSL::Cipher::Cipher.new("AES-128-ECB")

rubykaigi2006/1_basic/11_encryption/111_aes+ecb/encrypt.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
require 'openssl'
22

33
# load SECRET key
4-
key = File.read("seckey.bin")
4+
key = File.binread("seckey.bin")
55

66
# create AES engine
77
# 128/192/256 must match key length (bits)

rubykaigi2006/1_basic/11_encryption/112_aes+cbc/decrypt.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
require 'openssl'
22

33
# load SECRET key
4-
key = File.read("seckey.bin")
4+
key = File.binread("seckey.bin")
55

66
# create AES engine
77
cipher = OpenSSL::Cipher::Cipher.new("AES-256-CBC")

rubykaigi2006/1_basic/11_encryption/112_aes+cbc/encrypt.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
require 'openssl'
22

33
# load SECRET key
4-
key = File.read("seckey.bin")
4+
key = File.binread("seckey.bin")
55

66
# create AES engine
77
# 128/192/256 must match key length (bits)
@@ -21,4 +21,4 @@
2121
print iv
2222

2323
# encryption
24-
print cipher.update(ARGF.read) + cipher.final
24+
print cipher.update(ARGF.binread) + cipher.final
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
11
require 'openssl'
22

33
# load password
4-
password = File.read("password.txt")
4+
password = File.binread("password.txt")
55

66
# create AES engine
77
cipher = OpenSSL::Cipher::Cipher.new("AES-256-CBC")
88

9+
# salt is needed for key
10+
salt = ARGF.read(8)
11+
912
# initialize
1013
cipher.decrypt
1114
# calc key and IV from password
12-
cipher.pkcs5_keyivgen(password)
15+
cipher.pkcs5_keyivgen(password, salt)
1316

1417
# decryption
1518
print cipher.update(ARGF.read) + cipher.final
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,21 @@
11
require 'openssl'
22

33
# load password
4-
password = File.read("password.txt")
4+
password = File.binread("password.txt")
55

66
# create AES engine
77
cipher = OpenSSL::Cipher::Cipher.new("AES-256-CBC")
88

9+
# create salt; must be 8 bytes
10+
salt = OpenSSL::Random.random_bytes(8)
11+
912
# initialize
1013
cipher.encrypt
11-
# calc key and IV from password
12-
cipher.pkcs5_keyivgen(password)
14+
# calc key and IV from password and salt
15+
cipher.pkcs5_keyivgen(password, salt)
16+
17+
# salt is needed for key
18+
print salt
1319

1420
# encryption
1521
print cipher.update(ARGF.read) + cipher.final
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
require 'openssl'
22

33
# load PRIVATE key
4-
privkey =
5-
OpenSSL::PKey::RSA.new(File.read("privkey.pem"))
4+
privkey = OpenSSL::PKey::RSA.new(File.read("privkey.pem"))
65

76
# decryption
87
print privkey.private_decrypt(ARGF.read)

rubykaigi2006/1_basic/11_encryption/115_rsa/encrypt.rb

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
require 'openssl'
22

33
# load PUBLIC key
4-
pubkey =
5-
OpenSSL::PKey::RSA.new(File.read("pubkey.pem"))
4+
pubkey = OpenSSL::PKey::RSA.new(File.read("pubkey.pem"))
65

76
# encryption
87
# CAUTION: ARGF must be shorter than key size!

rubykaigi2006/1_basic/12_authentication/121_hmac/alice_sign/sign.rb

+1-4
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,9 @@
44
plain = ARGF.read
55

66
# load SECRET key
7-
key = File.read("seckey.bin")
7+
key = File.binread("seckey.bin")
88

99
# sign
10-
# CAUTION: digester must be an instance of
11-
# ::OpenSSL::Digest::* not ::Digest::* even if
12-
# openssl is loaded.
1310
digester = OpenSSL::Digest::SHA1.new
1411
sig = OpenSSL::HMAC.digest(digester, key, plain)
1512

rubykaigi2006/1_basic/12_authentication/121_hmac/bob_verify/verify.rb

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
require 'openssl'
22

33
# load SECRET key
4-
key = File.read("seckey.bin")
4+
key = File.binread("seckey.bin")
55

66
# load text and sig
7-
plain = File.read("plain.txt")
8-
sig = File.read("plain.sig.bin")
7+
plain = File.binread("../alice_sign/plain.txt")
8+
sig = File.binread("../alice_sign/plain.sig.bin")
99

1010
# self sign calculation
1111
digester = OpenSSL::Digest::SHA1.new

rubykaigi2006/1_basic/12_authentication/122_rsa/bob_verify/verify.rb

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
require 'openssl'
22

33
# load PUBLIC key
4-
pubkey =
5-
OpenSSL::PKey::RSA.new(File.read("pubkey.pem"))
4+
pubkey = OpenSSL::PKey::RSA.new(File.read("pubkey.pem"))
65

76
# load text and sig
8-
plain = File.read("plain.txt")
9-
sig = File.read("plain.sig.bin")
7+
plain = File.binread("../alice_sign/plain.txt")
8+
sig = File.binread("../alice_sign/plain.sig.bin")
109

1110
# verify
1211
digester = OpenSSL::Digest::SHA1.new

rubykaigi2006/1_basic/12_authentication/123_dsa/bob_verify/verify.rb

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
require 'openssl'
22

33
# load PUBLIC key
4-
pubkey =
5-
OpenSSL::PKey::DSA.new(File.read("pubkey.pem"))
4+
pubkey = OpenSSL::PKey::DSA.new(File.read("pubkey.pem"))
65

76
# load text and sig
8-
plain = File.read("plain.txt")
9-
sig = File.read("plain.sig.bin")
7+
plain = File.binread("../alice_sign/plain.txt")
8+
sig = File.binread("../alice_sign/plain.sig.bin")
109

1110
# verify
1211
if pubkey.verify(OpenSSL::Digest::DSS1.new, sig, plain)

rubykaigi2006/2_application/21_clientauth/host/host_client.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ def initialize
1010

1111
@logger = Logger.new(STDERR)
1212
@server = WEBrick::GenericServer.new(
13-
:Port => 1235, :Logger => @logger)
13+
:Port => 1234, :Logger => @logger)
1414
end
1515

1616
def start

rubykaigi2006/2_application/21_clientauth/proxy/proxy_client.rb

+1-2
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33

44
class ProxyClientAuth
55
def initialize
6-
@signkey =
7-
OpenSSL::PKey::RSA.new(File.read("privkey.pem"))
6+
@signkey = OpenSSL::PKey::RSA.new(File.read("privkey.pem"))
87
end
98

109
def evaluate(source)

rubykaigi2006/2_application/23_mastercontrol/host/host_mastercontrol.rb

+2-4
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,11 @@
55

66
class HostMasterControl
77
def initialize
8-
@masterpubkey = OpenSSL::PKey::RSA.new(
9-
File.read("masterpubkey.pem"))
8+
@masterpubkey = OpenSSL::PKey::RSA.new(File.read("masterpubkey.pem"))
109
@digester = OpenSSL::Digest::SHA256.new
1110

1211
@logger = Logger.new(STDERR)
13-
@server = WEBrick::GenericServer.new(
14-
:Port => 1234, :Logger => @logger)
12+
@server = WEBrick::GenericServer.new(:Port => 1234, :Logger => @logger)
1513
end
1614

1715
def start

rubykaigi2006/2_application/23_mastercontrol/proxy/proxy_mastercontrol.rb

+2-4
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,9 @@
44

55
class ProxyMasterControl
66
def initialize
7-
@pubkey =
8-
OpenSSL::PKey::RSA.new(File.read("pubkey.pem"))
7+
@pubkey = OpenSSL::PKey::RSA.new(File.read("pubkey.pem"))
98
@pubsig = File.read("pubkey.pem.sig")
10-
@signkey =
11-
OpenSSL::PKey::RSA.new(File.read("privkey.pem"))
9+
@signkey = OpenSSL::PKey::RSA.new(File.read("privkey.pem"))
1210
end
1311

1412
def evaluate(source)

rubykaigi2006/2_application/24_nglist/host/Rakefile

+8-1
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,19 @@ CLEAN.include('*.pem')
44
CLEAN.include('../proxy/pubkey.pem.sig')
55
CLEAN.include('nglist.txt')
66

7-
task :default => ['masterprivkey.pem', '../proxy/pubkey.pem.sig', 'nglist.txt']
7+
task :default => ['masterprivkey.pem', '../proxy/pubkey.pem.sig', 'nglist_listed.txt', 'nglist.txt']
88

99
file 'nglist.txt' do
1010
File.open('nglist.txt', 'w') {}
1111
end
1212

13+
file 'nglist_listed.txt' do
14+
require 'openssl'
15+
File.open('nglist_listed.txt', 'w') do |f|
16+
f.puts(OpenSSL::PKey.read(File.read("../proxy/pubkey.pem")).n.to_s)
17+
end
18+
end
19+
1320
file 'masterprivkey.pem' do
1421
load 'generatemasterkey.rb'
1522
end

rubykaigi2006/2_application/25_noreplay/host/host_noreplay.rb

+1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ def start
3030
pubkey = Marshal.load(sock)
3131
pubsig = Marshal.load(sock)
3232
source = Marshal.load(sock)
33+
p [:request, source]
3334
sourcesig = Marshal.load(sock)
3435
sock.close_read
3536
# verify

rubykaigi2006/2_application/26_encrypt/host/host_encrypt.rb

+2-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ def initialize
1919

2020
@logger = Logger.new(STDERR)
2121
@server = WEBrick::GenericServer.new(
22-
:Port => 1235, :Logger => @logger)
22+
:Port => 1234, :Logger => @logger)
2323
end
2424

2525
def start
@@ -34,6 +34,7 @@ def start
3434
pubkey = Marshal.load(sock)
3535
pubsig = Marshal.load(sock)
3636
ciphertext = Marshal.load(sock)
37+
p [:request, ciphertext]
3738
cipherkey = Marshal.load(sock)
3839
sourcesig = Marshal.load(sock)
3940
sock.close_read

rubykaigi2006/2_application/27_ssl/ca/gen_cert.rb

+18-7
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
#!/usr/bin/env ruby
22

33
require 'openssl'
4-
require 'ca_config'
4+
require './ca_config'
55
require 'fileutils'
6-
require 'getopts'
6+
require 'optparse'
77

88
include OpenSSL
99

@@ -13,10 +13,21 @@ def usage
1313
exit
1414
end
1515

16-
getopts nil, 'type:client', 'out:', 'force'
16+
cert_type = nil
17+
out_file = 'cert.pem'
18+
force = false
19+
OptionParser.new { |opts|
20+
opts.on("-t TYPE", "--type TYPE") do |v|
21+
cert_type = v
22+
end
23+
opts.on("-o OUT", "--out OUT") do |v|
24+
out_file = v
25+
end
26+
opts.on(nil, "--force") do
27+
force = true
28+
end
29+
}.parse!
1730

18-
cert_type = $OPT_type
19-
out_file = $OPT_out || 'cert.pem'
2031
csr_file = ARGV.shift or usage
2132
ARGV.empty? or usage
2233

@@ -31,7 +42,7 @@ def usage
3142
raise "Key length too long"
3243
end
3344
if csr.subject.to_a[0, CAConfig::NAME.size] != CAConfig::NAME
34-
unless $OPT_force
45+
unless force
3546
p csr.subject.to_a
3647
p CAConfig::NAME
3748
puts "DN does not match"
@@ -111,7 +122,7 @@ def usage
111122
ex << ef.create_extension("crlDistributionPoints", CAConfig::CDP_LOCATION) if CAConfig::CDP_LOCATION
112123
ex << ef.create_extension("authorityInfoAccess", "OCSP;" << CAConfig::OCSP_LOCATION) if CAConfig::OCSP_LOCATION
113124
cert.extensions = ex
114-
cert.sign(ca_keypair, Digest::SHA1.new)
125+
cert.sign(ca_keypair, OpenSSL::Digest::SHA1.new)
115126

116127
# For backup
117128

rubykaigi2006/2_application/27_ssl/ca/gen_crl.rb

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
#!/usr/bin/env ruby
22

33
require 'openssl'
4-
require 'ca_config'
5-
require 'getopts'
4+
require './ca_config'
65

76
include OpenSSL
87

@@ -49,7 +48,7 @@ def usage
4948
puts "+ Serial ##{re.serial} - revoked at #{re.time}"
5049
end
5150

52-
crl.sign(ca_keypair, Digest::SHA1.new)
51+
crl.sign(ca_keypair, OpenSSL::Digest::SHA1.new)
5352

5453
puts "Writing #{CAConfig::CRL_FILE}."
5554
File.open(CAConfig::CRL_FILE, "w") do |f|

rubykaigi2006/2_application/27_ssl/ca/init_ca.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/usr/bin/env ruby
22

33
require 'openssl'
4-
require 'ca_config'
4+
require './ca_config'
55

66
include OpenSSL
77

@@ -49,7 +49,7 @@
4949
cert.extensions = [ext1, ext2, ext3, ext4]
5050
ext0 = ef.create_extension("authorityKeyIdentifier", "keyid:always,issuer:always")
5151
cert.add_extension(ext0)
52-
cert.sign(keypair, Digest::SHA1.new)
52+
cert.sign(keypair, OpenSSL::Digest::SHA1.new)
5353

5454
keypair_file = CAConfig::KEYPAIR_FILE
5555
puts "Writing keypair."

rubykaigi2006/2_application/27_ssl/host/host_ssl.rb

+5-8
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,22 @@
11
require 'webrick/ssl'
22
require 'openssl'
3+
require '../sslsocket_fix'
34
require 'logger'
45

56
class HostSsl
67
def initialize
78
logger = Logger.new(STDERR)
8-
servercert = OpenSSL::X509::Certificate.new(
9-
File.read("servercert.pem"))
10-
serverprivkey = OpenSSL::PKey::RSA.new(
11-
File.read("privkey.pem"))
9+
servercert = OpenSSL::X509::Certificate.new(File.read("servercert.pem"))
10+
serverprivkey = OpenSSL::PKey::RSA.new(File.read("privkey.pem"))
1211
ca_file = '../ca/cacert.pem'
1312
# CAUTION: crl_file is not reloaded until the
1413
# next server startup
1514
crl_file = '../ca/crl/ctor.pem'
1615

1716
store = OpenSSL::X509::Store.new
1817
store.add_file(ca_file)
19-
store.add_crl(
20-
OpenSSL::X509::CRL.new(File.read(crl_file)))
21-
store.flags = OpenSSL::X509::V_FLAG_CRL_CHECK |
22-
OpenSSL::X509::V_FLAG_CRL_CHECK_ALL
18+
store.add_crl(OpenSSL::X509::CRL.new(File.read(crl_file)))
19+
store.flags = OpenSSL::X509::V_FLAG_CRL_CHECK | OpenSSL::X509::V_FLAG_CRL_CHECK_ALL
2320

2421
@server = WEBrick::GenericServer.new(
2522
:X_SSLCertificateStoreCrlFile => crl_file,

rubykaigi2006/2_application/27_ssl/proxy/gen_key_and_certrequest.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ def usage
3333
req.version = 0
3434
req.subject = name
3535
req.public_key = keypair.public_key
36-
req.sign(keypair, Digest::MD5.new)
36+
req.sign(keypair, OpenSSL::Digest::MD5.new)
3737

3838
puts "Writing #{csrout}..."
3939
File.open(csrout, "w") do |f|

0 commit comments

Comments
 (0)