1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- use crypto_box::{
- aead::{Aead, AeadCore, OsRng},
- PublicKey, SalsaBox, SecretKey,
- };
- use std::io::Write;
- use std::net::TcpStream;
-
-
- const KEYLENGTH: u8 = 32;
-
- pub enum PayloadType {
- //0-31 system messages (plaintext)
- Ping = 1,
- Pong = 2,
- Error = 3,
- //32 - 63 Serverside messages (currently plaintext)
- Init = 32,
- Join = 33,
- Exit = 34,
- //64 -95 initial setup messages(plaintext)
- DhSetup = 64,
- DhReturn = 65,
- //96 - 127 client-client setup messages(DH or old KEY encrypted)
- AUTHORIZE = 96,
- KeyCurrent = 97,
- KeyNew = 98,
- //128-159 main messages (shared KEY encrypted)
- Msg = 128,
- //160-255 reserved
- }
-
- struct Message {
- // Eigenschaften der Klasse
- src_id: u32,
- dest_id: u32,
- size: u16,
- payload: Vec<u8>,
- }
-
- impl Message {
- fn new(src_id: u32, dest_id: u32, size: u16, msg_type: PayloadType) -> Message {
- let mut msg = Message {
- src_id: src_id,
- dest_id: dest_id,
- size: size,
- payload: Vec::with_capacity(size.into()),
- };
- msg.payload[0] = msg_type as u8;
- msg
- }
- fn creat_vec(ciphertext: Vec<u8>) -> Vec<u8> {
- let mut vec: Vec<u8> = vec![0; 14 + ciphertext.len()];
-
-
-
- for i in 14..(14 + ciphertext.len()){
- vec[i] = ciphertext[i - 14];
- }
- vec
- }
- // Methoden der Klasse
- }
|