mirror of
https://github.com/nishiki/manage-password.git
synced 2025-03-19 12:59:30 +00:00
add option to enable pinmode with gpg >= 2.1
This commit is contained in:
parent
d1adfd24c1
commit
7ce4ba721b
4 changed files with 14 additions and 5 deletions
|
@ -60,6 +60,10 @@ OptionParser.new do |opts|
|
|||
values[:lang] = lang
|
||||
end
|
||||
|
||||
opts.on('-P', '--pinmode', I18n.t('option.pinmode')) do
|
||||
values[:pinmode] = true
|
||||
end
|
||||
|
||||
opts.on('-w', '--wallet-dir PATH', I18n.t('option.wallet_dir')) do |wallet_dir|
|
||||
values[:wallet_dir] = wallet_dir
|
||||
end
|
||||
|
@ -94,7 +98,7 @@ OptionParser.new do |opts|
|
|||
end.parse!
|
||||
|
||||
config = MPW::Config.new(options[:config])
|
||||
cli = MPW::Cli.new(config, nil)
|
||||
cli = MPW::Cli.new(config)
|
||||
|
||||
if options.key?(:init)
|
||||
cli.setup(values)
|
||||
|
|
|
@ -101,7 +101,7 @@ module MPW
|
|||
def decrypt
|
||||
unless defined?(@mpw)
|
||||
@password = ask(I18n.t('display.gpg_password')) { |q| q.echo = false }
|
||||
@mpw = MPW.new(@config.gpg_key, @wallet_file, @password, @config.gpg_exe)
|
||||
@mpw = MPW.new(@config.gpg_key, @wallet_file, @password, @config.gpg_exe, @config.pinmode)
|
||||
end
|
||||
|
||||
@mpw.read_data
|
||||
|
|
|
@ -32,6 +32,7 @@ module MPW
|
|||
attr_accessor :wallet_dir
|
||||
attr_accessor :gpg_exe
|
||||
attr_accessor :password
|
||||
attr_accessor :pinmode
|
||||
|
||||
# Constructor
|
||||
# @args: config_file -> the specify config file
|
||||
|
@ -59,6 +60,7 @@ module MPW
|
|||
wallet_dir = options[:wallet_dir] || @wallet_dir
|
||||
default_wallet = options[:default_wallet] || @default_wallet
|
||||
gpg_exe = options[:gpg_exe] || @gpg_exe
|
||||
pinmode = options[:pinmode] || @pinmode
|
||||
password = { numeric: true,
|
||||
alpha: true,
|
||||
special: false,
|
||||
|
@ -82,7 +84,8 @@ module MPW
|
|||
'wallet_dir' => wallet_dir,
|
||||
'default_wallet' => default_wallet,
|
||||
'gpg_exe' => gpg_exe,
|
||||
'password' => password }
|
||||
'password' => password,
|
||||
'pinmode' => pinmode }
|
||||
|
||||
FileUtils.mkdir_p(@config_dir, mode: 0700)
|
||||
FileUtils.mkdir_p(wallet_dir, mode: 0700)
|
||||
|
@ -132,6 +135,7 @@ module MPW
|
|||
@default_wallet = config['default_wallet']
|
||||
@gpg_exe = config['gpg_exe']
|
||||
@password = config['password'] || {}
|
||||
@pinmode = config['pinmode']
|
||||
|
||||
raise if @gpg_key.empty? || @wallet_dir.empty?
|
||||
|
||||
|
|
|
@ -26,11 +26,12 @@ require 'mpw/item'
|
|||
module MPW
|
||||
class MPW
|
||||
# Constructor
|
||||
def initialize(key, wallet_file, gpg_pass = nil, gpg_exe = nil)
|
||||
def initialize(key, wallet_file, gpg_pass = nil, gpg_exe = nil, pinmode = false)
|
||||
@key = key
|
||||
@gpg_pass = gpg_pass
|
||||
@gpg_exe = gpg_exe
|
||||
@wallet_file = wallet_file
|
||||
@pinmode = pinmode
|
||||
|
||||
GPGME::Engine.set_info(GPGME::PROTOCOL_OpenPGP, @gpg_exe, "#{Dir.home}/.gnupg") unless @gpg_exe.to_s.empty?
|
||||
end
|
||||
|
@ -338,7 +339,7 @@ module MPW
|
|||
return nil if data.to_s.empty?
|
||||
|
||||
password =
|
||||
if /^1\.[0-9.]+$/ =~ GPGME::Engine.info.first.version
|
||||
if /^1\.[0-9.]+$/ =~ GPGME::Engine.info.first.version || @pinmode
|
||||
{ password: @gpg_pass }
|
||||
else
|
||||
{ password: @gpg_pass,
|
||||
|
|
Loading…
Add table
Reference in a new issue