Exemplo n.º 1
0
 public CampfireChatClient(CampfireNetClient campfireNetClient, CampfireChatSettings campfireChatSettings, ChatRoomTable chatRoomTable, ChatMessageSender messageSender)
 {
     this.campfireChatSettings = campfireChatSettings;
     CampfireNetClient         = campfireNetClient;
     ChatRoomTable             = chatRoomTable;
     MessageSender             = messageSender;
 }
Exemplo n.º 2
0
        public static CampfireChatClient Create(CampfireNetClient campfireNetClient)
        {
            var campfireChatSettings = new CampfireChatSettings {
                LocalFriendlyName = "Anonymous"
            };
            var chatRoomTable      = new ChatRoomTable();
            var messageSender      = new ChatMessageSender(campfireNetClient, chatRoomTable);
            var campfireChatClient = new CampfireChatClient(campfireNetClient, campfireChatSettings, chatRoomTable, messageSender);

            chatRoomTable.SetChatMessageSender(messageSender);
            chatRoomTable.SetCampfireChatClient(campfireChatClient);
            campfireChatClient.Initialize();
            return(campfireChatClient);
        }
Exemplo n.º 3
0
        public static void Main()
        {
//         // Generate root pk
//         var rsa = new RSACryptoServiceProvider(CryptoUtil.ASYM_KEY_SIZE_BITS);
//		   var bytes = __HackPrivateKeyUtilities.SerializePrivateKey(rsa);
//         Console.WriteLine($"new byte[] {{ {string.Join(", ", bytes)} }}");

            var rootRsa      = __HackPrivateKeyUtilities.DeserializePrivateKey(__HackPrivateKeyUtilities.__HACK_ROOT_PRIVATE_KEY);
            var rootIdentity = new Identity(rootRsa, new IdentityManager(), "hack_root");

            rootIdentity.GenerateRootChain();

//         Console.WriteLine("Enter key to begin");
            Console.ReadLine();
            Console.Clear();

            using (var adapter = new WindowsBluetoothAdapter()) {
                var broadcastMessageSerializer = new BroadcastMessageSerializer();
                var objectStore = new InMemoryCampfireNetObjectStore();
                //            var objectStore = new FileSystemCampfireNetObjectStore(Path.Combine(Directory.GetParent(Assembly.GetExecutingAssembly().Location).FullName, "demo_store"));

                var identity = new Identity(new IdentityManager(), "Windows_Client");
                identity.AddTrustChain(rootIdentity.GenerateNewChain(identity.PublicIdentity, Permission.None, Permission.None, identity.Name));
                Console.WriteLine($"I am {string.Join(" > ", identity.TrustChain.Select(n => n.ThisId.ToHexString()))}");

                var clientMerkleTreeFactory = new ClientMerkleTreeFactory(broadcastMessageSerializer, objectStore);
                var client = new CampfireNetClient(identity, adapter, broadcastMessageSerializer, clientMerkleTreeFactory);
                client.RunAsync().Forget();

                client.MessageReceived += e => {
                    var s = Encoding.UTF8.GetString(e.Message.DecryptedPayload, 0, e.Message.DecryptedPayload.Length);
                    DebugConsole.WriteLine(new string(' ', Console.BufferWidth - 1), ConsoleColor.White, ConsoleColor.Red);
                    DebugConsole.WriteLine(("RECV: " + s).PadRight(Console.BufferWidth - 1), ConsoleColor.White, ConsoleColor.Red);
                    DebugConsole.WriteLine(new string(' ', Console.BufferWidth - 1), ConsoleColor.White, ConsoleColor.Red);
                };

                Console.WriteLine("My adapter id is: " + adapter.AdapterId + " AKA " + string.Join(" ", adapter.AdapterId.ToByteArray()));
                while (true)
                {
                    var line = Console.ReadLine();
                    client.BroadcastAsync(Encoding.UTF8.GetBytes(line)).Forget();
                }

                new ManualResetEvent(false).WaitOne();
            }
        }
Exemplo n.º 4
0
 public ChatMessageSender(CampfireNetClient client, ChatRoomTable chatRoomTable)
 {
     this.client        = client;
     this.chatRoomTable = chatRoomTable;
 }