Module Aes
In: lib/ruby-aes.rb

Methods

Public Class methods

[Source]

    # File lib/ruby-aes.rb, line 45
45:     def Aes.bs(); return @@bs end

[Source]

    # File lib/ruby-aes.rb, line 46
46:     def Aes.bs=(bs); @@bs = bs.to_i; @@bs==0 ? 4096 : @@bs = @@bs - @@bs%16 end

[Source]

    # File lib/ruby-aes.rb, line 61
61:     def Aes.check_iv(iv_string)
62:         k = iv_string.length
63:         hex = (iv_string =~ /[a-f0-9A-F]{#{k}}/) == 0
64:         bin = ! hex
65:         if k == 32 && hex
66:             return [iv_string].pack("H*")
67:         elsif k == 16 && bin
68:             return iv_string
69:         else
70:             raise "Bad IV string"
71:         end
72:     end

[Source]

    # File lib/ruby-aes.rb, line 48
48:     def Aes.check_key(key_string, kl = 128)
49:         kl = Aes.check_kl(kl)
50:         k = key_string ? key_string.length : 0
51:         raise "Bad key string or bad key length" if (k != kl/8) && (k != kl/4)
52:         hex = (key_string =~ /[a-f0-9A-F]{#{k}}/) == 0 && (k == kl/4)
53:         bin = ! hex
54:         if ! (([32, 48, 64].include?(k) && hex) ||
55:            ([16, 24, 32].include?(k) && bin))
56:             raise "Bad key string"
57:         end
58:         hex ? [key_string].pack("H*") : key_string
59:     end

[Source]

    # File lib/ruby-aes.rb, line 82
82:     def Aes.check_kl(key_length)
83:         case key_length
84:         when 128, 192, 256
85:         else raise "Bad key length"
86:         end
87:         key_length
88:     end

[Source]

    # File lib/ruby-aes.rb, line 74
74:     def Aes.check_mode (mode)
75:         case mode
76:         when 'ECB', 'CBC', 'OFB', 'CFB'
77:         else raise "Bad cipher mode"
78:         end
79:         mode
80:     end

[Source]

     # File lib/ruby-aes.rb, line 106
106:     def Aes.decrypt_block(keyl, mode, key, iv, block = "DEFAULT PLAINTXT")
107:         Aes.init(keyl, mode, key, iv)
108:         @@aes.decrypt_block(block)
109:     end

[Source]

     # File lib/ruby-aes.rb, line 116
116:     def Aes.decrypt_buffer(keyl, mode, key, iv, buffer = "DEFAULT PLAINTXT")
117:         raise "Bad Block size" if buffer.length < 16
118:         Aes.init(keyl, mode, key, iv)
119:         @@aes.decrypt_buffer(buffer)
120:     end

[Source]

     # File lib/ruby-aes.rb, line 145
145:     def Aes.decrypt_stream(keyl, mode, key, iv, sin = STDIN, sout = STDOUT)
146:         Aes.init(keyl, mode, key, iv)
147:         case sout
148:         when String, Array, IO
149:         else
150:             raise "Bad output stream (String, Array, IO)"
151:         end
152:         case sin
153:         when String
154:             sout << @@aes.decrypt_buffer(sin)
155:         when IO
156:             while buf = sin.read(@@bs)#+1)
157:               if buf.length == @@bs
158:                 sout << @@aes.decrypt_blocks(buf)
159:               else
160:                 sout << @@aes.decrypt_buffer(buf)
161:               end
162:             end
163:         else
164:             raise "Bad input stream (String, IO)"
165:         end
166:     end

[Source]

     # File lib/ruby-aes.rb, line 100
100:     def Aes.encrypt_block(keyl, mode, key, iv, block = "DEFAULT PLAINTXT")
101:         raise "Bad Block size" if block.length < 16 || block.length > 16
102:         Aes.init(keyl, mode, key, iv)
103:         @@aes.encrypt_block(block)
104:     end

[Source]

     # File lib/ruby-aes.rb, line 111
111:     def Aes.encrypt_buffer(keyl, mode, key, iv, buffer = "PLAINTEXT")
112:         Aes.init(keyl, mode, key, iv)
113:         @@aes.encrypt_buffer(buffer)
114:     end

[Source]

     # File lib/ruby-aes.rb, line 122
122:     def Aes.encrypt_stream(keyl, mode, key, iv, sin = STDIN, sout = STDOUT)
123:         Aes.init(keyl, mode, key, iv)
124:         case sout
125:         when String, Array, IO
126:         else
127:             raise "Bad output stream (String, Array, IO)"
128:         end
129:         case sin
130:         when String
131:             sout << @@aes.encrypt_buffer(sin)
132:         when IO
133:             while buf = sin.read(@@bs)
134:               if buf.length == @@bs
135:                 sout << @@aes.encrypt_blocks(buf)
136:               else
137:                 sout << @@aes.encrypt_buffer(buf)
138:               end
139:             end
140:         else
141:             raise "Bad input stream (String, IO)"
142:         end
143:     end

[Source]

    # File lib/ruby-aes.rb, line 90
90:     def Aes.init(keyl, mode, key, iv)
91:         unless @@aes
92:             @@aes = AesAlg.new(Aes.check_kl(keyl), Aes.check_mode(mode),
93:                                Aes.check_key(key, keyl), iv ? Aes.check_iv(iv) : nil)
94:         else
95:             @@aes.init(Aes.check_kl(keyl), Aes.check_mode(mode),
96:                        Aes.check_key(key, keyl), iv ? Aes.check_iv(iv) : nil)
97:         end
98:     end

[Validate]