<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Do I need checksum to ensure my data is intact?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/16196/do-i-need-checksum-to-ensure-my-data-is-intact</link><description>I am sending and receiving streams of data over BLE. 
 Do I need to add a checksum byte for every GATT write/notification/indication to ensure that my data is not corrupt during BLE data transfer? Or is there already some lower layer system to ensure</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 05 Sep 2016 14:25:51 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/16196/do-i-need-checksum-to-ensure-my-data-is-intact" /><item><title>RE: Do I need checksum to ensure my data is intact?</title><link>https://devzone.nordicsemi.com/thread/61836?ContentTypeID=1</link><pubDate>Mon, 05 Sep 2016 14:25:51 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fc2d21ed-269d-4bd9-b9b1-587650136a2c</guid><dc:creator>Ulrich Myhre</dc:creator><description>&lt;p&gt;To expand on this, every packet contains a CRC field to verify data consistency. CRCs are very sensitive to single bit flips, but there is of course a possibility that your corrupted transmission ends up having the same CRC. Every data packet is also whitened before going through the air, as to reduce the risk even further. De-whitening and removal of CRC happens long before you receive the packet, so you do not see this.&lt;/p&gt;
&lt;p&gt;In addition to this, encrypted connections also contain a Message Integrity Check (MIC). This uses the IETF RFC 3610 algorithm with AES-128 (NIST FIPS-197) to create a 4 byte field for message authentication. If, by chance, a corrupted message passes CRC, the MIC check will likely fail and disconnect the link before anything is given to the application.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Do I need checksum to ensure my data is intact?</title><link>https://devzone.nordicsemi.com/thread/61835?ContentTypeID=1</link><pubDate>Mon, 05 Sep 2016 12:13:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7515e4ee-3316-4dea-9abd-3aef8929b86a</guid><dc:creator>RK</dc:creator><description>&lt;p&gt;Every btle packet already contains a checksum. So the data is already protected. Of course checksums are not foolproof but you probably don&amp;#39;t need to add more.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>