mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2025-02-24 14:51:11 +01:00
Merge branch 'ticket28115_035' into maint-0.3.5
This commit is contained in:
commit
6851a08090
2 changed files with 9 additions and 6 deletions
3
changes/bug28115
Normal file
3
changes/bug28115
Normal file
|
@ -0,0 +1,3 @@
|
|||
o Minor bugfixes (portability):
|
||||
- Make the OPE code (which is used for v3 onion services) run correctly
|
||||
on big-endian platforms. Fixes bug 28115; bugfix on 0.3.5.1-alpha.
|
|
@ -48,17 +48,17 @@ struct crypto_ope_t {
|
|||
/** The type to add up in order to produce our OPE ciphertexts */
|
||||
typedef uint16_t ope_val_t;
|
||||
|
||||
#ifdef WORDS_BIG_ENDIAN
|
||||
/** Convert an OPE value to little-endian */
|
||||
#ifdef WORDS_BIGENDIAN
|
||||
/** Convert an OPE value from little-endian. */
|
||||
static inline ope_val_t
|
||||
ope_val_to_le(ope_val_t x)
|
||||
ope_val_from_le(ope_val_t x)
|
||||
{
|
||||
return
|
||||
((x) >> 8) |
|
||||
(((x)&0xff) << 8);
|
||||
}
|
||||
#else
|
||||
#define ope_val_to_le(x) (x)
|
||||
#define ope_val_from_le(x) (x)
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
@ -104,7 +104,7 @@ sum_values_from_cipher(crypto_cipher_t *c, size_t n)
|
|||
crypto_cipher_crypt_inplace(c, (char*)buf, BUFSZ*sizeof(ope_val_t));
|
||||
|
||||
for (i = 0; i < BUFSZ; ++i) {
|
||||
total += ope_val_to_le(buf[i]);
|
||||
total += ope_val_from_le(buf[i]);
|
||||
total += 1;
|
||||
}
|
||||
n -= BUFSZ;
|
||||
|
@ -113,7 +113,7 @@ sum_values_from_cipher(crypto_cipher_t *c, size_t n)
|
|||
memset(buf, 0, n*sizeof(ope_val_t));
|
||||
crypto_cipher_crypt_inplace(c, (char*)buf, n*sizeof(ope_val_t));
|
||||
for (i = 0; i < n; ++i) {
|
||||
total += ope_val_to_le(buf[i]);
|
||||
total += ope_val_from_le(buf[i]);
|
||||
total += 1;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue