x509-ocsp 0.1.0.0 → 0.1.1.0
raw patch · 9 files changed
+117/−93 lines, 9 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- Changelog.md +8/−0
- Data/X509/AIA.hs +43/−27
- Data/X509/OCSP.hs +1/−1
- test/data/certs/root/rootCA.crt +16/−16
- test/data/certs/server-chain.crt +32/−32
- test/data/certs/server/server.crt +16/−16
- test/data/req.der binary
- test/data/resp.der binary
- x509-ocsp.cabal +1/−1
Changelog.md view
@@ -1,3 +1,11 @@+### 0.1.1.0++- Improvements in module *Data.X509.AIA*.+ + Throw an error when trying to encode *CA Issuers* data as this is not+ implemented.+ + Allow decoding of all variants of *string-like* *accessLocation* data.+ + List limitations of the module in the documentation.+ ### 0.1.0.0 - Initial version.
Data/X509/AIA.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE RecordWildCards, PatternSynonyms #-}+{-# LANGUAGE PatternSynonyms, ViewPatterns, RecordWildCards #-} ----------------------------------------------------------------------------- -- |@@ -15,13 +15,14 @@ -- This module complies with /rfc5280/. ----------------------------------------------------------------------------- -module Data.X509.AIA (ExtAuthorityInfoAccess (..)- ,AuthorityInfoAccess (..)+module Data.X509.AIA (AuthorityInfoAccess (..) ,AIAMethod (..)+ ,ExtAuthorityInfoAccess (..) ) where import Data.X509 import Data.ASN1.Types+import Data.ASN1.Stream import Data.ByteString (ByteString) pattern OidAIA :: [Integer]@@ -33,11 +34,10 @@ pattern OidCAIssuers :: [Integer] pattern OidCAIssuers = [1, 3, 6, 1, 5, 5, 7, 48, 2] --- | Authority Info Access extension.-newtype ExtAuthorityInfoAccess = ExtAuthorityInfoAccess [AuthorityInfoAccess]- deriving (Show, Eq)- -- | Authority Info Access description.+--+-- The fields correspond to /accessMethod/ and /accessLocation/ as defined in+-- /rfc5280/. data AuthorityInfoAccess = AuthorityInfoAccess { aiaMethod :: AIAMethod , aiaLocation :: ByteString } deriving (Show, Eq)@@ -54,39 +54,55 @@ fromObjectID OidCAIssuers = Just CAIssuers fromObjectID _ = Nothing -data DecState = DecStart | DecMethod | DecLocation | DecEnd+-- | Authority Info Access extension.+--+-- Notable limitations of the 'Extension' instance:+--+-- - encoding of access method /CA Issuers/ is not implemented, trying to+-- encode this will throw an error,+-- - data with a non-string-like access location (e.g. /directoryName/) get+-- skipped while decoding.+newtype ExtAuthorityInfoAccess = ExtAuthorityInfoAccess [AuthorityInfoAccess]+ deriving (Show, Eq) +data DecState = DecStart | DecMethod | DecLocation OID | DecEnd+ instance Extension ExtAuthorityInfoAccess where extOID = const OidAIA extHasNestedASN1 = const True extEncode (ExtAuthorityInfoAccess aia) = Start Sequence : concatMap (\AuthorityInfoAccess {..} ->- [ Start Sequence- , OID $ getObjectID aiaMethod- , Other Context 6 aiaLocation- , End Sequence- ]+ case aiaMethod of+ OCSP ->+ [ Start Sequence+ , OID $ getObjectID aiaMethod+ , Other Context 6 aiaLocation+ , End Sequence+ ]+ CAIssuers ->+ error "encoding CA Issuers is not implemented" ) aia ++ [End Sequence] extDecode [Start Sequence, End Sequence] = Right $ ExtAuthorityInfoAccess [] extDecode (Start Sequence : encAia) =- go DecStart Nothing encAia []- where go DecStart Nothing (Start Sequence : next) =- go DecMethod Nothing next- go DecMethod Nothing (OID v : next) =- go DecLocation (Just v) next- go DecLocation (Just v) (Other Context 6 s : next) =- case fromObjectID v of- Nothing -> const $ Left "bad AIA method"- Just v' -> go DecEnd Nothing next- . (AuthorityInfoAccess v' s :)- go DecEnd Nothing (End Sequence : next@(Start Sequence : _)) =- go DecStart Nothing next- go DecEnd Nothing [End Sequence, End Sequence] =+ go DecStart encAia []+ where go DecStart (Start Sequence : next) =+ go DecMethod next+ go DecMethod (OID oid : next) =+ go (DecLocation oid) next+ go (DecLocation (fromObjectID -> Just v)) cur+ | Other Context _ s : next <- cur =+ go DecEnd next . (AuthorityInfoAccess v s :)+ | otherwise =+ go DecEnd $ End Sequence : snd (getConstructedEnd 0 cur)+ go DecEnd (End Sequence : next@(Start Sequence : _)) =+ go DecStart next+ go DecEnd [End Sequence, End Sequence] = Right . ExtAuthorityInfoAccess . reverse- go _ _ _ = const $ Left "bad or incompatible AIA sequence"+ go _ _ =+ const $ Left "bad AIA sequence" extDecode _ = Left "bad AIA sequence"
Data/X509/OCSP.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE LambdaCase, ViewPatterns, PatternSynonyms #-}+{-# LANGUAGE PatternSynonyms, ViewPatterns, LambdaCase #-} ----------------------------------------------------------------------------- -- |
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
@@ -3,47 +3,47 @@ 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 -----END CERTIFICATE----- -----BEGIN CERTIFICATE------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 -----END CERTIFICATE-----
test/data/certs/server/server.crt view
@@ -3,23 +3,23 @@ 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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 → 1661 bytes)
x509-ocsp.cabal view
@@ -1,7 +1,7 @@ cabal-version: 2.4 name: x509-ocsp-version: 0.1.0.0+version: 0.1.1.0 synopsis: Basic X509 OCSP implementation description: Build X509 OCSP requests and parse responses homepage: https://github.com/lyokha/x509-ocsp