packages feed

HsOpenSSL 0.11.4.3 → 0.11.4.4

raw patch · 4 files changed

+61/−2 lines, 4 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

ChangeLog view
@@ -1,3 +1,11 @@+2017-03-24  Vladimir Shabanov  <vshabanoff@gmail.com>++	* HsOpenSSL.cabal (Version): Bump version to 0.11.4.4++	* OpenSSL/EVP/Digest.hsc (hmacLBS): fixed linking error (#19).++	* Tests/OpenSSL/EVP/Digest.hs: added tests for hmacBS and hmacLBS.+ 2017-03-22  Vladimir Shabanov  <vshabanoff@gmail.com>  	* HsOpenSSL.cabal (Version): Bump version to 0.11.4.3
HsOpenSSL.cabal view
@@ -12,7 +12,7 @@     <http://hackage.haskell.org/package/tls>, which is a pure Haskell     implementation of SSL.     .-Version:       0.11.4.3+Version:       0.11.4.4 License:       PublicDomain License-File:  COPYING Author:        Adam Langley, Mikhail Vorozhtsov, PHO, Taru Karttunen@@ -168,6 +168,19 @@ Test-Suite test-evp-base64     Type:    exitcode-stdio-1.0     Main-Is: Test/OpenSSL/EVP/Base64.hs+    Other-Modules: Test.OpenSSL.TestUtils+    Build-Depends:+        HsOpenSSL,+        base                 >= 4.4 && < 5,+        bytestring           >= 0.9 && < 0.11+    Default-Language:+        Haskell2010+    GHC-Options:+        -Wall++Test-Suite test-evp-digest+    Type:    exitcode-stdio-1.0+    Main-Is: Test/OpenSSL/EVP/Digest.hs     Other-Modules: Test.OpenSSL.TestUtils     Build-Depends:         HsOpenSSL,
OpenSSL/EVP/Internal.hsc view
@@ -327,7 +327,7 @@ newtype HmacCtx = HmacCtx (ForeignPtr HMAC_CTX) data HMAC_CTX -foreign import ccall unsafe "HsOpenSSL_HMAC_CTX_init"+foreign import ccall unsafe "HsOpenSSL_HMAC_CTX_new"   _hmac_ctx_new :: IO (Ptr HMAC_CTX)  foreign import ccall unsafe "HMAC_Init"
+ Test/OpenSSL/EVP/Digest.hs view
@@ -0,0 +1,38 @@+module Main (main) where++import qualified Data.ByteString.Char8 as B+import qualified Data.ByteString.Lazy.Char8 as BL+import Data.Char+import OpenSSL+import Text.Printf+import OpenSSL.EVP.Digest+import Test.OpenSSL.TestUtils++main :: IO ()+main = withOpenSSL $ do+    Just md5 <- getDigestByName "MD5"+    Just sha1 <- getDigestByName "SHA1"+    Just sha256 <- getDigestByName "SHA256"+    let hex  = concatMap (printf "%02x" . ord) . B.unpack+        checkHMAC digestName key testData result = do+            assertEqual what result $+                hex $ hmacBS d (B.pack key) (B.pack testData)+            assertEqual ("lazy " ++ what) result $+                hex $ hmacLBS d (B.pack key) (BL.pack testData)+            where what =+                      "HMAC_" ++ digestName +++                      "(" ++ show key ++ ", " ++ show testData ++ ")"+                  d = case digestName of+                      "MD5" -> md5+                      "SHA1" -> sha1+                      "SHA256" -> sha256+                      _ -> error digestName+    -- test data from+    -- https://en.wikipedia.org/wiki/Hash-based_message_authentication_code++    checkHMAC "MD5" "" ""    "74e6f7298a9c2d168935f58c001bad88"+    checkHMAC "SHA1" "" ""   "fbdb1d1b18aa6c08324b7d64b71fb76370690e1d"+    checkHMAC "SHA256" "" "" "b613679a0814d9ec772f95d778c35fc5ff1697c493715653c6c712144292c5ad"+    checkHMAC "MD5" "key" "The quick brown fox jumps over the lazy dog"    "80070713463e7749b90c2dc24911e275"+    checkHMAC "SHA1" "key" "The quick brown fox jumps over the lazy dog"   "de7c9b85b8b78aa6bc8a7a36f70a90701c9db4d9"+    checkHMAC "SHA256" "key" "The quick brown fox jumps over the lazy dog" "f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8"