From 32e7eee0600743f6135a5e13ce06079e4c054d75 Mon Sep 17 00:00:00 2001 From: Vincent Hanquez Date: Wed, 8 Apr 2015 15:52:26 +0100 Subject: [PATCH] add Endian module --- Crypto/Internal/Endian.hs | 41 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 Crypto/Internal/Endian.hs diff --git a/Crypto/Internal/Endian.hs b/Crypto/Internal/Endian.hs new file mode 100644 index 0000000..1fef507 --- /dev/null +++ b/Crypto/Internal/Endian.hs @@ -0,0 +1,41 @@ +-- | +-- Module : Crypto.Internal.Endian +-- License : BSD-style +-- Maintainer : Vincent Hanquez +-- Stability : stable +-- Portability : good +-- +{-# LANGUAGE CPP #-} +module Crypto.Internal.Endian + ( fromBE64, toBE64 + , fromLE64, toLE64 + ) where + +import Crypto.Internal.Compat (byteSwap64) +import Data.Word (Word64) + +#ifndef ARCH_IS_LITTLE_ENDIAN +fromLE64 :: Word64 -> Word64 +fromLE64 = id + +toLE64 :: Word64 -> Word64 +toLE64 = id + +fromBE64 :: Word64 -> Word64 +fromBE64 = byteSwap64 + +toBE64 :: Word64 -> Word64 +toBE64 = byteSwap64 +#else +fromLE64 :: Word64 -> Word64 +fromLE64 = byteSwap64 + +toLE64 :: Word64 -> Word64 +toLE64 = byteSwap64 + +fromBE64 :: Word64 -> Word64 +fromBE64 = id + +toBE64 :: Word64 -> Word64 +toBE64 = id +#endif