1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2025-03-01 15:09:14 +01:00
phorge-phorge/src/applications/passphrase
epriestley 2adc36ba0b Correctly identify more SSH private key problems as "formatting" or "passphrase" related
Summary:
Ref T13454. Fixes T13006. When a user provide us with an SSH private key and (possibly) a passphrase:

  # Try to verify that they're correct by extracting the public key.
  # If that fails, try to figure out why it didn't work.

Our success in step (2) will vary depending on what the problem is, and we may end up falling through to a very generic error, but the outcome should generally be better than the old approach.

Previously, we had a very unsophisticated test for the text "ENCRYPTED" in the key body and questionable handling of the results: for example, providing a passphrase when a key did not require one did not raise an error.

Test Plan:
Created and edited credentials with:

  - Valid, passphrase-free keys.
  - Valid, passphrased keys with the right passphrase.
  - Valid, passphrase-free keys with a passphrase ("surplus passphrase" error).
  - Valid, passphrased keys with no passphrase ("missing passphrase" error).
  - Valid, passphrased keys with an invalid passphrase ("invalid passphrase" error).
  - Invalid keys ("format" error).

The precision of these errors will vary depending on how helpful "ssh-keygen" is.

Maniphest Tasks: T13454, T13006

Differential Revision: https://secure.phabricator.com/D20905
2019-11-13 10:22:00 -08:00
..
application Move FontIcon calls to Icon 2016-01-28 08:48:45 -08:00
capability Save authorPHID on Passphrase Credentials to support "Credential Author" object policy 2015-06-22 11:28:33 -07:00
conduit Make Passphrase "token" credentials accessible via the API 2016-11-15 09:12:35 -08:00
controller Correctly identify more SSH private key problems as "formatting" or "passphrase" related 2019-11-13 10:22:00 -08:00
credentialtype Correctly identify more SSH private key problems as "formatting" or "passphrase" related 2019-11-13 10:22:00 -08:00
editor Update Passphrase for modular transactions 2017-05-04 11:31:37 -07:00
keys Add a "Token" Credential type 2016-03-22 12:11:58 -07:00
phid Separate handle "status" and "availability" 2015-05-14 11:14:44 -07:00
policyrule Save authorPHID on Passphrase Credentials to support "Credential Author" object policy 2015-06-22 11:28:33 -07:00
query Support Ferret engine for Passphrase credentials 2017-09-07 13:23:13 -07:00
remarkup Rename PhutilRemarkupRule subclasses 2014-08-05 00:55:43 +10:00
search Reduce the amount of boilerplate that implementing FerretInterface requires 2017-09-07 13:23:31 -07:00
storage Make the default behavior of getApplicationTransactionCommentObject() "return null" instead of "throw" 2019-02-07 14:56:38 -08:00
view Fix spelling 2017-10-09 10:48:04 -07:00
xaction Replace "Show Secret" in Passphrase with one-shot MFA 2019-01-28 09:44:08 -08:00