五.BLE反白化

BLE反白化

白化

先前我们知道白化的过程是这样的

uint8_t  bleWhitenStart(uint8_t chan) {
	//use left shifted one
	//最高位一定要是1
	return reverseBits(chan) | 2;
}
/*白化,LFSR的方式进行白化*/
void bleWhiten(uint8_t* data, uint8_t len, uint8_t whitenCoeff) {
	// Implementing whitening with LFSR
	uint8_t  m;
	while (len--) {
		for (m = 1; m; m <<= 1) {
			if (whitenCoeff & 0x80) {
				whitenCoeff ^= 0x11;
				(*data) ^= m;
			}
			whitenCoeff <<= 1;
		}
		data++;
	}
}
bleWhiten(_packet, _length, bleWhitenStart(37));

反白化

其实把数据放入bleWhiten(),再执行一遍就是反白化了

你可能感兴趣的:(BLE)