Hello community, here is the log from the commit of package ghc-connection for openSUSE:Factory checked in at 2015-08-25 07:19:08 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ghc-connection (Old) and /work/SRC/openSUSE:Factory/.ghc-connection.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-connection" Changes: -------- --- /work/SRC/openSUSE:Factory/ghc-connection/ghc-connection.changes 2015-05-21 08:35:48.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.ghc-connection.new/ghc-connection.changes 2015-08-25 08:48:12.000000000 +0200 @@ -1,0 +2,5 @@ +Thu Aug 6 20:47:45 UTC 2015 - [email protected] + +- update to 0.2.5 + +------------------------------------------------------------------- Old: ---- connection-0.2.4.tar.gz New: ---- connection-0.2.5.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ghc-connection.spec ++++++ --- /var/tmp/diff_new_pack.Kf6UrI/_old 2015-08-25 08:48:13.000000000 +0200 +++ /var/tmp/diff_new_pack.Kf6UrI/_new 2015-08-25 08:48:13.000000000 +0200 @@ -17,8 +17,8 @@ %global pkg_name connection -Name: ghc-%{pkg_name} -Version: 0.2.4 +Name: ghc-connection +Version: 0.2.5 Release: 0 Summary: Simple and easy network connections API Group: System/Libraries @@ -34,10 +34,8 @@ BuildRequires: ghc-byteable-devel BuildRequires: ghc-bytestring-devel BuildRequires: ghc-containers-devel -BuildRequires: ghc-crypto-random-devel BuildRequires: ghc-data-default-class-devel BuildRequires: ghc-network-devel -BuildRequires: ghc-securemem-devel BuildRequires: ghc-socks-devel BuildRequires: ghc-tls-devel BuildRequires: ghc-x509-devel ++++++ connection-0.2.4.tar.gz -> connection-0.2.5.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/connection-0.2.4/Network/Connection/ChachaRNG.hs new/connection-0.2.5/Network/Connection/ChachaRNG.hs --- old/connection-0.2.4/Network/Connection/ChachaRNG.hs 2015-01-16 02:48:23.000000000 +0100 +++ new/connection-0.2.5/Network/Connection/ChachaRNG.hs 1970-01-01 01:00:00.000000000 +0100 @@ -1,63 +0,0 @@ --- | --- Module : Network.Connection.ChachaRNG --- License : BSD-style --- Maintainer : Vincent Hanquez <[email protected]> --- Stability : stable --- Portability : good --- -{-# LANGUAGE ForeignFunctionInterface #-} -module Network.Connection.ChachaRNG - ( initialize - , generate - , ChachaRNG - ) where - -import Crypto.Random -import Data.SecureMem -import Data.ByteString (ByteString) -import qualified Data.ByteString.Internal as B -import qualified Data.ByteString as B -import Data.Byteable -import Data.Word -import Foreign.Ptr -import Foreign.ForeignPtr -import Foreign.C.Types -import System.IO.Unsafe - -instance CPRG ChachaRNG where - cprgCreate entPool = initialize (grabEntropy 40 entPool) - cprgGenerate = generate - --- | ChaCha context -newtype ChachaRNG = ChachaRNG SecureMem - --- | Initialize a new ChaCha context with the number of rounds, --- the key and the nonce associated. -initialize :: Byteable seed - => seed -- ^ 40 bytes of seed - -> ChachaRNG -- ^ the initial ChaCha state -initialize seed - | sLen /= 40 = error "ChaCha Random: seed length should be 40 bits" - | otherwise = unsafePerformIO $ do - stPtr <- createSecureMem 64 $ \stPtr -> - withBytePtr seed $ \seedPtr -> - ccryptonite_chacha_init (castPtr stPtr) seedPtr - return $ ChachaRNG stPtr - where sLen = byteableLength seed - -generate :: Int -> ChachaRNG -> (ByteString, ChachaRNG) -generate nbBytes st@(ChachaRNG prevSt) - | nbBytes <= 0 = (B.empty, st) - | otherwise = unsafePerformIO $ do - output <- B.mallocByteString nbBytes - newSt <- secureMemCopy prevSt - withForeignPtr output $ \dstPtr -> - withSecureMemPtr newSt $ \stPtr -> - ccryptonite_chacha_random 8 dstPtr (castPtr stPtr) (fromIntegral nbBytes) - return (B.PS output 0 nbBytes, ChachaRNG newSt) - -foreign import ccall "connection_chacha_init" - ccryptonite_chacha_init :: Ptr ChachaRNG -> Ptr Word8 -> IO () - -foreign import ccall "connection_chacha_random" - ccryptonite_chacha_random :: Int -> Ptr Word8 -> Ptr ChachaRNG -> CUInt -> IO () diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/connection-0.2.4/Network/Connection/Types.hs new/connection-0.2.5/Network/Connection/Types.hs --- old/connection-0.2.4/Network/Connection/Types.hs 2015-01-16 02:48:23.000000000 +0100 +++ new/connection-0.2.5/Network/Connection/Types.hs 2015-06-19 22:32:33.000000000 +0200 @@ -11,7 +11,6 @@ where import Control.Concurrent.MVar (MVar) -import Crypto.Random (EntropyPool) import Data.Default.Class import Data.X509.CertificateStore @@ -94,5 +93,4 @@ -- when using a TLS enabled connection. data ConnectionContext = ConnectionContext { globalCertificateStore :: !CertificateStore - , globalEntropyPool :: !EntropyPool } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/connection-0.2.4/Network/Connection.hs new/connection-0.2.5/Network/Connection.hs --- old/connection-0.2.4/Network/Connection.hs 2015-01-16 02:48:23.000000000 +0100 +++ new/connection-0.2.5/Network/Connection.hs 2015-06-19 22:32:33.000000000 +0200 @@ -65,9 +65,6 @@ import qualified Data.ByteString.Char8 as BC import qualified Data.ByteString.Lazy as L -import Crypto.Random (createEntropyPool, grabEntropyIO) -import qualified Network.Connection.ChachaRNG as RNG - import System.Environment import System.IO import qualified Data.Map as M @@ -93,7 +90,6 @@ -- | Initialize the library with shared parameters between connection. initConnectionContext :: IO ConnectionContext initConnectionContext = ConnectionContext <$> getSystemCertificateStore - <*> createEntropyPool -- | Create a final TLS 'ClientParams' according to the destination and the -- TLSSettings. @@ -136,7 +132,7 @@ -> IO Connection connectFromHandle cg h p = withSecurity (connectionUseSecure p) where withSecurity Nothing = connectionNew cid $ ConnectionStream h - withSecurity (Just tlsSettings) = tlsEstablish cg h (makeTLSParams cg cid tlsSettings) >>= connectionNew cid . ConnectionTLS + withSecurity (Just tlsSettings) = tlsEstablish h (makeTLSParams cg cid tlsSettings) >>= connectionNew cid . ConnectionTLS cid = (connectionHostname p, connectionPort p) -- | connect to a destination using the parameter @@ -300,7 +296,7 @@ modifyMVar_ (connectionBuffer connection) $ \b -> modifyMVar (connectionBackend connection) $ \backend -> case backend of - (ConnectionStream h) -> do ctx <- tlsEstablish cg h (makeTLSParams cg (connectionID connection) params) + (ConnectionStream h) -> do ctx <- tlsEstablish h (makeTLSParams cg (connectionID connection) params) return (ConnectionTLS ctx, Just B.empty) (ConnectionTLS _) -> return (backend, b) @@ -310,9 +306,8 @@ where isSecure (ConnectionStream _) = return False isSecure (ConnectionTLS _) = return True -tlsEstablish :: ConnectionContext -> Handle -> TLS.ClientParams -> IO TLS.Context -tlsEstablish cg handle tlsParams = do - rng <- RNG.initialize <$> grabEntropyIO 40 (globalEntropyPool cg) - ctx <- TLS.contextNew handle tlsParams rng +tlsEstablish :: Handle -> TLS.ClientParams -> IO TLS.Context +tlsEstablish handle tlsParams = do + ctx <- TLS.contextNew handle tlsParams TLS.handshake ctx return ctx diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/connection-0.2.4/cbits/cryptonite_bitfn.h new/connection-0.2.5/cbits/cryptonite_bitfn.h --- old/connection-0.2.4/cbits/cryptonite_bitfn.h 2015-01-16 02:48:23.000000000 +0100 +++ new/connection-0.2.5/cbits/cryptonite_bitfn.h 1970-01-01 01:00:00.000000000 +0100 @@ -1,251 +0,0 @@ -/* - * Copyright (C) 2006-2014 Vincent Hanquez <[email protected]> - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef BITFN_H -#define BITFN_H -#include <stdint.h> - -#ifndef NO_INLINE_ASM -/**********************************************************/ -# if (defined(__i386__)) -# define ARCH_HAS_SWAP32 -static inline uint32_t bitfn_swap32(uint32_t a) -{ - asm ("bswap %0" : "=r" (a) : "0" (a)); - return a; -} -/**********************************************************/ -# elif (defined(__arm__)) -# define ARCH_HAS_SWAP32 -static inline uint32_t bitfn_swap32(uint32_t a) -{ - uint32_t tmp = a; - asm volatile ("eor %1, %0, %0, ror #16\n" - "bic %1, %1, #0xff0000\n" - "mov %0, %0, ror #8\n" - "eor %0, %0, %1, lsr #8\n" - : "=r" (a), "=r" (tmp) : "0" (a), "1" (tmp)); - return a; -} -/**********************************************************/ -# elif defined(__x86_64__) -# define ARCH_HAS_SWAP32 -# define ARCH_HAS_SWAP64 -static inline uint32_t bitfn_swap32(uint32_t a) -{ - asm ("bswap %0" : "=r" (a) : "0" (a)); - return a; -} - -static inline uint64_t bitfn_swap64(uint64_t a) -{ - asm ("bswap %0" : "=r" (a) : "0" (a)); - return a; -} - -# endif -#endif /* NO_INLINE_ASM */ -/**********************************************************/ - -#ifndef ARCH_HAS_ROL32 -static inline uint32_t rol32(uint32_t word, uint32_t shift) -{ - return (word << shift) | (word >> (32 - shift)); -} -#endif - -#ifndef ARCH_HAS_ROR32 -static inline uint32_t ror32(uint32_t word, uint32_t shift) -{ - return (word >> shift) | (word << (32 - shift)); -} -#endif - -#ifndef ARCH_HAS_ROL64 -static inline uint64_t rol64(uint64_t word, uint32_t shift) -{ - return (word << shift) | (word >> (64 - shift)); -} -#endif - -#ifndef ARCH_HAS_ROR64 -static inline uint64_t ror64(uint64_t word, uint32_t shift) -{ - return (word >> shift) | (word << (64 - shift)); -} -#endif - -#ifndef ARCH_HAS_SWAP32 -static inline uint32_t bitfn_swap32(uint32_t a) -{ - return (a << 24) | ((a & 0xff00) << 8) | ((a >> 8) & 0xff00) | (a >> 24); -} -#endif - -#ifndef ARCH_HAS_ARRAY_SWAP32 -static inline void array_swap32(uint32_t *d, uint32_t *s, uint32_t nb) -{ - while (nb--) - *d++ = bitfn_swap32(*s++); -} -#endif - -#ifndef ARCH_HAS_SWAP64 -static inline uint64_t bitfn_swap64(uint64_t a) -{ - return ((uint64_t) bitfn_swap32((uint32_t) (a >> 32))) | - (((uint64_t) bitfn_swap32((uint32_t) a)) << 32); -} -#endif - -#ifndef ARCH_HAS_ARRAY_SWAP64 -static inline void array_swap64(uint64_t *d, uint64_t *s, uint32_t nb) -{ - while (nb--) - *d++ = bitfn_swap64(*s++); -} -#endif - -#ifndef ARCH_HAS_MEMORY_ZERO -static inline void memory_zero(void *ptr, uint32_t len) -{ - uint32_t *ptr32 = ptr; - uint8_t *ptr8; - int i; - - for (i = 0; i < len / 4; i++) - *ptr32++ = 0; - if (len % 4) { - ptr8 = (uint8_t *) ptr32; - for (i = len % 4; i >= 0; i--) - ptr8[i] = 0; - } -} -#endif - -#ifndef ARCH_HAS_ARRAY_COPY32 -static inline void array_copy32(uint32_t *d, uint32_t *s, uint32_t nb) -{ - while (nb--) *d++ = *s++; -} -#endif - -#ifndef ARCH_HAS_ARRAY_XOR32 -static inline void array_xor32(uint32_t *d, uint32_t *s, uint32_t nb) -{ - while (nb--) *d++ ^= *s++; -} -#endif - -#ifndef ARCH_HAS_ARRAY_COPY64 -static inline void array_copy64(uint64_t *d, uint64_t *s, uint32_t nb) -{ - while (nb--) *d++ = *s++; -} -#endif - -#ifdef __GNUC__ -#define bitfn_ntz(n) __builtin_ctz(n) -#else -#error "define ntz for your platform" -#endif - -#ifdef __MINGW32__ - # define LITTLE_ENDIAN 1234 - # define BYTE_ORDER LITTLE_ENDIAN -#elif defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__) - # include <sys/endian.h> -#elif defined(__OpenBSD__) || defined(__SVR4) - # include <sys/types.h> -#elif defined(__APPLE__) - # include <machine/endian.h> -#elif defined( BSD ) && ( BSD >= 199103 ) - # include <machine/endian.h> -#elif defined( __QNXNTO__ ) && defined( __LITTLEENDIAN__ ) - # define LITTLE_ENDIAN 1234 - # define BYTE_ORDER LITTLE_ENDIAN -#elif defined( __QNXNTO__ ) && defined( __BIGENDIAN__ ) - # define BIG_ENDIAN 1234 - # define BYTE_ORDER BIG_ENDIAN -#else - # include <endian.h> -#endif -/* big endian to cpu */ -#if LITTLE_ENDIAN == BYTE_ORDER - -# define be32_to_cpu(a) bitfn_swap32(a) -# define cpu_to_be32(a) bitfn_swap32(a) -# define le32_to_cpu(a) (a) -# define cpu_to_le32(a) (a) -# define be64_to_cpu(a) bitfn_swap64(a) -# define cpu_to_be64(a) bitfn_swap64(a) -# define le64_to_cpu(a) (a) -# define cpu_to_le64(a) (a) - -# define cpu_to_le32_array(d, s, l) array_copy32(d, s, l) -# define le32_to_cpu_array(d, s, l) array_copy32(d, s, l) -# define cpu_to_be32_array(d, s, l) array_swap32(d, s, l) -# define be32_to_cpu_array(d, s, l) array_swap32(d, s, l) - -# define cpu_to_le64_array(d, s, l) array_copy64(d, s, l) -# define le64_to_cpu_array(d, s, l) array_copy64(d, s, l) -# define cpu_to_be64_array(d, s, l) array_swap64(d, s, l) -# define be64_to_cpu_array(d, s, l) array_swap64(d, s, l) - -# define ror32_be(a, s) rol32(a, s) -# define rol32_be(a, s) ror32(a, s) - -# define ARCH_IS_LITTLE_ENDIAN - -#elif BIG_ENDIAN == BYTE_ORDER - -# define be32_to_cpu(a) (a) -# define cpu_to_be32(a) (a) -# define be64_to_cpu(a) (a) -# define cpu_to_be64(a) (a) -# define le64_to_cpu(a) bitfn_swap64(a) -# define cpu_to_le64(a) bitfn_swap64(a) -# define le32_to_cpu(a) bitfn_swap32(a) -# define cpu_to_le32(a) bitfn_swap32(a) - -# define cpu_to_le32_array(d, s, l) array_swap32(d, s, l) -# define le32_to_cpu_array(d, s, l) array_swap32(d, s, l) -# define cpu_to_be32_array(d, s, l) array_copy32(d, s, l) -# define be32_to_cpu_array(d, s, l) array_copy32(d, s, l) - -# define cpu_to_le64_array(d, s, l) array_swap64(d, s, l) -# define le64_to_cpu_array(d, s, l) array_swap64(d, s, l) -# define cpu_to_be64_array(d, s, l) array_copy64(d, s, l) -# define be64_to_cpu_array(d, s, l) array_copy64(d, s, l) - -# define ror32_be(a, s) ror32(a, s) -# define rol32_be(a, s) rol32(a, s) - -# define ARCH_IS_BIG_ENDIAN - -#else -# error "endian not supported" -#endif - -#endif /* !BITFN_H */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/connection-0.2.4/cbits/random_chacha.c new/connection-0.2.5/cbits/random_chacha.c --- old/connection-0.2.4/cbits/random_chacha.c 2015-01-16 02:48:23.000000000 +0100 +++ new/connection-0.2.5/cbits/random_chacha.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,141 +0,0 @@ -/* - * Copyright (c) 2014 Vincent Hanquez <[email protected]> - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the author nor the names of his contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include <stdint.h> -#include <string.h> -#include "random_chacha.h" -#include "cryptonite_bitfn.h" -#include <stdio.h> - -#define USE_8BITS 0 - -#define QR(a,b,c,d) \ - a += b; d = rol32(d ^ a,16); \ - c += d; b = rol32(b ^ c,12); \ - a += b; d = rol32(d ^ a, 8); \ - c += d; b = rol32(b ^ c, 7); - -static const uint8_t sigma[16] = "expand 32-byte k"; -static const uint8_t tau[16] = "expand 16-byte k"; - -static inline uint32_t load32(const uint8_t *p) -{ - return le32_to_cpu(*((uint32_t *) p)); -} - -static void chacha_core(int rounds, block *out, const cryptonite_chacha_state *in) -{ - uint32_t x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15; - int i; - - x0 = in->d[0]; x1 = in->d[1]; x2 = in->d[2]; x3 = in->d[3]; - x4 = in->d[4]; x5 = in->d[5]; x6 = in->d[6]; x7 = in->d[7]; - x8 = in->d[8]; x9 = in->d[9]; x10 = in->d[10]; x11 = in->d[11]; - x12 = in->d[12]; x13 = in->d[13]; x14 = in->d[14]; x15 = in->d[15]; - - for (i = rounds; i > 0; i -= 2) { - QR(x0, x4, x8, x12); - QR(x1, x5, x9, x13); - QR(x2, x6, x10, x14); - QR(x3, x7, x11, x15); - - QR(x0, x5, x10, x15); - QR(x1, x6, x11, x12); - QR(x2, x7, x8, x13); - QR(x3, x4, x9, x14); - } - - x0 += in->d[0]; x1 += in->d[1]; x2 += in->d[2]; x3 += in->d[3]; - x4 += in->d[4]; x5 += in->d[5]; x6 += in->d[6]; x7 += in->d[7]; - x8 += in->d[8]; x9 += in->d[9]; x10 += in->d[10]; x11 += in->d[11]; - x12 += in->d[12]; x13 += in->d[13]; x14 += in->d[14]; x15 += in->d[15]; - - out->d[0] = cpu_to_le32(x0); - out->d[1] = cpu_to_le32(x1); - out->d[2] = cpu_to_le32(x2); - out->d[3] = cpu_to_le32(x3); - out->d[4] = cpu_to_le32(x4); - out->d[5] = cpu_to_le32(x5); - out->d[6] = cpu_to_le32(x6); - out->d[7] = cpu_to_le32(x7); - out->d[8] = cpu_to_le32(x8); - out->d[9] = cpu_to_le32(x9); - out->d[10] = cpu_to_le32(x10); - out->d[11] = cpu_to_le32(x11); - out->d[12] = cpu_to_le32(x12); - out->d[13] = cpu_to_le32(x13); - out->d[14] = cpu_to_le32(x14); - out->d[15] = cpu_to_le32(x15); -} - -/* 40 bytes of key (key (32 bytes) + nonce (8)) */ -void connection_chacha_init(cryptonite_chacha_state *st, const uint8_t *key) -{ - const uint8_t *constants = sigma; - const uint8_t *iv = key + 32; - int i; - - st->d[0] = load32(constants + 0); - st->d[1] = load32(constants + 4); - st->d[2] = load32(constants + 8); - st->d[3] = load32(constants + 12); - - st->d[4] = load32(key + 0); - st->d[5] = load32(key + 4); - st->d[6] = load32(key + 8); - st->d[7] = load32(key + 12); - key += 16; - st->d[8] = load32(key + 0); - st->d[9] = load32(key + 4); - st->d[10] = load32(key + 8); - st->d[11] = load32(key + 12); - st->d[12] = 0; - st->d[13] = 0; - st->d[14] = load32(iv + 0); - st->d[15] = load32(iv + 4); -} - -void connection_chacha_random(uint32_t rounds, uint8_t *dst, cryptonite_chacha_state *st, uint32_t bytes) -{ - block out; - - if (!bytes) - return; - for (; bytes >= 16; bytes -= 16, dst += 16) { - chacha_core(rounds, &out, st); - memcpy(dst, out.b + 40, 16); - connection_chacha_init(st, out.b); - } - if (bytes) { - chacha_core(rounds, &out, st); - memcpy(dst, out.b + 40, bytes); - connection_chacha_init(st, out.b); - } -} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/connection-0.2.4/cbits/random_chacha.h new/connection-0.2.5/cbits/random_chacha.h --- old/connection-0.2.4/cbits/random_chacha.h 2015-01-16 02:48:23.000000000 +0100 +++ new/connection-0.2.5/cbits/random_chacha.h 1970-01-01 01:00:00.000000000 +0100 @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2014 Vincent Hanquez <[email protected]> - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the author nor the names of his contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ -#ifndef CRYPTONITE_CHACHA -#define CRYPTONITE_CHACHA - -typedef union { - uint64_t q[8]; - uint32_t d[16]; - uint8_t b[64]; -} block; - -typedef block cryptonite_chacha_state; - -void connection_chacha_init(cryptonite_chacha_state *st, const uint8_t *seed); -void connection_chacha_random(uint32_t rounds, uint8_t *dst, cryptonite_chacha_state *st, uint32_t bytes); - -#endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/connection-0.2.4/connection.cabal new/connection-0.2.5/connection.cabal --- old/connection-0.2.4/connection.cabal 2015-01-16 02:48:23.000000000 +0100 +++ new/connection-0.2.5/connection.cabal 2015-06-19 22:32:33.000000000 +0200 @@ -1,5 +1,5 @@ Name: connection -Version: 0.2.4 +Version: 0.2.5 Description: Simple network library for all your connection need. . @@ -20,29 +20,23 @@ Homepage: http://github.com/vincenthz/hs-connection extra-source-files: README.md CHANGELOG.md - cbits/*.h Library Build-Depends: base >= 3 && < 5 , bytestring , byteable - , crypto-random , containers , data-default-class , network >= 2.3 - , tls >= 1.2 + , tls >= 1.3 , socks >= 0.4 - , securemem - , x509 >= 1.4 - , x509-store >= 1.4 - , x509-system >= 1.4 + , x509 >= 1.5 + , x509-store >= 1.5 + , x509-system >= 1.5 , x509-validation >= 1.5 Exposed-modules: Network.Connection Other-modules: Network.Connection.Types - Network.Connection.ChachaRNG ghc-options: -Wall - C-sources: cbits/random_chacha.c - include-dirs: cbits source-repository head type: git
