1-- | 2-- Module : Data.X509.OID 3-- License : BSD-style 4-- Maintainer : Vincent Hanquez <vincent@snarc.org> 5-- Stability : experimental 6-- Portability : unknown 7-- 8module Data.X509.OID 9 ( OIDTable 10 , lookupByOID 11 , lookupOID 12 , curvesOIDTable 13 ) where 14 15import Control.Applicative 16import Crypto.PubKey.ECC.Types 17import Data.ASN1.OID 18import Data.List (find) 19 20type OIDTable a = [(a,OID)] 21 22lookupByOID :: OIDTable a -> OID -> Maybe a 23lookupByOID table oid = fst <$> find ((==) oid . snd) table 24 25lookupOID :: Eq a => OIDTable a -> a -> Maybe OID 26lookupOID table a = lookup a table 27 28curvesOIDTable :: OIDTable CurveName 29curvesOIDTable = 30 [ (SEC_p112r1, [1,3,132,0,6]) 31 , (SEC_p112r2, [1,3,132,0,7]) 32 , (SEC_p128r1, [1,3,132,0,28]) 33 , (SEC_p128r2, [1,3,132,0,29]) 34 , (SEC_p160k1, [1,3,132,0,9]) 35 , (SEC_p160r1, [1,3,132,0,8]) 36 , (SEC_p160r2, [1,3,132,0,30]) 37 , (SEC_p192k1, [1,3,132,0,31]) 38 , (SEC_p192r1, [1,2,840,10045,3,1,1]) 39 , (SEC_p224k1, [1,3,132,0,32]) 40 , (SEC_p224r1, [1,3,132,0,33]) 41 , (SEC_p256k1, [1,3,132,0,10]) 42 , (SEC_p256r1, [1,2,840,10045,3,1,7]) 43 , (SEC_p384r1, [1,3,132,0,34]) 44 , (SEC_p521r1, [1,3,132,0,35]) 45 , (SEC_t113r1, [1,3,132,0,4]) 46 , (SEC_t113r2, [1,3,132,0,5]) 47 , (SEC_t131r1, [1,3,132,0,22]) 48 , (SEC_t131r2, [1,3,132,0,23]) 49 , (SEC_t163k1, [1,3,132,0,1]) 50 , (SEC_t163r1, [1,3,132,0,2]) 51 , (SEC_t163r2, [1,3,132,0,15]) 52 , (SEC_t193r1, [1,3,132,0,24]) 53 , (SEC_t193r2, [1,3,132,0,25]) 54 , (SEC_t233k1, [1,3,132,0,26]) 55 , (SEC_t233r1, [1,3,132,0,27]) 56 , (SEC_t239k1, [1,3,132,0,3]) 57 , (SEC_t283k1, [1,3,132,0,16]) 58 , (SEC_t283r1, [1,3,132,0,17]) 59 , (SEC_t409k1, [1,3,132,0,36]) 60 , (SEC_t409r1, [1,3,132,0,37]) 61 , (SEC_t571k1, [1,3,132,0,38]) 62 , (SEC_t571r1, [1,3,132,0,39]) 63 ] 64