embed CRL serial number and signature fields
[openssl.git] / crypto / x509 / x509cset.c
index 4dbe6d087f759a22002a7fce25269a21db6cabd5..899d4925ae3de3b442d7aaf35e71074eef2b3111 100644 (file)
@@ -158,6 +158,11 @@ X509_NAME *X509_CRL_get_issuer(X509_CRL *crl)
     return crl->crl.issuer;
 }
 
+STACK_OF(X509_EXTENSION) *X509_CRL_get0_extensions(X509_CRL *crl)
+{
+    return crl->crl.extensions;
+}
+
 STACK_OF(X509_REVOKED) *X509_CRL_get_REVOKED(X509_CRL *crl)
 {
     return crl->crl.revoked;
@@ -166,9 +171,9 @@ STACK_OF(X509_REVOKED) *X509_CRL_get_REVOKED(X509_CRL *crl)
 void X509_CRL_get0_signature(ASN1_BIT_STRING **psig, X509_ALGOR **palg,
                              X509_CRL *crl)
 {
-    if (psig == NULL)
-        *psig = crl->signature;
-    if (palg == NULL)
+    if (psig != NULL)
+        *psig = &crl->signature;
+    if (palg != NULL)
         *palg = &crl->sig_alg;
 }
 
@@ -177,6 +182,11 @@ int X509_CRL_get_signature_nid(const X509_CRL *crl)
     return OBJ_obj2nid(crl->sig_alg.algorithm);
 }
 
+ASN1_TIME *X509_REVOKED_get0_revocationDate(X509_REVOKED *x)
+{
+    return x->revocationDate;
+}
+
 int X509_REVOKED_set_revocationDate(X509_REVOKED *x, ASN1_TIME *tm)
 {
     ASN1_TIME *in;
@@ -194,21 +204,26 @@ int X509_REVOKED_set_revocationDate(X509_REVOKED *x, ASN1_TIME *tm)
     return (in != NULL);
 }
 
+ASN1_INTEGER *X509_REVOKED_get0_serialNumber(X509_REVOKED *x)
+{
+    return &x->serialNumber;
+}
+
 int X509_REVOKED_set_serialNumber(X509_REVOKED *x, ASN1_INTEGER *serial)
 {
     ASN1_INTEGER *in;
 
     if (x == NULL)
         return (0);
-    in = x->serialNumber;
-    if (in != serial) {
-        in = ASN1_INTEGER_dup(serial);
-        if (in != NULL) {
-            ASN1_INTEGER_free(x->serialNumber);
-            x->serialNumber = in;
-        }
-    }
-    return (in != NULL);
+    in = &x->serialNumber;
+    if (in != serial)
+        return ASN1_STRING_copy(in, serial);
+    return 1;
+}
+
+STACK_OF(X509_EXTENSION) *X509_REVOKED_get0_extensions(X509_REVOKED *r)
+{
+    return r->extensions;
 }
 
 int i2d_re_X509_CRL_tbs(X509_CRL *crl, unsigned char **pp)