Module AesShared
In: lib/ruby-aes/aes_shared.rb

Methods

Public Instance methods

[Source]

    # File lib/ruby-aes/aes_shared.rb, line 23
23:     def decrypt_blocks(buffer)
24:         raise "Bad block length" unless (buffer.length % 16).zero?
25:         pt = ""
26:         block = ""
27:         buffer.each_byte do |char|
28:             block << char
29:             if block.length == 16
30:                 pt << decrypt_block(block)
31:                 block = ""
32:             end
33:         end
34:         pt
35:     end

[Source]

    # File lib/ruby-aes/aes_shared.rb, line 55
55:     def decrypt_buffer(buffer)
56:         pt = ""
57:         block = ""
58:         buffer.each_byte do |char|
59:             block << char
60:             if block.length == 16
61:                 pt << decrypt_block(block)
62:                 block = ""
63:             end
64:         end
65:         if block.length != 1
66:             raise 'Bad Block Padding'
67:         elsif (c = block[-1]).zero?
68:             pt
69:         else
70:             if block * c == pt[-c..-1]
71:                 pt[0..-c-1]
72:             else
73:                 raise "Bad Block Padding"
74:             end
75:         end
76:     end

[Source]

    # File lib/ruby-aes/aes_shared.rb, line 9
 9:     def encrypt_blocks(buffer)
10:         raise "Bad block length" unless (buffer.length % 16).zero?
11:         ct = ""
12:         block = ""
13:         buffer.each_byte do |char|
14:             block << char
15:             if block.length == 16
16:                 ct << encrypt_block(block)
17:                 block = ""
18:             end
19:         end
20:         ct
21:     end

[Source]

    # File lib/ruby-aes/aes_shared.rb, line 37
37:     def encrypt_buffer(buffer)
38:         ct = ""
39:         block = ""
40:         buffer.each_byte do |char|
41:             block << char
42:             if block.length == 16
43:                 ct << encrypt_block(block)
44:                 block = ""
45:             end
46:         end
47:         c = "\000"
48:         if (m = 16 - block.length % 16) != 16
49:             c = m.chr
50:             ct << encrypt_block(block << c * m)
51:         end
52:         ct << c
53:     end

[Validate]