Files
Relay/RelayShared/Services/SocketTransmissions.cs
RuKira f819d7284e Update: Text Channel Stuff
Bugs: Files don't work
Bugs: Video In-Line don't work

Added: idk, everything?
2026-06-03 13:19:21 -04:00

89 lines
2.7 KiB
C#

namespace RelayShared.Services;
//TODO: review name of file, potentially rename for Encryption services rather than sockets
public sealed class SocketRtcSignalMessage
{
public SignalType Type { get; set; }
public string SenderUsername { get; set; } = string.Empty;
public string ChannelId { get; set; } = string.Empty;
public string CipherText { get; set; } = string.Empty;
public string Nonce { get; set; } = string.Empty;
public string Tag { get; set; } = string.Empty;
public string EncryptedKey { get; set; } = string.Empty;
}
public sealed class SocketEncryptedMessage
{
public SignalType Type { get; set; } = SignalType.EncryptedChat;
public string MessageId { get; set; } = string.Empty;
public string SenderUsername { get; set; } = string.Empty;
public string RecipientUsername { get; set; } = string.Empty;
public string ChannelId { get; set; } = string.Empty;
public string CipherText { get; set; } = string.Empty;
public string Nonce { get; set; } = string.Empty;
public string Tag { get; set; } = string.Empty;
public string EncryptedKey { get; set; } = string.Empty;
public bool IsEdited { get; set; }
public bool IsDeleted { get; set; }
}
public sealed class SocketMessageDeletedEvent
{
public SignalType Type { get; set; } = SignalType.MessageDeleted;
public string MessageId { get; set; } = string.Empty;
public string ChannelId { get; set; } = string.Empty;
}
public sealed class SocketTypingEvent
{
public SignalType Type { get; set; } = SignalType.TypingIndicator;
public string Username { get; set; } = string.Empty;
public string ChannelId { get; set; } = string.Empty;
}
public sealed class SocketEditHistoryEntry
{
public string CipherText { get; set; } = string.Empty;
public string Nonce { get; set; } = string.Empty;
public string Tag { get; set; } = string.Empty;
public string EncryptedKey { get; set; } = string.Empty;
public DateTime EditedAt { get; set; }
}
public sealed class SocketEditHistoryResponse
{
public SignalType Type { get; set; } = SignalType.EditHistory;
public string MessageId { get; set; } = string.Empty;
public List<SocketEditHistoryEntry> Entries { get; set; } = [];
}
public sealed class ServerPublicKeyMessage
{
public SignalType Type { get; set; } = SignalType.ServerPublicKey;
public string PublicKey { get; set; } = string.Empty;
}
public enum SignalType
{
Offer,
Answer,
Candidate,
OfferUpdated,
AnswerUpdated,
CandidateAdded,
CallLeft,
ChannelList,
ServerPublicKey,
EncryptedSignal,
EncryptedChat,
ClientEncryptedChat,
ClientEditMessage,
ClientDeleteMessage,
MessageEdited,
MessageDeleted,
TypingIndicator,
EditHistory
}