All pastes #917902 Raw Edit

Anonymous

public text v1 · immutable
#917902 ·published 2008-02-25 19:39 UTC
rendered paste body
#include <string.h>
#include <stdio.h>
#include <stdlib.h>

#define min(a,b)  ((a) < (b) ? (a) : (b))
#define max(a,b)  ((a) > (b) ? (a) : (b))
#define BLOCK_SIZE 			1024
#define BIT_COUNTER_SIZE 	128

int main(int argc, char *argv[])
{
	int i,j;
	unsigned char buffer[32];

	unsigned int num_tests,num_bytes,num_bits,remaining_bytes;
	unsigned int binary_blocks,remaining_blocks,num_bytes_left; 
	unsigned int num_blocks;
	FILE *infile;

	if ( argc != 3) {
		printf("Usage: %s <input file> <size>\n",argv[0]);
		return 1;
	}	
	
	infile = fopen(argv[1],"r");
	
	if( infile == 0 ){
		printf("Error opening file %s\n", argv[1]);
		return 1;
	}

	num_bytes = atoi(argv[2]);
	num_bits  = 8*num_bytes;

	num_bytes_left = num_bytes;

	binary_blocks = num_bytes / strlen(buffer);
	remaining_blocks = num_bytes % strlen(buffer);

	if(remaining_blocks != 0){
		binary_blocks++;
	}

	num_blocks = num_bits / (BLOCK_SIZE-BIT_COUNTER_SIZE) + 1;
	//remaining_bytes	= num_bytes % strlen(buffer);

	printf("binary_blocks = %d\n",binary_blocks);
	printf("remaining_blocks = %d\n",remaining_blocks);
	printf("num_blocks = %d\n",num_blocks);
	
	//printf("remaining_bytes = %d\n",remaining_bytes);

	for(i = 0; i < binary_blocks; i++){

		fread(buffer,1,min(num_bytes_left,strlen(buffer)),infile);

		for(j = 0; j < min(num_bytes_left,strlen(buffer)); j++){
			printf("%X",buffer[j]);
		}
		num_bytes_left -= max(remaining_blocks,strlen(buffer));
		printf("\n");
		
		if( i == binary_blocks - 1 ) {
			printf("80\n");
		}
	}


	//fgets(message, num_bytes,infile);
	//outputPaddedMessage(message,num_bytes);

	fclose(infile);
	return 0; 
}