unsigned char K1[16] = {0x2f, 0x03, 0x6c, 0xc7, 0x1e, 0x0d, 0x34, 0x1f, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef};
#include "stdafx.h"

unsigned char K2[8];

int main(int argc, char* argv[])
{
	unsigned char i;
	unsigned char carry;

	printf("K1 und K2 generierung\n");

	carry = ((K1[7] & 0x80) >> 7) & 0x1;

	for(i=0; i < 8; i++)
	{
		K1[i+8]= (K1[i] << 1) | carry;
		carry = ((K1[i] & 0x80) >> 7) & 0x1;
	}

	carry = ((K1[15] & 0x80) >> 7) & 0x1;
	
	for(i=0; i < 8; i++)
	{
		K2[i]=(K1[i+8] << 1) | carry ;
		carry = ((K1[i+8] & 0x80) >> 7) & 0x1;
		K1[i] = K1[i+8];
		K1[i+8] = K2[i];
	}

	//*********************************************************
	for(i=0; i < 8; i++)
	{
		printf("%x ",K2[i]);
	}
	printf("\n");
	for(i=0; i < 16; i++)
	{
		printf("%x ",K1[i]);
	}
	printf("\n");
	return 0;
}