summaryrefslogtreecommitdiff
path: root/standalone/android/haskell-patches/crypto-numbers_build-fix.patch
diff options
context:
space:
mode:
Diffstat (limited to 'standalone/android/haskell-patches/crypto-numbers_build-fix.patch')
-rw-r--r--standalone/android/haskell-patches/crypto-numbers_build-fix.patch227
1 files changed, 0 insertions, 227 deletions
diff --git a/standalone/android/haskell-patches/crypto-numbers_build-fix.patch b/standalone/android/haskell-patches/crypto-numbers_build-fix.patch
deleted file mode 100644
index 5c0693a31..000000000
--- a/standalone/android/haskell-patches/crypto-numbers_build-fix.patch
+++ /dev/null
@@ -1,227 +0,0 @@
-From 0cfdb30120976290068f4bcbebbf236b960afbb6 Mon Sep 17 00:00:00 2001
-From: dummy <dummy@example.com>
-Date: Thu, 26 Dec 2013 20:01:30 -0400
-Subject: [PATCH] hack to build
-
----
- Crypto/Number/Basic.hs | 14 --------------
- Crypto/Number/ModArithmetic.hs | 29 -----------------------------
- Crypto/Number/Prime.hs | 18 ------------------
- crypto-numbers.cabal | 2 +-
- 4 files changed, 1 insertion(+), 62 deletions(-)
-
-diff --git a/Crypto/Number/Basic.hs b/Crypto/Number/Basic.hs
-index 65c14b3..eaee853 100644
---- a/Crypto/Number/Basic.hs
-+++ b/Crypto/Number/Basic.hs
-@@ -20,11 +20,7 @@ module Crypto.Number.Basic
- , areEven
- ) where
-
--#if MIN_VERSION_integer_gmp(0,5,1)
--import GHC.Integer.GMP.Internals
--#else
- import Data.Bits
--#endif
-
- -- | sqrti returns two integer (l,b) so that l <= sqrt i <= b
- -- the implementation is quite naive, use an approximation for the first number
-@@ -63,25 +59,16 @@ sqrti i
- -- gcde 'a' 'b' find (x,y,gcd(a,b)) where ax + by = d
- --
- gcde :: Integer -> Integer -> (Integer, Integer, Integer)
--#if MIN_VERSION_integer_gmp(0,5,1)
--gcde a b = (s, t, g)
-- where (# g, s #) = gcdExtInteger a b
-- t = (g - s * a) `div` b
--#else
- gcde a b = if d < 0 then (-x,-y,-d) else (x,y,d) where
- (d, x, y) = f (a,1,0) (b,0,1)
- f t (0, _, _) = t
- f (a', sa, ta) t@(b', sb, tb) =
- let (q, r) = a' `divMod` b' in
- f t (r, sa - (q * sb), ta - (q * tb))
--#endif
-
- -- | get the extended GCD of two integer using the extended binary algorithm (HAC 14.61)
- -- get (x,y,d) where d = gcd(a,b) and x,y satisfying ax + by = d
- gcde_binary :: Integer -> Integer -> (Integer, Integer, Integer)
--#if MIN_VERSION_integer_gmp(0,5,1)
--gcde_binary = gcde
--#else
- gcde_binary a' b'
- | b' == 0 = (1,0,a')
- | a' >= b' = compute a' b'
-@@ -105,7 +92,6 @@ gcde_binary a' b'
- in if u2 >= v2
- then loop g x y (u2 - v2) v2 (a2 - c2) (b2 - d2) c2 d2
- else loop g x y u2 (v2 - u2) a2 b2 (c2 - a2) (d2 - b2)
--#endif
-
- -- | check if a list of integer are all even
- areEven :: [Integer] -> Bool
-diff --git a/Crypto/Number/ModArithmetic.hs b/Crypto/Number/ModArithmetic.hs
-index 942c12f..f8cfc32 100644
---- a/Crypto/Number/ModArithmetic.hs
-+++ b/Crypto/Number/ModArithmetic.hs
-@@ -29,12 +29,8 @@ module Crypto.Number.ModArithmetic
- import Control.Exception (throw, Exception)
- import Data.Typeable
-
--#if MIN_VERSION_integer_gmp(0,5,1)
--import GHC.Integer.GMP.Internals
--#else
- import Crypto.Number.Basic (gcde_binary)
- import Data.Bits
--#endif
-
- -- | Raised when two numbers are supposed to be coprimes but are not.
- data CoprimesAssertionError = CoprimesAssertionError
-@@ -55,13 +51,7 @@ expSafe :: Integer -- ^ base
- -> Integer -- ^ exponant
- -> Integer -- ^ modulo
- -> Integer -- ^ result
--#if MIN_VERSION_integer_gmp(0,5,1)
--expSafe b e m
-- | odd m = powModSecInteger b e m
-- | otherwise = powModInteger b e m
--#else
- expSafe = exponentiation
--#endif
-
- -- | Compute the modular exponentiation of base^exponant using
- -- the fastest algorithm without any consideration for
-@@ -74,11 +64,7 @@ expFast :: Integer -- ^ base
- -> Integer -- ^ modulo
- -> Integer -- ^ result
- expFast =
--#if MIN_VERSION_integer_gmp(0,5,1)
-- powModInteger
--#else
- exponentiation
--#endif
-
- -- note on exponentiation: 0^0 is treated as 1 for mimicking the standard library;
- -- the mathematic debate is still open on whether or not this is true, but pratically
-@@ -87,22 +73,15 @@ expFast =
- -- | exponentiation_rtl_binary computes modular exponentiation as b^e mod m
- -- using the right-to-left binary exponentiation algorithm (HAC 14.79)
- exponentiation_rtl_binary :: Integer -> Integer -> Integer -> Integer
--#if MIN_VERSION_integer_gmp(0,5,1)
--exponentiation_rtl_binary = expSafe
--#else
- exponentiation_rtl_binary 0 0 m = 1 `mod` m
- exponentiation_rtl_binary b e m = loop e b 1
- where sq x = (x * x) `mod` m
- loop !0 _ !a = a `mod` m
- loop !i !s !a = loop (i `shiftR` 1) (sq s) (if odd i then a * s else a)
--#endif
-
- -- | exponentiation computes modular exponentiation as b^e mod m
- -- using repetitive squaring.
- exponentiation :: Integer -> Integer -> Integer -> Integer
--#if MIN_VERSION_integer_gmp(0,5,1)
--exponentiation = expSafe
--#else
- exponentiation b e m
- | b == 1 = b
- | e == 0 = 1
-@@ -110,7 +89,6 @@ exponentiation b e m
- | even e = let p = (exponentiation b (e `div` 2) m) `mod` m
- in (p^(2::Integer)) `mod` m
- | otherwise = (b * exponentiation b (e-1) m) `mod` m
--#endif
-
- --{-# DEPRECATED exponantiation_rtl_binary "typo in API name it's called exponentiation_rtl_binary #-}
- exponantiation_rtl_binary :: Integer -> Integer -> Integer -> Integer
-@@ -122,17 +100,10 @@ exponantiation = exponentiation
-
- -- | inverse computes the modular inverse as in g^(-1) mod m
- inverse :: Integer -> Integer -> Maybe Integer
--#if MIN_VERSION_integer_gmp(0,5,1)
--inverse g m
-- | r == 0 = Nothing
-- | otherwise = Just r
-- where r = recipModInteger g m
--#else
- inverse g m
- | d > 1 = Nothing
- | otherwise = Just (x `mod` m)
- where (x,_,d) = gcde_binary g m
--#endif
-
- -- | Compute the modular inverse of 2 coprime numbers.
- -- This is equivalent to inverse except that the result
-diff --git a/Crypto/Number/Prime.hs b/Crypto/Number/Prime.hs
-index 0cea9da..458c94d 100644
---- a/Crypto/Number/Prime.hs
-+++ b/Crypto/Number/Prime.hs
-@@ -3,9 +3,7 @@
- #ifndef MIN_VERSION_integer_gmp
- #define MIN_VERSION_integer_gmp(a,b,c) 0
- #endif
--#if MIN_VERSION_integer_gmp(0,5,1)
- {-# LANGUAGE MagicHash #-}
--#endif
- -- |
- -- Module : Crypto.Number.Prime
- -- License : BSD-style
-@@ -30,12 +28,7 @@ import Crypto.Number.Generate
- import Crypto.Number.Basic (sqrti, gcde_binary)
- import Crypto.Number.ModArithmetic (exponantiation)
-
--#if MIN_VERSION_integer_gmp(0,5,1)
--import GHC.Integer.GMP.Internals
--import GHC.Base
--#else
- import Data.Bits
--#endif
-
- -- | returns if the number is probably prime.
- -- first a list of small primes are implicitely tested for divisibility,
-@@ -78,21 +71,11 @@ findPrimeFromWith rng prop !n
- -- | find a prime from a starting point with no specific property.
- findPrimeFrom :: CPRG g => g -> Integer -> (Integer, g)
- findPrimeFrom rng n =
--#if MIN_VERSION_integer_gmp(0,5,1)
-- (nextPrimeInteger n, rng)
--#else
- findPrimeFromWith rng (\g _ -> (True, g)) n
--#endif
-
- -- | Miller Rabin algorithm return if the number is probably prime or composite.
- -- the tries parameter is the number of recursion, that determines the accuracy of the test.
- primalityTestMillerRabin :: CPRG g => g -> Int -> Integer -> (Bool, g)
--#if MIN_VERSION_integer_gmp(0,5,1)
--primalityTestMillerRabin rng (I# tries) !n =
-- case testPrimeInteger n tries of
-- 0# -> (False, rng)
-- _ -> (True, rng)
--#else
- primalityTestMillerRabin rng tries !n
- | n <= 3 = error "Miller-Rabin requires tested value to be > 3"
- | even n = (False, rng)
-@@ -129,7 +112,6 @@ primalityTestMillerRabin rng tries !n
- | x2 == 1 = False
- | x2 /= nm1 = loop' ws ((x2*x2) `mod` n) (r+1)
- | otherwise = loop ws
--#endif
-
- {-
- n < z -> witness to test
-diff --git a/crypto-numbers.cabal b/crypto-numbers.cabal
-index 9610e34..6669d78 100644
---- a/crypto-numbers.cabal
-+++ b/crypto-numbers.cabal
-@@ -15,7 +15,7 @@ Extra-Source-Files: Tests/*.hs
-
- Flag integer-gmp
- Description: Are we using integer-gmp?
-- Default: True
-+ Default: False
-
- Library
- Build-Depends: base >= 4 && < 5
---
-1.7.10.4
-