// UART transmission
void uart_send_packet(unsigned char b, unsigned char x, unsigned char y, unsigned char z) {
  unsigned char ascii_bytes[3];

  // Sending data out UART
  // Data format is the string:
  // $EZ,b:<val1>,x:<val2>,y:<val3>,z:<val4>\r\n
  // However, the <val> items are hex
  UART_XMIT(1,0x24);                      //$
  UART_XMIT(1,0x45);                      //E
  UART_XMIT(1,0x5a);                      //Z
  UART_XMIT(1,0x2c);                      //,
  UART_XMIT(1,0x62);                      //b
  UART_XMIT(1,0x3a);                      //:
  bin2ascii((unsigned char *)ascii_bytes,b);
  if (ascii_bytes[2]) 
    UART_XMIT(1,ascii_bytes[2]);          //<button msb>
  if (ascii_bytes[1]) 
    UART_XMIT(1,ascii_bytes[1]);          //<button b>
  UART_XMIT(1,ascii_bytes[0]);            //<button lsb>
  UART_XMIT(1,0x2c);                      //,
  UART_XMIT(1,0x78);                      //x
  UART_XMIT(1,0x3a);                      //:
  bin2ascii((unsigned char *)ascii_bytes,x);
  if (ascii_bytes[2]) 
    UART_XMIT(1,ascii_bytes[2]);          //<x msb>
  if (ascii_bytes[1]) 
    UART_XMIT(1,ascii_bytes[1]);          //<x b>
  UART_XMIT(1,ascii_bytes[0]);            //<x lsb>
  UART_XMIT(1,0x2c);                      //,
  UART_XMIT(1,0x79);                      //y
  UART_XMIT(1,0x3a);                      //:
  bin2ascii((unsigned char *)ascii_bytes,y);
  if (ascii_bytes[2]) 
    UART_XMIT(1,ascii_bytes[2]);          //<y msb>
  if (ascii_bytes[1]) 
    UART_XMIT(1,ascii_bytes[1]);          //<y b>
  UART_XMIT(1,ascii_bytes[0]);            //<y lsb>
  UART_XMIT(1,0x2c);                      //,
  UART_XMIT(1,0x7a);                      //z
  UART_XMIT(1,0x3a);                      //:
  bin2ascii((unsigned char *)ascii_bytes,z);
  if (ascii_bytes[2]) 
    UART_XMIT(1,ascii_bytes[2]);          //<z msb>
  if (ascii_bytes[1]) 
    UART_XMIT(1,ascii_bytes[1]);          //<z b>
  UART_XMIT(1,ascii_bytes[0]);            //<z lsb>
  UART_XMIT(1,0x0d);                      //cr (\r)
  UART_XMIT(1,0x0a);                     //lf (\n)
}         
Example #2
0
static void
hmac5(const char *src, const char *out)
{
	unsigned char digest[16];
	char s_digest[34];

	assert(strlen(out) == 32 && hmac5_key);
	hmac_md5((const unsigned char*) hmac5_key, (const unsigned char*) src, strlen(src), digest);
	if (strcasecmp(bin2ascii(s_digest, digest, 16), out) != 0) {
		fprintf(stderr, "Wrong hman md5(%s) -> %s expected %s\n", src, s_digest, out);
		exit(1);
	}
}
Example #3
0
static void
des(const char *src, const char *out)
{
	static const des_cblock key = { 0x4B, 0x47, 0x53, 0x21, 0x40, 0x23, 0x24, 0x25 };
	DES_KEY ks;
	unsigned char digest[128];
	char s_digest[256];
	size_t out_len;

	memset(digest, 0, sizeof(digest));
	tds_des_set_key(&ks, key, sizeof(key));
	tds_des_ecb_encrypt(src, strlen(src), &ks, digest);

	out_len = strlen(src) & ~7u;
	if (strcasecmp(bin2ascii(s_digest, digest, out_len), out) != 0) {
		fprintf(stderr, "Wrong des(%s) -> %s expected %s\n", src, s_digest, out);
		exit(1);
	}
}
Example #4
0
static void
md5(const char *src, const char *out)
{
	MD5_CTX ctx;
	unsigned char digest[16];
	char s_digest[34];

	assert(strlen(out) == 32);
	MD5Init(&ctx);
	if (strlen(src) > 12) {
		MD5Update(&ctx, (const unsigned char *) src, 5);
		MD5Update(&ctx, (const unsigned char *) src+5, strlen(src) - 5);
	} else {
		MD5Update(&ctx, (const unsigned char *) src, strlen(src));
	}
	MD5Final(&ctx, digest);
	if (strcasecmp(bin2ascii(s_digest, digest, 16), out) != 0) {
		fprintf(stderr, "Wrong md5(%s) -> %s expected %s\n", src, s_digest, out);
		exit(1);
	}
}
Example #5
0
int main(){
	bin2ascii("dem1/w001001.adf", "test.asc");
	return(1);
}