#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <string.h>
#ifdef __linux__
#include <unistd.h>
#else
#include <windows.h>
#endif
{
{
}
}
void ReceivePacket(const char *key,
int packet_length,
unsigned char *packet_buffer_ptr)
{
printf("Data\t%s\n",(char *)packet_buffer_ptr + 5);
}
void CreateDataPackets(unsigned char *packet1_ptr,
unsigned char *packet2_ptr,
unsigned char *packet3_ptr,
unsigned char *packet4_ptr,
unsigned short *length1_ptr,
unsigned short *length2_ptr,
unsigned short *length3_ptr,
unsigned short *length4_ptr)
{
unsigned short tester= 1;
unsigned char tester_byte[1];
unsigned char sync_pattern[3];
unsigned short big_endian_order = 1;
memcpy(tester_byte,&tester,1);
if (tester_byte[0] == 0x01)
{
big_endian_order = 0;
}
memset(packet1_ptr,0x00,50);
memset(packet2_ptr,0x00,50);
memset(packet3_ptr,0x00,50);
memset(packet4_ptr,0x00,50);
strcpy((char *)packet1_ptr+5,"Mary had a little lamb");
strcpy((char *)packet2_ptr+5,"Its feet were black as soot");
strcpy((char *)packet3_ptr+5,"And into Mary's bread and jam ");
strcpy((char *)packet4_ptr+5,"Its sooty foot it put");
*length1_ptr = strlen((char *)packet1_ptr+5) + 6;
*length2_ptr = strlen((char *)packet2_ptr+5) + 6;
*length3_ptr = strlen((char *)packet3_ptr+5) + 6;
*length4_ptr = strlen((char *)packet4_ptr+5) + 6;
if (big_endian_order == 1)
{
memmove(packet1_ptr+3,length1_ptr,2);
memmove(packet2_ptr+3,length2_ptr,2);
memmove(packet3_ptr+3,length3_ptr,2);
memmove(packet4_ptr+3,length4_ptr,2);
}
else
{
memmove(packet1_ptr+4,length1_ptr,1);
memmove(packet2_ptr+4,length2_ptr,1);
memmove(packet3_ptr+4,length3_ptr,1);
memmove(packet4_ptr+4,length4_ptr,1);
}
sync_pattern[0] = 0xfa;
sync_pattern[1] = 0xfb;
sync_pattern[2] = 0xfc;
memcpy(packet1_ptr,sync_pattern,3);
memcpy(packet2_ptr,sync_pattern,3);
memcpy(packet3_ptr,sync_pattern,3);
memcpy(packet4_ptr,sync_pattern,3);
}
int main(int argc, char *argv[])
{
unsigned int source_service_number;
unsigned int lifespan;
unsigned int ordinal;
char source_device_key3[50];
char source_device_key4[50];
char source_device_key5[50];
unsigned char packet1[50];
unsigned char packet2[50];
unsigned char packet3[50];
unsigned char packet4[50];
unsigned short length1;
unsigned short length2;
unsigned short length3;
unsigned short length4;
unsigned int key_buffer_size;
long long destination_node_number;
unsigned int destination_service_number;
char home_path[256];
char source_public_key_pathname[256];
char source_private_key_pathname[256];
char destination_public_key_pathname[256];
char user_passphrase[64];
int pkt_key_encrypt_time_interval_sec;
CreateDataPackets(packet1,
packet2,
packet3,
packet4,
&length1,
&length2,
&length3,
&length4);
printf("\nNetwork BP Source\n\n");
{
printf("\nFailed to get the home directory\n");
}
sprintf(source_public_key_pathname, "%s/source_bp_public.key", home_path);
sprintf(source_private_key_pathname, "%s/source_bp_private.key", home_path);
sprintf(destination_public_key_pathname, "%s/destination_bp_public.key", home_path);
source_service_number = 3;
lifespan = 86400;
ordinal = 0;
key_buffer_size = sizeof(source_device_key3);
if (
CreateBPDevice(source_service_number,lifespan,cos,ordinal,mode,criticality,&key_buffer_size,source_device_key3) !=
SUCCESS)
{
return 0;
}
cipher_class = AES_256_GCM;
pkt_key_encrypt_time_interval_sec = 0;
strcpy(user_passphrase, "");
cipher_class,
source_public_key_pathname,
source_private_key_pathname,
destination_public_key_pathname,
pkt_key_encrypt_time_interval_sec,
{
return 0;
}
{
return 0;
}
source_service_number = 4;
if (
CreateBPDevice(source_service_number,lifespan,cos,ordinal,mode,criticality,&key_buffer_size,source_device_key4) !=
SUCCESS)
{
return 0;
}
cipher_class,
source_public_key_pathname,
source_private_key_pathname,
destination_public_key_pathname,
pkt_key_encrypt_time_interval_sec,
{
return 0;
}
{
return 0;
}
source_service_number = 5;
if (
CreateBPDevice(source_service_number,lifespan,cos,ordinal,mode,criticality,&key_buffer_size,source_device_key5) !=
SUCCESS)
{
return 0;
}
cipher_class,
source_public_key_pathname,
source_private_key_pathname,
destination_public_key_pathname,
pkt_key_encrypt_time_interval_sec,
{
return 0;
}
{
return 0;
}
destination_node_number = 2;
destination_service_number = 3;
length1,packet1,
destination_node_number,
destination_service_number) ==
SUCCESS)
{
length2,
packet2,
destination_node_number,
destination_service_number) ==
SUCCESS)
{
length3,
packet3,
destination_node_number,
destination_service_number) ==
SUCCESS)
{
length4,
packet4,
destination_node_number,
destination_service_number);
}
}
}
destination_node_number = 2;
destination_service_number = 4;
length1,packet1,
destination_node_number,
destination_service_number) ==
SUCCESS)
{
length2,
packet2,
destination_node_number,
destination_service_number) ==
SUCCESS)
{
length3,
packet3,
destination_node_number,
destination_service_number) ==
SUCCESS)
{
length4,
packet4,
destination_node_number,
destination_service_number);
}
}
}
destination_node_number = 2;
destination_service_number = 5;
length1,packet1,
destination_node_number,
destination_service_number) ==
SUCCESS)
{
length2,
packet2,
destination_node_number,
destination_service_number) ==
SUCCESS)
{
length3,
packet3,
destination_node_number,
destination_service_number) ==
SUCCESS)
{
length4,
packet4,
destination_node_number,
destination_service_number);
}
}
}
#ifdef __linux__
sleep(4);
#else
Sleep(4000);
#endif
return 0;
}