Running regress/lib/libcrypto/aead fails on big-endian platforms without
the following diff, for the ``Test vector from RFC7539 2.8.2'' test, due
to 64-bit counters being truncated to size_t.

Index: chacha/chacha.c
===================================================================
RCS file: /OpenBSD/src/lib/libssl/src/crypto/chacha/chacha.c,v
retrieving revision 1.6
diff -u -p -r1.6 chacha.c
--- chacha/chacha.c     8 Jul 2014 14:30:23 -0000       1.6
+++ chacha/chacha.c     6 Nov 2015 05:37:19 -0000
@@ -57,7 +57,7 @@ ChaCha(ChaCha_ctx *ctx, unsigned char *o
 
 void
 CRYPTO_chacha_20(unsigned char *out, const unsigned char *in, size_t len,
-    const unsigned char key[32], const unsigned char iv[8], size_t counter)
+    const unsigned char key[32], const unsigned char iv[8], uint64_t counter)
 {
        struct chacha_ctx ctx;
 
Index: chacha/chacha.h
===================================================================
RCS file: /OpenBSD/src/lib/libssl/src/crypto/chacha/chacha.h,v
retrieving revision 1.6
diff -u -p -r1.6 chacha.h
--- chacha/chacha.h     25 Jul 2014 14:04:51 -0000      1.6
+++ chacha/chacha.h     6 Nov 2015 05:37:19 -0000
@@ -44,7 +44,7 @@ void ChaCha(ChaCha_ctx *ctx, unsigned ch
     size_t len);
 
 void CRYPTO_chacha_20(unsigned char *out, const unsigned char *in, size_t len,
-    const unsigned char key[32], const unsigned char iv[8], size_t counter);
+    const unsigned char key[32], const unsigned char iv[8], uint64_t counter);
 
 #ifdef  __cplusplus
 }

Reply via email to