diff --git a/LuskiServer/Classes/TableDef/Channels.cs b/LuskiServer/Classes/TableDef/Channels.cs index c480695..daa199e 100644 --- a/LuskiServer/Classes/TableDef/Channels.cs +++ b/LuskiServer/Classes/TableDef/Channels.cs @@ -7,9 +7,16 @@ public static class Channels { public static TableColumn ID { get; } = new("id", true); public static TableColumn Type { get; } = new("type"); + public static TableColumn Epoch { get; } = new("epoch"); public static TableColumn Name { get; } = new("name"); public static TableColumn Description { get; } = new("description"); public static TableColumn Key { get; } = new("key"); public static TableColumn RoleOverides { get; } = new("role_overides"); public static TableColumn UserOverides { get; } = new("member_overides"); + public static TableColumn TitleEncryptionType { get; } = new("title_encryption_type"); + public static TableColumn DescriptionEncryptionType { get; } = new("description_encryption_type"); + public static TableColumn AllowedEncryptionTypes { get; } = new("allowed_encryption_types"); + public static TableColumn TitleEncoderType { get; } = new("title_encoder_type"); + public static TableColumn DescriptionEncoderType { get; } = new("description_encoder_type"); + public static TableColumn AllowedEncoderTypes { get; } = new("allowed_encoder_types"); } \ No newline at end of file diff --git a/LuskiServer/Classes/TableDef/Files.cs b/LuskiServer/Classes/TableDef/Files.cs index 2475edb..307ffe3 100644 --- a/LuskiServer/Classes/TableDef/Files.cs +++ b/LuskiServer/Classes/TableDef/Files.cs @@ -1,3 +1,4 @@ +using LuskiServer.Enums; using ServerDatabase; namespace LuskiServer.Classes.TableDef; @@ -9,4 +10,6 @@ public static class Files public static TableColumn Name { get; } = new("name"); public static TableColumn Hash { get; } = new("hash"); public static TableColumn Data { get; } = new("data"); + public static TableColumn EncryptionType { get; } = new("encryption_type"); + public static TableColumn EncoderType { get; } = new("encoder_type"); } \ No newline at end of file diff --git a/LuskiServer/Classes/TableDef/Messages.cs b/LuskiServer/Classes/TableDef/Messages.cs index 59f761c..80808c9 100644 --- a/LuskiServer/Classes/TableDef/Messages.cs +++ b/LuskiServer/Classes/TableDef/Messages.cs @@ -1,3 +1,4 @@ +using LuskiServer.Enums; using ServerDatabase; namespace LuskiServer.Classes.TableDef; @@ -9,5 +10,7 @@ public static class Messages public static TableColumn AuthorID { get; } = new("author_id"); public static TableColumn TimeStamp { get; } = new("ts"); public static TableColumn Context { get; } = new("context"); + public static TableColumn EncryptionType { get; } = new("encryption_type"); + public static TableColumn EncoderType { get; } = new("encoder_type"); public static TableColumn Files { get; } = new("files"); } \ No newline at end of file diff --git a/LuskiServer/Enums/ChannelType.cs b/LuskiServer/Enums/ChannelType.cs index f6587ad..b7418df 100644 --- a/LuskiServer/Enums/ChannelType.cs +++ b/LuskiServer/Enums/ChannelType.cs @@ -2,5 +2,5 @@ namespace LuskiServer.Enums; public enum ChannelType : short { - + Default = 0 } \ No newline at end of file diff --git a/LuskiServer/Enums/EncoderType.cs b/LuskiServer/Enums/EncoderType.cs new file mode 100644 index 0000000..a589f09 --- /dev/null +++ b/LuskiServer/Enums/EncoderType.cs @@ -0,0 +1,12 @@ +namespace LuskiServer.Enums; + +public enum EncoderType : short +{ + UTF8 = 0, + UTF16 = 1, + UTF32 = 2, + ASCII = 3, + Latin1 = 4, + Unicode = 5, + BigEndianUnicode = 6 +} \ No newline at end of file diff --git a/LuskiServer/Enums/EncryptionType.cs b/LuskiServer/Enums/EncryptionType.cs new file mode 100644 index 0000000..40c6359 --- /dev/null +++ b/LuskiServer/Enums/EncryptionType.cs @@ -0,0 +1,8 @@ +namespace LuskiServer.Enums; + +public enum EncryptionType : short +{ + None = 0, + RSA = 1, + AES = 2, +} \ No newline at end of file diff --git a/LuskiServer/LuskiServer.csproj b/LuskiServer/LuskiServer.csproj index b8d3620..788acb3 100644 --- a/LuskiServer/LuskiServer.csproj +++ b/LuskiServer/LuskiServer.csproj @@ -21,7 +21,7 @@ - + diff --git a/LuskiServer/Program.cs b/LuskiServer/Program.cs index 469a0ca..9ae4f98 100644 --- a/LuskiServer/Program.cs +++ b/LuskiServer/Program.cs @@ -1,4 +1,5 @@ using System.Reflection; +using System.Text; using Asp.Versioning.ApiExplorer; using LuskiServer; using LuskiServer.Classes; @@ -95,10 +96,30 @@ if (!Tables.Categories.TryRead(Categories.ID, out _, Categories.ID.CreateParamet "The default category for the server. Everybody will see this category."), Categories.RoleOverides.CreateParameter(new long[1] { 0 }) ); + Tables.Channels.Insert( + Channels.ID.CreateParameter(0), + Channels.Type.CreateParameter(ChannelType.Default), + Channels.Description.CreateParameter(Encoding.UTF8.GetBytes("Default chat for you to use in your new server")), + Channels.Name.CreateParameter(Encoding.UTF8.GetBytes("Default Channel")), + Channels.Key.CreateParameter(Luski.Encryption.Keys.PublicKey), + Channels.RoleOverides.CreateParameter(Array.Empty()), + Channels.UserOverides.CreateParameter(Array.Empty()), + Channels.Epoch.CreateParameter(DateTime.UtcNow), + Channels.TitleEncryptionType.CreateParameter(EncryptionType.None), + Channels.DescriptionEncryptionType.CreateParameter(EncryptionType.None), + Channels.AllowedEncryptionTypes.CreateParameter(new [] { EncryptionType.RSA, EncryptionType.AES }), + Channels.TitleEncoderType.CreateParameter(EncoderType.UTF8), + Channels.DescriptionEncoderType.CreateParameter(EncoderType.UTF8), + Channels.AllowedEncoderTypes.CreateParameter(new [] + { + EncoderType.UTF8, EncoderType.UTF16, + EncoderType.UTF32, EncoderType.ASCII, + EncoderType.Latin1, EncoderType.Unicode, + EncoderType.BigEndianUnicode + })); } - var builder = WebApplication.CreateBuilder( args ); // Add services to the container.