Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rapid7
GitHub Repository: rapid7/metasploit-framework
Path: blob/master/lib/rex/crypto.rb
19812 views
1
module Rex::Crypto
2
# Returns an encrypted string using AES256-CBC.
3
#
4
# @deprecated Access via Rex::Crypto::Aes256
5
# @param iv [String] Initialization vector.
6
# @param key [String] Secret key.
7
# @return [String] The encrypted string.
8
def self.encrypt_aes256(iv, key, value)
9
Aes256.encrypt_aes256(iv, key, value)
10
end
11
12
# Returns a decrypted string using AES256-CBC.
13
#
14
# @deprecated Access via Rex::Crypto::Aes256
15
# @param iv [String] Initialization vector.
16
# @param key [String] Secret key.
17
# @return [String] The decrypted string.
18
def self.decrypt_aes256(iv, key, value)
19
Aes256.decrypt_aes256(iv, key, value)
20
end
21
22
# Returns a decrypted or encrypted RC4 string.
23
#
24
# @deprecated Access via Rex::Crypto::Rc4
25
# @param key [String] Secret key.
26
# @param [String]
27
def self.rc4(key, value)
28
Rc4.rc4(key, value)
29
end
30
31
# Returns an integer represented as a byte array. Useful for certain key-related operations.
32
#
33
# @param bytes [String] The bytes to convert
34
# @return [Integer] The converted value.
35
def self.bytes_to_int(bytes)
36
bytes.each_byte.reduce(0) { |acc, byte| (acc << 8) | byte }
37
end
38
39
# Returns a byte array represented as a big-endian integer. Useful for certain key-related operations.
40
#
41
# @param bytes [String] The bytes to convert
42
# @return [Integer] The converted value.
43
def self.int_to_bytes(num)
44
bytes = []
45
46
while num > 0
47
bytes.unshift(num & 0xff)
48
num >>= 8
49
end
50
51
bytes.pack("C*")
52
end
53
end
54
55