Add macro to implement static encode functions.
authorDr. Stephen Henson <steve@openssl.org>
Sun, 29 Mar 2015 16:51:43 +0000 (17:51 +0100)
committerDr. Stephen Henson <steve@openssl.org>
Fri, 3 Apr 2015 15:58:44 +0000 (16:58 +0100)
Reviewed-by: Rich Salz <rsalz@openssl.org>
include/openssl/asn1t.h

index 7a2611e..dfd9dac 100644 (file)
@@ -825,6 +825,19 @@ typedef struct ASN1_STREAM_ARG_st {
                 return ASN1_item_ndef_i2d((ASN1_VALUE *)a, out, ASN1_ITEM_rptr(stname));\
         }
 
+# define IMPLEMENT_STATIC_ASN1_ENCODE_FUNCTIONS(stname) \
+        static stname *d2i_##stname(stname **a, \
+                                   const unsigned char **in, long len) \
+        { \
+                return (stname *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, \
+                                               ASN1_ITEM_rptr(stname)); \
+        } \
+        static int i2d_##stname(stname *a, unsigned char **out) \
+        { \
+                return ASN1_item_i2d((ASN1_VALUE *)a, out, \
+                                     ASN1_ITEM_rptr(stname)); \
+        }
+
 /*
  * This includes evil casts to remove const: they will go away when full ASN1
  * constification is done.