blob: a66c1c66e64631526a9ef822cf3837b3d9bdc7e0 [file] [log] [blame]
Lev Walkind748bff2017-08-07 17:47:50 -07001ASN_MODULE_SOURCES= \
2 Uint3.c \
3 Uint8.c \
4 Uint16.c \
5 Uint32.c \
6 Uint64.c \
7 SequenceOfUint8.c \
8 SequenceOfUint16.c \
9 Opaque.c \
10 HashedId32.c \
11 HashedId10.c \
12 HashedId8.c \
13 HashedId4.c \
14 HashedId3.c \
15 Time32.c \
16 Time64.c \
17 ValidityPeriod.c \
18 Duration.c \
19 GeographicRegion.c \
20 CircularRegion.c \
21 RectangularRegion.c \
22 SequenceOfRectangularRegion.c \
23 PolygonalRegion.c \
24 TwoDLocation.c \
25 IdentifiedRegion.c \
26 SequenceOfIdentifiedRegion.c \
27 CountryOnly.c \
28 CountryAndRegions.c \
29 CountryAndSubregions.c \
30 RegionAndSubregions.c \
31 SequenceOfRegionAndSubregions.c \
32 ThreeDLocation.c \
33 Latitude.c \
34 Longitude.c \
35 Elevation.c \
36 NinetyDegreeInt.c \
37 KnownLatitude.c \
38 UnknownLatitude.c \
39 OneEightyDegreeInt.c \
40 KnownLongitude.c \
41 UnknownLongitude.c \
42 ElevInt.c \
43 Signature.c \
44 EcdsaP256Signature.c \
45 EccP256CurvePoint.c \
46 SymmAlgorithm.c \
47 HashAlgorithm.c \
48 EciesP256EncryptedKey.c \
49 EncryptionKey.c \
50 PublicEncryptionKey.c \
51 BasePublicEncryptionKey.c \
52 PublicVerificationKey.c \
53 SymmetricEncryptionKey.c \
54 PsidSsp.c \
55 SequenceOfPsidSsp.c \
56 Psid.c \
57 SequenceOfPsid.c \
58 ServiceSpecificPermissions.c \
59 PsidSspRange.c \
60 SequenceOfPsidSspRange.c \
61 SspRange.c \
62 SequenceOfOctetString.c \
63 SubjectAssurance.c \
64 CrlSeries.c \
65 IValue.c \
66 Hostname.c \
67 LinkageValue.c \
68 GroupLinkageValue.c \
69 LaId.c \
70 LinkageSeed.c \
71 SignedDataPayload.c \
72 Ieee1609Dot2Data.c \
73 Ieee1609Dot2Content.c \
74 SignedData.c \
75 SignerIdentifier.c \
76 ToBeSignedData.c \
77 HashedData.c \
78 HeaderInfo.c \
79 MissingCrlIdentifier.c \
80 Countersignature.c \
81 EncryptedData.c \
82 RecipientInfo.c \
83 SequenceOfRecipientInfo.c \
84 PreSharedKeyRecipientInfo.c \
85 SymmRecipientInfo.c \
86 PKRecipientInfo.c \
87 EncryptedDataEncryptionKey.c \
88 SymmetricCiphertext.c \
89 AesCcmCiphertext.c \
90 Certificate.c \
91 SequenceOfCertificate.c \
92 CertificateBase.c \
93 CertificateType.c \
94 ImplicitCertificate.c \
95 ExplicitCertificate.c \
96 IssuerIdentifier.c \
97 ToBeSignedCertificate.c \
98 CertificateId.c \
99 LinkageData.c \
100 EndEntityType.c \
101 PsidGroupPermissions.c \
102 SequenceOfPsidGroupPermissions.c \
103 SubjectPermissions.c \
104 VerificationKeyIndicator.c
105
106ASN_MODULE_HEADERS= \
107 Uint3.h \
108 Uint8.h \
109 Uint16.h \
110 Uint32.h \
111 Uint64.h \
112 SequenceOfUint8.h \
113 SequenceOfUint16.h \
114 Opaque.h \
115 HashedId32.h \
116 HashedId10.h \
117 HashedId8.h \
118 HashedId4.h \
119 HashedId3.h \
120 Time32.h \
121 Time64.h \
122 ValidityPeriod.h \
123 Duration.h \
124 GeographicRegion.h \
125 CircularRegion.h \
126 RectangularRegion.h \
127 SequenceOfRectangularRegion.h \
128 PolygonalRegion.h \
129 TwoDLocation.h \
130 IdentifiedRegion.h \
131 SequenceOfIdentifiedRegion.h \
132 CountryOnly.h \
133 CountryAndRegions.h \
134 CountryAndSubregions.h \
135 RegionAndSubregions.h \
136 SequenceOfRegionAndSubregions.h \
137 ThreeDLocation.h \
138 Latitude.h \
139 Longitude.h \
140 Elevation.h \
141 NinetyDegreeInt.h \
142 KnownLatitude.h \
143 UnknownLatitude.h \
144 OneEightyDegreeInt.h \
145 KnownLongitude.h \
146 UnknownLongitude.h \
147 ElevInt.h \
148 Signature.h \
149 EcdsaP256Signature.h \
150 EccP256CurvePoint.h \
151 SymmAlgorithm.h \
152 HashAlgorithm.h \
153 EciesP256EncryptedKey.h \
154 EncryptionKey.h \
155 PublicEncryptionKey.h \
156 BasePublicEncryptionKey.h \
157 PublicVerificationKey.h \
158 SymmetricEncryptionKey.h \
159 PsidSsp.h \
160 SequenceOfPsidSsp.h \
161 Psid.h \
162 SequenceOfPsid.h \
163 ServiceSpecificPermissions.h \
164 PsidSspRange.h \
165 SequenceOfPsidSspRange.h \
166 SspRange.h \
167 SequenceOfOctetString.h \
168 SubjectAssurance.h \
169 CrlSeries.h \
170 IValue.h \
171 Hostname.h \
172 LinkageValue.h \
173 GroupLinkageValue.h \
174 LaId.h \
175 LinkageSeed.h \
176 SignedDataPayload.h \
177 Ieee1609Dot2Data.h \
178 Ieee1609Dot2Content.h \
179 SignedData.h \
180 SignerIdentifier.h \
181 ToBeSignedData.h \
182 HashedData.h \
183 HeaderInfo.h \
184 MissingCrlIdentifier.h \
185 Countersignature.h \
186 EncryptedData.h \
187 RecipientInfo.h \
188 SequenceOfRecipientInfo.h \
189 PreSharedKeyRecipientInfo.h \
190 SymmRecipientInfo.h \
191 PKRecipientInfo.h \
192 EncryptedDataEncryptionKey.h \
193 SymmetricCiphertext.h \
194 AesCcmCiphertext.h \
195 Certificate.h \
196 SequenceOfCertificate.h \
197 CertificateBase.h \
198 CertificateType.h \
199 ImplicitCertificate.h \
200 ExplicitCertificate.h \
201 IssuerIdentifier.h \
202 ToBeSignedCertificate.h \
203 CertificateId.h \
204 LinkageData.h \
205 EndEntityType.h \
206 PsidGroupPermissions.h \
207 SequenceOfPsidGroupPermissions.h \
208 SubjectPermissions.h \
209 VerificationKeyIndicator.h
210
211ASN_MODULE_HEADERS+=UTF8String.h
212ASN_MODULE_HEADERS+=BOOLEAN.h
213ASN_MODULE_SOURCES+=BOOLEAN.c
214ASN_MODULE_HEADERS+=INTEGER.h
215ASN_MODULE_HEADERS+=NativeEnumerated.h
216ASN_MODULE_SOURCES+=INTEGER.c
217ASN_MODULE_HEADERS+=NULL.h
218ASN_MODULE_SOURCES+=NULL.c
219ASN_MODULE_SOURCES+=NativeEnumerated.c
220ASN_MODULE_HEADERS+=NativeInteger.h
221ASN_MODULE_SOURCES+=NativeInteger.c
222ASN_MODULE_SOURCES+=UTF8String.c
223ASN_MODULE_HEADERS+=asn_SEQUENCE_OF.h
224ASN_MODULE_SOURCES+=asn_SEQUENCE_OF.c
225ASN_MODULE_HEADERS+=asn_SET_OF.h
226ASN_MODULE_SOURCES+=asn_SET_OF.c
227ASN_MODULE_HEADERS+=constr_CHOICE.h
228ASN_MODULE_SOURCES+=constr_CHOICE.c
229ASN_MODULE_HEADERS+=constr_SEQUENCE.h
230ASN_MODULE_SOURCES+=constr_SEQUENCE.c
231ASN_MODULE_HEADERS+=constr_SEQUENCE_OF.h
232ASN_MODULE_SOURCES+=constr_SEQUENCE_OF.c
233ASN_MODULE_HEADERS+=constr_SET_OF.h
234ASN_MODULE_SOURCES+=constr_SET_OF.c
235ASN_MODULE_HEADERS+=asn_application.h
236ASN_MODULE_HEADERS+=asn_system.h
237ASN_MODULE_HEADERS+=asn_codecs.h
238ASN_MODULE_HEADERS+=asn_internal.h
239ASN_MODULE_HEADERS+=OCTET_STRING.h
240ASN_MODULE_SOURCES+=OCTET_STRING.c
241ASN_MODULE_HEADERS+=BIT_STRING.h
242ASN_MODULE_SOURCES+=BIT_STRING.c
243ASN_MODULE_SOURCES+=asn_codecs_prim.c
244ASN_MODULE_HEADERS+=asn_codecs_prim.h
245ASN_MODULE_HEADERS+=ber_tlv_length.h
246ASN_MODULE_SOURCES+=ber_tlv_length.c
247ASN_MODULE_HEADERS+=ber_tlv_tag.h
248ASN_MODULE_SOURCES+=ber_tlv_tag.c
249ASN_MODULE_HEADERS+=ber_decoder.h
250ASN_MODULE_SOURCES+=ber_decoder.c
251ASN_MODULE_HEADERS+=der_encoder.h
252ASN_MODULE_SOURCES+=der_encoder.c
253ASN_MODULE_HEADERS+=constr_TYPE.h
254ASN_MODULE_SOURCES+=constr_TYPE.c
255ASN_MODULE_HEADERS+=constraints.h
256ASN_MODULE_SOURCES+=constraints.c
257ASN_MODULE_HEADERS+=xer_support.h
258ASN_MODULE_SOURCES+=xer_support.c
259ASN_MODULE_HEADERS+=xer_decoder.h
260ASN_MODULE_SOURCES+=xer_decoder.c
261ASN_MODULE_HEADERS+=xer_encoder.h
262ASN_MODULE_SOURCES+=xer_encoder.c
263ASN_MODULE_HEADERS+=oer_decoder.h
264ASN_MODULE_SOURCES+=oer_decoder.c
265ASN_MODULE_HEADERS+=oer_encoder.h
266ASN_MODULE_SOURCES+=oer_encoder.c
267ASN_MODULE_HEADERS+=oer_support.h
268ASN_MODULE_SOURCES+=oer_support.c
269ASN_MODULE_HEADERS+=per_support.h
270ASN_MODULE_SOURCES+=per_support.c
271ASN_MODULE_HEADERS+=per_decoder.h
272ASN_MODULE_SOURCES+=per_decoder.c
273ASN_MODULE_HEADERS+=per_encoder.h
274ASN_MODULE_SOURCES+=per_encoder.c
275ASN_MODULE_HEADERS+=per_opentype.h
276ASN_MODULE_SOURCES+=per_opentype.c
277ASN_CONVERTER_SOURCES+=converter-sample.c
278ASN_MODULE_SOURCES+=INTEGER_oer.c
279ASN_MODULE_SOURCES+=OCTET_STRING_oer.c
280ASN_MODULE_SOURCES+=NativeInteger_oer.c
281ASN_MODULE_SOURCES+=constr_SEQUENCE_oer.c
282ASN_CONVERTER_SOURCES+=pdu_collection.c
283
284
285lib_LTLIBRARIES=libsomething.la
286libsomething_la_SOURCES=$(ASN_MODULE_SOURCES) $(ASN_MODULE_HEADERS)
287
288# This file may be used as an input for make(3)
289# Remove the lines below to convert it into a pure .am file
290TARGET = 1609-2-dump
291CPPFLAGS += -DASN_CONVERTER_TITLE="IEEE 1609.2-2016 decoder" -DHAVE_CONFIG_H -DJUNKTEST -D_DEFAULT_SOURCE -DASN_DISABLE_PER_SUPPORT -DPDU=Certificate -DASN_PDU_COLLECTION -I.
292OBJS=${ASN_MODULE_SOURCES:.c=.o} ${ASN_CONVERTER_SOURCES:.c=.o}
293
294all: maybe-wip-pause Certificate.c $(TARGET)
295
296$(TARGET): ${OBJS}
297 $(CC) $(CFLAGS) $(CPPFLAGS) -o $(TARGET) ${OBJS} $(LDFLAGS) $(LIBS)
298
299.SUFFIXES:
300.SUFFIXES: .c .o
301
302.c.o:
303 $(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
304
305clean:
306 rm -f $(TARGET)
307 rm -f $(OBJS)
308
309regen: regenerate-from-asn1-source
310
311regenerate-from-asn1-source:
312 ../../asn1c/asn1c -S ../../skeletons -pdu=Certificate -pdu=auto -fcompound-names -gen-OER ../IEEE-1609.2-2016.asn1
313
314
315Certificate.c: ../sample.makefile.regen ../IEEE-1609.2-2016.asn1
316 make regen-makefile
317 @touch Certificate.c
318 make
319
320regen-makefile:
321 TITLE="IEEE 1609.2-2016 decoder" \
322 ASN1CMDOPTS="-pdu=auto -fcompound-names -gen-OER" \
323 ASN1MODULES="../IEEE-1609.2-2016.asn1" \
324 ASN1PDU=Certificate \
325 PROGNAME=1609-2-dump \
326 CPPFLAGS="" \
327 ../sample.makefile.regen
328
329check: ${TARGET} check-ber check-xer check-per
330 @echo ================
331 @echo All tests passed
332 @echo ================
333
334check-ber:
335 @if test -f sample-Certificate-1.[db]er ; then \
336 for f in sample-Certificate-*.[db]er; do \
337 for b in 1 17 33 980 8192; do \
338 echo "Recoding $$f into XER and back ($$b)..."; \
339 ./${TARGET} -b $$b -iber -oxer $$f > ./.tmp.1.$$$$ || exit 2; \
340 ./${TARGET} -b $$b -ixer -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 3; \
341 diff ./.tmp.1.$$$$ ./.tmp.2.$$$$ || exit 4; \
342 rm -f ./.tmp.[12].$$$$; \
343 echo "Test junking $$f (please wait)..."; \
344 ./${TARGET} -J0.0001 -n 1000 -b $$b -iber -onull $$f || exit 5; \
345 ./${TARGET} -J0.001 -n 1000 -b $$b -iber -onull $$f || exit 6; \
346 done; done; fi
347
348check-xer:
349 @if test -f sample-Certificate-1.xer ; then \
350 for f in sample-Certificate-*.xer; do \
351 for b in 1 17 33 980 8192; do \
352 echo "Recoding $$f into DER and back ($$b)..."; \
353 ./${TARGET} -b $$b -ixer -oder $$f > ./.tmp.1.$$$$ || exit 2; \
354 ./${TARGET} -b $$b -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 3; \
355 diff $$f ./.tmp.2.$$$$ || exit 4; \
356 rm -f ./.tmp.[12].$$$$; \
357 echo "Test junking $$f (please wait)..."; \
358 ./${TARGET} -J0.0001 -n 1000 -b $$b -ixer -onull $$f || exit 5; \
359 ./${TARGET} -J0.001 -n 1000 -b $$b -ixer -onull $$f || exit 6; \
360 done; done; fi
361
362check-per:
363 @if test -f sample-Certificate-1-nopad.per ; then \
364 for f in sample-Certificate-[1-9]-nopad.per; do \
365 for b in 1 17 33 980 8192; do \
366 echo "Recoding non-padded $$f into DER into XER and back ($$b)..."; \
367 ./${TARGET} -b $$b -per-nopad -iper -oder $$f > ./.tmp.1.$$$$ || exit 2; \
368 ./${TARGET} -b $$b -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 3; \
369 ./${TARGET} -b $$b -ixer -oder ./.tmp.2.$$$$ > ./.tmp.3.$$$$ || exit 4; \
370 diff ./.tmp.1.$$$$ ./.tmp.3.$$$$ || exit 5; \
371 rm -f ./.tmp.[123].$$$$; \
372 echo "Test junking $$f (please wait)..."; \
373 ./${TARGET} -J0.0001 -n 1000 -b $$b -per-nopad -iper -onull $$f || exit 6; \
374 ./${TARGET} -J0.001 -n 1000 -b $$b -per-nopad -iper -onull $$f || exit 7; \
375 done; done; fi
376 @if test -f sample-Certificate-1.per ; then \
377 for f in sample-*-[1-9].per; do \
378 pdu=`echo $$f | sed -E -e "s/sample-([A-Za-z-]+)-[0-9].*/\1/"`; \
379 for b in 1 17 33 980 8192; do \
380 echo "Recoding $$f into DER into XER and back ($$b)..."; \
381 ./${TARGET} -b $$b -p $$pdu -iper -oder $$f > ./.tmp.1.$$$$ || exit 3; \
382 ./${TARGET} -b $$b -p $$pdu -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 4; \
383 ./${TARGET} -b $$b -p $$pdu -ixer -oper ./.tmp.2.$$$$ > ./.tmp.1.$$$$ || exit 5; \
384 diff $$f ./.tmp.1.$$$$ || exit 6; \
385 rm -f ./.tmp.[12].$$$$; \
386 echo "Test junking $$f (please wait)..."; \
387 ./${TARGET} -J0.0001 -n 1000 -b $$b -iper -onull $$f || exit 7; \
388 ./${TARGET} -J0.001 -n 1000 -b $$b -iper -onull $$f || exit 8; \
389 done; done; fi
390
391maybe-wip-pause:
392 @[ -f WIP ] && cat WIP && sleep 2
393
394distclean: clean
395 rm -f $(ASN_MODULE_SOURCES)
396 rm -f $(ASN_MODULE_HEADERS)
397 rm -f $(ASN_CONVERTER_SOURCES) $(ASN_CONVERTER_HEADERS)
398 rm -f Makefile.am.sample