aboutsummaryrefslogtreecommitdiffstats
path: root/ecc.hs
blob: 627186450c18dedc9068ad576550688fbf817475 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
data FieldElement =
  FieldElement
    { number :: Int
    , prime :: Int
    }
  deriving (Eq)

instance Show FieldElement where
  show a = "FieldElement_" ++ show (prime a) ++ " " ++ show (number a)

add :: FieldElement -> FieldElement -> FieldElement
add (FieldElement a b) (FieldElement c d)
  | b /= d = error "Distinct Fields"
  | otherwise = FieldElement (mod (a + c) b) b