An unofficial, mostly Bitwarden-compatible API server written in Ruby (Sinatra and ActiveRecord)
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Update import tools to new KDF options

+19 -10
+4 -2
tools/1password_import.rb
··· 70 70 system("stty echo") 71 71 print "\n" 72 72 73 - if !@u.has_password_hash?(Bitwarden.hashPassword(password, username)) 73 + unless @u.has_password_hash?(Bitwarden.hashPassword(password, @u.email, 74 + Bitwarden::KDF::TYPES[@u.kdf_type], @u.kdf_iterations)) 74 75 raise "master password does not match stored hash" 75 76 end 76 77 77 - @master_key = Bitwarden.makeKey(password, @u.email, @u.kdf_iterations) 78 + @master_key = Bitwarden.makeKey(password, @u.email, 79 + Bitwarden::KDF::TYPES[@u.kdf_type], @u.kdf_iterations) 78 80 79 81 def encrypt(str) 80 82 @u.encrypt_data_with_master_password_key(str, @master_key)
+5 -3
tools/bitwarden_import.rb
··· 84 84 system('stty echo') 85 85 puts 86 86 87 - unless @u.has_password_hash?(Bitwarden.hashPassword(password, username)) 88 - raise 'master password does not match stored hash' 87 + unless @u.has_password_hash?(Bitwarden.hashPassword(password, @u.email, 88 + Bitwarden::KDF::TYPES[@u.kdf_type], @u.kdf_iterations)) 89 + raise "master password does not match stored hash" 89 90 end 90 91 91 - @master_key = Bitwarden.makeKey(password, @u.email, @u.kdf_iterations) 92 + @master_key = Bitwarden.makeKey(password, @u.email, 93 + Bitwarden::KDF::TYPES[@u.kdf_type], @u.kdf_iterations) 92 94 93 95 @u.folders.each do |folder| 94 96 folder_name = @u.decrypt_data_with_master_password_key(folder.name, @master_key)
+2 -1
tools/change_master_password.rb
··· 54 54 system("stty echo") 55 55 print "\n" 56 56 57 - if !@u.has_password_hash?(Bitwarden.hashPassword(password, username)) 57 + unless @u.has_password_hash?(Bitwarden.hashPassword(password, @u.email, 58 + Bitwarden::KDF::TYPES[@u.kdf_type], @u.kdf_iterations)) 58 59 raise "master password does not match stored hash" 59 60 end 60 61
+4 -2
tools/keepass_import.rb
··· 77 77 system("stty echo") 78 78 print "\n" 79 79 80 - if !@u.has_password_hash?(Bitwarden.hashPassword(password, username)) 80 + unless @u.has_password_hash?(Bitwarden.hashPassword(password, @u.email, 81 + Bitwarden::KDF::TYPES[@u.kdf_type], @u.kdf_iterations)) 81 82 raise "master password does not match stored hash" 82 83 end 83 84 84 - @master_key = Bitwarden.makeKey(password, @u.email, @u.kdf_iterations) 85 + @master_key = Bitwarden.makeKey(password, @u.email, 86 + Bitwarden::KDF::TYPES[@u.kdf_type], @u.kdf_iterations) 85 87 86 88 @u.folders.each do |folder| 87 89 folder_name = @u.decrypt_data_with_master_password_key(folder.name, @master_key)
+4 -2
tools/lastpass_import.rb
··· 72 72 system("stty echo") 73 73 print "\n" 74 74 75 - if !@u.has_password_hash?(Bitwarden.hashPassword(password, username)) 75 + unless @u.has_password_hash?(Bitwarden.hashPassword(password, @u.email, 76 + Bitwarden::KDF::TYPES[@u.kdf_type], @u.kdf_iterations)) 76 77 raise "master password does not match stored hash" 77 78 end 78 79 79 - @master_key = Bitwarden.makeKey(password, @u.email, @u.kdf_iterations) 80 + @master_key = Bitwarden.makeKey(password, @u.email, 81 + Bitwarden::KDF::TYPES[@u.kdf_type], @u.kdf_iterations) 80 82 81 83 @u.folders.each do |folder| 82 84 folder_name = @u.decrypt_data_with_master_password_key(folder.name, @master_key)