Ejemplo n.º 1
0
int encode_data(unsigned char *dst, int dst_len, 
				unsigned char *src, int src_len, int rand)
{
	int i, b, x, srcb_len=src_len<<3;
	unsigned char *srcb = malloc(srcb_len * sizeof *srcb);

	if(dst_len != (src_len<<3))
		return(-1);

	// store bits into srcb
	x=0;
	memset(srcb, 0, srcb_len);
	for(i=0; i<src_len; i++) {
		for(b=0; b<8; b++) {
			srcb[x] = ENCODE_BIT(srcb[x], src[i], b);
			x++;
		}
	}

	// Shuffle bytes randomly if necessary
	if(rand == 1)
		prng_array_shuffle(srcb, (unsigned int)srcb_len);

	// Set destination bits
	for(i=0; i<dst_len; i++) {
		dst[i] = ENCODE_BIT(dst[i], srcb[i], 7);
	}

	free(srcb);
	return(0);
}
Ejemplo n.º 2
0
void 
BIO_Stdio_Encode_Bit (int bit, stdio_bitio_state * bs)
{
  ENCODE_CONTINUE (*bs)
    ENCODE_BIT (bit);
  ENCODE_PAUSE (*bs)
}