aboutsummaryrefslogtreecommitdiff
path: root/CONTRIBUTING
diff options
context:
space:
mode:
authorAlexander Færøy <ahf@torproject.org>2020-05-16 19:18:56 +0000
committerNick Mathewson <nickm@torproject.org>2020-07-06 16:19:16 -0400
commit7b2d10700fb0844fbe9aa7c030b09467cf173936 (patch)
tree34c83c54a3dfaffaafefd2c260bb040c1ec2426a /CONTRIBUTING
parent06f1e959c218bfbe0b85bbd0acc59b8f408fbc99 (diff)
downloadtor-7b2d10700fb0844fbe9aa7c030b09467cf173936.tar.gz
tor-7b2d10700fb0844fbe9aa7c030b09467cf173936.zip
Use ((x + 7) >> 3) instead of (x >> 3) when converting from bits to bytes.
This patch changes our bits-to-bytes conversion logic in the NSS implementation of `tor_tls_cert_matches_key()` from using (x >> 3) to ((x + 7) >> 3) since DER bit-strings are allowed to contain a number of bits that is not a multiple of 8. Additionally, we add a comment on why we cannot use the `DER_ConvertBitString()` macro from NSS, as we would potentially apply the bits-to-bytes conversion logic twice, which would lead to an insignificant amount of bytes being compared in `SECITEM_ItemsAreEqual()` and thus turn the logic into being a prefix match instead of a full match. The `DER_ConvertBitString()` macro is defined in NSS as: /* ** Macro to convert der decoded bit string into a decoded octet ** string. All it needs to do is fiddle with the length code. */ #define DER_ConvertBitString(item) \ { \ (item)->len = ((item)->len + 7) >> 3; \ } Thanks to Taylor Yu for spotting this problem. This patch is part of the fix for TROVE-2020-001. See: https://bugs.torproject.org/33119
Diffstat (limited to 'CONTRIBUTING')
0 files changed, 0 insertions, 0 deletions