packages feed

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 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