attempt to integrate pulickey auth
This commit is contained in:
@@ -55,8 +55,8 @@
|
|||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<LibraryProjectZip Include="..\java\JavaFileStorage\app\build\outputs\aar\JavaFileStorage-release.aar">
|
<LibraryProjectZip Include="..\java\JavaFileStorage\app\build\outputs\aar\JavaFileStorage-debug.aar">
|
||||||
<Link>Jars\JavaFileStorage-release.aar</Link>
|
<Link>Jars\JavaFileStorage-debug.aar</Link>
|
||||||
</LibraryProjectZip>
|
</LibraryProjectZip>
|
||||||
<None Include="Jars\AboutJars.txt" />
|
<None Include="Jars\AboutJars.txt" />
|
||||||
<None Include="Additions\AboutAdditions.txt" />
|
<None Include="Additions\AboutAdditions.txt" />
|
||||||
|
@@ -5,8 +5,8 @@ namespace keepass2android.Io
|
|||||||
{
|
{
|
||||||
public class SftpFileStorage: JavaFileStorage
|
public class SftpFileStorage: JavaFileStorage
|
||||||
{
|
{
|
||||||
public SftpFileStorage(IKp2aApp app) :
|
public SftpFileStorage(Context ctx, IKp2aApp app) :
|
||||||
base(new Keepass2android.Javafilestorage.SftpStorage(), app)
|
base(new Keepass2android.Javafilestorage.SftpStorage(ctx.ApplicationContext), app)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -15,7 +15,7 @@
|
|||||||
<application>
|
<application>
|
||||||
<activity
|
<activity
|
||||||
android:name=".NotifSlave"
|
android:name=".NotifSlave"
|
||||||
android:label="@string/title_activity_notif_slave"></activity>
|
android:label="Keepass2Android"></activity>
|
||||||
</application>
|
</application>
|
||||||
|
|
||||||
</manifest>
|
</manifest>
|
@@ -1,5 +1,3 @@
|
|||||||
<resources>
|
<resources>
|
||||||
|
|
||||||
|
|
||||||
<string name="title_activity_notif_slave">Keepass2Android</string>
|
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -42,15 +42,49 @@ namespace keepass2android
|
|||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
||||||
View dlgContents = activity.LayoutInflater.Inflate(Resource.Layout.sftpcredentials, null);
|
View dlgContents = activity.LayoutInflater.Inflate(Resource.Layout.sftpcredentials, null);
|
||||||
|
|
||||||
if (!defaultPath.EndsWith(_schemeSeparator))
|
var spinner = dlgContents.FindViewById<Spinner>(Resource.Id.sftp_auth_mode_spinner);
|
||||||
|
dlgContents.FindViewById<Button>(Resource.Id.send_public_key_button).Click += (sender, args) =>
|
||||||
{
|
{
|
||||||
var fileStorage = new Keepass2android.Javafilestorage.SftpStorage();
|
var fileStorage = new Keepass2android.Javafilestorage.SftpStorage(activity.ApplicationContext);
|
||||||
|
string pub_filename = fileStorage.CreateKeyPair();
|
||||||
|
|
||||||
|
Intent sendIntent = new Intent();
|
||||||
|
sendIntent.SetAction(Intent.ActionSend);
|
||||||
|
sendIntent.PutExtra(Intent.ExtraText, System.IO.File.ReadAllText(pub_filename));
|
||||||
|
|
||||||
|
sendIntent.PutExtra(Intent.ExtraSubject, "Keepass2Android sftp public key");
|
||||||
|
sendIntent.SetType("text/plain");
|
||||||
|
activity.StartActivity(Intent.CreateChooser(sendIntent, "Send public key to..."));
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
spinner.ItemSelected += (sender, args) =>
|
||||||
|
{
|
||||||
|
if (spinner.SelectedItemPosition == 0)
|
||||||
|
{
|
||||||
|
dlgContents.FindViewById<EditText>(Resource.Id.sftp_password).Visibility = ViewStates.Visible;
|
||||||
|
dlgContents.FindViewById<Button>(Resource.Id.send_public_key_button).Visibility = ViewStates.Gone;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dlgContents.FindViewById<EditText>(Resource.Id.sftp_password).Visibility = ViewStates.Gone;
|
||||||
|
dlgContents.FindViewById<Button>(Resource.Id.send_public_key_button).Visibility = ViewStates.Visible;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
if (!defaultPath.EndsWith(_schemeSeparator))
|
||||||
|
{
|
||||||
|
var fileStorage = new Keepass2android.Javafilestorage.SftpStorage(activity.ApplicationContext);
|
||||||
SftpStorage.ConnectionInfo ci = fileStorage.SplitStringToConnectionInfo(defaultPath);
|
SftpStorage.ConnectionInfo ci = fileStorage.SplitStringToConnectionInfo(defaultPath);
|
||||||
dlgContents.FindViewById<EditText>(Resource.Id.sftp_host).Text = ci.Host;
|
dlgContents.FindViewById<EditText>(Resource.Id.sftp_host).Text = ci.Host;
|
||||||
dlgContents.FindViewById<EditText>(Resource.Id.sftp_port).Text = ci.Port.ToString();
|
dlgContents.FindViewById<EditText>(Resource.Id.sftp_port).Text = ci.Port.ToString();
|
||||||
dlgContents.FindViewById<EditText>(Resource.Id.sftp_user).Text = ci.Username;
|
dlgContents.FindViewById<EditText>(Resource.Id.sftp_user).Text = ci.Username;
|
||||||
dlgContents.FindViewById<EditText>(Resource.Id.sftp_password).Text = ci.Password;
|
dlgContents.FindViewById<EditText>(Resource.Id.sftp_password).Text = ci.Password;
|
||||||
dlgContents.FindViewById<EditText>(Resource.Id.sftp_initial_dir).Text = ci.LocalPath;
|
dlgContents.FindViewById<EditText>(Resource.Id.sftp_initial_dir).Text = ci.LocalPath;
|
||||||
|
if (string.IsNullOrEmpty(ci.Password))
|
||||||
|
{
|
||||||
|
spinner.SetSelection(1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
builder.SetView(dlgContents);
|
builder.SetView(dlgContents);
|
||||||
|
@@ -40,6 +40,26 @@
|
|||||||
android:singleLine="true"
|
android:singleLine="true"
|
||||||
android:hint="@string/hint_username" />
|
android:hint="@string/hint_username" />
|
||||||
|
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/auth_mode_title"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/sftp_auth_mode" />
|
||||||
|
|
||||||
|
<Spinner
|
||||||
|
android:id="@+id/sftp_auth_mode_spinner"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginLeft="-4dp"
|
||||||
|
android:entries="@array/sftp_auth_modes" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
<EditText
|
<EditText
|
||||||
android:id="@+id/sftp_password"
|
android:id="@+id/sftp_password"
|
||||||
android:layout_width="fill_parent"
|
android:layout_width="fill_parent"
|
||||||
@@ -48,6 +68,11 @@
|
|||||||
android:singleLine="true"
|
android:singleLine="true"
|
||||||
android:hint="@string/hint_pass"
|
android:hint="@string/hint_pass"
|
||||||
android:importantForAccessibility="no"/>
|
android:importantForAccessibility="no"/>
|
||||||
|
<Button android:id="@+id/send_public_key_button"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/send_public_key" />
|
||||||
|
|
||||||
|
|
||||||
<TextView android:id="@+id/initial_dir"
|
<TextView android:id="@+id/initial_dir"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
|
@@ -510,6 +510,8 @@
|
|||||||
<string name="hint_sftp_port">port</string>
|
<string name="hint_sftp_port">port</string>
|
||||||
<string name="initial_directory">Initial directory (optional):</string>
|
<string name="initial_directory">Initial directory (optional):</string>
|
||||||
<string name="enter_sftp_login_title">Enter SFTP login data:</string>
|
<string name="enter_sftp_login_title">Enter SFTP login data:</string>
|
||||||
|
<string name="sftp_auth_mode">Authentication mode</string>
|
||||||
|
<string name="send_public_key">Send public key...</string>
|
||||||
|
|
||||||
<string name="enter_ftp_login_title">Enter FTP login data:</string>
|
<string name="enter_ftp_login_title">Enter FTP login data:</string>
|
||||||
|
|
||||||
@@ -1108,6 +1110,10 @@ Initial public release
|
|||||||
<item>Password + Challenge-Response secret (recovery mode)</item>
|
<item>Password + Challenge-Response secret (recovery mode)</item>
|
||||||
<item>Password + Challenge-Response for Keepass XC</item>
|
<item>Password + Challenge-Response for Keepass XC</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
<string-array name="sftp_auth_modes">
|
||||||
|
<item>Password</item>
|
||||||
|
<item>Private/Public key</item>
|
||||||
|
</string-array>
|
||||||
<string-array name="AcceptAllServerCertificates_options">
|
<string-array name="AcceptAllServerCertificates_options">
|
||||||
<item>Ignore certificate validation failures</item>
|
<item>Ignore certificate validation failures</item>
|
||||||
<item>Warn when validation fails</item>
|
<item>Warn when validation fails</item>
|
||||||
|
@@ -586,7 +586,7 @@ namespace keepass2android
|
|||||||
new DropboxAppFolderFileStorage(Application.Context, this),
|
new DropboxAppFolderFileStorage(Application.Context, this),
|
||||||
new GoogleDriveFileStorage(Application.Context, this),
|
new GoogleDriveFileStorage(Application.Context, this),
|
||||||
new OneDriveFileStorage(Application.Context, this),
|
new OneDriveFileStorage(Application.Context, this),
|
||||||
new SftpFileStorage(this),
|
new SftpFileStorage(Application.Context, this),
|
||||||
new NetFtpFileStorage(Application.Context, this),
|
new NetFtpFileStorage(Application.Context, this),
|
||||||
new WebDavFileStorage(this),
|
new WebDavFileStorage(this),
|
||||||
new PCloudFileStorage(Application.Context, this),
|
new PCloudFileStorage(Application.Context, this),
|
||||||
|
Reference in New Issue
Block a user