    returns nil.
 
    If the :ssl-context and :ssl-ca-cert keys are both missing, an exception will be thrown."
-  [options]
+  [options :- SSLContextOptions]
   (let [ssl-opts (select-keys options [:ssl-cert :ssl-key :ssl-ca-cert :ssl-ca-crls :ssl-context])
         from-context?           (contains? ssl-opts :ssl-context)
         from-pems?              (every? ssl-opts [:ssl-cert :ssl-key :ssl-ca-cert])

   `pem`: the file path to write the PEM output to
          (or some other object supported by clojure's `writer`)"
  [crl :- X509CRL
   pem :- Something]
  (with-open [w (writer pem)]
    (SSLUtils/writeToPEM crl w)))


  reference a PEM that contains one or more CRLs.

  Returns the SSLContext instance."
  [ca-cert :- ReaderSchema
   crls :- ReaderSchema]
  (with-open [ca-cert-reader (reader ca-cert)
              crls-reader    (reader crls)]
    (SSLUtils/caCertAndCrlPemsToSSLContext ca-cert-reader
