add wrapper function for certificate download
[openssl.git] / crypto / x509 / x_all.c
index 8ec88c215a4f6c5b79e5a96c27076bb1d333be33..bb64c34f502db83cb9ea9d81560bb43cefe9d02c 100644 (file)
@@ -63,6 +63,7 @@
 #include <openssl/asn1.h>
 #include <openssl/evp.h>
 #include <openssl/x509.h>
+#include <openssl/ocsp.h>
 #ifndef OPENSSL_NO_RSA
 #include <openssl/rsa.h>
 #endif
@@ -95,12 +96,31 @@ int X509_sign(X509 *x, EVP_PKEY *pkey, const EVP_MD *md)
                x->sig_alg, x->signature, x->cert_info,pkey,md));
        }
 
+int X509_sign_ctx(X509 *x, EVP_MD_CTX *ctx)
+       {
+       return ASN1_item_sign_ctx(ASN1_ITEM_rptr(X509_CINF),
+               x->cert_info->signature,
+               x->sig_alg, x->signature, x->cert_info, ctx);
+       }
+
+int X509_http_nbio(OCSP_REQ_CTX *rctx, X509 **pcert)
+       {
+       return OCSP_REQ_CTX_nbio_d2i(rctx,
+                               (ASN1_VALUE **)pcert, ASN1_ITEM_rptr(X509));
+       }
+
 int X509_REQ_sign(X509_REQ *x, EVP_PKEY *pkey, const EVP_MD *md)
        {
        return(ASN1_item_sign(ASN1_ITEM_rptr(X509_REQ_INFO),x->sig_alg, NULL,
                x->signature, x->req_info,pkey,md));
        }
 
+int X509_REQ_sign_ctx(X509_REQ *x, EVP_MD_CTX *ctx)
+       {
+       return ASN1_item_sign_ctx(ASN1_ITEM_rptr(X509_REQ_INFO),
+               x->sig_alg, NULL, x->signature, x->req_info, ctx);
+       }
+
 int X509_CRL_sign(X509_CRL *x, EVP_PKEY *pkey, const EVP_MD *md)
        {
        x->crl->enc.modified = 1;
@@ -108,6 +128,19 @@ int X509_CRL_sign(X509_CRL *x, EVP_PKEY *pkey, const EVP_MD *md)
                x->sig_alg, x->signature, x->crl,pkey,md));
        }
 
+int X509_CRL_sign_ctx(X509_CRL *x, EVP_MD_CTX *ctx)
+       {
+       return ASN1_item_sign_ctx(ASN1_ITEM_rptr(X509_CRL_INFO),
+               x->crl->sig_alg, x->sig_alg, x->signature, x->crl, ctx);
+       }
+
+int X509_CRL_http_nbio(OCSP_REQ_CTX *rctx, X509_CRL **pcrl)
+       {
+       return OCSP_REQ_CTX_nbio_d2i(rctx,
+                               (ASN1_VALUE **)pcrl, ASN1_ITEM_rptr(X509_CRL));
+       }
+
+
 int NETSCAPE_SPKI_sign(NETSCAPE_SPKI *x, EVP_PKEY *pkey, const EVP_MD *md)
        {
        return(ASN1_item_sign(ASN1_ITEM_rptr(NETSCAPE_SPKAC), x->sig_algor,NULL,