Kaynağa Gözat

Merge branch 'maint-0.3.5'

Nick Mathewson 6 yıl önce
ebeveyn
işleme
b77889fc5f
2 değiştirilmiş dosya ile 9 ekleme ve 6 silme
  1. 3 0
      changes/bug28115
  2. 6 6
      src/lib/crypt_ops/crypto_ope.c

+ 3 - 0
changes/bug28115

@@ -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.

+ 6 - 6
src/lib/crypt_ops/crypto_ope.c

@@ -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;
   }