mirror of
https://github.com/ruby/ruby.git
synced 2025-08-28 07:26:00 +02:00
* ext/openssl: imported.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4128 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
fd46a1da0a
commit
231247c010
63 changed files with 12561 additions and 0 deletions
52
ext/openssl/lib/openssl/cipher.rb
Normal file
52
ext/openssl/lib/openssl/cipher.rb
Normal file
|
@ -0,0 +1,52 @@
|
|||
=begin
|
||||
= $RCSfile$ -- Ruby-space predefined Cipher subclasses
|
||||
|
||||
= Info
|
||||
'OpenSSL for Ruby 2' project
|
||||
Copyright (C) 2002 Michal Rokos <m.rokos@sh.cvut.cz>
|
||||
All rights reserved.
|
||||
|
||||
= Licence
|
||||
This program is licenced under the same licence as Ruby.
|
||||
(See the file 'LICENCE'.)
|
||||
|
||||
= Version
|
||||
$Id$
|
||||
=end
|
||||
|
||||
##
|
||||
# Should we care what if somebody require this file directly?
|
||||
#require 'openssl'
|
||||
|
||||
module OpenSSL
|
||||
module Cipher
|
||||
%w(AES Cast5 BF DES Idea RC2 RC4 RC5).each{|cipher|
|
||||
eval(<<-EOD)
|
||||
class #{cipher} < Cipher
|
||||
def initialize(*args)
|
||||
args = args.join('-')
|
||||
if args.size == 0
|
||||
super(\"#{cipher}\")
|
||||
else
|
||||
super(\"#{cipher}-#\{args\}\")
|
||||
end
|
||||
end
|
||||
end
|
||||
EOD
|
||||
}
|
||||
|
||||
class Cipher
|
||||
def random_key
|
||||
str = OpenSSL::Random.random_bytes(self.key_len)
|
||||
self.key = str
|
||||
return str
|
||||
end
|
||||
|
||||
def random_iv
|
||||
str = OpenSSL::Random.random_bytes(self.iv_len)
|
||||
self.iv = str
|
||||
return str
|
||||
end
|
||||
end
|
||||
end # Cipher
|
||||
end # OpenSSL
|
Loading…
Add table
Add a link
Reference in a new issue