x509-ocsp 0.4.0.1 → 0.4.1.0
raw patch · 12 files changed
+105/−100 lines, 12 filesdep +crypton-asn1-encodingdep +crypton-asn1-typesdep +crypton-pemdep −asn1-encodingdep −asn1-typesdep −pemdep ~crypton-x509PVP ok
version bump matches the API change (PVP)
Dependencies added: crypton-asn1-encoding, crypton-asn1-types, crypton-pem
Dependencies removed: asn1-encoding, asn1-types, pem
Dependency ranges changed: crypton-x509
API changes (from Hackage documentation)
Files
- Changelog.md +5/−0
- Data/X509/AIA.hs +1/−1
- Data/X509/OCSP.hs +4/−4
- LICENSE +1/−1
- README.md +1/−1
- test/data/certs/root/rootCA.crt +19/−19
- test/data/certs/server-chain.crt +40/−40
- test/data/certs/server/server.crt +21/−21
- test/data/req.der binary
- test/data/resp.der binary
- test/test-ocsp.hs +6/−6
- x509-ocsp.cabal +7/−7
Changelog.md view
@@ -1,3 +1,8 @@+### 0.4.1.0++- Migrate from _asn1-\*_, *pem*, *hourglass* to _crypton-asn1-\*_,+ *crypton-pem*, *time-hourglass* respectively.+ ### 0.4.0.1 - Ensure that the list of certificates in the OCSP response comprises the
Data/X509/AIA.hs view
@@ -3,7 +3,7 @@ ----------------------------------------------------------------------------- -- | -- Module : Data.X509.AIA--- Copyright : (c) Alexey Radkov 2024+-- Copyright : (c) Alexey Radkov 2024-2026 -- License : BSD-style -- -- Maintainer : alexey.radkov@gmail.com
Data/X509/OCSP.hs view
@@ -3,7 +3,7 @@ ----------------------------------------------------------------------------- -- | -- Module : Data.X509.OCSP--- Copyright : (c) Alexey Radkov 2024+-- Copyright : (c) Alexey Radkov 2024-2026 -- License : BSD-style -- -- Maintainer : alexey.radkov@gmail.com@@ -89,7 +89,7 @@ -- | Build and encode OCSP request in ASN.1 format. -- -- The returned value contains the encoded request and an object of type--- 'CertId' with hashes calculated by the SHA1 algorithm.+-- t'CertId' with hashes calculated by the SHA1 algorithm. encodeOCSPRequestASN1 :: Certificate -- ^ Certificate -> Certificate -- ^ Issuer certificate@@ -122,7 +122,7 @@ -- | Build and encode OCSP request in ASN.1\/DER format. -- -- The returned value contains the encoded request and an object of type--- 'CertId' with hashes calculated by the SHA1 algorithm.+-- t'CertId' with hashes calculated by the SHA1 algorithm. encodeOCSPRequest :: Certificate -- ^ Certificate -> Certificate -- ^ Issuer certificate@@ -267,7 +267,7 @@ -- -- -- ... ----- verifySignature\' :: 'OCSPResponse' -> 'Certificate' -> t'Data.X509.Validation.SignatureVerification'+-- verifySignature\' :: t'OCSPResponse' -> t'Certificate' -> t'Data.X509.Validation.SignatureVerification' -- verifySignature\' resp v'Certificate' {..} -- | Just __/OCSPResponseVerificationData/__ {..} <- -- 'getOCSPResponseVerificationData' resp =
LICENSE view
@@ -1,7 +1,7 @@ The following license covers this documentation, and the source code, except where otherwise indicated. -Copyright 2024, Alexey Radkov. All rights reserved.+Copyright 2024-2026, Alexey Radkov. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
README.md view
@@ -67,7 +67,7 @@ ```ShellSession $ cabal run-client-ocsp: HttpExceptionRequest Request {+Exception: HttpExceptionRequest Request { host = "localhost" port = 8010 secure = True
test/data/certs/root/rootCA.crt view
@@ -1,24 +1,24 @@ -----BEGIN CERTIFICATE------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 -----END CERTIFICATE-----
test/data/certs/server-chain.crt view
@@ -1,49 +1,49 @@ -----BEGIN CERTIFICATE------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 -----END CERTIFICATE----- -----BEGIN CERTIFICATE------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 -----END CERTIFICATE-----
test/data/certs/server/server.crt view
@@ -1,25 +1,25 @@ -----BEGIN CERTIFICATE------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 -----END CERTIFICATE-----
test/data/req.der view
binary file changed (68 → 68 bytes)
test/data/resp.der view
binary file changed (1661 → 1663 bytes)
test/test-ocsp.hs view
@@ -15,12 +15,12 @@ import Data.ASN1.Encoding import Data.ASN1.BinaryEncoding import Data.List (uncons)- + toCertificate :: ByteString -> Certificate toCertificate cert = either error getCertificate $ do pem <- pemParseBS cert >>= maybe (Left "no pems") (pure . fst) . uncons decodeSignedObject $ pemContent pem- + testAIA :: Certificate -> Test testAIA cert = TestCase $ extensionGet (certExtensions cert) @?= expected where expected = Just $@@ -29,21 +29,21 @@ , aiaLocation = "http://localhost:8081" } ]- + testOCSPRequestASN1 :: Certificate -> Certificate -> [ASN1] -> Test testOCSPRequestASN1 cert issuerCert = TestCase . (buildRequest @?=) where buildRequest = fst $ encodeOCSPRequestASN1 cert issuerCert- + testOCSPRequest :: Certificate -> Certificate -> ByteString -> Test testOCSPRequest cert issuerCert = TestCase . (buildRequest @?=) . L.fromStrict where buildRequest = fst $ encodeOCSPRequest cert issuerCert- + testOCSPResponse :: Maybe OCSPResponse -> Test testOCSPResponse resp = TestCase $ getRespStatus @?= Just OCSPRespCertGood where getRespStatus = ocspRespCertStatus . ocspRespCertData <$> (resp >>= ocspRespPayload)- + verifyOCSPResponse :: Certificate -> Maybe OCSPResponse -> Test verifyOCSPResponse issuerCert resp = TestCase $ getVerificationStatus @?= Just SignaturePass
x509-ocsp.cabal view
@@ -1,7 +1,7 @@ cabal-version: 2.4 name: x509-ocsp-version: 0.4.0.1+version: 0.4.1.0 synopsis: Basic X509 OCSP implementation description: Build X509 OCSP requests and parse responses homepage: https://github.com/lyokha/x509-ocsp@@ -12,7 +12,7 @@ author: Alexey Radkov <alexey.radkov@gmail.com> maintainer: Alexey Radkov <alexey.radkov@gmail.com> stability: experimental-copyright: 2024 Alexey Radkov+copyright: 2024-2026 Alexey Radkov category: Data build-type: Simple @@ -25,8 +25,8 @@ build-depends: base >= 4.8 && < 5 , bytestring , crypton-x509- , asn1-encoding- , asn1-types+ , crypton-asn1-encoding+ , crypton-asn1-types , cryptohash-sha1 -- only needed for haddock to hyperlink entities in code examples:@@ -44,9 +44,9 @@ , bytestring , crypton-x509 , crypton-x509-validation- , asn1-encoding- , asn1-types- , pem+ , crypton-asn1-encoding+ , crypton-asn1-types+ , crypton-pem , x509-ocsp type: exitcode-stdio-1.0