HsOpenSSL 0.10.3.5 → 0.10.3.6
raw patch · 5 files changed
+473/−441 lines, 5 filesdep ~base
Dependency ranges changed: base
Files
- AUTHORS +1/−1
- ChangeLog +454/−0
- HsOpenSSL.cabal +2/−2
- NEWS +0/−438
- OpenSSL.hsc +16/−0
AUTHORS view
@@ -1,4 +1,4 @@-This is the list of contributors to the HsOpenSSL.+This is an incomplete list of contributors to the HsOpenSSL: * Adam Langley <agl@imperialviolet.org> * John Van Enk <vanenkj@gmail.com> and his friend
+ ChangeLog view
@@ -0,0 +1,454 @@+2013-12-11 PHO <pho@cielonegro.org>++ * OpenSSL.hsc [base < 4.6] (modifyMVar_): Fix compilation,+ Patch by Gregory Collins.++ * HsOpenSSL.cabal: Bump version to 0.10.3.6++2013-11-07 PHO <pho@cielonegro.org>++ * OpenSSL.hsc (withOpenSSL): OpenSSL.withOpenSSL is now safe to be+ applied redundantly, Suggested by Andrew Cowie (#26).++ * COPYING: Update the license to CC0: copyright waiver with a+ public license fallback. See+ http://creativecommons.org/publicdomain/zero/1.0/++ * HsOpenSSL.cabal: Bump version to 0.10.3.5++2013-09-05 PHO <pho@cielonegro.org>++ * cbits/HsOpenSSL.c, cbits/HsOpenSSL.h: Fix a compilation issue+ that occurs when using a different builddir with "cabal build+ --builddir=DIR", Reported by Bit Connor (#23), Gregory Collins+ (#24) and Bas van Dijk (#25).++ * HsOpenSSL.cabal: Bump version to 0.10.3.4++2012-08-28 PHO <pho@cielonegro.org>++ * OpenSSL/Session.hsc: Merged #17 "Use MVar instead of QSem in+ OpenSSL.Session", Patch by Mikhail Vorozhtsov.++ * HsOpenSSL.cabal: Bump version to 0.10.3.3++2012-07-21 PHO <pho@cielonegro.org>++ * OpenSSL/PEM.hsc, OpenSSL/Session.hsc: Merged #15 "Fixed build+ with base-4.6", Patch by Mikhail Vorozhtsov.++ * HsOpenSSL.cabal: Added a configuration flag 'fast-bignum' (#16).++ * HsOpenSSL.cabal: Bump version to 0.10.3.2++2012-04-24 PHO <pho@cielonegro.org>++ * OpenSSL/X509/Store.hsc: Merged #14 "Fixed X509_STORE_CTX+ bindings vs OpenSSL 0.9.x", Patch by Mikhail Vorozhtsov.++ * HsOpenSSL.cabal: Bump version to 0.10.3.1++2012-04-17 PHO <pho@cielonegro.org>++ * OpenSSL/X509/Store.hsc (getStoreCtxCert, getStoreCtxIssuer)+ (getStoreCtxCRL, getStoreCtxChain): Merged #12 "Bindings to some+ of the X509_STORE_CTX functions", Patch by Mikhail Vorozhtsov.++ * OpenSSL/Session.hsc: Merged #13 "Fixed early verification+ callback deallocation crash", Patch by Mikhail Vorozhtsov.++ * HsOpenSSL.cabal: Bump version to 0.10.3++2012-04-16 PHO <pho@cielonegro.org>++ * OpenSSL/PEM.hsc: Merged #10 "Fix X509 PEM reading/writing",+ Patch by Mikhail Vorozhtsov.++ * HsOpenSSL.cabal: Bump version to 0.10.2.1++2012-04-06 PHO <pho@cielonegro.org>++ * OpenSSL/Session.hsc (readPtr, tryReadPtr, writePtr)+ (tryWritePtr): Merged #9 "Add raw pointer read/write operations",+ Patch by Iavor S. Diatchki.++ * cbits/HsOpenSSL.h: Fixed #8 "HsOpenSSL 0.10.1.4 won't build",+ Reported by vcxp.++ * HsOpenSSL.cabal: Bump version to 0.10.2++2012-03-08 PHO <pho@cielonegro.org>++ * OpenSSL/EVP/Internal.hsc, OpenSSL/X509.hsc: Fixed #7 "Haskell+ Platform 2011.4 Support", Reported by stepcut.++ * HsOpenSSL.cabal: Bump version to 0.10.1.4++2012-03-04 PHO <pho@cielonegro.org>++ * OpenSSL/Session.hsc (SSL, SSLContext, SSLResult, ShutdownType)+ (VerificationMode): Make these types instances of Typeable.++ * OpenSSL/Utils.hs: Add Num to constraints with Bits,+ Patch by Ben Gamari.++ * OpenSSL/DSA.hsc, OpenSSL/EVP/Base64.hsc, OpenSSL/EVP/Digest.hsc,+ OpenSSL/EVP/Open.hsc, OpenSSL/RSA.hsc: Use unsafePerformIO from+ System.IO.Unsafe, Patch by Ben Gamari.++ * OpenSSL/EVP/Internal.hsc, OpenSSL/X509.hsc:+ Use unsafeForeignPtrToPtr from Foreign.ForeignPtr.Unsafe,+ Patch by Ben Gamari.++ * HsOpenSSL.cabal: Bump version to 0.10.1.3++2011-11-16 PHO <pho@cielonegro.org>++ * OpenSSL/Session.hsc: SSL_get_error() must be called within the+ OS thread which caused the failed operation as it inspects the+ thread-local storage.++ * OpenSSL/Session.hsc: write/tryWrite should throw EPIPE for+ cleanly-closed connections rather than EOF.++ * OpenSSL/Session.hsc: shutdown/tryShutdown shouldn't throw an+ exception when a remote peer sends us a "close notify" alert and+ closes the connection without waiting for our reply.++ * OpenSSL/Session.hsc: ProtocolError should contain an error+ message string.++ * OpenSSL/EVP/*: Moved all EVP-related private functions to+ OpenSSL.EVP.Internal, Patch by Mikhail Vorozhtsov.++ * HsOpenSSL.cabal: Bump version to 0.10.1.2++2011-09-22 PHO <pho@cielonegro.org>++ * OpenSSL/Session.hsc: GHC 6.12.3 friendliness: don't use+ Control.Monad.void, Patch by Peter Gammie.++ * OpenSSL/BN.hsc, OpenSSL/Cipher.hsc: Placate LLVM in GHC 7.3.x+ HEAD: give memcpy the right type. Patch by Peter Gammie and David+ Terei.++ * OpenSSL/Session.hsc: Use throwIO instead of throw to raise SSL+ exceptions, Patch by Mikhail Vorozhtsov.++ * cbits/HsOpenSSL.c, cbits/HsOpenSSL.h: DHparams_dup() is a+ function in OpenSSL 1.0.0 but is a macro in 0.9.8.++ * OpenSSL/X509/Revocation.hsc: OpenSSL 0.9.8 doesn't provide+ X509_CRL_get0_by_serial().++ * HsOpenSSL.cabal: Bump version to 0.10.1.1++2011-08-27 PHO <pho@cielonegro.org>++ * OpenSSL/DH.hsc: Added bindings to Diffie-Hellman functions,+ Patch by Mikhail Vorozhtsov.++ * OpenSSL/X509/Revocation.hsc: Added revocation lookup function,+ Patch by Mikhail Vorozhtsov.++ * OpenSSL/Session.hsc: Added optional verification callback to+ VerifyPeer, Patch by Mikhail Vorozhtsov.++ * OpenSSL/Session.hsc: Expose low-level asynchronous versions of+ accept, connect, read, write and shutdown,+ Patch by Mikhail Vorozhtsov.++ * HsOpenSSL.cabal: Bump version to 0.10.1++2011-07-26 PHO <pho@cielonegro.org>++ * OpenSSL/Session.hsc (fdConnection, sslSocket): Support wrapping+ plain file descriptors in SSL connections,+ Patch by Mikhail Vorozhtsov.++ * HsOpenSSL.cabal: Bump version to 0.10++2011-06-21 PHO <pho@cielonegro.org>++ * OpenSSL/BN.hsc: Added missing BangPatterns pragma,+ Patch by Mikhail Vorozhtsov.++ * HsOpenSSL.cabal: Bump version to 0.9.0.1++2010-11-13 PHO <pho@cielonegro.org>++ * OpenSSL/Session.hsc: Operations in OpenSSL.Session now throw+ exceptions of individual exception types instead of plain strings,+ Suggested by Arthur Chan.++ * HsOpenSSL.cabal: Bump version to 0.9++2010-09-19 PHO <pho@cielonegro.org>++ * HsOpenSSL.cabal: Fix Windows support as suggested in+ <http://hackage.haskell.org/trac/ghc/wiki/Builder>,+ Reported by Edward Z. Yang.++ * HsOpenSSL.cabal: Bump version to 0.8.0.2++2010-02-09 PHO <pho@cielonegro.org>++ * OpenSSL/PEM.hsc: Add PEM-functionality with a new PwBS that+ works like PwStr except there are no superfluous extra copies+ retained in the memory, Patch by Taru Karttunen.++ * OpenSSL/PEM.hsc: Make PEM callbacks use bracket which makes+ cleanup work even if there are exceptions,+ Patch by Taru Karttunen.++ * OpenSSL/EVP/Sign.hsc: Export OpenSSL.EVP.Sign.signFinal,+ Patch by Taru Karttunen.++ * OpenSSL/EVP/Sign.hsc: Make OpenSSL.EVP.Sign.signFinal use+ ByteStrings internally, Patch by Taru Karttunen.++ * OpenSSL/EVP/Digest.hsc: Document pkcs5_pbkdf2_hmac_sha1 in+ OpenSSL.EVP.Digest, Patch by Taru Karttunen.++ * OpenSSL/RSA.hsc: Add rsaCopyPublic and rsaKeyPairFinalize to+ OpenSSL.RSA, Patch by Taru Karttunen.++ * OpenSSL/EVP/Cipher.hsc: Add cipherStrictLBS - Encrypt a lazy+ bytestring in a strict manner. Does not leak the keys,+ Patch by Taru Karttunen.++ * HsOpenSSL.cabal: Bump version to 0.8++2010-01-24 PHO <pho@cielonegro.org>++ * HsOpenSSL.cabal, OpenSSL/BN.hsc: Make HsOpenSSL compatible with+ GHC 6.12.1, Patch by Taru Karttunen.++ * HsOpenSSL.cabal: Bump version to 0.7++2009-08-03 PHO <pho@cielonegro.org>++ * OpenSSL/Cipher.hsc: OpenSSL.Cipher now exports the type AESCtx,+ Suggested by Carl Mackey.++ * HsOpenSSL.cabal: Bump version to 0.6.5++2009-07-14 PHO <pho@cielonegro.org>++ * OpenSSL/BIO.hsc: Unbreak BIO ForeignPtrs for GHC 6.10,+ Patch by Taru Karttunen.++ * HsOpenSSL.cabal: Bump version to 0.6.4++2009-07-13 PHO <pho@cielonegro.org>++ * OpenSSL/EVP/Sign.hsc (signBS, signLBS): These functions should+ return Strict.Bytestring and Lazy.Bytestring respectively,+ Suggested by Grant Monroe.++ * HsOpenSSL.cabal: Bump version to 0.6.3++2009-06-28 PHO <pho@cielonegro.org>++ * HsOpenSSL.cabal: Moved away from the Configure build type to the+ Simple build type, Patch by John Van Enk and his friend.++ * cbits/mutex-*: Removed the direct dependency on pthreads. This+ involved an indirection layer using the preprocessor. In+ linux/bsd, we use pthreads. In windows, we call out to the OS+ mutexing functions. This allows us to "cabal install" the+ HsOpenSSL library from the cmd.exe terminal in windows *without*+ having to use cygwin, Patch by John Van Enk and his friend.++ * HsOpenSSL.cabal: Bump version to 0.6.2++2009-06-02 PHO <pho@cielonegro.org>++ * OpenSSL/Session.hsc (lazyRead, lazyWrite, contextGetCAStore)+ (contextSetPrivateKey, contextSetCertificate): New functions.++ * HsOpenSSL.cabal: Bump version to 0.6.1++2009-03-27 PHO <pho@cielonegro.org>++ * OpenSSL/DSA.hsc: The data type "DSA" is now broken into two+ separate types "DSAPubKey" and "DSAKeyPair" to distinguish between+ public keys and keypairs at type-level. These two data types are+ instances of class "DSAKey".++ * OpenSSL/DSA.hsc (generateDSAParameters, generateDSAKey)+ (generateDSAParametersAndKey, signDigestedDataWithDSA)+ (verifyDigestedDataWithDSA): Rename functions to avoid name+ collision with OpenSSL.RSA.++ * OpenSSL/DSA.hsc (dsaToTuple, tupleToDSA): Break into separate+ functions.++ * OpenSSL/RSA.hsc: The data type "RSA" is now broken into two+ separate types "RSAPubKey" and "RSAKeyPair" to distinguish between+ public keys and keypairs at type-level. These two data types are+ instances of class "RSAKey".++ * OpenSSL/EVP/PKey.hsc: The data type "PKey" is now broken into+ two separate classes, not data types, "PublicKey" and "KeyPair" to+ distinguish between public keys and keypairs at type-level. You+ can pass "RSAPubKey" and such like directly to cryptographic+ functions instead of the prior polymorphic type "PKey", for the+ sake of type classes.++ * OpenSSL/EVP/Open.hsc (open, openBS, openLBS): Take "KeyPair k"+ instead of "PKey".++ * OpenSSL/EVP/Seal.hsc (seal, sealBS, sealLBS): Take+ "SomePublicKey" instead of "PKey".++ * OpenSSL/EVP/Sign.hsc (sign, signBS, signLBS): Take "KeyPair k"+ instead of "PKey".++ * OpenSSL/EVP/Verify.hsc (verify, verifyBS, verifyLBS): Take+ "PublicKey k" instead of "PKey".++ * OpenSSL/PEM.hsc (writePKCS8PrivateKey, readPrivateKey)+ (writePublicKey, readPublicKey): Take/return "KeyPair k",+ "SomKeyPair", "PublicKey k", or "SomePublicKey" instead of "PKey".++ * OpenSSL/PKCS7.hsc (pkcs7Sign, pkcs7Decrypt): Take "KeyPair k"+ instead of "PKey".++ * OpenSSL/X509.hsc (signX509, verifyX509, getPublicKey)+ (setPublicKey): Take/return "KeyPair k", "PublicKey k", or+ "SomePublicKey" instead of "PKey".++ * OpenSSL/X509/Request.hsc (signX509Req, verifyX509Req)+ (getPublicKey, setPublicKey): Take/return "KeyPair k", "PublicKey+ k", or "SomePublicKey" instead of "PKey".++ * OpenSSL/X509/Revocation.hsc (signCRL, verifyCRL): Take "KeyPair+ k" or "PublicKey k" instead of "PKey".++ * OpenSSL/RSA.hsc (RSAPubKey, RSAKeyPair): Let these types be+ instances of Eq, Ord and Show.++ * OpenSSL/RSA.hsc (generateRSAKey'): New function.++ * OpenSSL/DSA.hsc (DSAPubKey, DSAKeyPair): Let these types be+ instances of Eq, Ord and Show.++ * HsOpenSSL.cabal: Bump version to 0.6++2009-02-20 PHO <pho@cielonegro.org>++ * HsOpenSSL.cabal: Fix incorrect dependency declaration in+ HsOpenSSL.cabal. No semantical changes to the code.++ * HsOpenSSL.cabal: Bump version to 0.5.2++2009-02-02 PHO <pho@cielonegro.org>++ * OpenSSL/**/*.hsc: Fix breakage on 64-bit architectures,+ Reported by Neumark Péter.++ * HsOpenSSL.cabal: Bump version to 0.5.1++2009-01-14 PHO <pho@cielonegro.org>++ * OpenSSL/BN.hsc, OpenSSL/PEM.hsc: Fix breakage on GHC 6.10.1, and+ now requires 6.10.1...++ * OpenSSL/EVP/Digest.hsc (pkcs5_pbkdf2_hmac_sha1): New function,+ Patch by Taru Karttunen.++ * HsOpenSSL.cabal: Bump version to 0.5++2008-06-11 PHO <pho@cielonegro.org>++ * HsOpenSSL.cabal: No .hs files which are generated from .hsc+ files should be in the tarball. If any .hs files are outdated,+ Cabal seems to compile the outdated files instead of newer .hsc+ files.++ * HsOpenSSL.cabal: Bump version to 0.4.2++2008-03-19 PHO <pho@cielonegro.org>++ * OpenSSL/Session.hsc: Turn the Session IO inside out,+ Patch by Adam Langley.++ * OpenSSL/EVP/Digest.hsc: 64-bit fix for HMAC,+ Patch by Adam Langley.++ * OpenSSL/EVP/Cipher.hsc: Fix the foreign types of the cipher+ functions to use CInt, not Int, Patch by Adam Langley.++ * OpenSSL/EVP/Digest.hsc: Add ByteString version of digestBS,+ Patch by Adam Langley.++ * OpenSSL/BN.hsc: Fix BN<->Integer conversions on 64-bit systems,+ Patch by Adam Langley.++ * OpenSSL/ASN1.hsc (peekASN1String): Another 64-bit fix,+ Patch by Adam Langley.++ * HsOpenSSL.cabal: Bump version to 0.4.1++2008-02-14 PHO <pho@cielonegro.org>++ * OpenSSL/Session.hsc: Add the beginnings of session support,+ Patch by Adam Langley.++ * HsOpenSSL.cabal: Bump version to 0.4++2007-11-05 PHO <pho@cielonegro.org>++ * OpenSSL/EVP/Base64.hsc (decodeBlock): decodeBase64* weren't+ dropping the padding NUL.++ * HsOpenSSL.cabal: Updates for 6.8.1 (also *requires* 6.8.1 now),+ Patch by Adam Langley++ * HsOpenSSL.cabal: Bump version to 0.3.1++2007-10-29 PHO <pho@cielonegro.org>++ * OpenSSL/Cipher.hsc: Add non-EVP cipher support,+ Patch by Adam Langley.++ * OpenSSL/EVP/Digest.hsc: Add HMAC support in EVP,+ Patch by Adam Langley.++ * OpenSSL/Random.hsc: Add OpenSSL.Random,+ Patch by Adam Langley.++ * OpenSSL/BN.hsc: Additional utility functions in BN and exposing+ BN, Patch by Adam Langley.++ * OpenSSL/BN.hsc: Bug fix for fast Integer<->BN functions,+ Patch by Adam Langley.++ * HsOpenSSL.cabal: Bump version to 0.3++2007-10-14 PHO <pho@cielonegro.org>++ * OpenSSL/BN.hsc: Add support for fast Integer<->BN conversions,+ Patch by Adam Langley.++ * OpenSSL/DSA.hsc: Add DSA support, Patch by Adam Langley.++ * OpenSSL/BN.hsc (newBN): New BN utility function,+ Patch by Adam Langley.++ * OpenSSL/BN.hsc: FIX: set the BN ptr to NULL before calling+ BN_dec2bn, otherwise that function thinks that there's a valid BN+ there, Patch by Adam Langley.++ * OpenSSL/Utils.hsc: Add utility functions to print and read hex+ numbers, Patch by Adam Langley.++ * HsOpenSSL.cabal: Bump version to 0.2++2007-08-25 PHO <pho@cielonegro.org>++ * HsOpenSSL.hsc: Move hidden modules from Exposed-Modules to+ Other-Modules.++ * HsOpenSSL.cabal: Bump version to 0.1.1
HsOpenSSL.cabal view
@@ -12,7 +12,7 @@ <http://hackage.haskell.org/package/tls>, which is a pure Haskell implementation of SSL. .-Version: 0.10.3.5+Version: 0.10.3.6 License: PublicDomain License-File: COPYING Author: Adam Langley, Mikhail Vorozhtsov, PHO, Taru Karttunen@@ -26,7 +26,7 @@ Build-Type: Simple Extra-Source-Files: AUTHORS- NEWS+ ChangeLog README.rst cbits/HsOpenSSL.h cbits/mutex.h
− NEWS
@@ -1,438 +0,0 @@--*- coding: utf-8 -*---Changes from 0.10.3.4 to 0.10.3.5-----------------------------------* OpenSSL.withOpenSSL is now safe to be applied redundantly, suggested- by Andrew Cowie (#26).--* COPYING: Update the license to CC0: copyright waiver with a public- license fallback. See- http://creativecommons.org/publicdomain/zero/1.0/---Changes from 0.10.3.3 to 0.10.3.4-----------------------------------* Fix a compilation issue that occurs when using a different builddir- with "cabal build --builddir=DIR", reported by Bit Connor (#23),- Gregory Collins (#24) and Bas van Dijk (#25).---Changes from 0.10.3.2 to 0.10.3.3-----------------------------------* Merged #17 "Use MVar instead of QSem in OpenSSL.Session" by Mikhail- Vorozhtsov.---Changes from 0.10.3.1 to 0.10.3.2-----------------------------------* Merged #15 "Fixed build with base-4.6" by Mikhail Vorozhtsov.-* Added a configuration flag 'fast-bignum', fixes #16.---Changes from 0.10.3 to 0.10.3.1---------------------------------* Merged #14 "Fixed X509_STORE_CTX bindings vs OpenSSL 0.9.x" by- Mikhail Vorozhtsov.---Changes from 0.10.2.1 to 0.10.3---------------------------------* Merged #12 "Bindings to some of the X509_STORE_CTX functions" by- Mikhail Vorozhtsov:-- - New functions in OpenSSL.X509.Store:- - getStoreCtxCert- - getStoreCtxIssuer- - getStoreCtxCRL- - getStoreCtxChain--* Merged #13 "Fixed early verification callback deallocation crash" by- Mikhail Vorozhtsov.---Changes from 0.10.2 to 0.10.2.1---------------------------------* Merged #10 "Fix X509 PEM reading/writing" by Mikhail Vorozhtsov:-- - OpenSSL.PEM.readX509 now uses PEM_read_bio_X509() instead of- PEM_read_bio_X509_AUX().-- - OpenSSL.PEM.writeX509 now uses PEM_write_bio_X509() instead of- PEM_write_bio_X509_AUX().---Changes from 0.10.1.4 to 0.10.2---------------------------------* Merged #9 "Add raw pointer read/write operations" by Iavor- S. Diatchki:-- - OpenSSL.Session.readPtr- - OpenSSL.Session.tryReadPtr- - OpenSSL.Session.writePtr- - OpenSSL.Session.tryWritePtr--* Fixed #8 "HsOpenSSL 0.10.1.4 won't build" reported by vcxp:-- - Workaround for broken versions of Cabal, including one that comes- with ghc-7.0.4.---Changes from 0.10.1.3 to 0.10.1.4-----------------------------------* Fixed #7 "Haskell Platform 2011.4 Support", reported by stepcut:- - Foreign.ForeignPtr.Unsafe does not exist prior to base-4.4---Changes from 0.10.1.2 to 0.10.1.3-----------------------------------* OpenSSL.Session:- - SSL, SSLContext, SSLResult, ShutdownType and VerificationMode are- now instances of Typeable.--* Applied a series of patches "Various fixes for GHC 7.5" by Ben Gamari:- - Use unsafeForeignPtrToPtr from Foreign.ForeignPtr.Unsafe- - Use unsafePerformIO from System.IO.Unsafe- - Add Num to constraints with Bits---Changes from 0.10.1.1 to 0.10.1.2-----------------------------------* Applied a patch by Mikhail Vorozhtsov:- - Moved all EVP-related private functions to OpenSSL.EVP.Internal.--* Improve the error handling in OpenSSL.Session:- - SSL_get_error() must be called within the OS thread which caused- the failed operation as it inspects the thread-local storage.- - write/tryWrite should throw EPIPE for cleanly-closed connections- rather than EOF.- - shutdown/tryShutdown shouldn't throw an exception when a remote- peer sends us a "close notify" alert and closes the connection- without waiting for our reply.- - ProtocolError should contain an error message string.---Changes from 0.10.1 to 0.10.1.1---------------------------------* Applied a patch by Peter Gammie:- - GHC 6.12.3 friendliness: don't use Control.Monad.void--* Applied a patch by Peter Gammie and David Terei:- - Placate LLVM in GHC 7.3.x HEAD: give memcpy the right- type. Courtesy of David Terei.--* Applied a patch by Mikhail Vorozhtsov:- - Use throwIO instead of throw to raise SSL exceptions.--* Fixed breakage on OpenSSL 0.9.8:- - DHparams_dup() is a function in OpenSSL 1.0.0 but is a macro in 0.9.8.- - OpenSSL 0.9.8 doesn't provide X509_CRL_get0_by_serial().---Changes from 0.10 to 0.10.1-----------------------------* Applied patches by Mikhail Vorozhtsov:- - Added optional verification callback to VerifyPeer.- - Added revocation lookup function.- - Added bindings to Diffie-Hellman functions.- - Expose low-level asynchronous versions of accept, connect, read,- write and shutdown.--* Moved the repository to GitHub:- git://github.com/phonohawk/HsOpenSSL.git---Changes from 0.9.0.1 to 0.10------------------------------* Applied a patch by Mikhail Vorozhtsov to support wrapping plain file- descriptors in SSL connections.-- - New function:- fdConnection :: SSLContext -> Socket -> IO SSL- sslFd :: SSL -> Fd-- - Function signature change:- sslSocket :: SSL -> Maybe Socket- (It was "SSL -> Socket" before.)---Changes from 0.9 to 0.9.0.1-----------------------------* Applied a patch by Mikhail Vorozhtsov-- - Added missing BangPatterns pragma to OpenSSL/BN.hsc. It was- failing to build on GHC 7.1 without this.---Changes from 0.8.0.2 to 0.9-----------------------------* (Suggested by Arthur Chan) Operations in OpenSSL.Session now throw- exceptions of individual exception types instead of plain- strings. The following exception types are defined:-- - ConnectionCleanlyClosed- - ConnectionAbruptlyTerminated- - WantConnect- - WantAccept- - WantX509Lookup- - SSLIOError- - ProtocolError- - UnknownError(..)---Changes from 0.8 to 0.8.0.2-----------------------------* 0.8.0.1 was broken so it's invalidated.--* Fix Windows support as suggested in this page:- http://hackage.haskell.org/trac/ghc/wiki/Builder- (Thanks Edward Z. Yang for notifying me.)---Changes from 0.7 to 0.8-------------------------* Applied 7 patches by Taru Karttunen:-- - Add cipherStrictLBS - Encrypt a lazy bytestring in a strict- manner. Does not leak the keys-- - Add rsaCopyPublic and rsaKeyPairFinalize to OpenSSL.RSA-- - Document pkcs5_pbkdf2_hmac_sha1 in OpenSSL.EVP.Digest-- - Make OpenSSL.EVP.Sign.signFinal use ByteStrings internally-- - Export OpenSSL.EVP.Sign.signFinal-- - Add PEM-functionality with a new PwBS that works like PwStr except- there are no superfluous extra copies retained in the memory.-- - Make PEM callbacks use bracket which makes cleanup work even if- there are exceptions.---Changes from 0.6.5 to 0.7---------------------------* Applied patches by Taru Karttunen to make HsOpenSSL compatible with- GHC 6.12.1.--* Many cosmetic changes to suppress warnings which GHC 6.12.1- emits. It shouldn't change any semantics.---Changes from 0.6.4 to 0.6.5-----------------------------* Suggestion by Carl Mackey:-- - OpenSSL.Cipher now exports a type AESCtx.---Changes from 0.6.3 to 0.6.4-----------------------------* Applied a patch by Taru Karttunen:-- > Unbreak BIO ForeignPtrs for GHC 6.10- >- > In GHC 6.10 it is no longer possible to mix C and Haskell- > finalizers on the same ForeignPtr. This patch fixes that- > and unbreaks things for GHC 6.10.---Changes from 0.6.2 to 0.6.3-----------------------------* Suggestion by Grant Monroe:-- - Changed the signature of OpenSSL.EVP.Sign.signBS from- signBS :: KeyPair key => Digest -> key -> Strict.ByteString -> IO String- to- signBS :: KeyPair key => Digest -> key -> Strict.ByteString -> IO Strict.ByteString-- - Changed the signature of OpenSSL.EVP.Sign.signLBS from- signLBS :: KeyPair key => Digest -> key -> Lazy.ByteString -> IO String- to- signLBS :: KeyPair key => Digest -> key -> Lazy.ByteString -> IO Lazy.ByteString---Chanegs from 0.6.1 to 0.6.2-----------------------------* Applied a patch by John Van Enk and his friend:-- 1) Moved away from the Configure build type to the Simple build- type.-- 2) Removed the direct dependency on pthreads. This involved an- indirection layer using the preprocessor. In linux/bsd, we use- pthreads. In windows, we call out to the OS mutexing- functions. This allows us to "cabal install" the HsOpenSSL- library from the cmd.exe terminal in windows *without* having to- use cygwin.---Changes from 0.6 to 0.6.1---------------------------* OpenSSL.Session:- - New functions:- # lazyRead- # lazyWrite- # contextGetCAStore- # contextSetPrivateKey- # contextSetCertificate---Changes from 0.5.2 to 0.6---------------------------* INCOMPATIBLE CHANGES:- + OpenSSL.DSA:- - The data type "DSA" is now broken into two separate types- "DSAPubKey" and "DSAKeyPair" to distinguish between public- keys and keypairs at type-level. These two data types are- instances of class "DSAKey".- - These functions are renamed to avoid name collision with- OpenSSL.RSA:- # generateParameters --> generateDSAParameters- # generateKey --> generateDSAKey- # generateParametersAndKey --> generateDSAParametersAndKey- # signDigestedData --> signDigestedDataWithDSA- # verifyDigestedData --> verifyDigestedDataWithDSA- - These functions are broken into two separate functions:- # dsaToTuple --> dsaPubKeyToTuple, dsaKeyPairToTuple- # tupleToDSA --> tupleToDSAPubKey, tupleToDSAKeyPair- + OpenSSL.RSA:- - The data type "RSA" is now broken into two separate types- "RSAPubKey" and "RSAKeyPair" to distinguish between public- keys and keypairs at type-level. These two data types are- instances of class "RSAKey".- + OpenSSL.EVP.PKey:- - The data type "PKey" is now broken into two separate- classes, not data types, "PublicKey" and "KeyPair" to- distinguish between public keys and keypairs at- type-level. You can pass "RSAPubKey" and such like directly- to cryptographic functions instead of the prior polymorphic- type "PKey", for the sake of type classes.- + OpenSSL.EVP.Open:- - These functions now take "KeyPair k" instead of "PKey":- # open- # openBS- # openLBS- + OpenSSL.EVP.Seal:- - These functions now take "SomePublicKey" instead of "PKey":- # seal- # sealBS- # sealLBS- + OpenSSL.EVP.Sign:- - These functions now take "KeyPair k" instead of "PKey":- # sign- # signBS- # signLBS- + OpenSSL.EVP.Verify:- - These functions now take "PublicKey k" instead of "PKey":- # verify- # verifyBS- # verifyLBS- + OpenSSL.PEM:- - writePKCS8PrivateKey now takes "KeyPair k" instead of "PKey".- - readPrivateKey now returns "SomeKeyPair" instead of "PKey".- - writePublicKey now takes "PublicKey k" instead of "PKey".- - readPublicKey now returns "SomePublicKey" instead of "PKey".- + OpenSSL.PKCS7:- - pkcs7Sign now takes "KeyPair k" instead of "PKey".- - pkcs7Decrypt now takes "KeyPair k" instead of "PKey".- + OpenSSL.X509:- - signX509 now takes "KeyPair k" instead of "PKey".- - verifyX509 now takes "PublicKey k" instead of "PKey".- - getPublicKey now returns "SomePublicKey" instead of "PKey".- - setPublicKey now takes "PublicKey k" instead of "PKey".- + OpenSSL.X509.Request:- - signX509Req now takes "KeyPair k" instead of "PKey".- - verifyX509Req now takes "PublicKey k" instead of "PKey".- - getPublicKey now returns "SomePublicKey" instead of "PKey".- - setPublicKey now takes "PublicKey k" instead of "PKey".- + OpenSSL.X509.Revocation:- - signCRL now takes "KeyPair k" instead of "PKey".- - verifyCRL now takes "PublicKey k" instead of "PKey".-* OpenSSL.RSA:- - RSAPubKey and RSAKeyPair are now instances of Eq, Ord and Show.- - New function: generateRSAKey'-* OpenSSL.DSA:- - DSAPubKey and DSAKeyPair are now instances of Eq, Ord and Show.--Changes from 0.5.1 to 0.5.2-----------------------------* Fixed incorrect dependency declaration in HsOpenSSL.cabal. No- semantical changes to the code.--Changes from 0.5 to 0.5.1---------------------------* Fixed breakage on 64-bit architectures.- Reported by: Neumark Péter--Changes from 0.4.2 to 0.5---------------------------* Fixed breakage on GHC 6.10.1. And now requires 6.10.1...-* Applied a patch by Taru Karttunen:- - Add pkcs5_pbkdf2_hmac_sha1 to OpenSSL.EVP.Digest---Changes from 0.4.1 to 0.4.2-----------------------------* No .hs files which are generated from .hsc files should be in the- tarball. If any .hs files are outdated, Cabal seems to compile the- outdated files instead of newer .hsc files.---Changes from 0.4 to 0.4.1---------------------------* Applied patches by Adam Langley:- - Fix BN<->Integer conversions on 64-bit systems- - Another 64-bit fix (OpenSSL.ASN1.peekASN1String)- - Add ByteString version of digestBS- - Fix the foreign types of the cipher functions to use CInt, not Int- - 64-bit fix for HMAC- - Turn the Session IO inside out- - Silly cosmetic change---Changes from 0.3.1 to 0.4---------------------------* Applied patches by Adam Langley:- - Add the beginnings of session support- - Add an example SSL server---Changes from 0.3 to 0.3.1---------------------------* OpenSSL.EVP.Base64: Fix a bug in an internal function `decodeBlock':- decodeBase64* didn't drop the padding NUL.-* Applied patches by Adam Langley:- - Updates for 6.8.1 (also *requires* 6.8.1 now)- - tests/Base64.hs: Test for Base64---Changes from 0.2 to 0.3-------------------------* Applied patches by Adam Langley:- - tests/DSA.hs: Add a DSA test: this just adds a binary which tests- a few simple DSA cases (and runs a timing test) and prints "PASS"- as the last line of stdout in the case that everything looks good.- It doesn't include any hooks nor framework for running these.- - Bug fix for fast Integer<->BN functions- - OpenSSL.Cipher: Add non-EVP cipher support- - OpenSSL.EVP.Digest: Add HMAC support in EVP- - OpenSSL.Random: Add OpenSSL.Random- - OpenSSL.BN: Additional utility functions in BN and exposing BN---Changes from 0.1.1. to 0.2----------------------------* Applied patches by Adam Langley:- - OpenSSL.DSA: Add DSA support- - OpenSSL.BN: Add support for fast Integer<->BN conversions- - OpenSSL.BN: New BN utility function, newBN- - OpenSSL.BN: FIX: set the BN ptr to NULL before calling BN_dec2bn,- otherwise that function thinks that there's a valid BN there- - OpenSSL.Utils: Add utility functions to print and read hex numbers---Changes from 0.1 to 0.1.1---------------------------* Moved hidden modules from Exposed-Modules to Other-Modules.-* Added "time >= 1.1.1" to the Build-Depends.
OpenSSL.hsc view
@@ -55,6 +55,9 @@ import OpenSSL.SSL import System.IO.Unsafe +#if !MIN_VERSION_base(4,6,0)+import Control.Exception (onException, mask_)+#endif foreign import ccall "HsOpenSSL_setupMutex" setupMutex :: IO ()@@ -91,6 +94,19 @@ return True io +#if !MIN_VERSION_base(4,6,0)+{-|+ Like 'modifyMVar_', but the @IO@ action in the second argument is executed with+ asynchronous exceptions masked.+-}+{-# INLINE modifyMVarMasked_ #-}+modifyMVarMasked_ :: MVar a -> (a -> IO a) -> IO ()+modifyMVarMasked_ m io =+ mask_ $ do+ a <- takeMVar m+ a' <- io a `onException` putMVar m a+ putMVar m a'+#endif -- This variable must be atomically fetched/stored not to initialise -- the library twice.