x509 1.4.3 → 1.4.4
raw patch · 2 files changed
+8/−11 lines, 2 files
Files
- Data/X509/PublicKey.hs +7/−10
- x509.cabal +1/−1
Data/X509/PublicKey.hs view
@@ -22,22 +22,18 @@ import qualified Crypto.Types.PubKey.RSA as RSA import qualified Crypto.Types.PubKey.DSA as DSA+import qualified Crypto.Types.PubKey.ECC as ECC import Data.Word import qualified Data.ByteString as B --- FIXME this doesn't identify ECDSA_Hash_SHA384, but the curve name secp384r1--- with implicit SHA384 hashing.-data ECDSA_Hash = ECDSA_Hash_SHA384- deriving (Show,Eq)- -- | Public key types known and used in X.509 data PubKey = PubKeyRSA RSA.PublicKey -- ^ RSA public key | PubKeyDSA DSA.PublicKey -- ^ DSA public key | PubKeyDH (Integer,Integer,Integer,Maybe Integer,([Word8], Integer)) -- ^ DH format with (p,g,q,j,(seed,pgenCounter))- | PubKeyECDSA ECDSA_Hash B.ByteString+ | PubKeyECDSA ECC.CurveName B.ByteString | PubKeyUnknown OID B.ByteString -- ^ unrecognized format deriving (Show,Eq) @@ -70,7 +66,7 @@ _ -> 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 ECDSA_Hash_SHA384 (bitArrayGetData bits), xs2) -- secp384r1+ OID [1,3,132,0,34]:End Sequence:BitString bits:End Sequence:xs2 -> Right (PubKeyECDSA ECC.SEC_p384r1 (bitArrayGetData bits), xs2) _ -> Left "fromASN1: X509.PubKey: unknown ECDSA format" | otherwise = undefined where decodeASN1Err format bits xs2 f =@@ -107,11 +103,12 @@ ,IntVal (DSA.params_g params)] params = DSA.public_params pubkey bits = encodeASN1' DER [IntVal $ DSA.public_y pubkey]- encodeInner (PubKeyECDSA ehash bits) =+ encodeInner (PubKeyECDSA curveName bits) = asn1Container Sequence [pkalg,OID eOid] ++ [BitString $ toBitArray bits 0] where- eOid = case ehash of- ECDSA_Hash_SHA384 -> [1,3,132,0,34]+ eOid = case curveName of+ ECC.SEC_p384r1 -> [1,3,132,0,34]+ _ -> error ("undefined curve OID: " ++ show curveName) encodeInner (PubKeyDH _) = undefined encodeInner (PubKeyUnknown _ l) = asn1Container Sequence [pkalg,Null] ++ [BitString $ toBitArray l 0]
x509.cabal view
@@ -1,5 +1,5 @@ Name: x509-Version: 1.4.3+Version: 1.4.4 Description: X509 reader and writer License: BSD3 License-file: LICENSE