CMS support for key agreeement recipient info.
[openssl.git] / crypto / x509 / x509_r2x.c
index f9c498a55d8b0b25aa35c3cb43b9411bd6b4bece..254a14693d99f0e1f343a8e97568a17c6c96aa5b 100644 (file)
 
 #include <stdio.h>
 #include "cryptlib.h"
-#include "bn.h"
-#include "evp.h"
-#include "asn1.h"
-#include "x509.h"
-#include "objects.h"
-#include "buffer.h"
+#include <openssl/bn.h>
+#include <openssl/evp.h>
+#include <openssl/asn1.h>
+#include <openssl/x509.h>
+#include <openssl/objects.h>
+#include <openssl/buffer.h>
 
 X509 *X509_REQ_to_X509(X509_REQ *r, int days, EVP_PKEY *pkey)
        {
@@ -80,20 +80,24 @@ X509 *X509_REQ_to_X509(X509_REQ *r, int days, EVP_PKEY *pkey)
        /* duplicate the request */
        xi=ret->cert_info;
 
-       if (sk_num(r->req_info->attributes) != 0)
+       if (sk_X509_ATTRIBUTE_num(r->req_info->attributes) != 0)
                {
-               if ((xi->version=ASN1_INTEGER_new()) == NULL) goto err;
+               if ((xi->version=M_ASN1_INTEGER_new()) == NULL) goto err;
                if (!ASN1_INTEGER_set(xi->version,2)) goto err;
 /*             xi->extensions=ri->attributes; <- bad, should not ever be done
                ri->attributes=NULL; */
                }
 
        xn=X509_REQ_get_subject_name(r);
-       X509_set_subject_name(ret,X509_NAME_dup(xn));
-       X509_set_issuer_name(ret,X509_NAME_dup(xn));
+       if (X509_set_subject_name(ret,X509_NAME_dup(xn)) == 0)
+               goto err;
+       if (X509_set_issuer_name(ret,X509_NAME_dup(xn)) == 0)
+               goto err;
 
-       X509_gmtime_adj(xi->validity->notBefore,0);
-       X509_gmtime_adj(xi->validity->notAfter,(long)60*60*24*days);
+       if (X509_gmtime_adj(xi->validity->notBefore,0) == NULL)
+               goto err;
+       if (X509_gmtime_adj(xi->validity->notAfter,(long)60*60*24*days) == NULL)
+               goto err;
 
        X509_set_pubkey(ret,X509_REQ_get_pubkey(r));