added passphrase support