diff --git a/bitwarden-mobile.sln b/bitwarden-mobile.sln index 3cf951367..417cf1c94 100644 --- a/bitwarden-mobile.sln +++ b/bitwarden-mobile.sln @@ -34,6 +34,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution SECURITY.md = SECURITY.md EndProjectSection EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "iOS.Autofill", "src\iOS.Autofill\iOS.Autofill.csproj", "{C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Ad-Hoc|Any CPU = Ad-Hoc|Any CPU @@ -456,6 +458,50 @@ Global {D5D91152-CB01-4F24-A503-304D3A94408B}.Release|x64.Build.0 = Release|Any CPU {D5D91152-CB01-4F24-A503-304D3A94408B}.Release|x86.ActiveCfg = Release|Any CPU {D5D91152-CB01-4F24-A503-304D3A94408B}.Release|x86.Build.0 = Release|Any CPU + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.Ad-Hoc|Any CPU.ActiveCfg = Ad-Hoc|iPhone + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.Ad-Hoc|ARM.ActiveCfg = Ad-Hoc|iPhone + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.Ad-Hoc|iPhone.ActiveCfg = Ad-Hoc|iPhone + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.Ad-Hoc|iPhone.Build.0 = Ad-Hoc|iPhone + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Ad-Hoc|iPhoneSimulator + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.Ad-Hoc|iPhoneSimulator.Build.0 = Ad-Hoc|iPhoneSimulator + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.Ad-Hoc|x64.ActiveCfg = Ad-Hoc|iPhone + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.Ad-Hoc|x86.ActiveCfg = Ad-Hoc|iPhone + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.AppStore|Any CPU.ActiveCfg = AppStore|iPhone + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.AppStore|ARM.ActiveCfg = AppStore|iPhone + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.AppStore|iPhone.ActiveCfg = AppStore|iPhone + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.AppStore|iPhone.Build.0 = AppStore|iPhone + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.AppStore|iPhoneSimulator.ActiveCfg = AppStore|iPhoneSimulator + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.AppStore|iPhoneSimulator.Build.0 = AppStore|iPhoneSimulator + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.AppStore|x64.ActiveCfg = AppStore|iPhone + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.AppStore|x86.ActiveCfg = AppStore|iPhone + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.Debug|Any CPU.ActiveCfg = Debug|iPhone + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.Debug|ARM.ActiveCfg = Debug|iPhone + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.Debug|iPhone.ActiveCfg = Debug|iPhone + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.Debug|iPhone.Build.0 = Debug|iPhone + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.Debug|x64.ActiveCfg = Debug|iPhone + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.Debug|x86.ActiveCfg = Debug|iPhone + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.FDroid|Any CPU.ActiveCfg = AppStore|iPhone + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.FDroid|Any CPU.Build.0 = AppStore|iPhone + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.FDroid|ARM.ActiveCfg = AppStore|iPhone + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.FDroid|ARM.Build.0 = AppStore|iPhone + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.FDroid|iPhone.ActiveCfg = AppStore|iPhone + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.FDroid|iPhone.Build.0 = AppStore|iPhone + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.FDroid|iPhoneSimulator.ActiveCfg = AppStore|iPhoneSimulator + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.FDroid|iPhoneSimulator.Build.0 = AppStore|iPhoneSimulator + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.FDroid|x64.ActiveCfg = AppStore|iPhone + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.FDroid|x64.Build.0 = AppStore|iPhone + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.FDroid|x86.ActiveCfg = AppStore|iPhone + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.FDroid|x86.Build.0 = AppStore|iPhone + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.Release|Any CPU.ActiveCfg = Release|iPhone + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.Release|ARM.ActiveCfg = Release|iPhone + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.Release|iPhone.ActiveCfg = Release|iPhone + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.Release|iPhone.Build.0 = Release|iPhone + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.Release|x64.ActiveCfg = Release|iPhone + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F}.Release|x86.ActiveCfg = Release|iPhone EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -469,6 +515,7 @@ Global {2E399654-26A2-46F6-B9CA-1B496A3F370A} = {92470CBD-9047-4C3C-8EA3-D972D6622D84} {8A279EE4-4537-4656-9C93-44945E594556} = {EC730FD9-F623-4B6C-B503-95CDCFBCF277} {D5D91152-CB01-4F24-A503-304D3A94408B} = {2E399654-26A2-46F6-B9CA-1B496A3F370A} + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F} = {EC730FD9-F623-4B6C-B503-95CDCFBCF277} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {318CB2DF-0118-43A3-AC83-56BADCF71CCD} diff --git a/src/iOS.Autofill/AppDelegate.cs b/src/iOS.Autofill/AppDelegate.cs new file mode 100644 index 000000000..b5c1b98df --- /dev/null +++ b/src/iOS.Autofill/AppDelegate.cs @@ -0,0 +1,46 @@ +using System; +using System.Linq; +using System.Collections.Generic; + +using Foundation; +using UIKit; + +namespace Bit.iOS.Autofill +{ + // The UIApplicationDelegate for the application. This class is responsible for launching the + // User Interface of the application, as well as listening (and optionally responding) to + // application events from iOS. + [Register("AppDelegate")] + public partial class AppDelegate : UIApplicationDelegate + { + // class-level declarations + + public override UIWindow Window + { + get; set; + } + + // This method is invoked when the application is about to move from active to inactive state. + // OpenGL applications should use this method to pause. + public override void OnResignActivation(UIApplication application) + { + } + + // This method should be used to release shared resources and it should store the application state. + // If your application supports background exection this method is called instead of WillTerminate + // when the user quits. + public override void DidEnterBackground(UIApplication application) + { + } + + // This method is called as part of the transiton from background to active state. + public override void WillEnterForeground(UIApplication application) + { + } + + // This method is called when the application is about to terminate. Save data, if needed. + public override void WillTerminate(UIApplication application) + { + } + } +} diff --git a/src/iOS.Autofill/Entitlements.plist b/src/iOS.Autofill/Entitlements.plist new file mode 100644 index 000000000..b20900dcc --- /dev/null +++ b/src/iOS.Autofill/Entitlements.plist @@ -0,0 +1,14 @@ + + + + + com.apple.security.application-groups + + group.com.8bit.bitwarden + + keychain-access-groups + + $(AppIdentifierPrefix)com.8bit.bitwarden + + + diff --git a/src/iOS.Autofill/Info.plist b/src/iOS.Autofill/Info.plist new file mode 100644 index 000000000..f45126ecb --- /dev/null +++ b/src/iOS.Autofill/Info.plist @@ -0,0 +1,85 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleIdentifier + com.8bit.bitwarden.autofill + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + XPC! + CFBundleShortVersionString + 1.19.0 + CFBundleSignature + ???? + CFBundleVersion + 37 + NSExtension + + NSExtensionAttributes + + + NSExtensionMainStoryboard + MainInterface + NSExtensionPointIdentifier + com.apple.ui-services + + UIDeviceFamily + + 1 + 2 + + MinimumOSVersion + 9.0 + UISupportedInterfaceOrientations + + ITSAppUsesNonExemptEncryption + + ITSEncryptionExportComplianceCode + ecf076d3-4824-4d7b-b716-2a9a47d7d296 + CFBundleName + Bitwarden Autofill + CFBundleDisplayName + Bitwarden + UIRequiredDeviceCapabilities + + arm64 + + + CFBundleLocalizations + + en + es + zh-Hans + zh-Hant + pt-PT + pt-BR + sv + sk + it + fi + fr + ro + id + hr + hu + nl + tr + uk + de + dk + cz + nb + ja + et + vi + pl + ko + fa + + NSFaceIDUsageDescription + Use Face ID to unlock your vault. + + diff --git a/src/iOS.Autofill/Main.cs b/src/iOS.Autofill/Main.cs new file mode 100644 index 000000000..c7c778069 --- /dev/null +++ b/src/iOS.Autofill/Main.cs @@ -0,0 +1,15 @@ +using UIKit; + +namespace Bit.iOS.Autofill +{ + public class Application + { + // This is the main entry point of the application. + static void Main(string[] args) + { + // if you want to use a different Application Delegate class from "AppDelegate" + // you can specify it here. + UIApplication.Main(args, null, "AppDelegate"); + } + } +} \ No newline at end of file diff --git a/src/iOS.Autofill/MainInterface.storyboard b/src/iOS.Autofill/MainInterface.storyboard new file mode 100644 index 000000000..f107fe8ef --- /dev/null +++ b/src/iOS.Autofill/MainInterface.storyboard @@ -0,0 +1,615 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/iOS.Autofill/Models/Context.cs b/src/iOS.Autofill/Models/Context.cs new file mode 100644 index 000000000..cf0722d31 --- /dev/null +++ b/src/iOS.Autofill/Models/Context.cs @@ -0,0 +1,9 @@ +using Foundation; + +namespace Bit.iOS.Autofill.Models +{ + public class Context + { + public NSExtensionContext ExtContext { get; set; } + } +} diff --git a/src/iOS.Autofill/Properties/AssemblyInfo.cs b/src/iOS.Autofill/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..a4f6227ac --- /dev/null +++ b/src/iOS.Autofill/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("BitwardeniOSAutofill")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("8bit Solutions LLC")] +[assembly: AssemblyProduct("Bitwarden")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("32f5a2d6-f54d-4da1-ae26-0a980d48f421")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/src/iOS.Autofill/Resources/Icon.png b/src/iOS.Autofill/Resources/Icon.png new file mode 100644 index 000000000..e4b594ad5 Binary files /dev/null and b/src/iOS.Autofill/Resources/Icon.png differ diff --git a/src/iOS.Autofill/Resources/Icon@2x.png b/src/iOS.Autofill/Resources/Icon@2x.png new file mode 100644 index 000000000..37369f4d3 Binary files /dev/null and b/src/iOS.Autofill/Resources/Icon@2x.png differ diff --git a/src/iOS.Autofill/Resources/Icon@3x.png b/src/iOS.Autofill/Resources/Icon@3x.png new file mode 100644 index 000000000..0bfafae46 Binary files /dev/null and b/src/iOS.Autofill/Resources/Icon@3x.png differ diff --git a/src/iOS.Autofill/Resources/fingerprint.png b/src/iOS.Autofill/Resources/fingerprint.png new file mode 100644 index 000000000..754e39825 Binary files /dev/null and b/src/iOS.Autofill/Resources/fingerprint.png differ diff --git a/src/iOS.Autofill/Resources/fingerprint@2x.png b/src/iOS.Autofill/Resources/fingerprint@2x.png new file mode 100644 index 000000000..79547a076 Binary files /dev/null and b/src/iOS.Autofill/Resources/fingerprint@2x.png differ diff --git a/src/iOS.Autofill/Resources/fingerprint@3x.png b/src/iOS.Autofill/Resources/fingerprint@3x.png new file mode 100644 index 000000000..236c8da73 Binary files /dev/null and b/src/iOS.Autofill/Resources/fingerprint@3x.png differ diff --git a/src/iOS.Autofill/Resources/logo.png b/src/iOS.Autofill/Resources/logo.png new file mode 100644 index 000000000..33ced5b12 Binary files /dev/null and b/src/iOS.Autofill/Resources/logo.png differ diff --git a/src/iOS.Autofill/Resources/logo@2x.png b/src/iOS.Autofill/Resources/logo@2x.png new file mode 100644 index 000000000..2a0ba60b9 Binary files /dev/null and b/src/iOS.Autofill/Resources/logo@2x.png differ diff --git a/src/iOS.Autofill/Resources/logo@3x.png b/src/iOS.Autofill/Resources/logo@3x.png new file mode 100644 index 000000000..904731676 Binary files /dev/null and b/src/iOS.Autofill/Resources/logo@3x.png differ diff --git a/src/iOS.Autofill/Resources/smile.png b/src/iOS.Autofill/Resources/smile.png new file mode 100644 index 000000000..25f2f45b1 Binary files /dev/null and b/src/iOS.Autofill/Resources/smile.png differ diff --git a/src/iOS.Autofill/Resources/smile@2x.png b/src/iOS.Autofill/Resources/smile@2x.png new file mode 100644 index 000000000..71dd21e35 Binary files /dev/null and b/src/iOS.Autofill/Resources/smile@2x.png differ diff --git a/src/iOS.Autofill/Resources/smile@3x.png b/src/iOS.Autofill/Resources/smile@3x.png new file mode 100644 index 000000000..6e7189e69 Binary files /dev/null and b/src/iOS.Autofill/Resources/smile@3x.png differ diff --git a/src/iOS.Autofill/iOS.Autofill.csproj b/src/iOS.Autofill/iOS.Autofill.csproj new file mode 100644 index 000000000..900a73b69 --- /dev/null +++ b/src/iOS.Autofill/iOS.Autofill.csproj @@ -0,0 +1,275 @@ + + + + Debug + iPhoneSimulator + {C2B7ADCA-5964-43C5-A7C8-D3B6F8023F4F} + {EE2C853D-36AF-4FDB-B1AD-8E90477E2198};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Exe + Bit.iOS.Autofill + BitwardeniOSAutofill + Resources + Properties + + + + + true + full + false + bin\iPhoneSimulator\Debug + DEBUG + prompt + 4 + false + i386, x86_64 + None + True + Entitlements.plist + 9.3 + False + False + False + False + False + False + True + False + False + Default + NSUrlSessionHandler + --http-message-handler=NSUrlSessionHandler + + + none + true + bin\iPhoneSimulator\Release + prompt + 4 + Full + i386, x86_64 + false + Entitlements.plist + 9.3 + False + False + False + False + False + False + False + False + True + Default + NSUrlSessionHandler + False + --http-message-handler=NSUrlSessionHandler --linkskip=BitwardeniOS --linkskip=BitwardeniOSCore --linkskip=BitwardeniOSAutofill --linkskip=BitwardenApp --linkskip=SQLite-net + + + true + full + false + bin\iPhone\Debug + DEBUG + prompt + 4 + false + ARM64 + Entitlements.plist + iPhone Developer + True + + + + + None + False + False + False + False + False + False + False + True + False + False + --http-message-handler=NSUrlSessionHandler + + + Default + NSUrlSessionHandler + + + none + true + bin\iPhone\Release + prompt + 4 + Entitlements.plist + ARM64 + false + iPhone Developer + Full + False + False + False + False + False + False + False + False + True + False + NSUrlSessionHandler + --http-message-handler=NSUrlSessionHandler --linkskip=BitwardeniOS --linkskip=BitwardeniOSCore --linkskip=BitwardeniOSAutofill --linkskip=BitwardenApp --linkskip=SQLite-net + + + none + True + bin\iPhone\Ad-Hoc + prompt + 4 + False + ARM64 + Entitlements.plist + True + Automatic:AdHoc + iPhone Distribution + Full + False + False + False + False + False + False + False + False + True + False + NSUrlSessionHandler + --http-message-handler=NSUrlSessionHandler --linkskip=BitwardeniOS --linkskip=BitwardeniOSCore --linkskip=BitwardeniOSAutofill --linkskip=BitwardenApp --linkskip=SQLite-net + + + none + True + bin\iPhone\AppStore + prompt + 4 + False + ARM64 + Entitlements.plist + Automatic:AppStore + iPhone Distribution + Full + False + False + False + False + False + False + False + False + True + False + --http-message-handler=NSUrlSessionHandler --linkskip=BitwardeniOS --linkskip=BitwardeniOSCore --linkskip=BitwardeniOSAutofill --linkskip=BitwardenApp --linkskip=SQLite-net + 10.2 + Default + NSUrlSessionHandler + + + 9.3 + Full + False + False + False + i386, x86_64 + False + False + False + False + False + True + Default + NSUrlSessionHandler + False + bin\iPhoneSimulator\Ad-Hoc + --http-message-handler=NSUrlSessionHandler --linkskip=BitwardeniOS --linkskip=BitwardeniOSCore --linkskip=BitwardeniOSAutofill --linkskip=BitwardenApp --linkskip=SQLite-net + Entitlements.plist + + + 9.3 + Full + False + False + False + i386, x86_64 + False + False + False + False + False + True + Default + NSUrlSessionHandler + False + bin\iPhoneSimulator\AppStore + --http-message-handler=NSUrlSessionHandler --linkskip=BitwardeniOS --linkskip=BitwardeniOSCore --linkskip=BitwardeniOSAutofill --linkskip=BitwardenApp --linkskip=SQLite-net + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {8a279ee4-4537-4656-9c93-44945e594556} + App + + + {B2538ADA-B605-4D6F-ACD2-62A409680F84} + iOS.Core + False + False + + + + + 4.3.0 + + + 3.17.0.1 + + + 2.0.5782 + + + + \ No newline at end of file