2022-02-25 04:13:05 +00:00
# include "lmem.h"
# include "lpacket.h"
# include "speer.h"
2022-03-18 04:05:18 +00:00
# include "sterm.h"
2022-02-25 04:13:05 +00:00
2022-03-18 04:05:18 +00:00
tShell_peer * shellP_newPeer ( PEERTYPE type , OSTYPE osType , uint8_t * pubKey , char * hostname , char * inet , char * ipv4 ) {
2022-02-25 04:13:05 +00:00
tShell_peer * peer = ( tShell_peer * ) laikaM_malloc ( sizeof ( tShell_peer ) ) ;
peer - > type = type ;
2022-03-18 04:05:18 +00:00
peer - > osType = osType ;
2022-02-25 04:13:05 +00:00
/* copy pubKey to peer's pubKey */
memcpy ( peer - > pub , pubKey , crypto_kx_PUBLICKEYBYTES ) ;
/* copy hostname & ipv4 */
memcpy ( peer - > hostname , hostname , LAIKA_HOSTNAME_LEN ) ;
2022-03-05 02:17:03 +00:00
memcpy ( peer - > inet , inet , LAIKA_IPV4_LEN ) ;
2022-02-25 04:13:05 +00:00
memcpy ( peer - > ipv4 , ipv4 , LAIKA_IPV4_LEN ) ;
/* restore NULL terminators */
2022-03-05 02:17:03 +00:00
peer - > hostname [ LAIKA_HOSTNAME_LEN - 1 ] = ' \0 ' ;
peer - > inet [ LAIKA_INET_LEN - 1 ] = ' \0 ' ;
peer - > ipv4 [ LAIKA_IPV4_LEN - 1 ] = ' \0 ' ;
2022-02-25 04:13:05 +00:00
return peer ;
}
void shellP_freePeer ( tShell_peer * peer ) {
laikaM_free ( peer ) ;
}
char * shellP_typeStr ( tShell_peer * peer ) {
switch ( peer - > type ) {
case PEER_BOT : return " Bot " ;
case PEER_CNC : return " CNC " ;
2022-02-28 22:27:55 +00:00
case PEER_AUTH : return " Auth " ;
2022-02-25 04:13:05 +00:00
default : return " err " ;
}
2022-03-18 04:05:18 +00:00
}
char * shellP_osTypeStr ( tShell_peer * peer ) {
switch ( peer - > osType ) {
case OS_WIN : return " Windows " ;
case OS_LIN : return " Linux " ;
default : return " unkn " ;
}
}
void shellP_printInfo ( tShell_peer * peer ) {
2022-03-18 04:49:25 +00:00
char buf [ 128 ] ; /* i don't expect bin2hex to write outside this, but it's only user-info and doesn't break anything (ie doesn't write outside the buffer) */
2022-03-18 04:05:18 +00:00
sodium_bin2hex ( buf , sizeof ( buf ) , peer - > pub , crypto_kx_PUBLICKEYBYTES ) ;
shellT_printf ( " \t %s@%s \n \t TYPE: %s \n \t OS: %s \n \t PUBKEY: %s \n \t INET: %s \n " , peer - > hostname , peer - > ipv4 , shellP_typeStr ( peer ) , shellP_osTypeStr ( peer ) , buf , peer - > inet ) ;
2022-02-25 04:13:05 +00:00
}