From ee37ddf2b84ab9973112f1919a8341bbde64ddaf Mon Sep 17 00:00:00 2001 From: RuKira Date: Sat, 14 Mar 2026 18:29:23 -0400 Subject: [PATCH] Initial commit --- .gitignore | 93 ++++ README.md | 1 + Relay.sln | 62 +++ RelayClient/.gitignore | 93 ++++ RelayClient/App.xaml | 14 + RelayClient/App.xaml.cs | 16 + RelayClient/AppShell.xaml | 14 + RelayClient/AppShell.xaml.cs | 9 + RelayClient/MainPage.xaml | 36 ++ RelayClient/MainPage.xaml.cs | 23 + RelayClient/MauiProgram.cs | 25 + .../Platforms/Android/AndroidManifest.xml | 6 + RelayClient/Platforms/Android/MainActivity.cs | 12 + .../Platforms/Android/MainApplication.cs | 15 + .../Android/Resources/values/colors.xml | 6 + .../Platforms/MacCatalyst/AppDelegate.cs | 9 + .../Platforms/MacCatalyst/Entitlements.plist | 14 + RelayClient/Platforms/MacCatalyst/Info.plist | 40 ++ RelayClient/Platforms/MacCatalyst/Program.cs | 15 + RelayClient/Platforms/Windows/App.xaml | 8 + RelayClient/Platforms/Windows/App.xaml.cs | 23 + .../Platforms/Windows/Package.appxmanifest | 46 ++ RelayClient/Platforms/Windows/app.manifest | 17 + RelayClient/Platforms/iOS/AppDelegate.cs | 9 + RelayClient/Platforms/iOS/Info.plist | 32 ++ RelayClient/Platforms/iOS/Program.cs | 15 + .../iOS/Resources/PrivacyInfo.xcprivacy | 51 ++ RelayClient/Properties/launchSettings.json | 8 + RelayClient/README.md | 1 + RelayClient/RelayClient.csproj | 46 ++ RelayClient/Resources/AppIcon/appicon.svg | 4 + RelayClient/Resources/AppIcon/appiconfg.svg | 8 + .../Resources/Fonts/OpenSans-Regular.ttf | Bin 0 -> 107280 bytes .../Resources/Fonts/OpenSans-Semibold.ttf | Bin 0 -> 111204 bytes RelayClient/Resources/Images/dotnet_bot.png | Bin 0 -> 92532 bytes RelayClient/Resources/Raw/AboutAssets.txt | 15 + RelayClient/Resources/Splash/splash.svg | 8 + RelayClient/Resources/Styles/Colors.xaml | 44 ++ RelayClient/Resources/Styles/Styles.xaml | 434 ++++++++++++++++++ RelayCore/.gitignore | 93 ++++ RelayCore/E2EeHelper.cs | 82 ++++ RelayCore/PasswordHasher.cs | 109 +++++ RelayCore/Program.cs | 298 ++++++++++++ RelayCore/README.md | 1 + RelayCore/RelayCore.csproj | 16 + RelayCore/RelayCore.sln | 21 + RelayCore/keys/.gitkeep | 0 RelayServer/.gitignore | 93 ++++ RelayServer/Program.cs | 1 + RelayServer/README.md | 1 + RelayServer/RelayServer.csproj | 10 + global.json | 7 + 52 files changed, 2004 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 Relay.sln create mode 100644 RelayClient/.gitignore create mode 100644 RelayClient/App.xaml create mode 100644 RelayClient/App.xaml.cs create mode 100644 RelayClient/AppShell.xaml create mode 100644 RelayClient/AppShell.xaml.cs create mode 100644 RelayClient/MainPage.xaml create mode 100644 RelayClient/MainPage.xaml.cs create mode 100644 RelayClient/MauiProgram.cs create mode 100644 RelayClient/Platforms/Android/AndroidManifest.xml create mode 100644 RelayClient/Platforms/Android/MainActivity.cs create mode 100644 RelayClient/Platforms/Android/MainApplication.cs create mode 100644 RelayClient/Platforms/Android/Resources/values/colors.xml create mode 100644 RelayClient/Platforms/MacCatalyst/AppDelegate.cs create mode 100644 RelayClient/Platforms/MacCatalyst/Entitlements.plist create mode 100644 RelayClient/Platforms/MacCatalyst/Info.plist create mode 100644 RelayClient/Platforms/MacCatalyst/Program.cs create mode 100644 RelayClient/Platforms/Windows/App.xaml create mode 100644 RelayClient/Platforms/Windows/App.xaml.cs create mode 100644 RelayClient/Platforms/Windows/Package.appxmanifest create mode 100644 RelayClient/Platforms/Windows/app.manifest create mode 100644 RelayClient/Platforms/iOS/AppDelegate.cs create mode 100644 RelayClient/Platforms/iOS/Info.plist create mode 100644 RelayClient/Platforms/iOS/Program.cs create mode 100644 RelayClient/Platforms/iOS/Resources/PrivacyInfo.xcprivacy create mode 100644 RelayClient/Properties/launchSettings.json create mode 100644 RelayClient/README.md create mode 100644 RelayClient/RelayClient.csproj create mode 100644 RelayClient/Resources/AppIcon/appicon.svg create mode 100644 RelayClient/Resources/AppIcon/appiconfg.svg create mode 100644 RelayClient/Resources/Fonts/OpenSans-Regular.ttf create mode 100644 RelayClient/Resources/Fonts/OpenSans-Semibold.ttf create mode 100644 RelayClient/Resources/Images/dotnet_bot.png create mode 100644 RelayClient/Resources/Raw/AboutAssets.txt create mode 100644 RelayClient/Resources/Splash/splash.svg create mode 100644 RelayClient/Resources/Styles/Colors.xaml create mode 100644 RelayClient/Resources/Styles/Styles.xaml create mode 100644 RelayCore/.gitignore create mode 100644 RelayCore/E2EeHelper.cs create mode 100644 RelayCore/PasswordHasher.cs create mode 100644 RelayCore/Program.cs create mode 100644 RelayCore/README.md create mode 100644 RelayCore/RelayCore.csproj create mode 100644 RelayCore/RelayCore.sln create mode 100644 RelayCore/keys/.gitkeep create mode 100644 RelayServer/.gitignore create mode 100644 RelayServer/Program.cs create mode 100644 RelayServer/README.md create mode 100644 RelayServer/RelayServer.csproj create mode 100644 global.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..26d814a --- /dev/null +++ b/.gitignore @@ -0,0 +1,93 @@ +############################################ +# .NET Build +############################################ + +bin/ +obj/ +out/ +publish/ + +############################################ +# Visual Studio +############################################ + +.vs/ +*.user +*.suo +*.userprefs +*.csproj.user +*.dbmdl +*.cache +*.pdb +*.opendb + +############################################ +# Rider / JetBrains +############################################ + +.idea/ +*.sln.iml + +############################################ +# VSCode +############################################ + +.vscode/ + +############################################ +# NuGet +############################################ + +*.nupkg +*.snupkg +packages/ +.nuget/ +.nuget/packages/ + +############################################ +# Logs +############################################ + +*.log +logs/ + +############################################ +# OS files +############################################ + +.DS_Store +Thumbs.db + +############################################ +# Local secrets / environment +############################################ + +.env +.env.* +secrets.json +appsettings.Development.json + +############################################ +# E2EE private keys +############################################ + +keys/* +!keys/.gitkeep + +############################################ +# Local test databases / data folders +############################################ + +data/ +*.db +*.sqlite +*.sqlite3 + +############################################ +# Temporary files +############################################ + +*.tmp +*.temp +*.bak +*.swp \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..c099d39 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# RelayCore diff --git a/Relay.sln b/Relay.sln new file mode 100644 index 0000000..c6a098d --- /dev/null +++ b/Relay.sln @@ -0,0 +1,62 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.31903.59 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RelayCore", "RelayCore\RelayCore.csproj", "{346BE501-DE74-4E88-9787-4722FBC8BD0D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RelayClient", "RelayClient\RelayClient.csproj", "{AB9DA5AB-55DC-4DE4-834C-E1E1BCD0C3CD}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RelayServer", "RelayServer\RelayServer.csproj", "{38995780-E9AA-44D6-B62D-07CCA45E4E4C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {346BE501-DE74-4E88-9787-4722FBC8BD0D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {346BE501-DE74-4E88-9787-4722FBC8BD0D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {346BE501-DE74-4E88-9787-4722FBC8BD0D}.Debug|x64.ActiveCfg = Debug|Any CPU + {346BE501-DE74-4E88-9787-4722FBC8BD0D}.Debug|x64.Build.0 = Debug|Any CPU + {346BE501-DE74-4E88-9787-4722FBC8BD0D}.Debug|x86.ActiveCfg = Debug|Any CPU + {346BE501-DE74-4E88-9787-4722FBC8BD0D}.Debug|x86.Build.0 = Debug|Any CPU + {346BE501-DE74-4E88-9787-4722FBC8BD0D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {346BE501-DE74-4E88-9787-4722FBC8BD0D}.Release|Any CPU.Build.0 = Release|Any CPU + {346BE501-DE74-4E88-9787-4722FBC8BD0D}.Release|x64.ActiveCfg = Release|Any CPU + {346BE501-DE74-4E88-9787-4722FBC8BD0D}.Release|x64.Build.0 = Release|Any CPU + {346BE501-DE74-4E88-9787-4722FBC8BD0D}.Release|x86.ActiveCfg = Release|Any CPU + {346BE501-DE74-4E88-9787-4722FBC8BD0D}.Release|x86.Build.0 = Release|Any CPU + {AB9DA5AB-55DC-4DE4-834C-E1E1BCD0C3CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AB9DA5AB-55DC-4DE4-834C-E1E1BCD0C3CD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AB9DA5AB-55DC-4DE4-834C-E1E1BCD0C3CD}.Debug|x64.ActiveCfg = Debug|Any CPU + {AB9DA5AB-55DC-4DE4-834C-E1E1BCD0C3CD}.Debug|x64.Build.0 = Debug|Any CPU + {AB9DA5AB-55DC-4DE4-834C-E1E1BCD0C3CD}.Debug|x86.ActiveCfg = Debug|Any CPU + {AB9DA5AB-55DC-4DE4-834C-E1E1BCD0C3CD}.Debug|x86.Build.0 = Debug|Any CPU + {AB9DA5AB-55DC-4DE4-834C-E1E1BCD0C3CD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AB9DA5AB-55DC-4DE4-834C-E1E1BCD0C3CD}.Release|Any CPU.Build.0 = Release|Any CPU + {AB9DA5AB-55DC-4DE4-834C-E1E1BCD0C3CD}.Release|x64.ActiveCfg = Release|Any CPU + {AB9DA5AB-55DC-4DE4-834C-E1E1BCD0C3CD}.Release|x64.Build.0 = Release|Any CPU + {AB9DA5AB-55DC-4DE4-834C-E1E1BCD0C3CD}.Release|x86.ActiveCfg = Release|Any CPU + {AB9DA5AB-55DC-4DE4-834C-E1E1BCD0C3CD}.Release|x86.Build.0 = Release|Any CPU + {38995780-E9AA-44D6-B62D-07CCA45E4E4C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {38995780-E9AA-44D6-B62D-07CCA45E4E4C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {38995780-E9AA-44D6-B62D-07CCA45E4E4C}.Debug|x64.ActiveCfg = Debug|Any CPU + {38995780-E9AA-44D6-B62D-07CCA45E4E4C}.Debug|x64.Build.0 = Debug|Any CPU + {38995780-E9AA-44D6-B62D-07CCA45E4E4C}.Debug|x86.ActiveCfg = Debug|Any CPU + {38995780-E9AA-44D6-B62D-07CCA45E4E4C}.Debug|x86.Build.0 = Debug|Any CPU + {38995780-E9AA-44D6-B62D-07CCA45E4E4C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {38995780-E9AA-44D6-B62D-07CCA45E4E4C}.Release|Any CPU.Build.0 = Release|Any CPU + {38995780-E9AA-44D6-B62D-07CCA45E4E4C}.Release|x64.ActiveCfg = Release|Any CPU + {38995780-E9AA-44D6-B62D-07CCA45E4E4C}.Release|x64.Build.0 = Release|Any CPU + {38995780-E9AA-44D6-B62D-07CCA45E4E4C}.Release|x86.ActiveCfg = Release|Any CPU + {38995780-E9AA-44D6-B62D-07CCA45E4E4C}.Release|x86.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/RelayClient/.gitignore b/RelayClient/.gitignore new file mode 100644 index 0000000..26d814a --- /dev/null +++ b/RelayClient/.gitignore @@ -0,0 +1,93 @@ +############################################ +# .NET Build +############################################ + +bin/ +obj/ +out/ +publish/ + +############################################ +# Visual Studio +############################################ + +.vs/ +*.user +*.suo +*.userprefs +*.csproj.user +*.dbmdl +*.cache +*.pdb +*.opendb + +############################################ +# Rider / JetBrains +############################################ + +.idea/ +*.sln.iml + +############################################ +# VSCode +############################################ + +.vscode/ + +############################################ +# NuGet +############################################ + +*.nupkg +*.snupkg +packages/ +.nuget/ +.nuget/packages/ + +############################################ +# Logs +############################################ + +*.log +logs/ + +############################################ +# OS files +############################################ + +.DS_Store +Thumbs.db + +############################################ +# Local secrets / environment +############################################ + +.env +.env.* +secrets.json +appsettings.Development.json + +############################################ +# E2EE private keys +############################################ + +keys/* +!keys/.gitkeep + +############################################ +# Local test databases / data folders +############################################ + +data/ +*.db +*.sqlite +*.sqlite3 + +############################################ +# Temporary files +############################################ + +*.tmp +*.temp +*.bak +*.swp \ No newline at end of file diff --git a/RelayClient/App.xaml b/RelayClient/App.xaml new file mode 100644 index 0000000..6e6f0eb --- /dev/null +++ b/RelayClient/App.xaml @@ -0,0 +1,14 @@ + + + + + + + + + + + diff --git a/RelayClient/App.xaml.cs b/RelayClient/App.xaml.cs new file mode 100644 index 0000000..895e755 --- /dev/null +++ b/RelayClient/App.xaml.cs @@ -0,0 +1,16 @@ +using Microsoft.Extensions.DependencyInjection; + +namespace RelayClient; + +public partial class App : Application +{ + public App() + { + InitializeComponent(); + } + + protected override Window CreateWindow(IActivationState? activationState) + { + return new Window(new AppShell()); + } +} \ No newline at end of file diff --git a/RelayClient/AppShell.xaml b/RelayClient/AppShell.xaml new file mode 100644 index 0000000..e32af14 --- /dev/null +++ b/RelayClient/AppShell.xaml @@ -0,0 +1,14 @@ + + + + + + diff --git a/RelayClient/AppShell.xaml.cs b/RelayClient/AppShell.xaml.cs new file mode 100644 index 0000000..6c62f2b --- /dev/null +++ b/RelayClient/AppShell.xaml.cs @@ -0,0 +1,9 @@ +namespace RelayClient; + +public partial class AppShell : Shell +{ + public AppShell() + { + InitializeComponent(); + } +} \ No newline at end of file diff --git a/RelayClient/MainPage.xaml b/RelayClient/MainPage.xaml new file mode 100644 index 0000000..4f84d78 --- /dev/null +++ b/RelayClient/MainPage.xaml @@ -0,0 +1,36 @@ + + + + + + + +