Method: Origami::Encryption::Standard::Dictionary#retrieve_user_password
- Defined in:
- lib/origami/encryption.rb
#retrieve_user_password(owner_password) ⇒ Object
Retrieve user password from owner password. Cannot be used with revision 5.
950 951 952 953 954 955 956 957 958 959 960 961 962 |
# File 'lib/origami/encryption.rb', line 950 def retrieve_user_password(owner_password) key = compute_owner_key(owner_password) if self.R == 2 RC4.decrypt(key, self.O) elsif self.R == 3 or self.R == 4 user_password = RC4.decrypt(xor(key, 19), self.O) 19.times { |i| user_password = RC4.decrypt(xor(key, 18-i), user_password) } user_password end end |