summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/x509/x509_addr.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/x509/x509_addr.c')
-rw-r--r--src/lib/libcrypto/x509/x509_addr.c103
1 files changed, 99 insertions, 4 deletions
diff --git a/src/lib/libcrypto/x509/x509_addr.c b/src/lib/libcrypto/x509/x509_addr.c
index 4258dbc40c..5aff2700fb 100644
--- a/src/lib/libcrypto/x509/x509_addr.c
+++ b/src/lib/libcrypto/x509/x509_addr.c
@@ -54,10 +54,105 @@ ASN1_ITEM_TEMPLATE(IPAddrBlocks) =
54 IPAddrBlocks, IPAddressFamily) 54 IPAddrBlocks, IPAddressFamily)
55static_ASN1_ITEM_TEMPLATE_END(IPAddrBlocks) 55static_ASN1_ITEM_TEMPLATE_END(IPAddrBlocks)
56 56
57IMPLEMENT_ASN1_FUNCTIONS(IPAddressRange) 57IPAddressRange *
58IMPLEMENT_ASN1_FUNCTIONS(IPAddressOrRange) 58d2i_IPAddressRange(IPAddressRange **a, const unsigned char **in, long len)
59IMPLEMENT_ASN1_FUNCTIONS(IPAddressChoice) 59{
60IMPLEMENT_ASN1_FUNCTIONS(IPAddressFamily) 60 return (IPAddressRange *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
61 (&(IPAddressRange_it)));
62}
63
64int
65i2d_IPAddressRange(IPAddressRange *a, unsigned char **out)
66{
67 return ASN1_item_i2d((ASN1_VALUE *)a, out, (&(IPAddressRange_it)));
68}
69
70IPAddressRange *
71IPAddressRange_new(void)
72{
73 return (IPAddressRange *)ASN1_item_new((&(IPAddressRange_it)));
74}
75
76void
77IPAddressRange_free(IPAddressRange *a)
78{
79 ASN1_item_free((ASN1_VALUE *)a, (&(IPAddressRange_it)));
80}
81
82IPAddressOrRange *
83d2i_IPAddressOrRange(IPAddressOrRange **a, const unsigned char **in, long len)
84{
85 return (IPAddressOrRange *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
86 (&(IPAddressOrRange_it)));
87}
88
89int
90i2d_IPAddressOrRange(IPAddressOrRange *a, unsigned char ** out)
91{
92 return ASN1_item_i2d((ASN1_VALUE *)a, out, (&(IPAddressOrRange_it)));
93}
94
95IPAddressOrRange *
96IPAddressOrRange_new(void)
97{
98 return (IPAddressOrRange *)ASN1_item_new((&(IPAddressOrRange_it)));
99}
100
101void
102IPAddressOrRange_free(IPAddressOrRange *a) {
103 ASN1_item_free((ASN1_VALUE *)a, (&(IPAddressOrRange_it)));
104}
105
106IPAddressChoice *
107d2i_IPAddressChoice(IPAddressChoice **a, const unsigned char **in, long len)
108{
109 return (IPAddressChoice *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
110 (&(IPAddressChoice_it)));
111}
112
113int
114i2d_IPAddressChoice(IPAddressChoice *a, unsigned char **out)
115{
116 return ASN1_item_i2d((ASN1_VALUE *)a, out, (&(IPAddressChoice_it)));
117}
118
119IPAddressChoice *
120IPAddressChoice_new(void)
121{
122 return (IPAddressChoice *)ASN1_item_new((&(IPAddressChoice_it)));
123
124}
125
126void
127IPAddressChoice_free(IPAddressChoice *a)
128{
129 ASN1_item_free((ASN1_VALUE *)a, (&(IPAddressChoice_it)));
130}
131
132IPAddressFamily *
133d2i_IPAddressFamily(IPAddressFamily **a, const unsigned char **in, long len)
134{
135 return (IPAddressFamily *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
136 (&(IPAddressFamily_it)));
137}
138
139int
140i2d_IPAddressFamily(IPAddressFamily *a, unsigned char **out)
141{
142 return ASN1_item_i2d((ASN1_VALUE *)a, out, (&(IPAddressFamily_it)));
143}
144
145IPAddressFamily *
146IPAddressFamily_new(void)
147{
148 return (IPAddressFamily *)ASN1_item_new((&(IPAddressFamily_it)));
149}
150
151void
152IPAddressFamily_free(IPAddressFamily *a)
153{
154 ASN1_item_free((ASN1_VALUE *)a, (&(IPAddressFamily_it)));
155}
61 156
62/* 157/*
63 * How much buffer space do we need for a raw address? 158 * How much buffer space do we need for a raw address?