diff --git a/Data/X509/Ext.hs b/Data/X509/Ext.hs
--- a/Data/X509/Ext.hs
+++ b/Data/X509/Ext.hs
@@ -120,6 +120,7 @@
     extDecode [BitString bits] = Right $ ExtKeyUsage $ bitsToFlags bits
     extDecode _ = Left "unknown sequence"
 
+-- | Key usage purposes for the ExtendedKeyUsage extension
 data ExtKeyUsagePurpose =
       KeyUsagePurpose_ServerAuth
     | KeyUsagePurpose_ClientAuth
@@ -140,6 +141,7 @@
     ,(keyUsagePurposePrefix 9, KeyUsagePurpose_OCSPSigning)]
   where keyUsagePurposePrefix r = [1,3,6,1,5,5,7,3,r]
 
+-- | Extended key usage extension
 data ExtExtendedKeyUsage = ExtExtendedKeyUsage [ExtKeyUsagePurpose]
     deriving (Show,Eq)
 
diff --git a/Data/X509/PublicKey.hs b/Data/X509/PublicKey.hs
--- a/Data/X509/PublicKey.hs
+++ b/Data/X509/PublicKey.hs
@@ -66,7 +66,10 @@
                 _ -> Left "fromASN1: X509.PubKey: unknown DSA format"
         | pkalg == getObjectID PubKeyALG_ECDSA =
             case xs of
-                OID [1,3,132,0,34]:End Sequence:BitString bits:End Sequence:xs2 -> Right (PubKeyECDSA ECC.SEC_p384r1 (bitArrayGetData bits), xs2)
+                OID curveOid:End Sequence:BitString bits:End Sequence:xs2 ->
+                    case fromObjectID curveOid of
+                        Just curveName -> Right (PubKeyECDSA curveName (bitArrayGetData bits), xs2)
+                        Nothing        -> Left ("fromASN1: X509.Pubkey: ECDSA unknown curve " ++ show curveOid)
                 _ -> Left "fromASN1: X509.PubKey: unknown ECDSA format"
         | otherwise = error ("unknown public key OID: " ++ show pkalg)
       where decodeASN1Err format bits xs2 f =
diff --git a/x509.cabal b/x509.cabal
--- a/x509.cabal
+++ b/x509.cabal
@@ -1,5 +1,5 @@
 Name:                x509
-Version:             1.4.8
+Version:             1.4.9
 Description:         X509 reader and writer
 License:             BSD3
 License-file:        LICENSE
@@ -26,7 +26,7 @@
                    , asn1-types >= 0.2 && < 0.3
                    , asn1-encoding >= 0.8 && < 0.9
                    , asn1-parse >= 0.8 && < 0.9
-                   , crypto-pubkey-types >= 0.4 && < 0.5
+                   , crypto-pubkey-types >= 0.4.2.1 && < 0.5
                    , cryptohash >= 0.9 && < 0.12
   Exposed-modules:   Data.X509
   Other-modules:     Data.X509.Internal
