diff --git a/CHANGELOG.md b/CHANGELOG.md index 1431c9c..3707b7f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.15 + +* Fix serialization of DH and ECDH + ## 0.14 * Reduce size of SHA3 context instead of allocating all-size fit memory. save diff --git a/Crypto/PubKey/DH.hs b/Crypto/PubKey/DH.hs index 8cfa5c8..d066944 100644 --- a/Crypto/PubKey/DH.hs +++ b/Crypto/PubKey/DH.hs @@ -76,4 +76,4 @@ generatePublic = calculatePublic -- | generate a shared key using our private number and the other party public number getShared :: Params -> PrivateNumber -> PublicNumber -> SharedKey -getShared (Params p _ bits) (PrivateNumber x) (PublicNumber y) = SharedKey $ i2ospOf_ (bits + 7 `div` 8) $ expSafe y x p +getShared (Params p _ bits) (PrivateNumber x) (PublicNumber y) = SharedKey $ i2ospOf_ ((bits + 7) `div` 8) $ expSafe y x p diff --git a/Crypto/PubKey/ECC/DH.hs b/Crypto/PubKey/ECC/DH.hs index 4a3e727..eb1b61b 100644 --- a/Crypto/PubKey/ECC/DH.hs +++ b/Crypto/PubKey/ECC/DH.hs @@ -42,7 +42,7 @@ calculatePublic curve d = q -- | Generating a shared key using our private number and -- the other party public point. getShared :: Curve -> PrivateNumber -> PublicPoint -> SharedKey -getShared curve db qa = SharedKey $ i2ospOf_ (nbBits + 7 `div` 8) x +getShared curve db qa = SharedKey $ i2ospOf_ ((nbBits + 7) `div` 8) x where Point x _ = pointMul curve db qa nbBits = curveSizeBits curve